{"openapi":"3.1.0","info":{"title":"Agent Contract Proof","version":"1.0.0","description":"Verify that a public agent or API endpoint matches its advertised payment and schema contract.","x-guidance":"Use this endpoint before trusting or repeatedly purchasing another agent's paid endpoint.","x-use-cases":["Preflight a paid agent before first use","Detect price, wallet, network, route, or schema changes","Gate automated integrations with a stable contract hash"]},"servers":[{"url":"https://agent-contract-proof.mattskowronis.workers.dev"}],"paths":{"/v1/verify":{"post":{"summary":"Verify one public agent/API contract","x-402":{"price":"$0.01","network":"eip155:8453"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","maxLength":2048,"description":"Public HTTP or HTTPS agent/API URL. An origin URL may be resolved through discovery metadata."},"method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"description":"Optional method to probe. If omitted, the advertised method is used, then GET as a fallback."},"expected_hash":{"type":"string","pattern":"^[a-fA-F0-9]{64}$","description":"Optional previous contract_hash. A mismatch proves the public contract changed."}}},"example":{"url":"https://source-claim-proof.mattskowronis.workers.dev"}}}},"responses":{"200":{"description":"Deterministic contract proof","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["verdict","target_url","target_method","target_status","declared","observed","checks","mismatches","evidence_urls","checked_at","contract_hash","service_version"],"properties":{"verdict":{"type":"string","enum":["conforms","mismatch","unreachable","insufficient_evidence"]},"target_url":{"type":"string"},"target_method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"]},"target_status":{"type":"string","enum":["verified","unreachable","blocked","unsupported","insufficient_evidence"]},"declared":{"type":"object","description":"Normalized public Agent Card or OpenAPI declaration."},"observed":{"type":"object","description":"Normalized live HTTP/x402 challenge."},"checks":{"type":"array","items":{"type":"object"}},"mismatches":{"type":"array","items":{"type":"string"}},"evidence_urls":{"type":"array","items":{"type":"string"}},"checked_at":{"type":"string"},"contract_hash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"service_version":{"type":"string"}}}}}},"400":{"description":"Invalid request"},"402":{"description":"x402 payment required"},"503":{"description":"Payment service unavailable"}}}}}}