Acceso y tarifas
Clave obligatoria desde el 23 de octubre de 2026
Clave gratuita
0 €
- 200 llamadas por 24 horas móviles, 50 por hora como máximo
- Para mostrar el veredicto a sus visitantes, en un sitio web o una aplicación
- Enlace visible a IziVisas obligatorio donde aparezcan los datos
- Solo uso no comercial
Plan de pago
9 € al mes
o 90 € al año
- Uso comercial, por ejemplo una aplicación o un servicio de pago
- Sin enlace obligatorio a IziVisas
- Ficha práctica de los países además del veredicto de visado (ver más abajo)
- 500 llamadas por 24 horas; más volumen y exportación completa del catálogo bajo presupuesto
Obtener una clave
Escríbanos indicando el nombre y la dirección del sitio o de la aplicación, el uso previsto y el volumen estimado. Una clave por proyecto, normalmente en 24 horas. Para el plan de pago, suscríbase arriba: la clave se entrega, o la suya pasa al plan de pago, en 24 horas.
Pedir una clave o un presupuestoUsos prohibidos sin contrato
- Extraer el catálogo de forma sistemática, por cualquier medio: la API, las páginas del sitio, varias claves o varias direcciones IP.
- Crear o alimentar una base de datos competidora.
- Revender o redistribuir los datos en bruto.
Una clave usada así se revoca sin previo aviso.
Parámetros
X-API-Keycabecera, obligatoriaSu clave. Nunca en la URL.
fromstring, obligatorioNacionalidad del viajero, código ISO 3166-1 alpha-2 (ej. SN).
tostring, obligatorioPaís de destino, código ISO 3166-1 alpha-2 (ej. FR).
localestring, opcionalIdioma de la respuesta: fr, en o es. Por defecto: fr.
| Nombre | Tipo | Descripción |
|---|---|---|
X-API-Key | cabecera, obligatoria | Su clave. Nunca en la URL. |
from | string, obligatorio | Nacionalidad del viajero, código ISO 3166-1 alpha-2 (ej. SN). |
to | string, obligatorio | País de destino, código ISO 3166-1 alpha-2 (ej. FR). |
locale | string, opcional | Idioma de la respuesta: fr, en o es. Por defecto: fr. |
Ejemplos de petición
curl -H "X-API-Key: $IZIVISAS_API_KEY" \
"https://izivisas.com/api/public/visa-check?from=SN&to=FR&locale=es"const res = await fetch(
'https://izivisas.com/api/public/visa-check?from=SN&to=FR&locale=es',
{ headers: { 'X-API-Key': process.env.IZIVISAS_API_KEY } }
);
const data = await res.json();
console.log(data.verdict.regime); // "consular"¿Programa con un asistente de IA? Dele la versión Markdown de esta página: https://izivisas.com/developers.md
Respuesta
Respuesta real para un viajero senegalés que va a Francia:
{
"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égimen más permisivo para una estancia turística corta (ver abajo).
verdict.colorgreen, yellow, red o null, para una visualización tipo semáforo.
verdict.durationDuración de estancia autorizada, o null.
visaVisado turístico referenciado, o null. price, processingTime y officialUrl pueden ser null.
arrivalFormFormulario de llegada en línea obligatorio (TDAC de Tailandia, MDAC de Malasia…), incluso sin visado: name, url oficial, when (cuándo rellenarlo), free, alsoOnExit. null si el destino no lo exige o si la nacionalidad está exenta.
detailsUrlPágina de IziVisas de la ruta, para un enlace « más información ».
attributionTexto de atribución listo para mostrar.
| Campo | Descripción |
|---|---|
verdict.regime | Régimen más permisivo para una estancia turística corta (ver abajo). |
verdict.color | green, yellow, red o null, para una visualización tipo semáforo. |
verdict.duration | Duración de estancia autorizada, o null. |
visa | Visado turístico referenciado, o null. price, processingTime y officialUrl pueden ser null. |
arrivalForm | Formulario de llegada en línea obligatorio (TDAC de Tailandia, MDAC de Malasia…), incluso sin visado: name, url oficial, when (cuándo rellenarlo), free, alsoOnExit. null si el destino no lo exige o si la nacionalidad está exenta. |
detailsUrl | Página de IziVisas de la ruta, para un enlace « más información ». |
attribution | Texto de atribución listo para mostrar. |
Valores de verdict.regime
visaFreeSin visadoonArrivalVisado a la llegadaeVisaVisado electrónico, se solicita en líneaconsularVisado en la embajada o el consuladonotEligibleEntrada turística imposible para esta nacionalidadunknownSin datos
Ficha práctica (plan de pago)
Solo para claves de pago: lo que un viajero necesita saber sobre el terreno, para un país. Misma clave y misma cuota que el veredicto de visado.
GET https://izivisas.com/api/public/country-info?code=TH&locale=enX-API-Keycabecera, obligatoriaSu clave, pasada al plan de pago.
codestring, obligatorioPaís, código ISO 3166-1 alpha-2 (ej. TH).
localestring, opcionalIdioma de los textos: fr, en o es. Por defecto: en.
| Nombre | Tipo | Descripción |
|---|---|---|
X-API-Key | cabecera, obligatoria | Su clave, pasada al plan de pago. |
code | string, obligatorio | País, código ISO 3166-1 alpha-2 (ej. TH). |
locale | string, opcional | Idioma de los textos: fr, en o es. Por defecto: en. |
curl -H "X-API-Key: $IZIVISAS_API_KEY" \
"https://izivisas.com/api/public/country-info?code=TH&locale=en"Respuesta real para Tailandia, en inglés (listas de costes reducidas a dos líneas):
{
"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 (no potable), varies (según la ciudad o la región) o unknown.
tapWater.labelEtiqueta del estado en el idioma pedido, o null.
tapWater.notePrecisión cuando la hay (« usar agua embotellada »), si no null.
tippingCostumbres de propina, o null.
costsPrecios recogidos en la ciudad principal (costs.city), en USD, por categoría: food, transport, housing, health, leisure, other. Un rango se escribe « 350-600 ». null si no hay datos.
electricityTipos de enchufe, tensión y frecuencia.
emergencyNúmeros de emergencia: police, ambulance, fire (a veces general).
drivingSideleft, right o null.
currency, timezone, callingCodeMoneda, zona horaria IANA, prefijo telefónico.
detailsUrlFicha del país en IziVisas.
| Campo | Descripción |
|---|---|
tapWater.status | safe (potable), unsafe (no potable), varies (según la ciudad o la región) o unknown. |
tapWater.label | Etiqueta del estado en el idioma pedido, o null. |
tapWater.note | Precisión cuando la hay (« usar agua embotellada »), si no null. |
tipping | Costumbres de propina, o null. |
costs | Precios recogidos en la ciudad principal (costs.city), en USD, por categoría: food, transport, housing, health, leisure, other. Un rango se escribe « 350-600 ». null si no hay datos. |
electricity | Tipos de enchufe, tensión y frecuencia. |
emergency | Números de emergencia: police, ambulance, fire (a veces general). |
drivingSide | left, right o null. |
currency, timezone, callingCode | Moneda, zona horaria IANA, prefijo telefónico. |
detailsUrl | Ficha del país en IziVisas. |
Errores
400Códigos de país no válidos: se esperan dos letras ISO.
401Clave ausente, desconocida o revocada.
403Ficha práctica pedida con una clave gratuita.
404Código de país desconocido en la base.
429Cuota de la clave agotada en las últimas 24 horas o la última hora: reintente tras el plazo de la cabecera Retry-After.
500Error interno.
| Código | Significado |
|---|---|
400 | Códigos de país no válidos: se esperan dos letras ISO. |
401 | Clave ausente, desconocida o revocada. |
403 | Ficha práctica pedida con una clave gratuita. |
404 | Código de país desconocido en la base. |
429 | Cuota de la clave agotada en las últimas 24 horas o la última hora: reintente tras el plazo de la cabecera Retry-After. |
500 | Error interno. |
Cuota y caché
- La cuota cuenta las respuestas correctas (200) en 24 horas móviles, con un tope por hora de una cuarta parte de la cuota. Los errores no la consumen.
- Los veredictos cambian raramente: guarde cada respuesta en caché en su lado, al menos un día, en lugar de llamar a la API en cada renderizado.
- Llame a la API desde su servidor. Una clave puesta en el código de una página la puede leer cualquiera, y su cuota con ella.
- Veredictos de visado en caché privada durante una hora (Cache-Control: private, max-age=3600); la ficha práctica no se guarda en caché (no-store).
Atribución
Con una clave gratuita, dos condiciones: un uso no comercial y un enlace visible a IziVisas donde aparezcan los datos. Basta con el enlace de abajo. Una aplicación o un servicio de pago que muestre nuestros datos corresponde al plan de pago, sin enlace obligatorio. Los datos son orientativos: verifique siempre las fuentes oficiales antes de viajar.
<a href="https://izivisas.com">Visa data by IziVisas</a>Sin código ni clave: el widget
El mismo verificador existe como widget para pegar en una página. Sigue siendo gratuito, sin clave, con la atribución incluida.
