Skip to main content
IziVisas

IziVisas API for developers

A free JSON API, no key or account needed, to check short-stay visa requirements between two countries. Open CORS — callable directly from the browser.

Endpoint

A single read-only route:

GET https://izivisas.com/api/public/visa-check?from={FROM}&to={TO}&locale={LOCALE}

Parameters

  • from (string — required)Traveller nationality, ISO 3166-1 alpha-2 code (e.g. SN).
  • to (string — required)Destination country, ISO 3166-1 alpha-2 code (e.g. FR).
  • locale (string — optional)Response language: fr, en or es (default: fr).
Request examples

curl

curl "https://izivisas.com/api/public/visa-check?from=SN&to=FR&locale=en"

JavaScript (fetch)

const res = await fetch(
  'https://izivisas.com/api/public/visa-check?from=SN&to=FR&locale=en'
);
const data = await res.json();
console.log(data.verdict.regime); // "consular"
Response example
{
  "from": { "code": "SN", "name": "Sénégal" },
  "to": { "code": "FR", "name": "France" },
  "verdict": {
    "regime": "consular",
    "color": "red",
    "duration": "90 jours"
  },
  "visa": {
    "name": "Visa Schengen court séjour",
    "price": { "min": 80, "currency": "EUR" },
    "processingTime": "15 jours",
    "officialUrl": "https://france-visas.gouv.fr"
  },
  "detailsUrl": "https://izivisas.com/fr/visas/SN/FR",
  "attribution": "Visa data by IziVisas — https://izivisas.com"
}

The verdict is the most permissive regime for a short-stay tourist trip: visaFree, onArrival, eVisa, consular or notEligible (unknown when no data exists). The color field (green / yellow / red / null) enables traffic-light displays. visa is null when no tourist visa is referenced; price, processingTime, officialUrl and duration may be null.

Errors

  • 400 Invalid country codes (expected format is 2 ISO letters).
  • 404 Country code unknown to the database.
  • 429 Too many requests — retry after the delay given in the Retry-After header.
  • 500 Internal error.
Caching and limits

Responses are served with Cache-Control: public, max-age=3600, s-maxage=86400, stale-while-revalidate=604800: 1h browser cache, 24h CDN cache. Verdicts change rarely — cache the response on your side rather than calling the API on every render. The endpoint is protected by anti-abuse rate limiting: when exceeded it returns 429 with a Retry-After header. For heavy usage, get in touch.

Attribution required

The API is free for any website or app. Only condition: credit IziVisas with a visible link to izivisas.com wherever the data is displayed. Every response even includes a ready-to-use attribution field. Data is provided for guidance — always verify with official sources before travelling.

No-code integration

Don’t want to write code? The visa checker also ships as an embeddable widget: one tag to paste, attribution built in.

Discover the widget