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
194/199
Verified against official sources
827
Rules with source citations
83
Rules re-verified today
538
Official sources checked daily
0d
Median rule age since verification
2026-08-11
Dataset version
—
API uptime · 30 days
172/199
Official application portals linked
—
AI-agent visits today
—
MCP tool calls · all time
Verification activity
- AGOsmevisa.gov.ao and sme.gov.ao FAQ re-checked after repeated fetch failures; live and unchanged.
- ANDgovern.ad travel-to-Andorra page re-checked after a content-change flag; no-visa-required and unspecified passport-validity rules unchanged.
- ARESingle-entry tourist visa and India-VOA pages re-checked after a content-change flag; 6-month passport validity, onward-ticket/insurance requirement and 14-day India-VOA terms unchanged.
- ATGimmigration.gov.ag visa-FAQ, entry-requirements, general-visa-info, application-process and visa-on-arrival pages re-checked after repeated fetch failures; live and unchanged.
- AUSuk.embassy.gov.au FAQ page re-checked after an HTTP 500; live and unchanged.
- AUToesterreich.gv.at re-checked after a content-change flag; 3-month post-departure Schengen passport rule unchanged.
- BHRNPRA GCC-resident two-week eVisa page re-checked after repeated fetch failures; live and unchanged.
- BHSBefore-Your-Arrival page re-checked after a content-change flag; 6-month passport validity and return-ticket/means requirement unchanged.
- BIHDeep audit: SPS and FIPA pages re-read; subsistence-fund rule, EU/EEA/neighbour ID-card entry and Schengen-visa/residence-permit exemption all accurate.
- BLRDeep audit: MFA pages re-read; 90-day post-departure passport rule, airport visa-free regime (12 nationalities, 76-country and 38-European-state lists) and insurance minimum all accurate.
- BLZDeep audit: travelbelize.org, embassy and immigration.gov.bz pages re-read; 30-day passport/stay rule, onward-ticket/funds requirement and US/Canada/Schengen multiple-entry-visa exemption all accurate.
- BOLDeep audit: Cancilleria visas page re-read; Grupo I/II/III passport and onward-ticket rules and Visa Multiple terms all accurate.
- BRADeep audit: Itamaraty consular pages re-read; valid-for-stay passport rule, 2-blank-page visa requirement, onward-ticket checks and mandatory e-visa (VIVIS) terms all accurate.
- BRBDeep audit: Immigration Department pages re-read; valid-for-stay passport rule, onward-ticket/support requirement, direct-transit provisions and visa fee/validity terms all accurate.
- BRNThe live MFA FAQ documents a confirmed-ticket requirement for the 72-hour transit pass but no longer states a return/onward-ticket requirement for standard visa applications, so that half of the stored onward_ticket note could not be re-confirmed this session.
- BTNDeep audit: Department of Immigration and bhutan.travel pages re-read; 6-month passport rule and SDF/visa-fee terms accurate. Live FAQ now lists a Swiss/Thai diplomatic-passport VOA category not yet in the dataset; not applied this session (addition, not a correction) but worth adding in a future pass.
- BWAThe cited Tourism Visa page documents the unspecified passport-validity rule and onward-ticket/itinerary requirement, but does not mention the separate Business Visa category or its no-work/no-sale-of-goods restriction described in purpose_scope; that content could not be re-verified against this single source this session.
- CAFDeep audit: embassy visa-application page re-read; no minimum-validity rule remains published, matching the stored unspecified rule.
- CANDeep audit: IRCC pages re-read; valid-for-stay passport rule, 1-blank-page visa requirement, active Ebola travel restriction, China Transit Program/TWOV terms, US LPR exemption and 6-month business-visitor scope all accurate.
- CHEDeep audit: SEM and EUR-Lex pages re-read; 3-month post-departure passport rule, means-of-subsistence condition, Schengen visa/residence-permit exemption and gainful-occupation visa-obligation terms all accurate.
- COLPIP tourism/business permit page re-checked after an HTTP 404; live and unchanged.
- CRISCIJ legal-text page (Resolucion 484) re-checked after repeated fetch failures; live and unchanged.
- GABevisa.dgdi.ga e-visa portal re-checked after repeated fetch failures; live and unchanged.
- GINpaf.gov.gn entry-requirements pages re-checked after repeated HTTP 500s; live and unchanged.
- HUNKonzuliszolgalat Schengen residence-permit/visa exemption page re-checked after a fetch failure; live and unchanged.
- INDEmbassy visa-info page re-checked after a content-change flag; 6-month passport validity and 2-blank-page requirement unchanged.
- IRNBern embassy passport-validity/blank-pages page re-checked after repeated fetch failures; unchanged. evisa.mfa.ir remains bot-blocked (unrelated to any cited rule).
- KAZMFA e-visa passport-criteria page re-checked after a content-change flag; visa-expiry-anchored 3-month validity and 2-blank-page rules unchanged.
- KHMevisa.gov.kh visa-type and homepage re-checked after repeated fetch failures; unchanged.
- LBNGeneral Security posts 61 and 38 re-checked after a content-change flag; passport validity, onward-ticket exceptions, GCC residence-permit visa-on-arrival and purpose scope unchanged.
- LCAstlucia.org entry-requirements page re-checked after a content-change flag; unspecified passport-validity rule unchanged.
- LSOLesotho Trade Portal visa FAQ re-checked after repeated HTTP 404s; unchanged.
- LUXGuichet.lu short-stay entry-conditions page re-checked after a content-change flag; 90/180-day rule, insurance minimum and declaration-of-arrival requirement unchanged.
- MDAevisa.gov.md portal re-checked after a fetch failure; portal and its linked MFA visa-regime pages remain live and unchanged.
- MLTMalta Airport passport-control page re-checked after a content-change flag; 3-month post-departure Schengen rule unchanged.
- MNGEmbassy visa FAQ re-checked after repeated fetch failures; 6-month passport-validity and 2-blank-page requirements unchanged.
- MOZPAE visa-exemption implementation notice re-checked after repeated fetch failures; unchanged.
- MUSpassport.govmu.org travel- and visa-requirements pages re-checked after repeated fetch failures; unchanged.
- MYSkln.gov.my requirement and TWOV pages re-checked after repeated fetch failures; suspended-TWOV note and other terms unchanged.
- NAMMHAISS visa fact-sheet and FAQ PDFs re-checked after repeated fetch failures; 6-month passport validity, VOA/e-visa blank-page split, insurance and 90-day cap unchanged.
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