{"openapi":"3.0.3","info":{"title":"Can I enter? API","version":"0.1.0","description":"Visa & entry requirements by passport and destination. Free rate-limited tier for travelers; pay-per-request via the x402 protocol (USDC) for businesses and AI agents — no account or API key needed. Data: Passport Index (passportindex.org) via imorte/passport-index-data (retrieved 2026-08-07). Advisory only, not a boarding decision."},"servers":[{"url":"https://canienter.com"}],"paths":{"/v1/check":{"get":{"summary":"Check visa requirement (paid, $0.01 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 (advisory entry-requirement lookup)","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}}],"responses":{"200":{"description":"Requirement result","content":{"application/json":{"schema":{"type":"object","properties":{"passport":{"type":"object"},"destination":{"type":"object"},"requirement":{"type":"string","enum":["visa_free","visa_on_arrival","e_visa","eta","visa_required","no_admission"]},"requirement_label":{"type":"string"},"allowed_stay_days":{"type":"integer","nullable":true},"entry_rules":{"type":"object","description":"Destination-level extended rules with per-field source citations: 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)."},"transit":{"type":"object","description":"Includes the transit country's twov programs when known"},"assumptions":{"type":"array","items":{"type":"string"}},"source":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"400":{"description":"Invalid or missing country codes (includes suggestions)"},"402":{"description":"Payment required — x402 payment instructions in body/headers (paid endpoints only)"},"429":{"description":"Free-tier daily limit reached (free endpoint only)"}}}},"/v1/passport/{iso3}":{"get":{"summary":"Full destination matrix for a passport (paid, $0.05 via x402)","parameters":[{"name":"iso3","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}}],"responses":{"200":{"description":"Requirement result","content":{"application/json":{"schema":{"type":"object","properties":{"passport":{"type":"object"},"destination":{"type":"object"},"requirement":{"type":"string","enum":["visa_free","visa_on_arrival","e_visa","eta","visa_required","no_admission"]},"requirement_label":{"type":"string"},"allowed_stay_days":{"type":"integer","nullable":true},"entry_rules":{"type":"object","description":"Destination-level extended rules with per-field source citations: 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)."},"transit":{"type":"object","description":"Includes the transit country's twov programs when known"},"assumptions":{"type":"array","items":{"type":"string"}},"source":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"400":{"description":"Invalid or missing country codes (includes suggestions)"},"402":{"description":"Payment required — x402 payment instructions in body/headers (paid endpoints only)"},"429":{"description":"Free-tier daily limit reached (free endpoint only)"}}}},"/free/check":{"get":{"summary":"Check visa requirement (free, 20 requests/day per IP)","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 (advisory entry-requirement lookup)","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}}],"responses":{"200":{"description":"Requirement result","content":{"application/json":{"schema":{"type":"object","properties":{"passport":{"type":"object"},"destination":{"type":"object"},"requirement":{"type":"string","enum":["visa_free","visa_on_arrival","e_visa","eta","visa_required","no_admission"]},"requirement_label":{"type":"string"},"allowed_stay_days":{"type":"integer","nullable":true},"entry_rules":{"type":"object","description":"Destination-level extended rules with per-field source citations: 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)."},"transit":{"type":"object","description":"Includes the transit country's twov programs when known"},"assumptions":{"type":"array","items":{"type":"string"}},"source":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"400":{"description":"Invalid or missing country codes (includes suggestions)"},"402":{"description":"Payment required — x402 payment instructions in body/headers (paid endpoints only)"},"429":{"description":"Free-tier daily limit reached (free endpoint only)"}}}}}}