BYTETOOLS

Can I Enter (Visa Rules) API

Free visa and entry requirements API with no key: does a passport need a visa for a destination, with allowed stay, passport validity rules and cited official sources. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Can I Enter (Visa Rules) API?

Can I Enter is a visa requirements API with a free, key-free tier. Given a passport and a destination it returns whether a visa is needed, the permitted length of stay, and an entry-rules block covering passport validity, onward tickets and health requirements, each with its provenance stated.

Visa data is unusually dangerous to get wrong, and this API's design reflects that. Rather than emitting a confidence percentage, it splits provenance in two: `verdict_verification` describes how the visa-free-or-not answer was derived, and `entry_rules_verification` separately describes the curated rules layer with per-field citations to official government pages. Where sources conflict it answers `needs_review` rather than picking a side, and where it has nothing it answers `unknown` — both carrying an instruction to check with the official authority.

The free tier is genuinely free but genuinely small: five requests per IP per day, reported in the rate limit headers. That is enough to build and test an integration, and enough for a low-traffic page that caches, but not for a live checker on a busy site. Note also `defaults_applied`, which lists assumptions the answer rests on — ordinary passport, tourism purpose — because a business trip or a diplomatic passport can produce a different verdict entirely.

Quick facts

Base URL
https://api.canienter.com
Authentication
The free tier needs no key or account. Higher-volume tiers are pay-per-request; registered agents get a slightly larger free allowance.
Rate limit
5 requests per IP per day on the free tier, reported in `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`.
Pricing
Free at five requests a day. Paid per-request tiers exist for higher volume.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Can I Enter (Visa Rules) API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Check whether a passport needs a visa for a destination

GET https://api.canienter.com/free/check?passport=NLD&destination=JPN

curl
curl 'https://api.canienter.com/free/check?passport=NLD&destination=JPN'
JavaScript (fetch)
const res = await fetch("https://api.canienter.com/free/check?passport=NLD&destination=JPN");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.canienter.com/free/check?passport=NLD&destination=JPN", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "dataset_version": "2026-08-21",
  "evaluated_at": "2026-08-21T08:01:23.503Z",
  "request_id": "req_34b0038bb92940f6b91c",
  "inputs": {
    "passport": "NLD",
    "destination": "JPN",
    "transit": null,
    "purpose": "tourism",
    "documents_held": []
  },
  "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-08-21",
    "basis": "The base visa verdict derives from an aggregated visa-requirement matrix, not from a per-verdict official citation. Official sources, where present, attach to entry_rules fields."
  },
  "entry_rules_verification": {
    "status": "verified_official_sources",
    "last_verified": "2026-08-16",
    "staleness_days": 5,
    "basis": "Entry-rules fields curated against official government sources with per-field citations (see the source objects inside entry_rules)."
  },
  "verification": {
    "status": "secondary_source_only",
    "last_verified": "2026-08-16",
    "staleness_days": 5,
    "basis": "Deprecated combined status — the weakest of verdict_verification and entry_rules_verification. Read those blocks for the split provenance."
  },
  "entry_rules": {
    "passport_validity": {
      "rule": "valid_for_stay",
      "months": null,
      "note": "Passport must be valid on entry and for the stay; MOFA/ISA stipulate a vali

Parameters

ParameterTypeRequiredDescription
passportqueryRequiredISO 3166-1 alpha-3 code of the passport's issuing country. NLD
destinationqueryRequiredISO alpha-3 code of the country being entered. JPN
purposequeryOptional`tourism` by default; `business` can change the verdict. business
transitqueryOptionalAlpha-3 code of a country transited en route, for transit-visa rules. QAT
residence_permits_of / visas_ofqueryOptionalPermits or visas already held, which can waive a requirement. USA,SCHENGEN

Response fields

requirementstring
The verdict: `visa_free`, `visa_on_arrival`, `e_visa`, `eta`, `visa_required`, `no_admission`, `unknown` or `needs_review`.
requirement_labelstring
Human-readable form of the verdict, ready to display.
allowed_stay_daysinteger
Permitted stay in days where the verdict is visa-free or visa-on-arrival.
verdict_verificationobject
How the visa verdict was derived, with `status`, `source` and a plain-English `basis`. Never claimed as officially verified.
entry_rules_verificationobject
Provenance of the curated rules layer: `verified_official_sources`, `stale`, `not_curated` or `needs_review`, with `last_verified` and `staleness_days`.
entry_rulesobject
Passport validity minimum, blank-page requirement, onward-ticket rule, yellow-fever certificate and other health requirements, with citations.
inputs / defaults_appliedobject / array
What you asked and what was assumed — ordinary passport, tourism purpose — so nothing is silently inferred.
dataset_version / evaluated_at / request_idstring
Dataset revision, evaluation time and a request identifier for reproducibility and support.
passport / destinationobject
Resolved country codes and names for both ends of the query.

What you can build with the Can I Enter (Visa Rules) API

  • Show entry requirements on a travel booking or guide page
  • Warn a traveller their passport validity is too short for a destination
  • Surface onward-ticket and vaccination requirements before departure
  • Check transit visa rules for a connecting itinerary
  • Add a visa checker to a country guide with caching

Common errors and how to fix them

429 Too Many Requests

The free tier allows five requests per IP per day.

Fix: Read `X-RateLimit-Remaining` before calling. Cache aggressively — rules change on the scale of months, not minutes.

requirement is `unknown` or `needs_review`

There is no data, or official sources conflict.

Fix: Do not fall back to a guess. Both states carry `action: check_official_authority`; show that message rather than an inferred verdict.

The verdict does not match a government website

`verdict_verification` states plainly that the base verdict comes from an aggregated secondary matrix.

Fix: Always present the official-source link from `entry_rules` and the response's own disclaimer. Never show a visa verdict as authoritative on its own.

A business trip gets the wrong answer

`purpose` defaults to tourism, as `defaults_applied` records.

Fix: Pass `purpose=business` explicitly. Business and tourism requirements genuinely differ for many country pairs.

Can I Enter (Visa Rules) API — frequently asked questions

Is the visa requirements API free?

There is a free tier needing no key or account, capped at five requests per IP per day. That suits development, testing and a cached low-traffic page; higher volume moves to a paid per-request tier.

How reliable is the data?

The API is deliberately explicit about this. The base visa verdict derives from an aggregated secondary matrix and is never claimed as officially verified, while the entry-rules layer carries per-field citations to official sources with a `last_verified` date. Treat it as guidance and always link the official source.

What does needs_review mean?

That official sources disagree with each other. Rather than picking one and presenting it as fact, the API returns `needs_review` with an instruction to check with the official authority — which is the honest answer when the sources conflict.

Does it handle transit and residence permits?

Yes. A `transit` parameter applies transit-visa rules for a connecting country, and `residence_permits_of` and `visas_of` account for documents already held, which waive the requirement for many country pairs.

Tools that pair with this API

Can I Enter (Visa Rules) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.