{"openapi":"3.0.3","info":{"title":"Can I enter? API","version":"0.1.0","description":"Visa & entry requirements by passport and destination, with per-field source citations, explicit defaults (defaults_applied), and optional caller context (purpose, residence_permits, visas_held). Free rate-limited tier; pay-per-request via the x402 protocol (USDC on Base) — no account or API key. Matrix revision 2026-10-05. Planning guidance, not a boarding decision. Registered agents can raise the free-tier limit via anonymous OAuth registration (RFC 7591) — see https://api.canienter.com/.well-known/oauth-authorization-server and https://api.canienter.com/auth.md.","contact":{"name":"CanIEnter","email":"api@canienter.com","url":"https://canienter.com/"}},"externalDocs":{"description":"Developer hub — the API, the embeddable widget (two lines of HTML, no API call required), every agent-discovery surface and the live verification feeds.","url":"https://canienter.com/developers"},"servers":[{"url":"https://api.canienter.com"}],"x-service-info":{"categories":["travel","data"],"docs":{"homepage":"https://canienter.com/","developers":"https://canienter.com/developers","apiReference":"https://api.canienter.com/openapi.json","llms":"https://api.canienter.com/llms.txt"},"embed":{"docs":"https://canienter.com/widget","loader":"https://canienter.com/embed.js","snippet":"<div data-canienter-widget></div>\n<script src=\"https://canienter.com/embed.js\" async></script>","price":"free, attribution link required"}},"components":{"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. missing_parameters, unknown_country_code, same_country, invalid_body, invalid_date, rate_limited, invalid_token, payment_required"},"message":{"type":"string"},"suggestions":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}}},"description":"Closest ISO3 matches, present on unknown_country_code"},"hint":{"type":"string"},"example":{"type":"string"},"scope":{"type":"string","enum":["global","agent","demo","asn","ip"],"description":"Present on rate_limited: which bucket ran out. 'ip'/'asn'/'demo'/'agent' are specific to the caller and clear at midnight UTC; 'global' means the worldwide free-tier ceiling is spent for the day, so retrying from another address will not help."},"upgrade":{"type":"string","description":"Present on rate_limited: how to use the paid tier"}}},"PaymentRequired":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","enum":["payment_required"]},"message":{"type":"string"},"payment_offer_location":{"type":"string","description":"Always names the PAYMENT-REQUIRED response header (base64 JSON offer)"},"free_alternative":{"type":"string"},"docs":{"type":"string","format":"uri"}}},"SourceRef":{"type":"object","required":["name","url"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"retrieved_at":{"type":"string","format":"date"}},"description":"Official-source citation attached to the specific field it supports"},"VerdictVerification":{"type":"object","required":["status","source","matrix_revision","basis"],"properties":{"status":{"type":"string","enum":["secondary_source_only","needs_review"]},"source":{"type":"string","enum":["aggregated_secondary_matrix"],"description":"Base visa verdicts have no per-pair official citation"},"matrix_revision":{"type":"string"},"basis":{"type":"string"},"review":{"type":"object","description":"Present on needs_review: {reason, detected_at, sources?}"}},"description":"Provenance of the base visa verdict — always the aggregated secondary matrix."},"EntryRulesVerification":{"type":"object","required":["status","last_verified","staleness_days","basis"],"properties":{"status":{"type":"string","enum":["verified_official_sources","stale","not_curated","needs_review"]},"last_verified":{"type":"string","format":"date","nullable":true},"staleness_days":{"type":"integer","nullable":true},"basis":{"type":"string"},"review":{"type":"object","description":"Present on needs_review: {reason, detected_at, sources?}"}},"description":"Provenance of the curated entry-rules layer — the layer official sources verify, field by field."},"Verification":{"type":"object","deprecated":true,"required":["status","last_verified","staleness_days","basis"],"properties":{"status":{"type":"string","enum":["verified_official_sources","secondary_source_only","stale","needs_review"]},"last_verified":{"type":"string","format":"date","nullable":true},"staleness_days":{"type":"integer","nullable":true},"basis":{"type":"string"},"review":{"type":"object"}},"description":"DEPRECATED combined state — the weakest of verdict_verification and entry_rules_verification, so it can never report verified_official_sources for a matrix-derived verdict."},"CheckResponse":{"type":"object","properties":{"passport":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}}},"destination":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}}},"requirement":{"type":"string","enum":["visa_free","visa_on_arrival","e_visa","eta","visa_required","no_admission","unknown","needs_review"],"description":"unknown = no reliable data (never a guess); needs_review = official sources conflict. Both carry action: check_official_authority."},"verdict_verification":{"$ref":"#/components/schemas/VerdictVerification"},"entry_rules_verification":{"$ref":"#/components/schemas/EntryRulesVerification"},"verification":{"$ref":"#/components/schemas/Verification"},"dataset_version":{"type":"string","description":"Base-matrix revision this answer derives from"},"request_id":{"type":"string","description":"Unique id for this evaluation (support/reproducibility); body-only, not a header"},"evaluated_at":{"type":"string","format":"date-time"},"requirement_label":{"type":"string"},"allowed_stay_days":{"type":"integer","nullable":true},"inputs":{"type":"object","description":"Echo of all inputs, explicit and defaulted"},"defaults_applied":{"type":"array","items":{"type":"object"},"description":"Every default the API applied ({field, value, reason}) — nothing is silently assumed"},"apply":{"type":"object","description":"Present when the verdict requires action and the official portal is known: {url, kind: evisa|eta|visa_info, note, source} — the government's own application page."},"possible_exemptions":{"type":"array","items":{"type":"object"},"description":"Present when residence_permits/visas_held were supplied: documented exemptions that may apply (status may_apply — verify; the verdict is never silently changed)"},"entry_rules":{"type":"object","description":"Destination-level extended rules, each non-null field carrying a SourceRef citation: passport_validity, blank_pages, onward_ticket, yellow_fever (with applies_to_this_passport), other_health, twov (transit-without-visa programs), residence_permit_exemptions, last_verified, staleness_days, coverage ('extended' = curated & verified, 'basic' = not yet curated). passport_validity.rule is one of valid_for_stay, months_beyond_arrival, months_beyond_departure, months_beyond_stay, months_beyond_visa_expiry, unspecified. IMPORTANT: months_beyond_visa_expiry is measured from the VISA's expiry date, not from the trip — a visa can outlast the trip by months, so it CANNOT be computed from arrival/departure alone and must not be treated as a trip-anchored rule. /v1/trips/evaluate flags this per condition via evaluable_from_itinerary."},"transit":{"type":"object","description":"Includes the transit country's twov programs when known"},"assumptions":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"}}}},"securitySchemes":{"agentBearer":{"type":"http","scheme":"bearer","description":"Optional on free endpoints: registered-agent token from /oauth/token (client_credentials; open anonymous registration at /oauth/register per RFC 7591 — see /auth.md). Raises the free budget from 5/day/IP to 20/day/client. Paid /v1/* endpoints use x402 payment, not bearer auth."}}},"paths":{"/v1/check":{"get":{"operationId":"checkVisaRequirement","summary":"Check visa requirement (paid, $0.03 via x402)","parameters":[{"name":"passport","in":"query","required":true,"description":"Traveler's passport country, ISO 3166-1 alpha-3 (e.g. NLD)","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"destination","in":"query","required":true,"description":"Destination country, ISO 3166-1 alpha-3 (e.g. JPN)","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"transit","in":"query","required":false,"description":"Optional transit country, ISO 3166-1 alpha-3 (adds its entry requirement + TWOV programs)","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"purpose","in":"query","required":false,"description":"Travel purpose; default tourism (reported in defaults_applied). 'business' answers from curated purpose_scope when available.","schema":{"type":"string"}},{"name":"residence_permits_of","in":"query","required":false,"description":"Comma-separated issuers of residence permits held: ISO3 codes or SCHENGEN/EU/GCC (e.g. USA,SCHENGEN). Matched against documented exemptions; results appear in possible_exemptions.","schema":{"type":"string"}},{"name":"visas_of","in":"query","required":false,"description":"Comma-separated issuers of valid visas held, same format as residence_permits_of (e.g. USA,GBR).","schema":{"type":"string"}},{"name":"residence_permits","in":"query","required":false,"description":"Convenience fallback: free-text descriptors (e.g. 'US green card'). Reduced to issuer codes when possible; unmappable inputs are echoed in inputs.unrecognized_documents. Prefer residence_permits_of.","schema":{"type":"string"}},{"name":"visas_held","in":"query","required":false,"description":"Convenience fallback for visas, same behavior as residence_permits. Prefer visas_of.","schema":{"type":"string"}}],"responses":{"200":{"description":"Requirement result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResponse"},"example":{"passport":{"code":"NLD","name":"Netherlands"},"destination":{"code":"JPN","name":"Japan"},"requirement":"visa_free","requirement_label":"No visa required","allowed_stay_days":90,"verdict_verification":{"status":"secondary_source_only","source":"aggregated_secondary_matrix","matrix_revision":"2026-10-05","basis":"The base visa verdict derives from an aggregated visa-requirement matrix."},"entry_rules_verification":{"status":"verified_official_sources","last_verified":"2026-08-01","staleness_days":7,"basis":"Entry-rules fields curated against official government sources."},"dataset_version":"2026-10-05","disclaimer":"Advisory information for trip planning — not a boarding decision."}}}},"400":{"description":"Invalid input: missing parameters, unknown country codes (with suggestions), same country","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"missing_parameters":{"value":{"error":"missing_parameters","message":"Both 'passport' and 'destination' query parameters are required (ISO3 codes).","example":"/v1/check?passport=NLD&destination=JPN"}},"unknown_country_code":{"value":{"error":"unknown_country_code","message":"'NL' is not a recognized ISO3 country code for 'passport'.","suggestions":[{"code":"NLD","name":"Netherlands"}],"hint":"Use ISO 3166-1 alpha-3 codes, e.g. NLD, USA, JPN."}}}}}},"402":{"description":"Payment required (paid endpoints only). The machine-readable x402 offer is base64-encoded JSON in the PAYMENT-REQUIRED response header; the JSON body restates where to find it. Non-browser clients get this JSON; browsers get an HTML paywall.","headers":{"PAYMENT-REQUIRED":{"description":"x402 v2 payment offer (amount, asset, pay-to), base64-encoded JSON","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"},"example":{"error":"payment_required","message":"This endpoint is paid per request via the x402 protocol (USDC). The machine-readable offer is base64-encoded JSON in the PAYMENT-REQUIRED response header.","payment_offer_location":"PAYMENT-REQUIRED response header (base64 JSON)","free_alternative":"/free/check — 5 checks/day, no payment","docs":"https://canienter.com/llms.txt"}}}},"5XX":{"description":"Unexpected server error. The x402 layer can additionally return 502 (facilitator error) and 412 (payment precondition, e.g. permit2 allowance) on paid endpoints."}},"x-payment-info":{"intent":"charge","method":"x402","amount":"30000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.03 per request in USDC on Base (eip155:8453) via the x402 protocol — pay the 402 challenge, no account needed."}}},"/v1/passport/{iso3}":{"get":{"operationId":"getPassportMatrix","summary":"Full destination matrix for a passport (paid, $0.15 via x402)","parameters":[{"name":"iso3","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}}],"responses":{"200":{"description":"All destinations for this passport, grouped by requirement","content":{"application/json":{"schema":{"type":"object","properties":{"passport":{"type":"object"},"summary":{"type":"object","description":"Counts per requirement"},"destinations":{"type":"object"},"dataset_version":{"type":"string"}}}}}},"400":{"description":"Invalid input: missing parameters, unknown country codes (with suggestions), same country","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"missing_parameters":{"value":{"error":"missing_parameters","message":"Both 'passport' and 'destination' query parameters are required (ISO3 codes).","example":"/v1/check?passport=NLD&destination=JPN"}},"unknown_country_code":{"value":{"error":"unknown_country_code","message":"'NL' is not a recognized ISO3 country code for 'passport'.","suggestions":[{"code":"NLD","name":"Netherlands"}],"hint":"Use ISO 3166-1 alpha-3 codes, e.g. NLD, USA, JPN."}}}}}},"402":{"description":"Payment required (paid endpoints only). The machine-readable x402 offer is base64-encoded JSON in the PAYMENT-REQUIRED response header; the JSON body restates where to find it. Non-browser clients get this JSON; browsers get an HTML paywall.","headers":{"PAYMENT-REQUIRED":{"description":"x402 v2 payment offer (amount, asset, pay-to), base64-encoded JSON","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"},"example":{"error":"payment_required","message":"This endpoint is paid per request via the x402 protocol (USDC). The machine-readable offer is base64-encoded JSON in the PAYMENT-REQUIRED response header.","payment_offer_location":"PAYMENT-REQUIRED response header (base64 JSON)","free_alternative":"/free/check — 5 checks/day, no payment","docs":"https://canienter.com/llms.txt"}}}},"5XX":{"description":"Unexpected server error. The x402 layer can additionally return 502 (facilitator error) and 412 (payment precondition, e.g. permit2 allowance) on paid endpoints."}},"x-payment-info":{"intent":"charge","method":"x402","amount":"150000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.15 per request in USDC on Base (eip155:8453) via the x402 protocol — pay the 402 challenge, no account needed."}}},"/v1/trips/evaluate":{"post":{"operationId":"evaluateTrip","summary":"Evaluate a full trip (paid, $0.10 via x402)","description":"Premium evaluation: the whole traveler + itinerary in one request. Multiple passports (best_option per leg), documents held, multi-leg with transit roles, per-leg dates and purpose. Every decision returns why[] explanations, conditions[], and split verification states.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["traveler","trip"],"properties":{"traveler":{"type":"object","required":["passports"],"properties":{"passports":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{3}$"},"minItems":1,"maxItems":4,"description":"All passports held (ISO3); each leg is evaluated per passport"},"residence_permits_of":{"type":"array","items":{"type":"string"},"description":"Issuers of residence permits held (ISO3 or SCHENGEN/EU/GCC)"},"visas_of":{"type":"array","items":{"type":"string"},"description":"Issuers of valid visas held (ISO3 or SCHENGEN/EU/GCC)"}}},"trip":{"type":"object","required":["legs"],"properties":{"purpose":{"type":"string","description":"Trip-wide purpose; default tourism"},"legs":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","required":["country"],"properties":{"country":{"type":"string","pattern":"^[A-Za-z]{3}$"},"role":{"type":"string","enum":["entry","transit"],"description":"Default entry"},"arrival_date":{"type":"string","format":"date"},"departure_date":{"type":"string","format":"date"},"purpose":{"type":"string","description":"Overrides trip.purpose for this leg"}}}}}}}},"example":{"traveler":{"passports":["NLD"],"residence_permits_of":["USA"]},"trip":{"legs":[{"country":"QAT","role":"transit"},{"country":"JPN","arrival_date":"2026-10-15","departure_date":"2026-10-29"}]}}}}},"responses":{"200":{"description":"Per-leg, per-passport decisions with explanations","content":{"application/json":{"schema":{"type":"object","properties":{"dataset_version":{"type":"string"},"request_id":{"type":"string"},"evaluated_at":{"type":"string","format":"date-time"},"legs":{"type":"array","items":{"type":"object","description":"country, role, duration_days (days of presence, counting BOTH the arrival and departure days, as immigration does), verdict_verification, entry_rules_verification, verification (deprecated), results[] (one per passport: requirement, why[], conditions[], apply, possible_exemptions), best_option, twov + transit_note on transit legs"}},"summary":{"type":"object","description":"legs_evaluated, action_required, note"},"defaults_applied":{"type":"array","items":{"type":"object"}},"disclaimer":{"type":"string"}}}}}},"400":{"description":"Invalid input: missing parameters, unknown country codes (with suggestions), same country","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"missing_parameters":{"value":{"error":"missing_parameters","message":"Both 'passport' and 'destination' query parameters are required (ISO3 codes).","example":"/v1/check?passport=NLD&destination=JPN"}},"unknown_country_code":{"value":{"error":"unknown_country_code","message":"'NL' is not a recognized ISO3 country code for 'passport'.","suggestions":[{"code":"NLD","name":"Netherlands"}],"hint":"Use ISO 3166-1 alpha-3 codes, e.g. NLD, USA, JPN."}}}}}},"402":{"description":"Payment required (paid endpoints only). The machine-readable x402 offer is base64-encoded JSON in the PAYMENT-REQUIRED response header; the JSON body restates where to find it. Non-browser clients get this JSON; browsers get an HTML paywall.","headers":{"PAYMENT-REQUIRED":{"description":"x402 v2 payment offer (amount, asset, pay-to), base64-encoded JSON","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"},"example":{"error":"payment_required","message":"This endpoint is paid per request via the x402 protocol (USDC). The machine-readable offer is base64-encoded JSON in the PAYMENT-REQUIRED response header.","payment_offer_location":"PAYMENT-REQUIRED response header (base64 JSON)","free_alternative":"/free/check — 5 checks/day, no payment","docs":"https://canienter.com/llms.txt"}}}},"5XX":{"description":"Unexpected server error. The x402 layer can additionally return 502 (facilitator error) and 412 (payment precondition, e.g. permit2 allowance) on paid endpoints."}},"x-payment-info":{"intent":"charge","method":"x402","amount":"100000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.10 per request in USDC on Base (eip155:8453) via the x402 protocol — pay the 402 challenge, no account needed."}}},"/free/check":{"get":{"operationId":"checkVisaRequirementFree","summary":"Check visa requirement (free, 5 requests/day per IP; 20/day for registered agents)","security":[{},{"agentBearer":[]}],"parameters":[{"name":"passport","in":"query","required":true,"description":"Traveler's passport country, ISO 3166-1 alpha-3 (e.g. NLD)","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"destination","in":"query","required":true,"description":"Destination country, ISO 3166-1 alpha-3 (e.g. JPN)","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"transit","in":"query","required":false,"description":"Optional transit country, ISO 3166-1 alpha-3 (adds its entry requirement + TWOV programs)","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"purpose","in":"query","required":false,"description":"Travel purpose; default tourism (reported in defaults_applied). 'business' answers from curated purpose_scope when available.","schema":{"type":"string"}},{"name":"residence_permits_of","in":"query","required":false,"description":"Comma-separated issuers of residence permits held: ISO3 codes or SCHENGEN/EU/GCC (e.g. USA,SCHENGEN). Matched against documented exemptions; results appear in possible_exemptions.","schema":{"type":"string"}},{"name":"visas_of","in":"query","required":false,"description":"Comma-separated issuers of valid visas held, same format as residence_permits_of (e.g. USA,GBR).","schema":{"type":"string"}},{"name":"residence_permits","in":"query","required":false,"description":"Convenience fallback: free-text descriptors (e.g. 'US green card'). Reduced to issuer codes when possible; unmappable inputs are echoed in inputs.unrecognized_documents. Prefer residence_permits_of.","schema":{"type":"string"}},{"name":"visas_held","in":"query","required":false,"description":"Convenience fallback for visas, same behavior as residence_permits. Prefer visas_of.","schema":{"type":"string"}}],"responses":{"200":{"description":"Requirement result","headers":{"X-RateLimit-Limit":{"description":"Requests allowed in the current window (free endpoints)","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"ISO 8601 instant when the daily window resets (next UTC midnight)","schema":{"type":"string","format":"date-time"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResponse"},"example":{"passport":{"code":"NLD","name":"Netherlands"},"destination":{"code":"JPN","name":"Japan"},"requirement":"visa_free","requirement_label":"No visa required","allowed_stay_days":90,"verdict_verification":{"status":"secondary_source_only","source":"aggregated_secondary_matrix","matrix_revision":"2026-10-05","basis":"The base visa verdict derives from an aggregated visa-requirement matrix."},"entry_rules_verification":{"status":"verified_official_sources","last_verified":"2026-08-01","staleness_days":7,"basis":"Entry-rules fields curated against official government sources."},"dataset_version":"2026-10-05","disclaimer":"Advisory information for trip planning — not a boarding decision."}}}},"400":{"description":"Invalid input: missing parameters, unknown country codes (with suggestions), same country","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"missing_parameters":{"value":{"error":"missing_parameters","message":"Both 'passport' and 'destination' query parameters are required (ISO3 codes).","example":"/v1/check?passport=NLD&destination=JPN"}},"unknown_country_code":{"value":{"error":"unknown_country_code","message":"'NL' is not a recognized ISO3 country code for 'passport'.","suggestions":[{"code":"NLD","name":"Netherlands"}],"hint":"Use ISO 3166-1 alpha-3 codes, e.g. NLD, USA, JPN."}}}}}},"401":{"description":"Invalid or expired agent bearer token (anonymous requests are never 401)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Free-tier limit reached. The body's `scope` field names which cap: per IP, per network (asn), per registered agent, per verified visitor (demo), or the worldwide daily ceiling (global).","headers":{"X-RateLimit-Limit":{"description":"Requests allowed in the current window (free endpoints)","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"ISO 8601 instant when the daily window resets (next UTC midnight)","schema":{"type":"string","format":"date-time"}},"Retry-After":{"description":"Seconds until the daily window resets","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"rate_limited","scope":"ip","message":"Free tier is limited to 5 checks per day per IP.","upgrade":"Unlimited access via the x402-paid endpoints (/v1/check). See /llms.txt."}}}},"5XX":{"description":"Unexpected server error. The x402 layer can additionally return 502 (facilitator error) and 412 (payment precondition, e.g. permit2 allowance) on paid endpoints."}}}},"/transparency":{"get":{"operationId":"getTransparencyMetrics","summary":"Public data-quality metrics (free)","description":"Coverage, source-citation counts, freshness, verification-state distributions (verification.verdict_states + verification.entry_rules_states; legacy verification_states is deprecated), and unresolved source conflicts — computed from the exact dataset this deployment serves.","responses":{"200":{"description":"Metrics document","content":{"application/json":{"schema":{"type":"object","properties":{"dataset_version":{"type":"string"},"coverage":{"type":"object"},"sources":{"type":"object"},"freshness":{"type":"object"},"verification":{"type":"object","properties":{"verdict_states":{"type":"object"},"entry_rules_states":{"type":"object"}}},"verification_states":{"type":"object","deprecated":true,"description":"Legacy combined distribution (weakest-of-two); kept one release"},"unresolved_reviews":{"type":"object"},"uptime":{"type":"string","format":"uri"},"disclaimer":{"type":"string"}}}}}},"5XX":{"description":"Unexpected server error. The x402 layer can additionally return 502 (facilitator error) and 412 (payment precondition, e.g. permit2 allowance) on paid endpoints."}}}},"/healthz":{"get":{"operationId":"healthCheck","summary":"Liveness probe (free)","responses":{"200":{"description":"Service is up"}}}},"/stats.json":{"get":{"operationId":"getUsageStats","summary":"Live usage counters (free, cached ~5 min)","responses":{"200":{"description":"usage: free_checks_today, paid_calls_total, agent_visits_today, mcp_calls_total"}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"Agent-readable API documentation (free, text/plain)","responses":{"200":{"description":"Plain-text API semantics for LLM agents"}}}}}}