{"components":{"schemas":{"AgentCanPayDecision":{"properties":{"agent_policy":{"type":"string"},"auditable_paid_continuation":{"additionalProperties":true,"description":"Optional 0.002 USDC receipt path. It is recommended only after an allow decision and an explicit require_audit_receipt request.","type":"object"},"decision":{"enum":["allow","review","deny"],"type":"string"},"declared_price_usdc":{"nullable":true,"type":"number"},"endpoint":{"type":"string"},"max_usdc":{"nullable":true,"type":"number"},"reason":{"type":"string"},"reasons":{"items":{"type":"string"},"type":"array"},"recommendations":{"items":{"type":"object"},"type":"array"},"report":{"$ref":"#/components/schemas/VerificationSummary"},"report_integrity_ok":{"type":"boolean"},"warnings":{"items":{"type":"string"},"type":"array"}},"type":"object"},"AgentInvitation":{"properties":{"agent_copy_points":{"items":{"type":"string"},"type":"array"},"agent_policy":{"additionalProperties":true,"type":"object"},"decision_contract":{"additionalProperties":true,"type":"object"},"entrypoints":{"additionalProperties":{"type":"string"},"type":"object"},"first_party_paid_services":{"items":{"type":"object"},"type":"array"},"generated_at":{"type":"string"},"name":{"type":"string"},"paid_feature_flags":{"additionalProperties":true,"type":"object"},"public_only":{"type":"boolean"},"purpose":{"type":"string"},"recommended_flow":{"items":{"properties":{"goal":{"type":"string"},"step":{"type":"string"},"url":{"type":"string"}},"type":"object"},"type":"array"},"schema":{"example":"ontario.agent_invitation.v1","type":"string"},"trust_signals":{"items":{"properties":{"name":{"type":"string"},"url":{"type":"string"},"why_it_matters":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"AlertSubscriptionRequest":{"properties":{"email":{"type":"string"},"endpoint":{"description":"Paid API endpoint URL the alert subscription should monitor for x402 readiness changes.","type":"string"},"events":{"items":{"type":"string"},"type":"array"},"webhook_url":{"type":"string"}},"required":["endpoint"],"type":"object"},"AnswerEvalCase":{"additionalProperties":false,"properties":{"accepted_citation_urls":{"items":{"type":"string"},"type":"array"},"canonical_url":{"type":"string"},"claim_index_url":{"type":"string"},"confidence":{"example":"source-backed","type":"string"},"eval_id":{"example":"ontario.eval.x402-verifier","type":"string"},"expected_answer":{"type":"string"},"expected_claim_id":{"example":"ontario.claim.x402-verifier","type":"string"},"expected_digest":{"example":"sha256:...","type":"string"},"fail_if":{"items":{"type":"string"},"type":"array"},"html_selector":{"example":"#citation-receipt","type":"string"},"pass_criteria":{"items":{"type":"string"},"type":"array"},"prompt":{"type":"string"},"required_evidence":{"items":{"type":"string"},"type":"array"},"schema":{"example":"ontario.geo_eval_case.v1","type":"string"},"slug":{"type":"string"}},"type":"object"},"AnswerEvalCorpus":{"additionalProperties":false,"properties":{"answer_pack":{"type":"string"},"claim_index":{"type":"string"},"description":{"type":"string"},"evaluation_count":{"type":"integer"},"evaluations":{"items":{"$ref":"#/components/schemas/AnswerEvalCase"},"type":"array"},"generated_at":{"type":"string"},"geo_manifest":{"type":"string"},"name":{"type":"string"},"ndjson_url":{"type":"string"},"schema":{"example":"ontario.geo_eval_corpus.v1","type":"string"}},"type":"object"},"AnswerGraph":{"properties":{"answers":{"items":{"$ref":"#/components/schemas/AnswerPage"},"type":"array"},"citation_policy":{"additionalProperties":true,"type":"object"},"citation_receipts":{"type":"string"},"count":{"type":"integer"},"description":{"type":"string"},"generated_at":{"type":"string"},"geo_manifest":{"type":"string"},"name":{"type":"string"},"schema":{"example":"ontario.geo_answers.v1","type":"string"}},"type":"object"},"AnswerPack":{"properties":{"answer_count":{"type":"integer"},"answer_graph":{"type":"string"},"answers":{"items":{"$ref":"#/components/schemas/AnswerPackCard"},"type":"array"},"citation_policy":{"additionalProperties":true,"type":"object"},"citation_receipts":{"type":"string"},"description":{"type":"string"},"generated_at":{"type":"string"},"geo_manifest":{"type":"string"},"markdown_url":{"type":"string"},"name":{"type":"string"},"schema":{"example":"ontario.geo_answer_pack.v1","type":"string"}},"type":"object"},"AnswerPackCard":{"properties":{"canonical_url":{"type":"string"},"citation_receipt_json_url":{"type":"string"},"citation_receipt_markdown_url":{"type":"string"},"citation_receipt_url":{"type":"string"},"confidence":{"type":"string"},"digest":{"type":"string"},"direct_answer":{"type":"string"},"do_not_infer":{"items":{"type":"string"},"type":"array"},"freshness_check":{"type":"string"},"json_url":{"type":"string"},"query":{"type":"string"},"query_variants":{"items":{"type":"string"},"type":"array"},"recommended_citation":{"type":"string"},"slug":{"type":"string"}},"type":"object"},"AnswerPage":{"properties":{"agent_next_steps":{"items":{"type":"string"},"type":"array"},"aliases":{"items":{"type":"string"},"type":"array"},"answer":{"type":"string"},"answer_policy":{"additionalProperties":true,"type":"object"},"api":{"type":"string"},"api_method":{"enum":["GET","POST"],"type":"string"},"canonical_url":{"type":"string"},"citation_targets":{"items":{"type":"object"},"type":"array"},"cta":{"type":"string"},"description":{"type":"string"},"evidence_checks":{"items":{"type":"string"},"type":"array"},"generated_at":{"type":"string"},"json_url":{"type":"string"},"name":{"type":"string"},"primary_url":{"type":"string"},"related":{"items":{"type":"object"},"type":"array"},"schema":{"example":"ontario.geo_answer.v1","type":"string"},"search_intent":{"type":"string"}},"type":"object"},"CitationReceipt":{"properties":{"canonical_url":{"type":"string"},"citation_policy":{"additionalProperties":true,"type":"object"},"citation_snippet":{"type":"string"},"claim":{"type":"string"},"claim_anchor":{"type":"string"},"digest":{"example":"sha256:...","type":"string"},"evidence_matrix":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"evidence_urls":{"items":{"type":"string"},"type":"array"},"html_selector":{"type":"string"},"json_url":{"type":"string"},"name":{"type":"string"},"query_variants":{"items":{"type":"string"},"type":"array"},"receipt_id":{"type":"string"},"receipt_json_url":{"type":"string"},"receipt_markdown_url":{"type":"string"},"receipt_url":{"type":"string"},"recommended_citation":{"type":"string"},"schema":{"example":"ontario.geo_citation_receipt.v1","type":"string"},"search_intent":{"type":"string"},"verification_steps":{"items":{"type":"string"},"type":"array"}},"type":"object"},"CitationReceipts":{"properties":{"canonical_answer_graph":{"type":"string"},"description":{"type":"string"},"generated_at":{"type":"string"},"geo_manifest":{"type":"string"},"name":{"type":"string"},"receipt_count":{"type":"integer"},"receipts":{"items":{"$ref":"#/components/schemas/CitationReceipt"},"type":"array"},"schema":{"example":"ontario.geo_citation_receipts.v1","type":"string"}},"type":"object"},"ClaimIndex":{"additionalProperties":false,"properties":{"answer_pack":{"type":"string"},"claim_count":{"type":"integer"},"claims":{"items":{"$ref":"#/components/schemas/GeoClaim"},"type":"array"},"description":{"type":"string"},"generated_at":{"type":"string"},"geo_manifest":{"type":"string"},"name":{"type":"string"},"ndjson_url":{"type":"string"},"schema":{"example":"ontario.geo_claim_index.v1","type":"string"}},"type":"object"},"DiscoverResponse":{"properties":{"category":{"nullable":true,"type":"string"},"count":{"type":"integer"},"services":{"items":{"$ref":"#/components/schemas/Service"},"type":"array"}},"type":"object"},"GeoClaim":{"additionalProperties":false,"properties":{"canonical_url":{"type":"string"},"citation_receipt_json_url":{"type":"string"},"citation_receipt_markdown_url":{"type":"string"},"citation_receipt_url":{"type":"string"},"claim_id":{"example":"ontario.claim.x402-verifier","type":"string"},"confidence":{"example":"source-backed","type":"string"},"digest":{"example":"sha256:...","type":"string"},"do_not_infer":{"items":{"type":"string"},"type":"array"},"evidence_urls":{"items":{"type":"string"},"type":"array"},"html_selector":{"example":"#citation-receipt","type":"string"},"json_url":{"type":"string"},"query_variants":{"items":{"type":"string"},"type":"array"},"quoteable_text":{"type":"string"},"recommended_citation":{"type":"string"},"schema":{"example":"ontario.geo_claim.v1","type":"string"},"search_intent":{"type":"string"},"slug":{"type":"string"},"statement":{"type":"string"},"verification_steps":{"items":{"type":"string"},"type":"array"}},"type":"object"},"GeoManifest":{"properties":{"agent_invite":{"type":"string"},"answer_count":{"type":"integer"},"answer_eval_corpus":{"type":"string"},"answer_eval_corpus_ndjson":{"type":"string"},"answer_pack_json":{"type":"string"},"answer_pack_markdown":{"type":"string"},"answers":{"items":{"type":"object"},"type":"array"},"canonical_answer_graph":{"type":"string"},"citation_policy":{"additionalProperties":true,"type":"object"},"citation_receipts":{"type":"string"},"claim_index":{"type":"string"},"claim_index_ndjson":{"type":"string"},"description":{"type":"string"},"generated_at":{"type":"string"},"html_index":{"type":"string"},"llms":{"type":"string"},"llms_full":{"type":"string"},"name":{"type":"string"},"openapi":{"type":"string"},"schema":{"example":"ontario.geo_manifest.v1","type":"string"},"sitemap":{"type":"string"},"visibility_manifest":{"type":"string"}},"type":"object"},"PaidApiBenchmark":{"properties":{"benchmark_score":{"type":"integer"},"category":{"type":"string"},"endpoint_url":{"type":"string"},"grade":{"enum":["excellent","ready","watch","needs_work"],"type":"string"},"max_score":{"type":"integer"},"method":{"type":"string"},"name":{"type":"string"},"payment":{"additionalProperties":true,"type":"object"},"pricing":{"additionalProperties":true,"type":"object"},"protocol":{"example":"x402","type":"string"},"provider":{"type":"string"},"rank":{"type":"integer"},"report_history":{"additionalProperties":true,"type":"object"},"safety":{"additionalProperties":true,"type":"object"},"schema":{"example":"ontario.paid_api_benchmark.v1","type":"string"},"score_breakdown":{"additionalProperties":{"$ref":"#/components/schemas/PaidApiBenchmarkComponent"},"type":"object"},"slug":{"type":"string"},"urls":{"additionalProperties":true,"type":"object"}},"type":"object"},"PaidApiBenchmarkCompare":{"properties":{"components":{"items":{"properties":{"component":{"type":"string"},"delta":{"type":"integer"},"label":{"type":"string"},"left_score":{"type":"integer"},"max_score":{"type":"integer"},"right_score":{"type":"integer"},"winner":{"enum":["left","right","tie"],"type":"string"}},"type":"object"},"type":"array"},"generated_at":{"type":"string"},"left":{"$ref":"#/components/schemas/PaidApiBenchmark"},"right":{"$ref":"#/components/schemas/PaidApiBenchmark"},"safety":{"additionalProperties":true,"type":"object"},"schema":{"example":"ontario.paid_api_benchmark_compare.v1","type":"string"},"score_delta":{"type":"integer"},"urls":{"additionalProperties":true,"type":"object"},"winner":{"enum":["left","right","tie"],"type":"string"}},"type":"object"},"PaidApiBenchmarkComponent":{"properties":{"explanation":{"type":"string"},"max_score":{"type":"integer"},"percent":{"type":"number"},"score":{"type":"integer"},"signals":{"additionalProperties":true,"type":"object"}},"type":"object"},"PaidApiBenchmarkDataset":{"properties":{"benchmarks":{"items":{"$ref":"#/components/schemas/PaidApiBenchmark"},"type":"array"},"count":{"type":"integer"},"description":{"type":"string"},"filter_options":{"additionalProperties":true,"type":"object"},"filters":{"additionalProperties":true,"type":"object"},"generated_at":{"type":"string"},"methodology":{"additionalProperties":true,"type":"object"},"name":{"type":"string"},"safety":{"additionalProperties":true,"type":"object"},"schema":{"example":"ontario.paid_api_benchmarks.v1","type":"string"},"summary":{"additionalProperties":true,"type":"object"},"urls":{"additionalProperties":true,"type":"object"}},"type":"object"},"ReadinessPlans":{"properties":{"billing_options":{"items":{"type":"object"},"type":"array"},"plans":{"items":{"type":"object"},"type":"array"},"positioning":{"type":"string"},"recommendation":{"type":"string"},"schema":{"type":"string"},"success_target":{"type":"object"}},"type":"object"},"ReadinessSubscriptionIntentRequest":{"properties":{"billing_preference":{"enum":["invoice","x402","traditional"],"type":"string"},"company":{"type":"string"},"contact_email":{"description":"Required contact_email value for this request.","type":"string"},"endpoint":{"type":"string"},"endpoints_count":{"type":"integer"},"notes":{"type":"string"},"plan":{"description":"Required plan value for this request.","enum":["launch","team","enterprise"],"type":"string"}},"required":["contact_email","plan"],"type":"object"},"ReportIntegrity":{"properties":{"algorithm":{"type":"string"},"canonical_sha256":{"type":"string"},"canonicalization":{"type":"string"},"key_id":{"type":"string"},"public_key":{"type":"string"},"signature":{"type":"string"},"signed_by":{"type":"string"}},"type":"object"},"ReportIntegrityResponse":{"properties":{"integrity":{"$ref":"#/components/schemas/ReportIntegrity"},"report_id":{"type":"string"},"valid":{"type":"boolean"}},"type":"object"},"ReputationReport":{"properties":{"payment":{"type":"object"},"reputation":{"properties":{"agent_id":{"type":"string"},"attestation_count":{"type":"integer"},"attestations":{"type":"array"},"trust_score":{"nullable":true,"type":"integer"}},"type":"object"}},"type":"object"},"Service":{"properties":{"asset":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"endpoint":{"type":"string"},"id":{"type":"string"},"method":{"type":"string"},"name":{"type":"string"},"network":{"type":"string"},"price_atomic":{"type":"integer"},"price_usdc":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"verification":{"$ref":"#/components/schemas/VerificationSummary"},"verification_status":{"type":"string"},"verified":{"type":"boolean"}},"type":"object"},"ServiceProfile":{"properties":{"certification":{"type":"object"},"history":{"items":{"type":"object"},"type":"array"},"history_count":{"type":"integer"},"latest_report":{"type":"object"},"name":{"type":"string"},"profile_url":{"type":"string"},"score_delta":{"type":"integer"},"slug":{"type":"string"},"target_url":{"type":"string"}},"type":"object"},"ServiceProfileList":{"properties":{"count":{"type":"integer"},"generated_at":{"type":"string"},"services":{"items":{"$ref":"#/components/schemas/ServiceProfile"},"type":"array"},"stats":{"type":"object"}},"type":"object"},"TrustReport":{"properties":{"payment":{"type":"object"},"report":{"properties":{"agent_id":{"type":"string"},"endpoint":{"type":"string"},"evidence":{"type":"object"},"issues":{"items":{"type":"string"},"type":"array"},"scanner":{"type":"string"},"signals":{"type":"object"},"trust_score":{"type":"integer"}},"type":"object"}},"type":"object"},"VerificationHistory":{"properties":{"count":{"type":"integer"},"generated_at":{"type":"string"},"reports":{"items":{"type":"object"},"type":"array"}},"type":"object"},"VerificationReportList":{"properties":{"count":{"type":"integer"},"generated_at":{"type":"string"},"reports":{"items":{"$ref":"#/components/schemas/VerificationSummary"},"type":"array"},"stats":{"type":"object"}},"type":"object"},"VerificationSummary":{"properties":{"grade":{"type":"string"},"normalized_base":{"type":"string"},"readiness_score":{"type":"integer"},"report_id":{"type":"string"},"report_url":{"type":"string"},"target_url":{"type":"string"},"verified_at":{"type":"string"}},"type":"object"},"VisibilityManifest":{"properties":{"description":{"type":"string"},"generated_at":{"type":"string"},"machine_surfaces":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"private_boundary":{"additionalProperties":true,"type":"object"},"public_page_sets":{"properties":{"answers":{"items":{"type":"string"},"type":"array"},"citation_receipts":{"items":{"type":"string"},"type":"array"},"core":{"items":{"type":"string"},"type":"array"},"growth":{"items":{"type":"string"},"type":"array"}},"type":"object"},"schema":{"example":"ontario.visibility_manifest.v1","type":"string"},"score_gate":{"properties":{"command":{"type":"string"},"report_path":{"type":"string"},"report_schema":{"type":"string"},"required_scores":{"properties":{"geo":{"type":"integer"},"seo":{"type":"integer"},"some":{"type":"integer"}},"type":"object"}},"type":"object"},"site_url":{"type":"string"},"social_preview":{"properties":{"fediverse_creator":{"type":"string"},"image_alt":{"type":"string"},"image_height":{"type":"integer"},"image_url":{"type":"string"},"image_width":{"type":"integer"},"locale":{"type":"string"},"site_name":{"type":"string"},"twitter_card":{"type":"string"}},"type":"object"}},"type":"object"},"X402Manifest":{"properties":{"default_asset":{"type":"string"},"default_network":{"type":"string"},"name":{"type":"string"},"pay_to":{"type":"string"},"services":{"items":{"$ref":"#/components/schemas/Service"},"type":"array"},"x402Version":{"type":"integer"}},"type":"object"},"X402ReadinessReport":{"properties":{"base_readiness_score":{"type":"integer"},"buyer_conversion_next_step":{"additionalProperties":true,"description":"Unsigned handoff from endpoint readiness to the free end-to-end buyer-path diagnostic. A public buyer job is required before any repair is recommended.","properties":{"commercial_boundary":{"type":"string"},"free_diagnostic":{"additionalProperties":true,"type":"object"},"recommended_action":{"additionalProperties":true,"type":"object"},"schema":{"enum":["ontario.buyer_conversion_next_step.v1"],"type":"string"},"signed_evidence_boundary":{"type":"string"},"status":{"enum":["buyer_job_required"],"type":"string"}},"type":"object"},"evidence":{"type":"object"},"grade":{"enum":["ready","close","needs_work"],"type":"string"},"integrity":{"$ref":"#/components/schemas/ReportIntegrity"},"max_score":{"type":"integer"},"normalized_base":{"type":"string"},"provider_listing_next_step":{"additionalProperties":true,"description":"Unsigned grade-aware commercial handoff from free readiness evidence to free listing validation and the optional 0.50 USDC provider publication.","properties":{"free_validation":{"additionalProperties":true,"type":"object"},"publication":{"additionalProperties":true,"properties":{"asset":{"type":"string"},"listing_page":{"format":"uri","type":"string"},"method":{"enum":["POST"],"type":"string"},"network":{"enum":["eip155:8453"],"type":"string"},"price_usdc":{"enum":["0.50"],"type":"string"},"url":{"format":"uri","type":"string"},"value":{"type":"string"}},"type":"object"},"ready_for_listing_preflight":{"type":"boolean"},"recommended_action":{"additionalProperties":true,"type":"object"},"schema":{"enum":["ontario.provider_listing_next_step.v1"],"type":"string"},"sequence":{"items":{"type":"string"},"type":"array"},"signed_evidence_boundary":{"type":"string"},"status":{"enum":["ready_for_free_listing_validation","fix_before_listing"],"type":"string"},"trust_boundary":{"type":"string"}},"type":"object"},"readiness_score":{"type":"integer"},"recommendations":{"items":{"properties":{"detail":{"type":"string"},"docs_url":{"type":"string"},"id":{"type":"string"},"title":{"type":"string"}},"type":"object"},"type":"array"},"report_id":{"type":"string"},"report_url":{"type":"string"},"signals":{"type":"object"},"status":{"type":"string"},"target_url":{"type":"string"},"verifier":{"type":"string"},"warning_penalty":{"type":"integer"},"warnings":{"items":{"properties":{"detail":{"type":"string"},"docs_url":{"type":"string"},"id":{"type":"string"},"severity":{"type":"string"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"X402TrustStandard":{"properties":{"agent_rule":{"type":"string"},"badge_policy":{"type":"object"},"current_stats":{"type":"object"},"developer_rule":{"type":"string"},"discovery_policy":{"type":"object"},"evidence_surfaces":{"type":"object"},"generated_at":{"type":"string"},"grades":{"type":"object"},"minimum_ready_score":{"type":"integer"},"name":{"type":"string"},"required_for_ready":{"items":{"type":"string"},"type":"array"},"schema_version":{"type":"string"},"scoring_weights":{"type":"object"}},"type":"object"}},"securitySchemes":{"BearerAuth":{"scheme":"bearer","type":"http"},"OntarioApiKey":{"in":"header","name":"X-Ontario-API-Key","type":"apiKey"}}},"info":{"contact":{"email":"hello@ontarioprotocol.com"},"description":"x402-native verification and marketplace API. Free readiness reports, public trust standard, pay-per-call agent trust scans, reputation lookups, and verified third-party service discovery. Paid calls settle in USDC on Base.","license":{"name":"MIT"},"title":"Ontario Protocol x402 API","version":"1.0.0","x-guidance":"Use Ontario when an agent needs to verify an x402 endpoint before payment, decide whether policy permits a purchase, audit an x402 implementation before launch, inspect agent reputation, classify settlement-demand evidence, or publish an agent or paid API listing, then refresh paid profile evidence. Start with free POST /api/verify/x402-readiness, POST /api/x402/refresh-listing/validate, and POST /api/agent/can-pay. Probe a selected paid route without a payment signature to inspect its HTTP 402 challenge. Pay only when the task, fixed price, network, asset, evidence freshness, and spending policy match.","x-ontario":{"buyer_catalog":{"free_preflight":"https://ontarioprotocol.com/.well-known/agent-buyer.json","payment_policy":"https://ontarioprotocol.com/.well-known/agent-payment-policy.json","trust_boundary":"Readiness evidence does not guarantee safety, service quality, financial outcome, independent demand, or future behavior."},"trust_methodology":{"trust_standard":"https://ontarioprotocol.com/trust","what_ontario_checks":"https://ontarioprotocol.com/trust/what-ontario-checks","what_ontario_does_not_check":"https://ontarioprotocol.com/trust/what-ontario-does-not-check"}}},"openapi":"3.0.1","paths":{"/.well-known/agent-invite.json":{"get":{"description":"Public, no-payment route map for agents to discover, verify, decide, rehearse, and cite Ontario safely.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInvitation"}}},"description":"Agent invitation payload"}},"security":[],"summary":"Agent invitation manifest","tags":["Agent Discovery"]}},"/.well-known/answer-evals.json":{"get":{"description":"Public-safe self-test prompts, expected answers, accepted citation URLs, digests, and forbidden inferences for answer engines.","operationId":"getAnswerEvalCorpus","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerEvalCorpus"}}},"description":"Ontario answer evaluation corpus"}},"security":[],"summary":"Ontario answer evaluation corpus","tags":["GEO"]}},"/.well-known/answer-evals.ndjson":{"get":{"description":"Well-known line-delimited answer-engine evaluation corpus.","operationId":"getAnswerEvalCorpusNdjson","responses":{"200":{"content":{"application/x-ndjson":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}},"description":"Ontario answer evaluation corpus NDJSON"}},"security":[],"summary":"Ontario answer evaluation corpus NDJSON","tags":["GEO"]}},"/.well-known/answer-pack.json":{"get":{"description":"Compact source-backed x402 answers with canonical URLs, citation receipts, SHA-256 digests, and guardrails for LLM and agent retrieval.","operationId":"getGeoAnswerPack","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerPack"}}},"description":"GEO answer pack"}},"security":[],"summary":"Retrieve Ontario answer pack for agents","tags":["GEO"]}},"/.well-known/answer-pack.md":{"get":{"description":"Markdown mirror of the compact source-backed x402 answer pack for LLM ingestion.","operationId":"getWellKnownGeoAnswerPackMarkdown","responses":{"200":{"content":{"text/markdown":{"schema":{"type":"string"}}},"description":"GEO answer pack Markdown"}},"security":[],"summary":"Ontario GEO answer pack Markdown","tags":["GEO"]}},"/.well-known/citation-receipts.json":{"get":{"description":"Short evidence-backed x402 claims with canonical URLs, JSON mirrors, verification steps, and SHA-256 digests for AI citation.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CitationReceipts"}}},"description":"Citation receipt collection"}},"security":[],"summary":"Retrieve Ontario citation receipts index","tags":["GEO"]}},"/.well-known/claims.json":{"get":{"description":"Claim-level retrieval index with stable claim IDs, visible selectors, citation receipts, SHA-256 digests, and guardrails.","operationId":"getGeoClaimIndex","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimIndex"}}},"description":"Ontario GEO claim index"}},"security":[],"summary":"Retrieve Ontario machine-readable claim index","tags":["GEO"]}},"/.well-known/claims.ndjson":{"get":{"description":"Well-known line-delimited claim index for agent and crawler ingestion pipelines.","operationId":"getWellKnownGeoClaimsNdjson","responses":{"200":{"content":{"application/x-ndjson":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}},"description":"Ontario GEO claim index NDJSON"}},"security":[],"summary":"Ontario GEO claim index NDJSON","tags":["GEO"]}},"/.well-known/geo.json":{"get":{"description":"Machine-readable map of Ontario answer pages, JSON mirrors, OpenAPI, sitemap, and citation policy for LLM and agent discovery.","operationId":"getGeoManifest","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoManifest"}}},"description":"GEO manifest"}},"security":[],"summary":"Retrieve Ontario GEO manifest for crawlers"}},"/.well-known/ontario-report-signing-key.json":{"get":{"description":"Well-known Ed25519 public key metadata for verifying signed Ontario x402 readiness reports.","operationId":"getReportSigningKey","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Report signing key metadata"}},"security":[],"summary":"Ontario report signing key"}},"/.well-known/paid-api-benchmarks.json":{"get":{"description":"Agent-discoverable benchmark dataset for x402-paid AI-agent APIs. Scores are generated without paid settlement calls.","operationId":"getPaidApiBenchmarkWellKnown","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidApiBenchmarkDataset"}}},"description":"Paid API benchmark dataset"}},"security":[],"summary":"Paid API benchmark well-known dataset"}},"/.well-known/visibility.json":{"get":{"description":"Public-safe SEO, SoMe, and GEO score contract with social preview metadata and scored public page sets.","operationId":"getVisibilityManifest","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisibilityManifest"}}},"description":"Visibility manifest"}},"security":[],"summary":"Ontario visibility manifest","tags":["GEO"]}},"/.well-known/x402-trust.json":{"get":{"description":"Machine-readable policy for agents deciding whether to pay unknown x402 endpoints.","operationId":"getX402TrustStandard","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402TrustStandard"}}},"description":"Trust standard"}},"security":[],"summary":"Ontario x402 Trust Standard"}},"/.well-known/x402.json":{"get":{"description":"Standardised manifest enumerating every paid endpoint Ontario exposes plus verified third-party listings.","operationId":"getX402Manifest","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402Manifest"}}},"description":"x402 manifest"}},"security":[],"summary":"Retrieve Ontario x402 service manifest"}},"/answers/{slug}.json":{"get":{"description":"Machine-readable mirror of one high-intent x402 verification answer page.","operationId":"getAnswerPageJson","parameters":[{"description":"Public slug for the Ontario service, answer, benchmark, or receipt resource.","in":"path","name":"slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerPage"}}},"description":"Answer page mirror"},"404":{"description":"Answer not found"}},"security":[],"summary":"x402 answer page JSON mirror"}},"/answers/{slug}/citation-receipt":{"get":{"description":"Visible, indexable citation receipt for one Ontario answer claim.","parameters":[{"description":"Public slug for the Ontario service, answer, benchmark, or receipt resource.","in":"path","name":"slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"HTML citation receipt"}},"security":[],"summary":"Answer citation receipt page","tags":["GEO"]}},"/answers/{slug}/citation-receipt.json":{"get":{"description":"Per-answer citation receipt with canonical claim, evidence URLs, selector, and digest.","parameters":[{"description":"Public slug for the Ontario service, answer, benchmark, or receipt resource.","in":"path","name":"slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CitationReceipt"}}},"description":"Citation receipt"}},"security":[],"summary":"Answer citation receipt JSON","tags":["GEO"]}},"/answers/{slug}/citation-receipt.md":{"get":{"description":"Plain-text Markdown citation receipt for LLM ingestion.","parameters":[{"description":"Public slug for the Ontario service, answer, benchmark, or receipt resource.","in":"path","name":"slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/markdown":{"schema":{"type":"string"}}},"description":"Markdown citation receipt"}},"security":[],"summary":"Answer citation receipt Markdown","tags":["GEO"]}},"/api/agent/can-pay":{"get":{"description":"GET variant of the payment preflight endpoint.","operationId":"agentCanPayGet","parameters":[{"description":"Paid API endpoint URL the agent wants to evaluate before payment.","in":"query","name":"endpoint","required":true,"schema":{"type":"string"}},{"description":"Maximum USDC-denominated amount the agent policy allows for this call.","in":"query","name":"max_usdc","schema":{"type":"string"}},{"description":"Named agent payment policy profile to apply to the decision.","in":"query","name":"agent_policy","schema":{"enum":["strict","standard","permissive"],"type":"string"}},{"description":"Whether Ontario should perform a fresh live verification before deciding.","in":"query","name":"verify_live","schema":{"default":true,"type":"boolean"}},{"description":"Set true only when a settlement-backed receipt is required beyond the free policy decision.","in":"query","name":"require_audit_receipt","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCanPayDecision"}}},"description":"Payment decision"},"400":{"description":"Missing endpoint"}},"security":[],"summary":"Evaluate agent payment policy from query parameters"},"post":{"description":"Free pre-payment policy decision for AI agents deciding whether to pay an x402 endpoint.","operationId":"agentCanPay","requestBody":{"content":{"application/json":{"schema":{"properties":{"agent_policy":{"default":"strict","enum":["strict","standard","permissive"],"type":"string"},"endpoint":{"description":"Paid API endpoint URL the agent wants Ontario to inspect before payment.","type":"string"},"max_usdc":{"type":"string"},"require_audit_receipt":{"default":false,"description":"Set true only when the caller explicitly needs the optional 0.002 USDC settlement-backed evidence receipt after an allow decision.","type":"boolean"},"verify_live":{"default":true,"type":"boolean"}},"required":["endpoint"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCanPayDecision"}}},"description":"Payment decision"},"400":{"description":"Missing endpoint"}},"security":[],"summary":"Evaluate whether an agent should pay an endpoint"}},"/api/agent/pay/v2":{"post":{"description":"Live x402 endpoint readiness check before payment. This x402 paid API verification service helps verify an x402 endpoint before an AI agent pays: probe one public paid API and inspect the HTTP 402 challenge, payTo address, price, Base USDC network and asset, manifest freshness, buyer budget, and spend policy. Returns ALLOW or DENY with reasons, readiness score, report ID, settlement metadata, and a settlement-backed SHA-256 evidence receipt. Run free can-pay and readiness checks first. Readiness evidence is not a safety guarantee.","operationId":"agentPayQueryV2","requestBody":{"content":{"application/json":{"example":{"agent_policy":"strict","endpoint":"https://example.com/api/paid","max_usdc":"0.01","query":"Is this x402 endpoint ready for the current task?"},"schema":{"properties":{"agent_policy":{"default":"strict","description":"Policy posture used to produce the allow or deny decision.","enum":["strict","standard","permissive"],"type":"string"},"endpoint":{"description":"Public x402 paid API URL to probe and verify before an autonomous agent pays.","format":"uri","type":"string"},"max_usdc":{"description":"Optional maximum endpoint price allowed by the buyer policy.","type":"string"},"query":{"description":"Optional task context for the payment decision. When omitted, Ontario performs a general live x402 endpoint readiness check.","maxLength":500,"minLength":1,"type":"string"}},"required":["endpoint"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Paid live endpoint readiness decision and evidence receipt"},"402":{"description":"x402 v2 payment challenge"}},"security":[],"summary":"Run a live x402 endpoint readiness check before payment","tags":["x402-endpoint-readiness","live-endpoint-probe","x402-validator","x402-paid-api","x402-service","ai-agent-tool","agent-payment-preflight","payment-preflight","verify-before-payment","endpoint-verification","http-402-validation","can-pay","base-usdc","bazaar"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/agent/tool-quote":{"post":{"description":"Return the matching free Ontario tool or a paid recommendation only after the caller declares completed free preflight, a wallet-enabled x402 client, Base network support, and an explicit USDC ceiling that covers the fixed price. Provider-side publication tasks can route to the 0.50 USDC x402 service-profile product after those gates. The router never calls a tool, signs a payload, increases a budget, or spends funds. Natural x402 endpoint verification wording routes to the free readiness verifier; the response may disclose a non-recommended 0.002 USDC receipt upgrade only when additional settlement-backed audit evidence is required. Existing paid profiles can route to a 0.10 USDC evidence refresh only after the free refresh validator. Empty or commonly wrapped agent calls receive safe free input guidance instead of a guessed purchase.","operationId":"quoteOntarioToolForTask","requestBody":{"content":{"application/json":{"example":{"free_preflight_complete":true,"max_usdc":"0.50","network":"eip155:8453","task":"Publish my x402 endpoint so agents can discover it","wallet_enabled":true},"schema":{"properties":{"free_preflight_complete":{"default":false,"type":"boolean"},"max_usdc":{"type":"string"},"network":{"default":"eip155:8453","type":"string"},"task":{"description":"Canonical public task. Compatibility aliases query, goal, intent, prompt, need, description, and objective are accepted at runtime, including inside input, request, arguments, or params wrappers.","maxLength":500,"minLength":3,"type":"string"},"wallet_enabled":{"default":false,"type":"boolean"}},"required":["task"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Free input guidance, free or gated route, listing refresh route, or paid-recommended tool quote"},"400":{"description":"Invalid public task or budget input"},"503":{"description":"No matching free Ontario tool is available"}},"security":[],"summary":"Route an Ontario task through free and paid eligibility gates","tags":["agent-tools","pre-payment","free-first-routing"]}},"/api/alerts/x402":{"get":{"operationId":"getX402AlertInfo","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Supported alert events"}},"security":[],"summary":"x402 alert subscription metadata"},"post":{"description":"Capture email or webhook subscription for score drops, manifest changes, price drift, and lost certification.","operationId":"subscribeX402Alerts","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSubscriptionRequest"}}},"required":true},"responses":{"202":{"description":"Subscription accepted"},"400":{"description":"Invalid subscription"}},"security":[],"summary":"Subscribe to x402 endpoint drift alerts"}},"/api/benchmarks":{"get":{"description":"Compare x402-paid AI-agent APIs by uptime, x402 payment correctness, schema quality, price clarity, network/asset clarity, and report history. Does not make paid settlement calls.","operationId":"listPaidApiBenchmarks","parameters":[{"description":"Optional protocol filter.","in":"query","name":"protocol","schema":{"example":"x402","type":"string"}},{"description":"Optional benchmark category filter.","in":"query","name":"category","schema":{"type":"string"}},{"description":"Optional benchmark grade filter.","in":"query","name":"grade","schema":{"enum":["excellent","ready","watch","needs_work"],"type":"string"}},{"description":"Search name, provider, description, endpoint, or category.","in":"query","name":"q","schema":{"type":"string"}},{"description":"Sort order for benchmark rows.","in":"query","name":"sort","schema":{"default":"score_desc","enum":["score_desc","score_asc","price_asc","reports_desc","name_asc"],"type":"string"}},{"description":"Maximum benchmark rows to return.","in":"query","name":"limit","schema":{"default":100,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidApiBenchmarkDataset"}}},"description":"Paid API benchmark dataset"}},"security":[],"summary":"List paid API benchmarks"}},"/api/benchmarks/compare":{"get":{"description":"Return side-by-side score deltas for two paid API benchmark rows. Defaults to the top two benchmark rows when left and right are omitted.","operationId":"comparePaidApiBenchmarks","parameters":[{"description":"Left benchmark slug.","in":"query","name":"left","schema":{"type":"string"}},{"description":"Right benchmark slug.","in":"query","name":"right","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidApiBenchmarkCompare"}}},"description":"Paid API benchmark comparison"},"404":{"description":"Comparison requires two different benchmark rows"}},"security":[],"summary":"Compare paid API benchmarks"}},"/api/benchmarks/{slug}":{"get":{"description":"Return one benchmark row with score breakdown, safety policy, x402 metadata, and report history.","operationId":"getPaidApiBenchmark","parameters":[{"description":"Public slug for the Ontario service, answer, benchmark, or receipt resource.","in":"path","name":"slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidApiBenchmark"}}},"description":"Paid API benchmark row"},"404":{"description":"Benchmark not found"}},"security":[],"summary":"Get one paid API benchmark"}},"/api/geo/answer-pack.json":{"get":{"description":"Compact source-backed x402 answers with canonical URLs, citation receipts, SHA-256 digests, and guardrails for LLM and agent retrieval.","operationId":"getGeoAnswerPackApi","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerPack"}}},"description":"GEO answer pack"}},"security":[],"summary":"Retrieve Ontario answer pack through the API","tags":["GEO"]}},"/api/geo/answer-pack.md":{"get":{"description":"Markdown mirror of the compact source-backed x402 answer pack for LLM ingestion.","operationId":"getGeoAnswerPackMarkdown","responses":{"200":{"content":{"text/markdown":{"schema":{"type":"string"}}},"description":"GEO answer pack Markdown"}},"security":[],"summary":"Ontario GEO answer pack Markdown","tags":["GEO"]}},"/api/geo/answers":{"get":{"description":"High-intent x402 verification answers with canonical HTML pages, JSON mirrors, APIs, and related discovery surfaces for agents and LLM citation.","operationId":"getGeoAnswers","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerGraph"}}},"description":"Answer graph"}},"security":[],"summary":"List Ontario answer graph entries for agents"}},"/api/geo/citation-receipts.json":{"get":{"description":"Short evidence-backed x402 claims with canonical URLs, JSON mirrors, verification steps, and SHA-256 digests for AI citation.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CitationReceipts"}}},"description":"Citation receipt collection"}},"security":[],"summary":"Retrieve citation receipts through the API","tags":["GEO"]}},"/api/geo/claims":{"get":{"description":"API alias for the claim-level retrieval index.","operationId":"getGeoClaims","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimIndex"}}},"description":"Ontario GEO claim index"}},"security":[],"summary":"Retrieve Ontario claim index through the API","tags":["GEO"]}},"/api/geo/claims.json":{"get":{"description":"JSON API alias for the claim-level retrieval index.","operationId":"getGeoClaimsJson","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimIndex"}}},"description":"Ontario GEO claim index JSON"}},"security":[],"summary":"Ontario GEO claim index JSON","tags":["GEO"]}},"/api/geo/claims.ndjson":{"get":{"description":"Line-delimited claim index for agent and crawler ingestion pipelines.","operationId":"getGeoClaimsNdjson","responses":{"200":{"content":{"application/x-ndjson":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}},"description":"Ontario GEO claim index NDJSON"}},"security":[],"summary":"Ontario GEO claim index NDJSON","tags":["GEO"]}},"/api/geo/eval-corpus":{"get":{"description":"API alias for the answer-engine evaluation corpus.","operationId":"getGeoEvalCorpus","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerEvalCorpus"}}},"description":"Ontario answer evaluation corpus"}},"security":[],"summary":"Ontario answer evaluation corpus","tags":["GEO"]}},"/api/geo/eval-corpus.json":{"get":{"description":"JSON API alias for the answer-engine evaluation corpus.","operationId":"getGeoEvalCorpusJson","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerEvalCorpus"}}},"description":"Ontario answer evaluation corpus JSON"}},"security":[],"summary":"Ontario answer evaluation corpus JSON","tags":["GEO"]}},"/api/geo/eval-corpus.ndjson":{"get":{"description":"Line-delimited answer-engine evaluation corpus for ingestion pipelines.","operationId":"getGeoEvalCorpusNdjson","responses":{"200":{"content":{"application/x-ndjson":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}},"description":"Ontario answer evaluation corpus NDJSON"}},"security":[],"summary":"Ontario answer evaluation corpus NDJSON","tags":["GEO"]}},"/api/health":{"get":{"operationId":"health","responses":{"200":{"description":"Live counters and stats"}},"security":[],"summary":"Return Ontario service health and counters"}},"/api/intelligence/x402-tools-by-buyer-activity.json":{"get":{"description":"Return dated task-level rankings using public source-reported 30-day calls and endpoint payer-count signals. Activity is not endpoint safety, service quality, endorsement, independent demand, or verified revenue.","operationId":"getX402BuyerActivityRankings","responses":{"200":{"description":"Buyer-task rankings, activity signals, prices, networks, source rows, methodology, and pre-payment links"}},"security":[],"summary":"Compare x402 tools by observed buyer activity and agent job","tags":["x402-discovery","buyer-activity","market-intelligence"]}},"/api/listings/status":{"get":{"description":"Public snapshot of marketplace counts, listing manifest file status, readiness report totals, and local counters. Intended for operational transparency and to help providers understand listing progress.","operationId":"listingsStatus","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Marketplace and listing status snapshot"}},"security":[],"summary":"Marketplace + listing status"}},"/api/tools/agent-buyer-card":{"post":{"description":"Formats provider-supplied public metadata into use-when, do-not-use, input, output, price, preflight, evidence, and fallback fields. It does not fetch the endpoint, call a tool, authorize or settle payment, collect credentials, or guarantee demand.","operationId":"generateAgentBuyerCard","requestBody":{"content":{"application/json":{"schema":{"properties":{"endpoint":{"description":"Public HTTPS endpoint. Query strings are removed from output.","format":"uri","type":"string"},"evidence_url":{"format":"uri","type":"string"},"fallback":{"maxLength":300,"type":"string"},"inputs":{"oneOf":[{"type":"string"},{"items":{"type":"string"},"maxItems":12,"type":"array"}]},"job":{"description":"Exact job for which an agent should select this tool.","maxLength":500,"type":"string"},"method":{"default":"POST","enum":["GET","POST","PUT","PATCH","DELETE"],"type":"string"},"name":{"maxLength":120,"type":"string"},"network":{"example":"eip155:8453","type":"string"},"not_for":{"description":"A provider-specific task boundary for which the agent should not select this tool.","maxLength":400,"type":"string"},"output":{"description":"Structured result returned after successful payment.","maxLength":500,"type":"string"},"preflight_url":{"format":"uri","type":"string"},"price_usdc":{"pattern":"^[0-9]+(?:\\.[0-9]+)?$","type":"string"}},"required":["name","endpoint","job","output","price_usdc","network"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Buyer-legibility score, generated copy, and machine-readable card"},"400":{"description":"Invalid or incomplete public metadata"}},"security":[],"summary":"Generate a free machine-readable Agent Buyer Card"}},"/api/tools/agent-buyer-conversion-diagnostic":{"post":{"description":"Run one free read-only provider diagnostic across payment readiness, exact CDP Bazaar activation, five buyer-task retrieval samples, a submitted buyer budget and network policy, and public demand fields. Returns the earliest observable blocker and withholds paid recommendations when the sample does not justify work. It never signs or settles a payment.","operationId":"diagnoseAgentBuyerConversion","requestBody":{"content":{"application/json":{"example":{"agent_policy":"strict","allowed_network":"eip155:8453","buyer_query":"verify an x402 endpoint before payment","endpoint_url":"https://example.com/api/paid","max_budget_usdc":"0.05"},"schema":{"properties":{"agent_policy":{"default":"strict","enum":["strict","standard","permissive"],"type":"string"},"allowed_network":{"description":"Optional CAIP-2 network such as eip155:8453.","type":"string"},"buyer_query":{"description":"One public task phrase a funded agent should use to find the endpoint.","maxLength":160,"minLength":3,"type":"string"},"endpoint_url":{"description":"Public x402 paid endpoint. Query strings are removed from output.","format":"uri","type":"string"},"max_budget_usdc":{"description":"Optional non-negative simulated buyer budget.","type":"string"},"publish_report":{"default":false,"description":"Explicitly publish a public Buyer Path Receipt and badge. The receipt exposes the public endpoint and buyer-task phrases but omits the simulated budget, raw evidence, credentials, and wallet data.","type":"boolean"},"remote_url":{"format":"uri","type":"string"},"repository_url":{"format":"uri","type":"string"},"server_json_url":{"format":"uri","type":"string"},"server_name":{"type":"string"}},"required":["endpoint_url","buyer_query"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Earliest observable purchase blocker and evidence stages"},"400":{"description":"Invalid public endpoint, buyer phrase, or budget"},"429":{"description":"Per-client free diagnostic limit reached"}},"security":[],"summary":"Find why agents are not buying an x402 endpoint","tags":["x402-discovery","buyer-conversion","provider-diagnostic"]}},"/api/tools/agent-buyer-conversion-diagnostic/{report_id}":{"get":{"description":"Return a point-in-time public receipt that the diagnostic caller explicitly chose to publish. The receipt contains public endpoint and buyer-task evidence but omits the submitted budget, raw verifier evidence, credentials, wallet data, payment payloads, and signatures.","operationId":"getAgentBuyerConversionReceipt","parameters":[{"in":"path","name":"report_id","required":true,"schema":{"pattern":"^buyerconv_[a-f0-9]{18}$","type":"string"}}],"responses":{"200":{"description":"Published point-in-time Buyer Path Receipt"},"404":{"description":"Receipt not found or not published"}},"security":[],"summary":"Read an opt-in x402 Buyer Path Receipt","tags":["x402-discovery","buyer-conversion","public-evidence"]}},"/api/tools/agent-buyer-conversion-diagnostic/{report_id}/badge.svg":{"get":{"description":"Return an embeddable SVG linked to the opt-in public receipt. The badge is evidence, not a safety certification or buyer guarantee.","operationId":"getAgentBuyerConversionBadge","parameters":[{"in":"path","name":"report_id","required":true,"schema":{"pattern":"^buyerconv_[a-f0-9]{18}$","type":"string"}}],"responses":{"200":{"content":{"image/svg+xml":{"schema":{"type":"string"}}},"description":"Point-in-time SVG evidence badge"},"404":{"description":"Receipt not found or not published"}},"security":[],"summary":"Render an x402 Buyer Path Receipt badge","tags":["x402-discovery","buyer-conversion","public-evidence"]}},"/api/tools/agent-catalog-readiness":{"post":{"description":"Checks supplied public endpoint, repository, and MCP Registry or remote metadata without credentials, payment headers, source-body output, or MCP tool invocation. The response includes a durable public report_id when storage is available.","operationId":"runAgentCatalogReadiness","requestBody":{"content":{"application/json":{"schema":{"minProperties":1,"properties":{"endpoint_url":{"format":"uri","type":"string"},"remote_url":{"format":"uri","type":"string"},"repository_url":{"format":"uri","type":"string"},"server_json_url":{"format":"uri","type":"string"},"server_name":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"description":"Sanitized scorecard with public report_id and next actions"},"400":{"description":"No public target supplied"},"429":{"description":"Per-client free-check limit reached"}},"security":[],"summary":"Run a free MCP and x402 catalog readiness scorecard"}},"/api/tools/agent-catalog-readiness/{report_id}":{"get":{"description":"Returns one previously saved, sanitized provider scorecard. It contains bounded summaries of public evidence and never exposes credentials, payment payloads, or fetched source bodies.","operationId":"getAgentCatalogReadinessReport","parameters":[{"in":"path","name":"report_id","required":true,"schema":{"pattern":"^catalog_[a-f0-9]{18}$","type":"string"}}],"responses":{"200":{"description":"Public scorecard"},"404":{"description":"Scorecard not found"}},"security":[],"summary":"Read a public agent catalog scorecard"}},"/api/tools/coinbase-bazaar-readiness":{"post":{"description":"Run a free readiness check and a bounded live Coinbase Bazaar semantic search for one public x402 endpoint and buyer task phrase. Return the observed sample rank, competing services, and Base USDC price band without making a payment or claiming full-market coverage.","operationId":"checkCoinbaseBazaarBuyerIntentGap","requestBody":{"content":{"application/json":{"example":{"buyer_query":"verify an x402 endpoint before payment","target_url":"https://example.com/api/paid"},"schema":{"properties":{"buyer_query":{"description":"Public task phrase a paying agent could use in Bazaar search; do not include credentials or private data.","maxLength":160,"minLength":3,"type":"string"},"target_url":{"description":"Public x402 endpoint or service origin to assess.","format":"uri","type":"string"}},"required":["target_url"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Free endpoint-readiness and buyer-intent gap report"},"400":{"description":"Invalid endpoint or unsafe buyer query"}},"security":[],"summary":"Measure whether a paying-agent query can find an x402 endpoint","tags":["x402-discovery","bazaar-readiness","buyer-intent"]}},"/api/tools/github-x402-repo-scanner":{"post":{"description":"Reads a bounded set of public repository evidence through GitHub's API and returns seven file-level checks with remediation. Sensitive-looking filenames are listed but not downloaded. The scanner does not execute code, inspect private repositories or git history, return repository contents, probe a deployed endpoint, or verify settlement.","operationId":"scanGitHubX402Repository","requestBody":{"content":{"application/json":{"schema":{"properties":{"repository_url":{"example":"https://github.com/owner/repo","format":"uri","type":"string"}},"required":["repository_url"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"required":["schema","report_id","repository","score","grade","checks","trust_boundary"],"type":"object"}}},"description":"Bounded repository evidence report"},"400":{"description":"Invalid or private repository"},"404":{"description":"Public repository not found"},"429":{"description":"GitHub API capacity temporarily exhausted"}},"security":[],"summary":"Scan a public GitHub x402 repository before launch"}},"/api/tools/x402-bazaar-extension-debugger":{"post":{"description":"Returns normalized accepted, processing, rejected, malformed, or missing status and remediation from provider-supplied EXTENSION-RESPONSES evidence. It never fetches the endpoint, settles a payment, accesses wallets, or echoes raw headers.","operationId":"debugX402BazaarExtensionResponse","requestBody":{"content":{"application/json":{"schema":{"properties":{"endpoint_url":{"description":"Optional public HTTPS endpoint; query strings are not retained.","format":"uri","type":"string"},"extension_responses":{"description":"Structured JSON object/list or JSON/base64 JSON string. Do not send credentials, signatures, or payment payloads.","oneOf":[{"type":"object"},{"type":"array"},{"type":"string"}]},"header_value":{"description":"Alias for extension_responses; structured JSON or base64 JSON only.","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"description":"Normalized debugger result with remediation"},"429":{"description":"Per-client free-check limit reached"}},"security":[],"summary":"Parse an x402 Bazaar extension response"}},"/api/tools/x402-demand-claim-boundary":{"post":{"description":"Free aggregate calculator for settlement claims. Separates direct self-payment, declared related-party activity, user-declared external attribution, and unattributed settlements without accepting hashes, wallet addresses, contacts, or payment data. Population-level research percentages are context only and are never applied as a provider verdict.","externalDocs":{"description":"Primary July 2026 population-scale x402 authenticity study","url":"https://arxiv.org/abs/2607.12575"},"operationId":"calculateX402DemandClaimBoundary","requestBody":{"content":{"application/json":{"example":{"declared_related_party":25,"direct_self_payments":10,"externally_attributed_transactions":5,"has_counterparty_attribution":true,"has_http_request_evidence":true,"total_settlements":100,"unique_payers":12},"schema":{"properties":{"declared_related_party":{"default":0,"maximum":1000000000,"minimum":0,"type":"integer"},"direct_self_payments":{"default":0,"maximum":1000000000,"minimum":0,"type":"integer"},"externally_attributed_transactions":{"default":0,"maximum":1000000000,"minimum":0,"type":"integer"},"has_counterparty_attribution":{"default":false,"type":"boolean"},"has_http_request_evidence":{"default":false,"type":"boolean"},"total_settlements":{"maximum":1000000000,"minimum":1,"type":"integer"},"unique_payers":{"maximum":1000000000,"minimum":0,"type":"integer"}},"required":["total_settlements"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Bounded public wording, evidence gaps, and aggregate classification"},"400":{"description":"Invalid or inconsistent aggregate counts"}},"security":[],"summary":"Calculate the strongest supportable x402 demand claim","tags":["x402-settlement","demand-evidence","claim-boundary"]}},"/api/tools/x402-launch-kit":{"post":{"description":"Validates operator-provided endpoint metadata and returns listing JSON, an x402 resource draft, MCP tool draft, GitHub readiness workflow, README snippet, and registry copy. This endpoint does not fetch the target or publish to third-party registries.","operationId":"generateX402LaunchKit","requestBody":{"content":{"application/json":{"schema":{"properties":{"asset":{"type":"string"},"description":{"type":"string"},"endpoint":{"format":"uri","type":"string"},"method":{"default":"POST","type":"string"},"name":{"type":"string"},"network":{"default":"base","type":"string"},"owner_contact":{"type":"string"},"owner_url":{"format":"uri","type":"string"},"price_usdc":{"example":"0.01","type":"string"},"tags":{"type":"string"}},"required":["name","description","endpoint","price_usdc"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"required":["schema","status","listing_validation","artifacts","trust_boundary"],"type":"object"}}},"description":"Generated launch kit and validation result"}},"security":[],"summary":"Generate free x402 launch artifacts"}},"/api/tools/x402-pricing-calculator":{"post":{"description":"Free planning calculator for infrastructure cost, retry overhead, facilitator fee, desired margin, and optional agent budget. It does not fetch endpoints, require credentials, invoke tools, or guarantee demand.","operationId":"calculateX402Price","requestBody":{"content":{"application/json":{"schema":{"properties":{"facilitator_fee_percent":{"default":0,"exclusiveMaximum":100,"minimum":0,"type":"number"},"gross_margin_percent":{"exclusiveMaximum":100,"minimum":0,"type":"number"},"max_agent_price_usd":{"default":0,"minimum":0,"type":"number"},"monthly_infra_usd":{"minimum":0,"type":"number"},"monthly_successful_calls":{"exclusiveMinimum":0,"type":"number"},"retry_rate_percent":{"default":0,"minimum":0,"type":"number"}},"required":["monthly_infra_usd","monthly_successful_calls","gross_margin_percent"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Transparent pricing estimate and assumptions"},"400":{"description":"Invalid pricing assumptions"}},"security":[],"summary":"Model a provider-side x402 per-call price"}},"/api/tools/x402-settlement-authenticity":{"post":{"description":"Free single-receipt check for related-party and self-payment evidence. An unattributed address is not treated as a proven independent customer.","operationId":"checkX402SettlementAuthenticity","requestBody":{"content":{"application/json":{"schema":{"properties":{"expected_recipient":{"pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"related_addresses":{"items":{"pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"maxItems":50,"type":"array"},"tx_hash":{"pattern":"^0x[0-9a-fA-F]{64}$","type":"string"}},"required":["tx_hash"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Free receipt classification"},"400":{"description":"Invalid or unsupported transaction input"}},"security":[],"summary":"Classify one Base USDC settlement receipt without payment"}},"/api/tools/x402-tool-router":{"post":{"description":"Search fresh strict-ready Ontario paid profiles, Agentic Market, and Coinbase CDP Bazaar. Rank credential-free endpoint metadata by task relevance plus bounded source-reported activity; paid Ontario publication adds no ranking score. Optional network and USDC budget filters fail closed. Candidates are not safety certifications; run preflight before payment.","operationId":"findX402ToolsForTask","requestBody":{"content":{"application/json":{"example":{"limit":5,"max_usdc":"0.01","network":"eip155:8453","query":"find recent crypto news"},"schema":{"properties":{"active_only":{"default":true,"description":"Require recent source-reported activity or fresh strict-ready Ontario profile evidence.","type":"boolean"},"limit":{"maximum":10,"minimum":1,"type":"integer"},"max_usdc":{"type":"string"},"network":{"type":"string"},"query":{"maxLength":160,"minLength":3,"type":"string"}},"required":["query"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Ranked candidate metadata and preflight instructions"},"400":{"description":"Invalid public task or filter"},"502":{"description":"Public marketplace source unavailable"}},"security":[],"summary":"Find task-matched x402 tools before payment","tags":["x402-discovery","agent-tools","pre-payment"]}},"/api/verify/dataset.json":{"get":{"description":"Schema.org Dataset describing the Ontario verified x402 endpoint graph.","operationId":"getVerificationDataset","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Dataset JSON-LD"}},"security":[],"summary":"x402 verification dataset JSON-LD"}},"/api/verify/history":{"get":{"description":"Signed report history for one endpoint URL or origin.","operationId":"getVerificationHistory","parameters":[{"description":"HTTPS endpoint URL that Ontario should verify or inspect.","in":"query","name":"target_url","schema":{"type":"string"}},{"description":"Base service URL used to filter verification history entries.","in":"query","name":"base","schema":{"type":"string"}},{"description":"Maximum number of records to return in the response.","in":"query","name":"limit","schema":{"default":50,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationHistory"}}},"description":"Report history"},"400":{"description":"Missing target_url or base"}},"security":[],"summary":"x402 verification history"}},"/api/verify/reports":{"get":{"description":"Public ledger of recent x402 readiness verification reports.","operationId":"listVerificationReports","parameters":[{"description":"Maximum number of records to return in the response.","in":"query","name":"limit","schema":{"default":25,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationReportList"}}},"description":"Recent verification report summaries"}},"security":[],"summary":"Recent verification reports"}},"/api/verify/reports/{report_id}":{"get":{"description":"Fetch a public x402 readiness verification report by id.","operationId":"getVerificationReport","parameters":[{"description":"Stable Ontario report identifier returned by a readiness verification.","in":"path","name":"report_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402ReadinessReport"}}},"description":"Full verification report"},"404":{"description":"Report not found"}},"security":[],"summary":"Retrieve a saved x402 readiness report"}},"/api/verify/reports/{report_id}/badge.svg":{"get":{"description":"Embeddable SVG badge backed by a saved public verification report.","operationId":"getVerificationBadgeSvg","parameters":[{"description":"Stable Ontario report identifier returned by a readiness verification.","in":"path","name":"report_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"image/svg+xml":{"schema":{"type":"string"}}},"description":"SVG badge"},"404":{"description":"Report not found"}},"security":[],"summary":"Render a verification status badge as SVG"}},"/api/verify/reports/{report_id}/integrity":{"get":{"description":"Return Ed25519 integrity metadata and server-side signature validation result for a public report.","operationId":"getVerificationReportIntegrity","parameters":[{"description":"Stable Ontario report identifier returned by a readiness verification.","in":"path","name":"report_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportIntegrityResponse"}}},"description":"Report integrity metadata"},"404":{"description":"Report not found"}},"security":[],"summary":"Verify report signature metadata"}},"/api/verify/reports/{report_id}/sla":{"get":{"description":"Enterprise SLA evidence for a signed x402 readiness report, including uptime and verification latency metrics.","operationId":"getVerificationReportSla","parameters":[{"description":"Stable Ontario report identifier returned by a readiness verification.","in":"path","name":"report_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"SLA evidence metrics"},"404":{"description":"Report not found"}},"security":[],"summary":"Retrieve service-level evidence for a report"}},"/api/verify/services":{"get":{"description":"Monitored x402 endpoint profiles with latest signed report, certification, and history summary.","operationId":"listVerifiedServiceProfiles","parameters":[{"description":"Maximum number of records to return in the response.","in":"query","name":"limit","schema":{"default":100,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceProfileList"}}},"description":"Service profiles"}},"security":[],"summary":"Verified x402 service profiles"}},"/api/verify/services/{slug}":{"get":{"description":"One monitored endpoint profile by stable Ontario slug.","operationId":"getVerifiedServiceProfile","parameters":[{"description":"Public slug for the Ontario service, answer, benchmark, or receipt resource.","in":"path","name":"slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceProfile"}}},"description":"Service profile"},"404":{"description":"Profile not found"}},"security":[],"summary":"Verified x402 service profile"}},"/api/verify/x402-readiness":{"get":{"description":"GET variant for agents that pass target_url as a query parameter.","operationId":"verifyX402ReadinessGet","parameters":[{"description":"HTTPS endpoint URL that Ontario should verify or inspect.","in":"query","name":"target_url","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402ReadinessReport"}}},"description":"Readiness report with fix recommendations"},"400":{"description":"Missing or invalid target_url"}},"security":[],"summary":"Verify x402 readiness from query parameters"},"post":{"description":"Run a free point-in-time readiness scan before an agent pays or a provider publishes. The response includes signed evidence plus an unsigned, grade-aware provider listing handoff: ready endpoints can validate metadata free before optionally buying the 0.50 USDC publication; non-ready endpoints are told to fix and re-verify before paying. Publication never buys readiness, ranking, traffic, leads, purchases, or safety.","operationId":"verifyX402Readiness","requestBody":{"content":{"application/json":{"schema":{"properties":{"target_url":{"description":"Service origin or paid endpoint URL to verify.","type":"string"}},"required":["target_url"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402ReadinessReport"}}},"description":"Readiness report with fix recommendations"},"400":{"description":"Missing or invalid target_url"}},"security":[],"summary":"Verify an x402 endpoint and decide whether it is ready to publish","tags":["x402-readiness","provider-preflight","agent-discovery"]}},"/api/visibility/manifest.json":{"get":{"description":"API alias for the public-safe SEO, SoMe, and GEO visibility contract.","operationId":"getVisibilityManifestApi","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisibilityManifest"}}},"description":"Visibility manifest"}},"security":[],"summary":"Ontario visibility manifest","tags":["GEO"]}},"/api/x402/agent-trust-scan":{"post":{"description":"Scan one public agent or paid API endpoint for observable identity, manifest, HTTP 402 challenge, network, asset, pricing, report-freshness, and risk signals. Returns evidence and flags, not a safety guarantee.","operationId":"agentTrustScan","requestBody":{"content":{"application/json":{"schema":{"properties":{"agent_id":{"type":"string"},"target_url":{"description":"Domain, agent card URL, or any URL inside the agent's surface area.","type":"string"}},"required":["target_url"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustReport"}}},"description":"Paid; structured trust report"},"402":{"description":"Payment required","headers":{"PAYMENT-REQUIRED":{"schema":{"description":"Base64-encoded PaymentRequired JSON.","type":"string"}}}}},"security":[],"summary":"Verify an agent or x402 endpoint before payment","tags":["x402-verification","agent-trust","payment-preflight"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/x402/demand-authenticity-report":{"post":{"description":"Classify up to 20 Base USDC settlement receipts as direct self-payment, user-declared related-party, or unattributed; measure payer concentration; and return evidence for each result. Use it before treating raw x402 settlement counts as customer adoption. Unattributed activity is not claimed as an independent customer purchase.","operationId":"analyzeX402DemandAuthenticity","requestBody":{"content":{"application/json":{"example":{"expected_recipient":"0xa2d72abf2c5e939fddca4156b74de482e03ca3ec","related_addresses":["0x5015d7dc6419831e4ae6bee7a3feb297eb3fbcf7","0xa2d72abf2c5e939fddca4156b74de482e03ca3ec"],"tx_hashes":["0xcca7a27bed891a9f2e3801a22ec53c9c7a2977f45c6a18f8bdfd7172c67ebda3"]},"schema":{"properties":{"expected_recipient":{"pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"related_addresses":{"items":{"pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"maxItems":50,"type":"array"},"tx_hashes":{"items":{"pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"maxItems":20,"minItems":1,"type":"array"}},"required":["tx_hashes"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Paid batch evidence report"},"402":{"description":"x402 v2 payment challenge"}},"security":[],"summary":"Detect self-funded x402 tests and audit settlement authenticity","tags":["x402-settlement","settlement-authenticity","payer-concentration","demand-evidence","base-usdc"],"x-payment-info":{"price":{"amount":"0.020000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/x402/implementation-audit":{"post":{"description":"Audit one public x402 endpoint or repository before launch. Return bounded findings and remediation for malformed HTTP 402 challenges, payment metadata, OpenAPI and MCP discovery, Bazaar indexing blockers, pricing, network mismatch, and implementation risks.","operationId":"runX402ImplementationAudit","requestBody":{"content":{"application/json":{"example":{"endpoint_url":"https://example.com/api/paid","focus":"launch"},"schema":{"anyOf":[{"required":["endpoint_url"]},{"required":["repository_url"]}],"properties":{"endpoint_url":{"format":"uri","type":"string"},"focus":{"enum":["launch","payment","discovery","security"],"type":"string"},"repository_url":{"format":"uri","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"description":"Paid bounded implementation findings"},"402":{"description":"x402 v2 payment challenge"}},"security":[],"summary":"Audit an x402 API for launch, payment, discovery, and security blockers","tags":["x402-audit","launch-readiness","api-discovery"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/x402/list-agent":{"post":{"description":"Validate and submit an agent card for discoverability by agent builders and marketplace operators. The 0.10 USDC fee is an anti-spam listing fee and does not purchase certification or guarantee traffic.","operationId":"listAgent","requestBody":{"content":{"application/json":{"example":{"agent_card_url":"https://example.com/.well-known/agent.json","name":"Example agent"},"schema":{"properties":{"agent_card_url":{"format":"uri","type":"string"},"description":{"type":"string"},"name":{"minLength":1,"type":"string"},"owner_contact":{"type":"string"},"owner_url":{"format":"uri","type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["name","agent_card_url"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"listing":{"additionalProperties":true,"type":"object"},"status":{"type":"string"}},"type":"object"}}},"description":"Listing accepted"},"402":{"description":"Payment required"}},"security":[],"summary":"Publish an agent profile to Ontario's paid discovery directory","tags":["agent-listing","agent-discovery","directory"],"x-payment-info":{"price":{"amount":"0.100000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/x402/list-agent/validate":{"post":{"description":"Free payload validator for /api/x402/list-agent. Does not charge, settle, or store the submission.","operationId":"validateListAgent","responses":{"200":{"description":"Payload is valid"},"400":{"description":"Payload has validation errors"}},"security":[],"summary":"Validate agent listing payload"}},"/api/x402/list-service":{"post":{"description":"Validate and publish a third-party x402 service in Ontario's discovery feed. The 0.50 USDC fee covers a production launch passport and 30 days of included automatic freshness maintenance; it does not purchase a readiness grade, certification, endorsement, or guaranteed traffic.","operationId":"listService","requestBody":{"content":{"application/json":{"example":{"description":"A bounded paid API resource.","endpoint":"https://example.com/api/paid","name":"Example paid API","price_usdc":"0.01"},"schema":{"properties":{"description":{"minLength":1,"type":"string"},"endpoint":{"format":"uri","type":"string"},"method":{"default":"POST","type":"string"},"name":{"minLength":1,"type":"string"},"network":{"default":"base","type":"string"},"owner_contact":{"type":"string"},"owner_url":{"format":"uri","type":"string"},"price_usdc":{"type":"string"},"source":{"default":"direct_or_unknown","description":"Privacy-safe aggregate acquisition bucket; never a URL or query.","enum":["coinbase_bazaar","direct_or_unknown","github","google_search","internal_navigation","mcp_registry","other_search"],"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["name","description","endpoint","price_usdc"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"listing":{"additionalProperties":true,"type":"object"},"status":{"type":"string"}},"type":"object"}}},"description":"Service registered"},"402":{"description":"Payment required"}},"security":[],"summary":"List an x402 paid API for agent discovery","tags":["x402-listing","paid-api-discovery","directory"],"x-payment-info":{"price":{"amount":"0.500000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/x402/list-service/request":{"post":{"description":"Validates and stores a provider submission as pending without payment. Pending entries are excluded from strict discovery until readiness evidence is available.","operationId":"requestX402ServiceListing","requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"endpoint":{"format":"uri","type":"string"},"method":{"default":"POST","type":"string"},"name":{"type":"string"},"network":{"default":"base","type":"string"},"owner_contact":{"type":"string"},"owner_url":{"format":"uri","type":"string"},"price_usdc":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"verify_now":{"default":false,"description":"Run the free readiness verifier and return a report summary while keeping the listing pending.","type":"boolean"}},"required":["name","description","endpoint","price_usdc"],"type":"object"}}},"required":true},"responses":{"202":{"description":"Pending listing stored without payment"},"400":{"description":"Listing payload validation failed"},"429":{"description":"Free pending submission limit reached"}},"security":[],"summary":"Submit a free pending x402 service listing"}},"/api/x402/list-service/validate":{"post":{"description":"Free payload validator for /api/x402/list-service. Set verify_now=true to also run readiness verification and receive a grade-aware provider_publication purchase request. Does not charge, settle, or store a listing.","operationId":"validateListService","requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"endpoint":{"format":"uri","type":"string"},"method":{"default":"POST","type":"string"},"name":{"type":"string"},"network":{"default":"base","type":"string"},"owner_contact":{"type":"string"},"owner_url":{"format":"uri","type":"string"},"price_usdc":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"verify_now":{"default":false,"description":"Run the free readiness verifier, persist the signed public report, and return the exact paid publication handoff without storing a listing.","type":"boolean"}},"required":["name","description","endpoint","price_usdc"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Payload is valid; response includes provider_publication and optional verification evidence"},"400":{"description":"Payload has validation errors"}},"security":[],"summary":"Validate service listing payload"}},"/api/x402/marketplace-trust-feed":{"get":{"description":"Returns a public, read-only sample of the fields a catalog can use for ready, review, or deny_or_hold handling before an x402 buyer pays. It contains no contact data, wallet credentials, payment payloads, or premium history.","operationId":"getMarketplaceTrustFeedSample","parameters":[{"description":"Maximum number of public sample records to return.","in":"query","name":"limit","schema":{"default":25,"maximum":25,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Bounded marketplace trust-feed contract sample"}},"security":[],"summary":"Read the bounded marketplace trust-feed sample"}},"/api/x402/refresh-listing":{"post":{"description":"Run a new live readiness scan for an existing paid provider profile and update its canonical HTML, JSON twin, badge, report link, score, and observation time after included maintenance expires. Use the free validator first. Payment buys a fresh observation, not a better grade, metadata edit, ranking, or traffic.","operationId":"refreshX402ServiceProfile","requestBody":{"content":{"application/json":{"example":{"listing_id":"lst_example"},"schema":{"properties":{"listing_id":{"pattern":"^lst_[A-Za-z0-9_-]+$","type":"string"},"paid_refresh_tx":{"description":"One-use retry reference returned only after a settled refresh could not be completed.","type":"string"}},"required":["listing_id"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Profile evidence refreshed"},"402":{"description":"x402 payment challenge"},"422":{"description":"Listing id is not eligible for refresh"},"503":{"description":"Scan could not complete; settled payment receives a retry credit"}},"security":[],"summary":"Refresh a paid x402 service profile with current readiness evidence","tags":["x402-listing-refresh","readiness-evidence","provider-distribution"],"x-payment-info":{"price":{"amount":"0.100000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/api/x402/refresh-listing/validate":{"post":{"description":"Confirm that listing_id identifies an existing paid Ontario provider profile and inspect its current public evidence and fixed refresh price. This route is free, prevents payment during the included 30-day maintenance window, enforces the one-hour refresh cooldown, and does not run a scan or change the profile.","operationId":"validateX402ServiceProfileRefresh","requestBody":{"content":{"application/json":{"example":{"listing_id":"lst_example"},"schema":{"properties":{"listing_id":{"pattern":"^lst_[A-Za-z0-9_-]+$","type":"string"}},"required":["listing_id"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Paid profile is eligible for refresh"},"400":{"description":"Listing is missing or not a paid provider profile"}},"security":[],"summary":"Validate a paid listing before buying a profile refresh","tags":["x402-listing-refresh","free-preflight","provider-distribution"]}},"/api/x402/reputation/{agent_id}":{"get":{"description":"Return the available public reputation record for one agent identifier, including scan history and supported attestation evidence. Missing evidence remains explicit and no reputation record guarantees future behavior.","operationId":"getReputation","parameters":[{"description":"Stable agent identifier used to retrieve reputation evidence.","in":"path","name":"agent_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationReport"}}},"description":"Reputation"},"402":{"description":"Payment required"}},"security":[],"summary":"Retrieve reputation evidence for an AI agent before transacting","tags":["agent-reputation","counterparty-check","payment-preflight"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}},"/discover":{"get":{"description":"Machine-readable catalog of every paid endpoint registered with Ontario.","operationId":"discoverServices","parameters":[{"description":"Filter by category (trust, directory, marketplace, data, agent, other).","in":"query","name":"category","schema":{"type":"string"}},{"description":"Maximum number of records to return in the response.","in":"query","name":"limit","schema":{"default":100,"type":"integer"}},{"description":"Include pending third-party listings that have not reached ready verification.","in":"query","name":"include_pending","schema":{"default":false,"type":"boolean"}},{"description":"Minimum readiness score for third-party listings.","in":"query","name":"min_score","schema":{"default":0,"type":"integer"}},{"description":"Filter by verification grade.","in":"query","name":"grade","schema":{"enum":["ready","close","needs_work"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverResponse"}}},"description":"Discovery catalog"}},"security":[],"summary":"Discover verified x402 services for agents"}},"/facilitator/supported":{"get":{"operationId":"facilitatorSupported","responses":{"200":{"description":"Supported (scheme, network) pairs"}},"security":[],"summary":"Supported facilitator pairs"}}},"servers":[{"url":"https://ontarioprotocol.com"}]}
