Accès et tarifs
Clé obligatoire depuis le 23 octobre 2026
Clé gratuite
0 €
- 200 appels par 24 heures glissantes, 50 par heure au plus
- Pour afficher le verdict à vos visiteurs, sur un site ou une application
- Lien visible vers IziVisas obligatoire là où les données apparaissent
- Usage non commercial uniquement
Offre payante
9 € par mois
ou 90 € par an
- Usage commercial, par exemple une application ou un service payant
- Aucun lien vers IziVisas exigé
- Fiche pratique des pays en plus du verdict visa (voir plus bas)
- 500 appels par 24 heures ; volume plus élevé et export complet du catalogue sur devis
Obtenir une clé
Écrivez-nous en indiquant le nom et l’adresse du site ou de l’application, l’usage prévu et le volume estimé. Une clé est délivrée par projet, en général sous 24 heures. Pour l’offre payante, abonnez-vous ci-dessus : la clé est délivrée, ou la vôtre passée en payante, sous 24 heures.
Demander une clé ou un devisUsages interdits sans contrat
- Extraire le catalogue de façon systématique, quelle que soit la méthode : API, pages du site, plusieurs clés ou plusieurs adresses IP.
- Constituer ou alimenter une base de données concurrente.
- Revendre ou redistribuer les données brutes.
Une clé utilisée ainsi est révoquée sans préavis.
Paramètres
X-API-Keyen-tête, requisVotre clé. Jamais dans l’URL.
fromstring, requisNationalité du voyageur, code ISO 3166-1 alpha-2 (ex. SN).
tostring, requisPays de destination, code ISO 3166-1 alpha-2 (ex. FR).
localestring, optionnelLangue de la réponse : fr, en ou es. Par défaut : fr.
| Nom | Type | Description |
|---|---|---|
X-API-Key | en-tête, requis | Votre clé. Jamais dans l’URL. |
from | string, requis | Nationalité du voyageur, code ISO 3166-1 alpha-2 (ex. SN). |
to | string, requis | Pays de destination, code ISO 3166-1 alpha-2 (ex. FR). |
locale | string, optionnel | Langue de la réponse : fr, en ou es. Par défaut : fr. |
Exemples de requête
curl -H "X-API-Key: $IZIVISAS_API_KEY" \
"https://izivisas.com/api/public/visa-check?from=SN&to=FR&locale=fr"const res = await fetch(
'https://izivisas.com/api/public/visa-check?from=SN&to=FR&locale=fr',
{ headers: { 'X-API-Key': process.env.IZIVISAS_API_KEY } }
);
const data = await res.json();
console.log(data.verdict.regime); // "consular"Vous codez avec un assistant IA ? Donnez-lui la version Markdown de cette page : https://izivisas.com/developers.md
Réponse
Réponse réelle pour un voyageur sénégalais qui va en France :
{
"from": { "code": "SN", "name": "Sénégal" },
"to": { "code": "FR", "name": "France" },
"verdict": {
"regime": "consular",
"color": "red",
"duration": "90 jours par période de 180 jours"
},
"visa": {
"name": "Court séjour (tourisme)",
"price": { "min": 90, "max": 90, "currency": "EUR" },
"processingTime": "15 à 45 jours",
"officialUrl": "https://www.france-visas.gouv.fr/en/short-stay-visa"
},
"arrivalForm": null,
"detailsUrl": "https://izivisas.com/fr/visas/SN/FR",
"attribution": "Visa data by IziVisas, https://izivisas.com"
}verdict.regimeRégime le plus permissif pour un court séjour touristique (voir ci-dessous).
verdict.colorgreen, yellow, red ou null, pour un affichage en feu tricolore.
verdict.durationDurée de séjour autorisée, ou null.
visaVisa touristique référencé, ou null. price, processingTime et officialUrl peuvent être null.
arrivalFormFormulaire d’arrivée en ligne obligatoire (TDAC thaïlandaise, MDAC malaisienne…), même sans visa : name, url officielle, when (quand le remplir), free, alsoOnExit. null si la destination n’en exige pas ou si la nationalité en est dispensée.
detailsUrlPage IziVisas de la route, à utiliser comme lien « en savoir plus ».
attributionTexte d’attribution prêt à afficher.
| Champ | Description |
|---|---|
verdict.regime | Régime le plus permissif pour un court séjour touristique (voir ci-dessous). |
verdict.color | green, yellow, red ou null, pour un affichage en feu tricolore. |
verdict.duration | Durée de séjour autorisée, ou null. |
visa | Visa touristique référencé, ou null. price, processingTime et officialUrl peuvent être null. |
arrivalForm | Formulaire d’arrivée en ligne obligatoire (TDAC thaïlandaise, MDAC malaisienne…), même sans visa : name, url officielle, when (quand le remplir), free, alsoOnExit. null si la destination n’en exige pas ou si la nationalité en est dispensée. |
detailsUrl | Page IziVisas de la route, à utiliser comme lien « en savoir plus ». |
attribution | Texte d’attribution prêt à afficher. |
Valeurs de verdict.regime
visaFreeSans visaonArrivalVisa à l’arrivéeeVisaVisa électronique à demander en ligneconsularVisa à demander à l’ambassade ou au consulatnotEligibleEntrée touristique impossible pour cette nationalitéunknownAucune donnée
Fiche pratique (offre payante)
Réservée aux clés payantes : ce qu’un voyageur doit savoir sur place, pour un pays. Même clé et même quota que le verdict visa.
GET https://izivisas.com/api/public/country-info?code=TH&locale=enX-API-Keyen-tête, requisVotre clé, passée en offre payante.
codestring, requisPays, code ISO 3166-1 alpha-2 (ex. TH).
localestring, optionnelLangue des textes : fr, en ou es. Par défaut : en.
| Nom | Type | Description |
|---|---|---|
X-API-Key | en-tête, requis | Votre clé, passée en offre payante. |
code | string, requis | Pays, code ISO 3166-1 alpha-2 (ex. TH). |
locale | string, optionnel | Langue des textes : fr, en ou es. Par défaut : en. |
curl -H "X-API-Key: $IZIVISAS_API_KEY" \
"https://izivisas.com/api/public/country-info?code=TH&locale=en"Réponse réelle pour la Thaïlande, en anglais (listes de coûts raccourcies à deux lignes) :
{
"code": "TH",
"name": "Thailand",
"currency": { "code": "THB", "symbol": "฿", "name": "Thai Baht" },
"timezone": "Asia/Bangkok",
"callingCode": "+66",
"drivingSide": "left",
"electricity": {
"plugs": ["Type A", "Type B", "Type C", "Type O"],
"voltage": ["220V"],
"frequency": ["50Hz"]
},
"emergency": { "fire": "199", "police": "191", "ambulance": "1669" },
"tapWater": { "status": "unsafe", "label": "Not safe to drink", "note": null },
"tipping": "Not mandatory, round up or small tip 10%",
"costs": {
"city": "in Bangkok",
"currency": "USD",
"updatedAt": "2026-10-10",
"food": [
{ "label": "Meal at an inexpensive restaurant", "price": "3" },
{ "label": "Meal for two at a mid-range restaurant", "price": "22" }
],
"transport": [
{ "label": "Public transport, one way", "price": "1" },
{ "label": "Monthly transport pass", "price": "42" }
],
"housing": [...],
"health": [...],
"leisure": [...],
"other": [...]
},
"detailsUrl": "https://izivisas.com/en/countries/TH"
}tapWater.statussafe (potable), unsafe (non potable), varies (selon la ville ou la région) ou unknown.
tapWater.labelLibellé du statut dans la langue demandée, ou null.
tapWater.notePrécision quand il y en a une (« utiliser l’eau en bouteille »), sinon null.
tippingUsages en matière de pourboire, ou null.
costsPrix relevés dans la ville principale (costs.city), en USD, par catégorie : food, transport, housing, health, leisure, other. Une fourchette s’écrit « 350-600 ». null si aucune donnée.
electricityTypes de prise, tension et fréquence.
emergencyNuméros d’urgence : police, ambulance, fire (parfois general).
drivingSideleft, right ou null.
currency, timezone, callingCodeMonnaie, fuseau horaire IANA, indicatif téléphonique.
detailsUrlFiche du pays sur IziVisas.
| Champ | Description |
|---|---|
tapWater.status | safe (potable), unsafe (non potable), varies (selon la ville ou la région) ou unknown. |
tapWater.label | Libellé du statut dans la langue demandée, ou null. |
tapWater.note | Précision quand il y en a une (« utiliser l’eau en bouteille »), sinon null. |
tipping | Usages en matière de pourboire, ou null. |
costs | Prix relevés dans la ville principale (costs.city), en USD, par catégorie : food, transport, housing, health, leisure, other. Une fourchette s’écrit « 350-600 ». null si aucune donnée. |
electricity | Types de prise, tension et fréquence. |
emergency | Numéros d’urgence : police, ambulance, fire (parfois general). |
drivingSide | left, right ou null. |
currency, timezone, callingCode | Monnaie, fuseau horaire IANA, indicatif téléphonique. |
detailsUrl | Fiche du pays sur IziVisas. |
Erreurs
400Codes pays invalides : deux lettres ISO attendues.
401Clé absente, inconnue ou révoquée.
403Fiche pratique demandée avec une clé gratuite.
404Code pays inconnu de la base.
429Quota de la clé atteint sur les dernières 24 heures ou la dernière heure : réessayez après le délai de l’en-tête Retry-After.
500Erreur interne.
| Code | Signification |
|---|---|
400 | Codes pays invalides : deux lettres ISO attendues. |
401 | Clé absente, inconnue ou révoquée. |
403 | Fiche pratique demandée avec une clé gratuite. |
404 | Code pays inconnu de la base. |
429 | Quota de la clé atteint sur les dernières 24 heures ou la dernière heure : réessayez après le délai de l’en-tête Retry-After. |
500 | Erreur interne. |
Quota et cache
- Le quota compte les réponses réussies (200) sur 24 heures glissantes, avec un plafond horaire d’un quart du quota. Les erreurs ne le consomment pas.
- Les verdicts changent rarement : gardez chaque réponse en cache de votre côté, au moins une journée, plutôt que d’appeler l’API à chaque affichage.
- Appelez l’API depuis votre serveur. Une clé placée dans le code d’une page est lisible par tous, et son quota part avec.
- Verdict visa en cache privé une heure (Cache-Control: private, max-age=3600) ; la fiche pratique n’est pas mise en cache (no-store).
Attribution
Avec une clé gratuite, deux conditions : un usage non commercial, et un lien visible vers IziVisas là où les données apparaissent. Le lien ci-dessous suffit. Une application ou un service payant qui affiche nos données relève de l’offre payante, sans lien exigé. Les données sont indicatives : vérifiez toujours auprès des sources officielles avant de voyager.
<a href="https://izivisas.com">Visa data by IziVisas</a>Sans code ni clé : le widget
Le même vérificateur existe en widget à coller dans une page. Il reste gratuit, sans clé, attribution comprise.
