Ir al contenido principal
Escríbenos por WhatsAppMis reservas

API para desarrolladores

Última actualización: 3 de septiembre de 2026

Busca nuestros vuelos, lleva a los pasajeros directamente a una reserva y gana comisión por lo que nos envías. Todo lo que aparece a continuación se sirve desde https://air-viva.com.

Cómo obtener acceso

El programa de afiliados está abierto: cualquiera puede unirse. Ponte en contacto, cuéntanos quién eres y aproximadamente qué tráfico esperas, y te daremos de alta.

  • Un código de seguimiento: el valor que pones en el parámetro ref en cada enlace que nos envías.
  • Un token de API para los endpoints de búsqueda y de feeds.
  • Condiciones de comisión: un porcentaje del total del pedido, hasta un máximo acordado por reserva.

Tu token es una credencial al portador: quien lo tenga puede hacer consultas en tu nombre. Solo guardamos un hash del token, así que no podemos volver a mostrártelo; guárdalo en un lugar seguro y avísanos de inmediato si se filtra, y lo reemplazaremos.

Autenticación

Envía tu token en cada solicitud de feed y de búsqueda, ya sea como un encabezado Authorization con el token tal cual —sin el prefijo Bearer— o como un parámetro de consulta accessToken. Los endpoints de redirección son públicos y no requieren token.

Ejemplo

curl -H "Authorization: YOUR_TOKEN" \
  "https://air-viva.com/api/v2/data/routes.json"

Errores

Ambos responden HTTP 401 con el código ERROR_UNAUTHORIZED:

  • Sin ningún token: Authentication required
  • Un token que no reconocemos, o uno que pertenece a una cuenta desactivada: Access Denied [1]

Endpoints

Las respuestas son JSON. Las fechas son ISO 8601 (YYYY-MM-DD). Los aeropuertos se identifican por su código IATA o por el id numérico del feed de aeropuertos; ambos se aceptan en todos los lugares donde se indica un aeropuerto.

GET/api/v2/data/airports.jsonRequiere token

Todos los aeropuertos que servimos, con su id numérico, código IATA, ciudad y país.

Datos de referencia estáticos. Guárdalos en caché: cambian rara vez y los ids son estables.

GET/api/v2/data/routes.jsonRequiere token

Los pares de aeropuertos que realmente volamos, como pares de origen y destino.

Dos aeropuertos que servimos no forman necesariamente un par reservable. Usa este feed para limitar tus búsquedas a rutas que existen: un par que no esté en él solo puede responder vacío.

GET/api/v2/data/routes/with-availability.jsonRequiere token

Los mismos pares, con los días en que opera cada ruta.

Úsalo para evitar buscar una ruta en un día en que no vuela.

GET/api/v2/flights.jsonRequiere token

Busca una ruta en una fecha, solo ida o ida y vuelta.

Responde un objeto con los arreglos departure y return. Cada vuelo lleva su propio id: pasa ese id al endpoint de redirección para llevar al pasajero a ese vuelo.

Parámetros

from obligatorio
Aeropuerto de origen, código IATA o id.
to obligatorio
Aeropuerto de destino, código IATA o id.
departureDate obligatorio
Fecha de ida, YYYY-MM-DD.
returnDate opcional
Fecha de vuelta para un viaje de ida y vuelta. Omítela para solo ida.
adults opcional
Pasajeros adultos. El valor predeterminado es 1.
children opcional
Pasajeros niños. El valor predeterminado es 0.
infants opcional
Bebés en brazos. El valor predeterminado es 0.
  • Un par que no volamos responde arreglos vacíos, no un error: una respuesta vacía nunca es motivo para reintentar.
  • Una fecha en el pasado responde vacío en lugar de fallar.
GET/api/v2/redirectPúblico

El enlace directo. Envía aquí a los pasajeros para que lleguen al vuelo en el que hicieron clic.

Redirige a nuestra página de resultados con el viaje ya completado y registra tu atribución. Este endpoint nunca devuelve un error: un id que no podemos resolver igualmente lleva al pasajero a una página utilizable y no a un callejón sin salida.

Parámetros

