{"openapi":"3.1.0","info":{"title":"hackathon-2026-renat","version":"1.2.2","description":"Agentic data manufacturing: describe the task and provide a non-secret data sample. Compose ingestion, extraction, typed records, validation, search, cross-document evidence checks and aggregation into a standalone offline-capable Docker image with MCP. New domains are assessed by capabilities, not scenario IDs. Quote and clarify before x402 payment; settle only after build and tests."},"servers":[{"url":"https://hackathon-2026-renat-576883977581.europe-west1.run.app"}],"components":{"schemas":{"QuoteRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"intent":{"type":"string","minLength":1,"maxLength":4000},"quote_id":{"type":"string","pattern":"^q_[a-f0-9]{32}$"},"idempotency_key":{"type":"string","pattern":"^[a-zA-Z0-9_-]{8,100}$"},"source_samples":{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"array","items":{}}]},"hints":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"answers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"contract":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"Quote":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"quote_id":{"type":"string","pattern":"^q_[a-f0-9]{32}$"},"status":{"type":"string","enum":["quoted","needs_input","unsupported"]},"intent":{"type":"string"},"revision":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created_at":{"type":"string"},"expires_at":{"type":"string"},"price":{"type":"object","properties":{"currency":{"type":"string","const":"USDC"},"amount":{"type":"string","pattern":"^\\d+$"},"display_amount":{"type":"string"},"network":{"type":"string"},"asset":{"type":"string"},"payTo":{"type":"string"},"breakdown":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["currency","amount","display_amount"],"additionalProperties":{}},"purchase":{"type":"object","properties":{"method":{"type":"string","enum":["GET","POST"]},"url":{"type":"string"}},"required":["method","url"]},"plan":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"configuration_schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"mcp_tools":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"question":{"type":"string"}},"required":["id","question"],"additionalProperties":{}}},"reason":{"type":"string"},"validation_error":{"type":"string"},"diagnostic":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"usage":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"planning":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["quote_id","status","intent","revision","created_at","expires_at"],"additionalProperties":{}},"Price":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"currency":{"type":"string","const":"USDC"},"amount":{"type":"string","pattern":"^\\d+$"},"display_amount":{"type":"string"},"network":{"type":"string"},"asset":{"type":"string"},"payTo":{"type":"string"},"breakdown":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["currency","amount","display_amount"],"additionalProperties":{}},"Order":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"order_id":{"type":"string","pattern":"^o_[a-f0-9]{32}$"},"status":{"type":"string","enum":["accepted","building","testing","ready","settling","settlement_pending","payment_required","delivered","failed"]},"billing_mode":{"type":"string","enum":["test","x402"]},"created_at":{"type":"string"},"promised_delivery_at":{"type":"string"},"estimated_completion_at":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"state":{"type":"string","enum":["accepted","building","testing","ready","settling","settlement_pending","payment_required","delivered","failed"]},"at":{"type":"string"}},"required":["state","at"],"additionalProperties":{}}},"error":{"type":["string","null"]},"payment_required":{"type":"boolean"},"payment_url":{"type":["string","null"]},"artifact_url":{"type":["string","null"]},"price":{"type":"object","properties":{"currency":{"type":"string","const":"USDC"},"amount":{"type":"string","pattern":"^\\d+$"},"display_amount":{"type":"string"},"network":{"type":"string"},"asset":{"type":"string"},"payTo":{"type":"string"},"breakdown":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["currency","amount","display_amount"],"additionalProperties":{}},"payment":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]}},"required":["order_id","status","billing_mode","created_at","promised_delivery_at","estimated_completion_at","events","error","payment_required","payment_url","artifact_url","price","payment"],"additionalProperties":{}},"Artifact":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"order_id":{"type":"string","pattern":"^o_[a-f0-9]{32}$"},"format":{"type":"string","const":"docker-archive"},"architecture":{"type":"string","const":"linux/amd64"},"image":{"type":"object","properties":{"digest":{"type":"string"},"archive_sha256":{"type":"string"},"bytes":{"type":"number"},"download_url":{"type":"string"},"local_tag":{"type":"string"}},"required":["digest","archive_sha256","bytes","download_url","local_tag"],"additionalProperties":{}},"manifest":{"type":"object","properties":{"command":{"type":"string"},"plan":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"mcp":{"type":"object","properties":{"transport":{"type":"string","const":"streamable-http"},"url":{"type":"string"},"tools":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["transport","url","tools"],"additionalProperties":{}}},"required":["command","plan","mcp"],"additionalProperties":{}},"test_report":{"type":"object","properties":{"status":{"type":"string"}},"required":["status"],"additionalProperties":{}},"payment":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]}},"required":["order_id","format","architecture","image","manifest","test_report"],"additionalProperties":{}},"Replay":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"order_id":{"type":"string","pattern":"^o_[a-f0-9]{32}$"},"replayed":{"type":"boolean","const":true},"requires_wallet_recovery":{"type":"boolean"}},"required":["order_id","replayed"]},"PaymentChallenge":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"x402Version":{"type":"number","const":2},"accepts":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"resource":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"error":{"type":"string"}},"required":["x402Version","accepts","resource"],"additionalProperties":{}},"Error":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"}},"required":["error"],"x-known-errors":["invalid_quote_request","invalid_intent","invalid_quote_id","quote_not_found","quote_already_final","quote_revision_changed","quote_needs_input","quote_unsupported","quote_expired","idempotency_key_reused","planning_in_progress_retry_later","planning_in_progress_or_interrupted","order_not_found","artifact_not_delivered","payment_resource_mismatch","payment_terms_mismatch","invalid_payment","payment_already_bound_to_other_quote","order_creation_pending_retry","order_not_waiting_for_payment","wallet_signature_invalid","challenge_invalid_or_expired"]}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"},"orderToken":{"type":"apiKey","in":"header","name":"X-Order-Token"}}},"paths":{"/.well-known/agent-card.json":{"get":{"operationId":"discover","responses":{"200":{"description":"A2A 0.3.0 agent card and backward-compatible commerce metadata","content":{"application/json":{"schema":{"type":"object","required":["name","protocolVersion","url","skills","capabilities"],"properties":{"name":{"type":"string"},"protocolVersion":{"const":"0.3.0"},"url":{"type":"string","format":"uri"},"skills":{"type":"array","items":{"type":"object"}},"capabilities":{"type":"object"}}}}}}}}},"/v1/capabilities":{"get":{"operationId":"capabilities","responses":{"200":{"description":"Versioned processing capabilities and canonical runtime tool schemas","content":{"application/json":{"schema":{"type":"object","required":["version","sources","knowledge_contract"],"properties":{"version":{"type":"string"},"sources":{"type":"array","items":{"type":"object"}},"knowledge_contract":{"type":"object"}}}}}}}}},"/v1/templates":{"get":{"operationId":"templates","responses":{"200":{"description":"Capabilities and declared limits","content":{"application/json":{"schema":{"type":"object","required":["capabilities","limitations"],"properties":{"capabilities":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}}}}}}}}}},"/v1/external-services":{"get":{"operationId":"externalServices","responses":{"200":{"description":"Optional explicit-consent buyer-agent inference handoff","content":{"application/json":{"schema":{"type":"object","required":["providers","execution","configuration","requires","external_cost_included"],"properties":{"providers":{"type":"array","items":{"type":"object"}},"execution":{"const":"buyer_agent_x402_handoff"},"configuration":{"type":"object"},"requires":{"type":"array","items":{"type":"string"}},"external_cost_included":{"const":false}}}}}}}}},"/v1/quotes":{"post":{"operationId":"quote","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequest"}}}},"responses":{"200":{"description":"Quoted, needs_input or unsupported; only quoted has price and purchase","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/quotes/{id}":{"get":{"operationId":"getQuote","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved quote; finalized prices are immutable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/quotes/{id}/order":{"get":{"operationId":"authorizePipelineOrder","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"PAYMENT-SIGNATURE","in":"header","schema":{"type":"string"},"description":"Base64 x402 v2 signature for the exact purchase resource and frozen amount"},{"name":"X-Order-Token","in":"header","schema":{"type":"string"},"description":"Alternative to Authorization: Bearer; retain the token from the first 202 response"}],"responses":{"200":{"description":"Replay; public signatures never recover the bearer token","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Order"},{"$ref":"#/components/schemas/Replay"}]}}}},"202":{"description":"Build accepted. Additional access_token is returned only once; retain it. Settlement follows successful tests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge; a wallet signs this exact resource, amount and network","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentChallenge"}}},"headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 encoded x402 v2 payment requirements"}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-payment":{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","currency":"USDC","decimals":6,"payTo":"0x6afF5bE8A569408Ce46aBEEa24c779D050DeA3fb","facilitator":"https://facilitator.payai.network","x402Version":2,"pricing":"(actual_token_cost_usd * 2 + 0.01) / 10000, ceil to 0.000001 USDC","pricing_profile":"hackathon_v1","amount_source":"final quote price.amount"}}},"/v1/orders/{id}":{"get":{"operationId":"orderStatus","security":[{"bearerAuth":[]},{"orderToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Order-Token","in":"header","schema":{"type":"string"},"description":"Alternative to Authorization: Bearer; retain the token from the first 202 response"}],"responses":{"200":{"description":"Current durable order state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/orders/{id}/artifact":{"get":{"operationId":"artifactManifest","security":[{"bearerAuth":[]},{"orderToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Order-Token","in":"header","schema":{"type":"string"},"description":"Alternative to Authorization: Bearer; retain the token from the first 202 response"}],"responses":{"200":{"description":"Delivered archive manifest and test evidence","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Artifact"}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/orders/{id}/image":{"get":{"operationId":"downloadImage","security":[{"bearerAuth":[]},{"orderToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Order-Token","in":"header","schema":{"type":"string"},"description":"Alternative to Authorization: Bearer; retain the token from the first 202 response"}],"responses":{"200":{"description":"Gzipped docker save archive; verify the manifest archive_sha256 before loading","content":{"application/gzip":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/orders/{id}/payment":{"get":{"operationId":"renewPayment","security":[{"bearerAuth":[]},{"orderToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"PAYMENT-SIGNATURE","in":"header","schema":{"type":"string"},"description":"Base64 x402 v2 signature for the exact purchase resource and frozen amount"},{"name":"X-Order-Token","in":"header","schema":{"type":"string"},"description":"Alternative to Authorization: Bearer; retain the token from the first 202 response"}],"responses":{"200":{"description":"Already delivered","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"202":{"description":"Fresh authorization accepted at the original frozen price","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 challenge; a wallet signs this exact resource, amount and network","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentChallenge"}}},"headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64 encoded x402 v2 payment requirements"}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/orders/recover/challenge":{"post":{"operationId":"recoveryChallenge","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["order_id"],"properties":{"order_id":{"type":"string","pattern":"^o_[a-f0-9]{32}$"}}}}}},"responses":{"200":{"description":"Sign the returned message with the original buyer wallet","content":{"application/json":{"schema":{"type":"object","required":["challenge_id","message","expires_at"],"properties":{"challenge_id":{"type":"string"},"message":{"type":"string"},"expires_at":{"type":"string"}}}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/orders/recover":{"post":{"operationId":"recoverAccess","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["challenge_id","signature"],"properties":{"challenge_id":{"type":"string"},"signature":{"type":"string"}}}}}},"responses":{"200":{"description":"Rotated access_token returned; previous token is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid request; error identifies the rejected contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown resource or invalid access token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"State conflict; follow the existing quote or order instead of buying again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Quote or challenge expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Planning or payment infrastructure unavailable; no successful purchase is implied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/mcp":{"post":{"operationId":"platformMcp","description":"Stateless Streamable HTTP MCP. Initialize, tools/list and tools/call. Tools: discover_platform, prepare_quote, get_quote, order_pipeline, inspect_order.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"const":"2.0"},"method":{"type":"string"},"id":{"type":["string","number"]},"params":{"type":"object"}}}}}},"responses":{"200":{"description":"MCP JSON-RPC result with typed structuredContent for tool calls"},"202":{"description":"Notification accepted"},"400":{"description":"Invalid MCP request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/a2a":{"post":{"operationId":"a2a","description":"A2A 0.3.0 JSON-RPC: message/send, tasks/get, tasks/cancel. Quote preparation only; completed means the quote is ready, not that the image has been purchased. Use one data part containing QuoteRequest, or a text part containing the intent.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","id","method","params"],"properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number"]},"method":{"enum":["message/send","tasks/get","tasks/cancel"]},"params":{"type":"object"}}}}}},"responses":{"200":{"description":"A2A Task or JSON-RPC error; streaming and push notifications are not supported"}}}}}}