POST/v1/flights/search
Consola API
Pruébalo
Envía una petición real al entorno sandbox e inspecciona la respuesta.
Credenciales
Inicia sesión para elegir entre tus API keys guardadas en vez de pegarlas.
Cuerpo de la petición
Petición cURL
bash
curl -X POST 'https://api.sandbox.travelandz.com/v1/flights/search' \
-H 'Authorization: Bearer YOUR_SECRET_KEY' \
-H 'X-Travelandz-Id: YOUR_PUBLIC_KEY:YOUR_PROFILE_CODE' \
-H 'Content-Type: application/json' \
-d '{"slices":[{"origin":"MAD","destination":"BCN","departure_date":"2026-08-20"}],"passengers":[{"type":"adult"}],"cabin_class":"economy","currency":"EUR","language":"es"}'Añade tus credenciales para enviar una petición.
Respuesta
Pulsa «¡Pruébalo!» para enviar una petición y ver la respuesta aquí.
Busca inventario de vuelo en las fuentes activas y devuelve ofertas normalizadas con precio final para el developer, metadata de proveedor y links de reserva opcionales.
Endpoint
| Método | Ruta | Auth |
|---|---|---|
POST | /v1/flights/search | API key requerida |
| Header | Descripción |
|---|---|
Authorization | Bearer <secret_key>. El secret se muestra una sola vez al crear la credencial. |
X-Travelandz-Id | <public_key>:<profile_code>. El profile_code es el codigo de Developer Profile con prefijo dp_ que ves en el dashboard. Esto vincula la peticion con un perfil y una credencial. |
Content-Type | Usa application/json para peticiones con cuerpo. |
Parámetros de la petición
No requiere parámetros de ruta ni query.
Esquema del cuerpo de la petición
slicesslices[]originCodigo IATA del aeropuerto o ciudad de origen
slices[]destinationCodigo IATA del aeropuerto o ciudad de destino
slices[]departure_dateNo debe estar en el pasado
passengerspassengers[]typecabin_classcurrencyPor defecto EUR
languageIdioma opcional para metadata traducida cuando este disponible
Respuesta exitosa
Devuelve offers[] con metadata normalizada de proveedor, precio, requisitos de pasajeros, slices y segmentos.
Esquema del cuerpo de la respuesta
offersoffers[]offerIdoffers[]gdsprovideroffers[]expiresAtoffers[]totalAmountoffers[]holdOptionsoffers[]holdOptionsavailableoffers[]holdOptionspaymentRequiredByoffers[]holdOptionspriceGuarantedUntiloffers[]supportedPassengerIdDocumentsoffers[]supportedPassengerIdDocuments[]offers[]passengerIdentityDocumentsRequiredoffers[]supportedLoyaltyProgramsoffers[]supportedLoyaltyPrograms[]offers[]airlineoffers[]airlinenameoffers[]airlineiataCodeoffers[]airlinelogoURLoffers[]airlineconditionsOfCarriageoffers[]passengersoffers[]passengers[]idPublic passenger id to reuse during booking. Mystifly public offers generate internal ids such as
mystifly_pax_1.offers[]passengers[]typeoffers[]conditionsoffers[]conditionsrefundBeforeDepartureoffers[]conditionsrefundBeforeDeparturecurrencyoffers[]conditionsrefundBeforeDeparturepenaltyAmountoffers[]conditionsrefundBeforeDepartureallowedoffers[]conditionschangeBeforeDepartureoffers[]conditionschangeBeforeDeparturecurrencyoffers[]conditionschangeBeforeDeparturepenaltyAmountoffers[]conditionschangeBeforeDepartureallowedoffers[]slicesoffers[]slices[]fareNameoffers[]slices[]departureoffers[]slices[]departureiataCodeoffers[]slices[]departurecityNameoffers[]slices[]departureairportNameoffers[]slices[]departuredepartingAtoffers[]slices[]departuretimeZoneoffers[]slices[]arrivaloffers[]slices[]arrivaliataCodeoffers[]slices[]arrivalcityNameoffers[]slices[]arrivalairportNameoffers[]slices[]arrivalarrivingAtoffers[]slices[]arrivaltimeZoneoffers[]slices[]durationMinutesoffers[]slices[]conditionsoffers[]slices[]conditionspriorityCheckInoffers[]slices[]conditionspriorityBoardingoffers[]slices[]conditionsadvanceSeatSelectionoffers[]slices[]segmentsoffers[]slices[]segments[]fareNameoffers[]slices[]segments[]departureoffers[]slices[]segments[]departureiataCodeoffers[]slices[]segments[]departurecityNameoffers[]slices[]segments[]departureairportNameoffers[]slices[]segments[]departuredepartingAtoffers[]slices[]segments[]departuretimeZoneoffers[]slices[]segments[]departureterminaloffers[]slices[]segments[]arrivaloffers[]slices[]segments[]arrivaliataCodeoffers[]slices[]segments[]arrivalcityNameoffers[]slices[]segments[]arrivalairportNameoffers[]slices[]segments[]arrivalarrivingAtoffers[]slices[]segments[]arrivaltimeZoneoffers[]slices[]segments[]arrivalterminaloffers[]slices[]segments[]airlineoffers[]slices[]segments[]airlineoperatingCarrieroffers[]slices[]segments[]airlineoperatingCarriernameoffers[]slices[]segments[]airlineoperatingCarrieriataCodeoffers[]slices[]segments[]airlineoperatingCarrierlogoURLoffers[]slices[]segments[]airlineoperatingCarrierconditionsOfCarriageoffers[]slices[]segments[]airlinemarketingCarrieroffers[]slices[]segments[]airlinemarketingCarriernameoffers[]slices[]segments[]airlinemarketingCarrieriataCodeoffers[]slices[]segments[]airlinemarketingCarrierlogoURLoffers[]slices[]segments[]airlinemarketingCarrierconditionsOfCarriageoffers[]slices[]segments[]flightNumberoffers[]slices[]segments[]durationMinutesoffers[]slices[]segments[]passengersoffers[]slices[]segments[]passengers[]amenitiesoffers[]slices[]segments[]passengers[]amenitieswifioffers[]slices[]segments[]passengers[]amenitieswificostoffers[]slices[]segments[]passengers[]amenitieswifiavailableoffers[]slices[]segments[]passengers[]amenitiesseatoffers[]slices[]segments[]passengers[]amenitiesseatpitchoffers[]slices[]segments[]passengers[]amenitiesseatlegroomoffers[]slices[]segments[]passengers[]amenitiesseattypeoffers[]slices[]segments[]passengers[]amenitiespoweroffers[]slices[]segments[]passengers[]baggagesoffers[]slices[]segments[]passengers[]baggages[]typeoffers[]slices[]segments[]passengers[]baggages[]quantityoffers[]slices[]segments[]passengers[]baggages[]maxKgoffers[]CO2EmissionsKgoffers[]holdIdoffers[]originalCurrencyoffers[]currencyliveModeTrue cuando la peticion se sirve desde el entorno live de Travelandz. Este valor viene de Travelandz, no del payload del proveedor.
Notas operativas
- Envia un item en
slices[]para trayectos de ida y dos items para ida y vuelta. passengers[]debe incluir al menos un adulto.- Guarda el payload de la oferta seleccionada. Algunos flujos de reserva requieren
totalSegmentsconstruido desdeoffer.slices[].segments[].
Ejemplo
bash
curl -X POST https://api.sandbox.travelandz.com/v1/flights/search \
-H "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
-H "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
-H "Content-Type: application/json" \
-d '{"slices":[{"origin":"MAD","destination":"BCN","departure_date":"2026-08-20"}],"passengers":[{"type":"adult"}],"cabin_class":"economy","currency":"EUR","language":"es"}'Cuerpo de la petición - Ejemplo
json
{
"slices": [
{
"origin": "MAD",
"destination": "BCN",
"departure_date": "2026-08-20"
}
],
"passengers": [
{
"type": "adult"
}
],
"cabin_class": "economy",
"currency": "EUR",
"language": "es"
}Respuestas
| Código | Descripción |
|---|---|
200 | Ofertas de vuelo recuperadas correctamente. |
400 | Solicitud inválida: payload no válido. |
401 | No autorizado: credenciales inválidas o ausentes. |
403 | Prohibido: credenciales inválidas. |
500 | Error interno del servidor |
200 Cuerpo de la respuesta
Tipo de contenido: application/json
json
{
"offers": [
{
"offerId": "string",
"gdsprovider": 0,
"expiresAt": "2026-06-05T00:06:29.070Z",
"totalAmount": 0,
"holdOptions": {
"available": true,
"paymentRequiredBy": "2026-06-05T00:06:29.070Z",
"priceGuarantedUntil": "2026-06-05T00:06:29.070Z"
},
"supportedPassengerIdDocuments": "passport",
"passengerIdentityDocumentsRequired": true,
"supportedLoyaltyPrograms": [
null
],
"airline": {
"name": "string",
"iataCode": "string",
"logoURL": {},
"conditionsOfCarriage": "string"
},
"passengers": [
{
"id": "string",
"type": "adult"
}
],
"conditions": {
"refundBeforeDeparture": {
"currency": "string",
"penaltyAmount": "string",
"allowed": true
},
"changeBeforeDeparture": {
"currency": "string",
"penaltyAmount": "string",
"allowed": true
}
},
"slices": [
{
"fareName": "string",
"departure": {
"iataCode": "string",
"cityName": "string",
"airportName": "string",
"departingAt": "string",
"timeZone": "string"
},
"arrival": {
"iataCode": "string",
"cityName": "string",
"airportName": "string",
"arrivingAt": "string",
"timeZone": "string"
},
"durationMinutes": 0,
"conditions": {
"priorityCheckIn": true,
"priorityBoarding": true,
"advanceSeatSelection": true
},
"segments": [
{
"fareName": "string",
"departure": {
"iataCode": "string",
"cityName": "string",
"airportName": "string",
"departingAt": "string",
"timeZone": "string",
"terminal": "string"
},
"arrival": {
"iataCode": "string",
"cityName": "string",
"airportName": "string",
"arrivingAt": "string",
"timeZone": "string",
"terminal": "string"
},
"airline": {},
"flightNumber": "string",
"durationMinutes": 0,
"passengers": [
{
"amenities": {
"wifi": {
"cost": {},
"available": true
},
"seat": {
"pitch": "string",
"legroom": "string",
"type": {}
},
"power": true
},
"baggages": [
{
"type": "checked",
"quantity": 0,
"maxKg": "string"
}
]
}
]
}
]
}
],
"CO2EmissionsKg": 0,
"holdId": "string",
"originalCurrency": {},
"currency": "EUR"
}
],
"liveMode": false
}