Visa and entry requirements — 199 passports · 39,402 routes
Can I enter?
Pick a passport and a destination: the rule, the allowed stay, and what to arrange before you fly. Five free checks a day, no account.
Verify you're human to unlock 20 checks a day
Where next · Trust and transparency · Developers and agents: the same check as an HTTP request
01 — Where next
- Netherlands → Japan
- United States → Brazil
- United Kingdom → United States
- India → United Arab Emirates
- India → Thailand
- United States → China
- Germany → Thailand
- Philippines → Japan
- Australia → Indonesia
- Canada → Mexico
- United States → Vietnam
- United Kingdom → Australia
Every passport to destination pair has a page: where a passport can go · who needs a visa for a destination · 39,402 routes in the sitemap.
02 — Trust and transparency
Counted from the dataset itself
Every figure below is computed from the exact dataset this deployment serves: nothing is written by hand. Every entry rule is re-checked against its cited official source every day; the live counters come straight from production, refreshed every five minutes.
199
Passports covered
39,402
Passport to destination routes
137/199
Verified against official sources
827
Rules with source citations
85
Rules re-verified today
535
Official sources checked daily
1d
Median rule age since verification
2026-09-07
Dataset version
—
API uptime · 30 days
172/199
Official application portals linked
—
AI-agent visits today
—
MCP tool calls · all time
Verification activity
- AGOEntry rules re-verified against Servico de Migracao e Estrangeiros de Angola (SME)
- ALBEntry rules re-verified against Ministry for Europe and Foreign Affairs of Albania
- ANDEntry rules re-verified against Govern d'Andorra - Travel to Andorra (Ministry of Foreign Affairs)
- ARGEntry rules re-verified against Ministerio de Relaciones Exteriores (Cancillería) / Dirección Nacional de Migraciones
- ARMEntry rules re-verified against Ministry of Foreign Affairs of the Republic of Armenia
- AUTOfficial source content changed — queued for review
- BDIEntry rules re-verified against Commissariat General des Migrations, Burundi (online visa application + certificate presented at point of entry)
- BFAEntry rules re-verified against Visa Burkina, official Burkina Faso e-visa platform (referenced by servicepublic.gov.bf); applicant portal at https://applicant.visaburkina.bf/
- BGDEntry rules re-verified against Bangladesh Online MRV Portal (online application, visa issued at missions); VOA info at https://voa.specialbranch.gov.bd/public/voa-info.html (Bangladesh Police Special Branch)
- BHSEntry rules re-verified against Bahamas Department of Immigration
- BLREntry rules re-verified against Ministry of Foreign Affairs of the Republic of Belarus
- BOLEntry rules re-verified against Ministry of Foreign Affairs of Bolivia (Cancilleria)
- BRBEntry rules re-verified against Barbados Immigration Department (online entry-visa portal; travelform.gov.bb hosts the pre-arrival Immigration and Customs Form)
- BRNEntry rules re-verified against Ministry of Foreign Affairs of Brunei Darussalam
- CAFEntry rules re-verified against Ministere des Affaires Etrangeres de la RCA (diplomatie.gouv.cf); online short-stay visa application via Embassy of CAR in Paris portal
- CANEntry rules re-verified against Immigration, Refugees and Citizenship Canada
- CODEntry rules re-verified against Direction Generale de Migration, DR Congo
- COGEntry rules re-verified against Ambassade de la Republique du Congo en France - online visa application/payment via GIRAFE (girafe.ambacongofr.org); no visa on arrival in Congo
- CPVEntry rules re-verified against Government of Cabo Verde - EASE traveller pre-registration
- CRIEntry rules re-verified against DGME Costa Rica (migracion.go.cr, blocks automated access); current visa directives Res. AJ-484-11-2025 published via SINALEVI
- CYPEntry rules re-verified against Ministry of Foreign Affairs of Cyprus (gov.cy) - visa overview, visa-free categories incl. Schengen-visa/residence-permit holders, airport transit visa list at mfa.gov.cy
- DJIEntry rules re-verified against Republic of Djibouti eVisa
- DMAEntry rules re-verified against Government of Dominica Web Portal / Online Immigration-Customs Declaration (edcard)
- DNKEntry rules re-verified against New to Denmark (Danish Immigration Service) — Visa-free visits
- ERIEntry rules re-verified against Embassy of Eritrea in Washington DC - Visa
- ESTEntry rules re-verified against Estonian Ministry of Foreign Affairs / Police and Border Guard Board
- FJIEntry rules re-verified against Fiji Ministry of Immigration (IMMI HUB portal)
- FSMEntry rules re-verified against FSM Embassy Washington DC
- GBREntry rules re-verified against UK Home Office (GOV.UK)
- GHAEntry rules re-verified against Ghana Immigration Service; Ghana MFA e-visa portal launch announcement (portal URL not yet published on retrieved pages)
- GMBEntry rules re-verified against Gambia Immigration Department (visa services page linked from fetched GID homepage; page itself timed out on fetch)
- GUYEntry rules re-verified against Guyana Ministry of Foreign Affairs; Immigration Support Services e-services
- HKGEntry rules re-verified against Hong Kong Immigration Department
- HNDEntry rules re-verified against Instituto Nacional de Migracion (Honduras)
- INDEntry rules re-verified against Bureau of Immigration, Government of India
- IRLEntry rules re-verified against Department of Foreign Affairs (ireland.ie) - Visit visa documentation checklist
- IRQOfficial source content changed — queued for review
- ITAOfficial source content changed — queued for review
- JOREntry rules re-verified against Ministry of Interior, Hashemite Kingdom of Jordan
- KENEntry rules re-verified against Republic of Kenya Electronic Travel Authorisation
Full data, machine-readable: GET /transparency · GET /stats.json · GET /changes.json · status.canienter.com
03 — Integration
The answer, sold by the request.
An unpaid call returns HTTP 402 with payment instructions. Any x402 client settles $0.03 in USDC and retries. Payments run on Base mainnet.
# Free tier — 5 checks a day, no auth curl "https://api.canienter.com/free/check?passport=NLD&destination=JPN" # Paid tier — answers HTTP 402 Payment Required. The offer (amount, # asset, pay-to) is base64 JSON in the PAYMENT-REQUIRED header; # any x402 client settles it and retries automatically. curl "https://api.canienter.com/v1/check?passport=NLD&destination=JPN" # Peek at the offer without paying: curl -s -o /dev/null -D - "https://api.canienter.com/v1/check?passport=NLD&destination=JPN" \ | grep -i "^payment-required" | cut -d" " -f2 | base64 -d
// npm i @x402/fetch @x402/evm viem (Node 18+) // WARNING: running this spends real USDC ($0.03/call, Base mainnet). // Inspect the offer first, free of charge: const probe = await fetch("https://api.canienter.com/v1/check?passport=NLD&destination=JPN"); console.log(probe.status, /* 402 */ JSON.parse(atob(probe.headers.get("PAYMENT-REQUIRED")))); // Then pay per call — key from an env var, never hardcoded or logged: import { wrapFetchWithPaymentFromConfig } from "@x402/fetch"; import { ExactEvmScheme } from "@x402/evm"; import { privateKeyToAccount } from "viem/accounts"; const account = privateKeyToAccount(process.env.X402_PRIVATE_KEY); const payFetch = wrapFetchWithPaymentFromConfig(fetch, { schemes: [ { network: "eip155:8453", client: new ExactEvmScheme(account) }]}); const res = await payFetch( "https://api.canienter.com/v1/check?passport=NLD&destination=JPN"); if (!res.ok) throw new Error("check failed: " + res.status); const { requirement, allowed_stay_days } = await res.json();
# The API publishes its own agent skill (Claude Code paths shown; # Codex/Cursor/other agents: use your agent's skills directory) mkdir -p ~/.claude/skills/visa-check curl -s "https://api.canienter.com/.well-known/agent-skills/visa-check/SKILL.md" \ -o ~/.claude/skills/visa-check/SKILL.md # Discovery index with the SKILL.md sha256 digest (verify, updates, extras): curl -s "https://api.canienter.com/.well-known/agent-skills/index.json" # Remove: delete ~/.claude/skills/visa-check
The skill lets an agent look up entry requirements and pay per request over x402. There is no API key to leak.
Machine docs: GET /llms.txt · GET /openapi.json
Add to your agent
| Endpoint | Price |
|---|---|
| /free/check | free · 5/day |
| /v1/check | $0.03 |
| /v1/trips/evaluatefull trip: multi-leg, multi-passport, explanations | $0.10 |
| /v1/passport/{iso3}all 198 destinations at once | $0.15 |
- USDC on Base mainnet · x402 v2
- No account, no API key, no contract
- Freshness date on every answer
01 — Call
GET /v1/check: the unpaid request returns HTTP 402 with a payment offer.
02 — Pay
$0.03 USDC via any x402 client, settled on Base mainnet.
03 — Answer
JSON verdict plus an on-chain receipt for the payment.
Not a developer? The same answers go on your own site with two lines of HTML: no API call, no account.
04 — Your site
Runs on your pages, too.
A travel guide, a relocation blog, a booking flow: paste two lines and your readers get the requirement, the allowed stay and a link to the sourced rules without leaving your page. It is free for any site, commercial or not. The only thing asked in return is that the attribution link stays visible.
<!-- anywhere in your page --> <div data-canienter-widget></div> <script src="https://canienter.com/embed.js" async></script> <!-- on a Japan guide, pre-select the destination --> <div data-canienter-widget data-destination="JPN"></div>
- No cookies, no tracking, no account
- Follows your reader's light and dark setting
- Auto-sizes to its container
- Answers cite the same official sources