{"openapi":"3.1.0","info":{"title":"Economic Agent Redirect Contract Verifier","description":"Native x402 v2 seller for one bounded redirect verification. The protected operation uses exact payment on Base (eip155:8453) with canonical Base USDC.","version":"1.0.0"},"paths":{"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/v1/redirect-contract-verifier":{"post":{"summary":"Verify a redirect contract","description":"Requires an x402 v2 exact payment of 0.003 USDC (3000 atomic units) on Base (eip155:8453) using canonical Base USDC. A contract-valid PASS, WARN, or FAIL verdict is a normal paid HTTP 200 fulfillment; FAIL does not mean that application transport failed.","operationId":"verify_redirect_v1_redirect_contract_verifier_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedirectVerificationInput"}}}},"responses":{"200":{"description":"Contract-valid paid verifier result. PASS, WARN, and FAIL are all normal successful service results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedirectVerificationResult"}}},"headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement response.","schema":{"type":"string"}}}},"402":{"description":"Payment is required, rejected, or did not produce a paid fulfillment. PAYMENT-REQUIRED carries the current requirement for unpaid or rejected requests. A post-execution settlement failure instead returns an empty JSON object with an unsuccessful PAYMENT-RESPONSE. A 402 alone does not prove that no settlement occurred and does not imply that retry is safe.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 v2 payment requirement when supplied.","schema":{"type":"string"}},"PAYMENT-RESPONSE":{"description":"Base64-encoded unsuccessful settlement response when supplied.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"FastAPI request validation rejected the JSON body shape or field types after the payment middleware admitted the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestValidationFailure"}}}},"500":{"description":"The paid verifier execution raised unexpectedly before a contract-valid result was produced; the middleware does not settle this error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidExecutionFailure"}}}}},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 payment payload.","schema":{"type":"string"}}],"x-x402-payment":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price":"$0.003","amount":"3000","payTo":"0xd732C9F2f5ca4bD738F02Cd6bbd558aaaC83f841"}}}},"components":{"schemas":{"PaidExecutionFailure":{"properties":{"error":{"type":"string","const":"PAID_EXECUTION_FAILURE","title":"Error"}},"additionalProperties":false,"type":"object","required":["error"],"title":"PaidExecutionFailure","description":"Stable body returned when verifier execution raises unexpectedly."},"ReasonCode":{"type":"string","enum":["TARGET_MATCH","TARGET_MATCH_FINAL_HTTP_ERROR","TARGET_MISMATCH","SOURCE_URL_INVALID","EXPECTED_TARGET_URL_INVALID","DESTINATION_NOT_PUBLIC","REDIRECT_LOOP","REDIRECT_LIMIT_EXCEEDED","REDIRECT_LOCATION_INVALID","DNS_FAILURE","TIMEOUT","TLS_FAILURE","HTTP_FAILURE"],"title":"ReasonCode","description":"Initial stable reason-code taxonomy from the product contract."},"RedirectChainObservation":{"properties":{"url":{"type":"string","title":"Url"},"status":{"type":"integer","title":"Status"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"}},"additionalProperties":false,"type":"object","required":["url","status","location"],"title":"RedirectChainObservation","description":"Published shape of one canonical verifier response observation."},"RedirectVerificationInput":{"properties":{"source_url":{"type":"string","title":"Source Url"},"expected_target_url":{"type":"string","title":"Expected Target Url"}},"additionalProperties":false,"type":"object","required":["source_url","expected_target_url"],"title":"RedirectVerificationInput","description":"JSON transport shape; URL interpretation belongs to the verifier."},"RedirectVerificationResult":{"properties":{"verdict":{"$ref":"#/components/schemas/Verdict"},"reason_code":{"$ref":"#/components/schemas/ReasonCode"},"source_url":{"type":"string","title":"Source Url"},"expected_target_url":{"type":"string","title":"Expected Target Url"},"final_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Final Url"},"final_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Status"},"redirect_count":{"type":"integer","title":"Redirect Count"},"redirect_chain":{"items":{"$ref":"#/components/schemas/RedirectChainObservation"},"type":"array","title":"Redirect Chain"}},"additionalProperties":false,"type":"object","required":["verdict","reason_code","source_url","expected_target_url","final_url","final_status","redirect_count","redirect_chain"],"title":"RedirectVerificationResult","description":"Documentation model for the canonical verifier result serialization."},"RequestValidationFailure":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/RequestValidationIssue"},"type":"array","title":"Detail"}},"type":"object","required":["detail"],"title":"RequestValidationFailure","description":"Documented FastAPI request-validation response."},"RequestValidationIssue":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Loc"},"msg":{"type":"string","title":"Msg"},"type":{"type":"string","title":"Type"}},"type":"object","required":["loc","msg","type"],"title":"RequestValidationIssue","description":"FastAPI/Pydantic validation detail exposed by the current transport."},"Verdict":{"type":"string","enum":["PASS","WARN","FAIL"],"title":"Verdict","description":"Stable verification verdict values."}}}}