flightId obligatorio
El id del vuelo de ida de una respuesta de búsqueda.
returnFlightId opcional
El id del vuelo de vuelta, para un viaje de ida y vuelta.
ref obligatorio
Tu código de seguimiento. Sin él, la visita no te genera nada.
subAffiliate opcional
Tu propia etiqueta de subcanal, que te devolvemos en los reportes.
campaign opcional
Tu propia etiqueta de campaña.
partnerClickId opcional
Tu identificador de clic, para que puedas conciliar una reserva con tus propios registros.
currency opcional
Moneda en la que se muestran los precios. No cambia la moneda en que se cobra.
GET/api/v2/redirect-multiPúblico

El enlace directo para un viaje de ida y vuelta, que recibe ambos tramos como una lista.

Lee flightIds como una colección: la primera entrada es la ida y la segunda, la vuelta. Acepta los mismos parámetros de atribución que la redirección simple.

Parámetros

flightIds[] obligatorio
Ids de vuelo en orden: primero la ida, después la vuelta.
ref obligatorio
Tu código de seguimiento.
GET/api/v2/results-multiPúblico

Un enlace directo construido a partir de aeropuertos y fechas en lugar de ids de vuelo.

Úsalo cuando no tengas un id de vuelo a mano, por ejemplo a partir de una búsqueda en caché o vencida. Lee los destinos como parámetros indexados: destinations[0][from], destinations[0][to], destinations[0][date].

Parámetros

destinations[N][from] obligatorio
Aeropuerto de origen del tramo N.
destinations[N][to] obligatorio
Aeropuerto de destino del tramo N.
destinations[N][date] obligatorio
Fecha del tramo N.
ref obligatorio
Tu código de seguimiento.
  • Un destino que no podemos resolver se omite en lugar de rechazarse.

Atribución

Pon tu código de seguimiento en el parámetro ref de cada enlace. Guardamos una cookie propia cuando el pasajero llega y la leemos si reserva, así que una reserva cuenta para ti incluso cuando ocurre días después del clic.

https://air-viva.com/api/v2/redirect?flightId=1000000000123&ref=YOUR_CODE
  • La ventana de atribución es de 42 días desde el clic.
  • Gana el clic más reciente: si un pasajero llega a través de otro socio después de ti, la reserva es de ese socio.
  • Una reserva se atribuye una sola vez, en el momento en que se crea.

Comisión

Ganas un porcentaje acordado del total del pedido, hasta un máximo acordado por reserva. Las cifras exactas están en tu propio acuerdo; las reglas siguientes se aplican a todos.

  • El máximo es por reserva, no por pasajero: una reserva genera una sola comisión con tope, sin importar cuántos pasajeros incluya.
  • La comisión se calcula sobre el total del pedido realmente cobrado, no sobre un precio cotizado antes.
  • Los importes se redondean hacia abajo al centavo.
  • La comisión se gana en las reservas que se pagan. Una compra con la tarifa bloqueada o abandonada no genera nada.
  • Una reserva vendida en una moneda distinta de tu moneda de pago se te informa en lugar de pagarse automáticamente: no convertimos al liquidar, acordamos el tipo de cambio contigo.

Reportes

Estamos reconstruyendo los reportes para socios junto con la nueva plataforma. Hasta que estén listos, pídenos tu estado de cuenta y te lo enviaremos, con todo lo necesario para una factura.

Uso razonable

Compramos nuestro inventario a las aerolíneas con contratos que miden cuántas búsquedas les enviamos por cada reserva. Ese presupuesto se comparte contigo, así que unos pocos hábitos mantienen la conexión sana para ambos.

  • Busca solo pares del feed de rutas, en los días en que el feed de disponibilidad indica que operan. Un par que no volamos solo puede responder vacío, y consultarlo de todos modos gasta el presupuesto para nada.
  • Guarda en caché los feeds de aeropuertos y rutas. Cambian rara vez.
  • No consultes repetidamente una búsqueda para el mismo viaje. Los precios se garantizan al reservar, no al buscar.
  • Avísanos antes de aumentar de forma considerable tu volumen de consultas, para que podamos ampliar primero nuestros propios límites.

Preguntas

¿Algo no está claro, algo no funciona o necesitas un endpoint que no está aquí? Ponte en contacto: preferimos cambiar la API antes que obligarte a buscar una solución alternativa.

API para desarrolladores | air viva