GET/v1/flights/offers/:gdsprovider/:offerId

Obtener detalle de oferta de vuelo

Recupera el detalle actualizado de una oferta de vuelo antes de reservar, incluyendo precio, condiciones, segmentos y requisitos de pasajeros cuando estén disponibles.

Compartir
GET/v1/flights/offers/:gdsprovider/:offerId

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.

Parámetros de ruta

2 campos

Proveedor GDS

Sistema de distribución global usado para obtener contenido de vuelos. Selecciona 0 para el proveedor predeterminado.

ID de oferta

Identificador de la oferta devuelta por una búsqueda de vuelos anterior.

Petición cURL

cURL
bash
curl -X GET 'https://api.sandbox.travelandz.com/v1/flights/offers/0/:offerId' \
  -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  -H 'X-Travelandz-Id: YOUR_PUBLIC_KEY:YOUR_PROFILE_CODE'

Añade tus credenciales para enviar una petición.

Respuesta

Pulsa «¡Pruébalo!» para enviar una petición y ver la respuesta aquí.

Recupera el detalle actualizado de una oferta de vuelo antes de reservar, incluyendo precio, condiciones, segmentos y requisitos de pasajeros cuando estén disponibles.

Endpoint

MétodoRutaAuth
GET/v1/flights/offers/:gdsprovider/:offerIdAPI key requerida
Headers obligatorios:
HeaderDescripción
AuthorizationBearer <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-TypeUsa application/json para peticiones con cuerpo.

Esquema de parámetros de la petición

gdsprovider
number
offerId
string

Cuerpo de la petición

No requiere cuerpo de petición.

Respuesta exitosa

Devuelve offerData con la oferta seleccionada, ids de pasajeros, requisitos de documentos, opciones de hold y segmentos de vuelo cuando esten disponibles.

Esquema del cuerpo de la respuesta

offerData
object
offerDataofferId
string
offerDatagdsprovider
number
offerDataexpiresAt
string
Format: ISO 8601
offerDatatotalAmount
number
offerDataholdOptions
object
offerDataholdOptionsavailable
boolean
offerDataholdOptionspaymentRequiredBy
string
Format: ISO 8601
Nulable
offerDataholdOptionspriceGuarantedUntil
string
Format: ISO 8601
Nulable
offerDatasupportedPassengerIdDocuments
array
offerDatasupportedPassengerIdDocuments[]
enum[]
offerDatapassengerIdentityDocumentsRequired
boolean
offerDatasupportedLoyaltyPrograms
array
offerDatasupportedLoyaltyPrograms[]
string[]
offerDataairline
object
offerDataairlinename
string
offerDataairlineiataCode
string
offerDataairlinelogoURL
stringNulable
offerDataairlineconditionsOfCarriage
stringNo
offerDatapassengers
array
offerDatapassengers[]id
string
Public passenger id to reuse during booking. Mystifly public offers generate internal ids such as mystifly_pax_1.
offerDatapassengers[]type
enum
adultchildinfant_without_seat
offerDataconditions
object
offerDataconditionsrefundBeforeDeparture
object
offerDataconditionsrefundBeforeDeparturecurrency
string
offerDataconditionsrefundBeforeDeparturepenaltyAmount
string
offerDataconditionsrefundBeforeDepartureallowed
boolean
offerDataconditionschangeBeforeDeparture
object
offerDataconditionschangeBeforeDeparturecurrency
string
offerDataconditionschangeBeforeDeparturepenaltyAmount
string
offerDataconditionschangeBeforeDepartureallowed
boolean
offerDataslices
array
offerDataslices[]fareName
string
offerDataslices[]departure
object
offerDataslices[]departureiataCode
string
offerDataslices[]departurecityName
string
offerDataslices[]departureairportName
stringNo
offerDataslices[]departuredepartingAt
string
Format: ISO 8601
offerDataslices[]departuretimeZone
stringNo
offerDataslices[]arrival
object
offerDataslices[]arrivaliataCode
string
offerDataslices[]arrivalcityName
string
offerDataslices[]arrivalairportName
stringNo
offerDataslices[]arrivalarrivingAt
string
Format: ISO 8601
offerDataslices[]arrivaltimeZone
stringNo
offerDataslices[]durationMinutes
number
offerDataslices[]conditions
object
offerDataslices[]conditionspriorityCheckIn
boolean
offerDataslices[]conditionspriorityBoarding
boolean
offerDataslices[]conditionsadvanceSeatSelection
boolean
offerDataslices[]segments
array
offerDataslices[]segments[]fareName
string
offerDataslices[]segments[]departure
object
offerDataslices[]segments[]departureiataCode
string
offerDataslices[]segments[]departurecityName
string
offerDataslices[]segments[]departureairportName
stringNo
offerDataslices[]segments[]departuredepartingAt
string
Format: ISO 8601
offerDataslices[]segments[]departuretimeZone
stringNo
offerDataslices[]segments[]departureterminal
stringNo
offerDataslices[]segments[]arrival
object
offerDataslices[]segments[]arrivaliataCode
string
offerDataslices[]segments[]arrivalcityName
string
offerDataslices[]segments[]arrivalairportName
stringNo
offerDataslices[]segments[]arrivalarrivingAt
string
Format: ISO 8601
offerDataslices[]segments[]arrivaltimeZone
stringNo
offerDataslices[]segments[]arrivalterminal
stringNo
offerDataslices[]segments[]airline
object
offerDataslices[]segments[]airlineoperatingCarrier
object
offerDataslices[]segments[]airlineoperatingCarriername
string
offerDataslices[]segments[]airlineoperatingCarrieriataCode
string
offerDataslices[]segments[]airlineoperatingCarrierlogoURL
stringNulable
offerDataslices[]segments[]airlineoperatingCarrierconditionsOfCarriage
stringNo
offerDataslices[]segments[]airlinemarketingCarrier
object
offerDataslices[]segments[]airlinemarketingCarriername
string
offerDataslices[]segments[]airlinemarketingCarrieriataCode
string
offerDataslices[]segments[]airlinemarketingCarrierlogoURL
stringNulable
offerDataslices[]segments[]airlinemarketingCarrierconditionsOfCarriage
stringNo
offerDataslices[]segments[]flightNumber
string
offerDataslices[]segments[]durationMinutes
number
offerDataslices[]segments[]passengers
array
offerDataslices[]segments[]passengers[]amenities
object
offerDataslices[]segments[]passengers[]amenitieswifi
object
offerDataslices[]segments[]passengers[]amenitieswificost
enum
freefree or paidpaid
Nulable
offerDataslices[]segments[]passengers[]amenitieswifiavailable
boolean
offerDataslices[]segments[]passengers[]amenitiesseat
object
offerDataslices[]segments[]passengers[]amenitiesseatpitch
enum
"number"n/a
offerDataslices[]segments[]passengers[]amenitiesseatlegroom
enum
lessmorestandardn/a
offerDataslices[]segments[]passengers[]amenitiesseattype
enum
standardskycouchreclinerangle_flatfull_flatfull_flat_podprivate_suite
Nulable
offerDataslices[]segments[]passengers[]amenitiespower
boolean
offerDataslices[]segments[]passengers[]baggages
array
offerDataslices[]segments[]passengers[]baggages[]type
enum
checkedcarry_on
offerDataslices[]segments[]passengers[]baggages[]quantity
number
offerDataslices[]segments[]passengers[]baggages[]maxKg
stringNo
offerDataCO2EmissionsKg
numberNulable
offerDataholdId
stringNulable
offerDataoriginalCurrency
enum
EURUSDCNY
offerDatacurrency
enum
EURUSDCNY
liveMode
boolean
True cuando la peticion se sirve desde el entorno live de Travelandz. Este valor viene de Travelandz, no del payload del proveedor.

Notas operativas

  • La disponibilidad del detalle actualizado depende de la fuente seleccionada.
  • Si el detalle directo de la oferta no esta disponible, conserva la oferta devuelta por la busqueda publica y completa la reserva antes de que expire.
  • Reutiliza offerData.passengers[].id al crear la orden. No envies identificadores internos de usuario.

Ejemplo

bash
bash
curl https://api.sandbox.travelandz.com/v1/flights/offers/0/offer_123 \
  -H "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
  -H "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE"

Respuestas

CódigoDescripción
200Detalle de oferta de vuelo recuperado correctamente.
400Solicitud inválida: payload no válido.
401No autorizado: credenciales inválidas o ausentes.
403Prohibido: credenciales inválidas.
500Error interno del servidor

200 Cuerpo de la respuesta

Tipo de contenido: application/json

json
json
{
  "offerData": {
    "offerId": "off_0000B7SbjlHTw4iTcv9u1c",
    "gdsprovider": 0,
    "expiresAt": "2026-06-18T15:02:31.989Z",
    "totalAmount": 235.38,
    "holdOptions": {
      "available": true,
      "paymentRequiredBy": "2026-06-21T14:32:31.000Z",
      "priceGuarantedUntil": "2026-06-20T14:32:31.000Z"
    },
    "supportedPassengerIdDocuments": [
      "passport",
      "known_traveler_number",
      "passenger_redress_number"
    ],
    "passengerIdentityDocumentsRequired": false,
    "supportedLoyaltyPrograms": [
      "ZZ"
    ],
    "airline": {
      "name": "Duffel Airways",
      "iataCode": "ZZ",
      "logoURL": "http://localhost:5000/v1/assets/airlines/0/for-light-background/full-color-logo/ZZ.svg",
      "conditionsOfCarriage": "https://duffelairways.com/dummy-url/conditions-of-carriage"
    },
    "passengers": [
      {
        "id": "pas_0000B7Sbjl2apQo4skC0pb",
        "type": "adult"
      }
    ],
    "conditions": {
      "refundBeforeDeparture": {
        "currency": "EUR",
        "penaltyAmount": "40.00",
        "allowed": true
      },
      "changeBeforeDeparture": {
        "currency": "EUR",
        "penaltyAmount": "40.00",
        "allowed": true
      }
    },
    "slices": [
      {
        "fareName": "Basic",
        "departure": {
          "iataCode": "MAD",
          "cityName": "Madrid",
          "airportName": "MAD",
          "departingAt": "2026-08-12T08:30:00",
          "timeZone": "Europe/Madrid"
        },
        "arrival": {
          "iataCode": "JFK",
          "cityName": "New York",
          "airportName": "JFK",
          "arrivingAt": "2026-08-12T10:45:00",
          "timeZone": "America/New_York"
        },
        "durationMinutes": 495,
        "conditions": {
          "priorityCheckIn": false,
          "priorityBoarding": false,
          "advanceSeatSelection": false
        },
        "segments": [
          {
            "fareName": "Basic",
            "departure": {
              "iataCode": "MAD",
              "cityName": "Madrid",
              "airportName": "MAD",
              "departingAt": "2026-08-12T08:30:00",
              "timeZone": "Europe/Madrid",
              "terminal": "2"
            },
            "arrival": {
              "iataCode": "JFK",
              "cityName": "New York",
              "airportName": "JFK",
              "arrivingAt": "2026-08-12T10:45:00",
              "timeZone": "America/New_York",
              "terminal": "1"
            },
            "airline": {
              "operatingCarrier": {
                "name": "Duffel Airways",
                "iataCode": "ZZ",
                "logoURL": "http://localhost:5000/v1/assets/airlines/0/for-light-background/full-color-logo/ZZ.svg",
                "conditionsOfCarriage": "https://duffelairways.com/dummy-url/conditions-of-carriage"
              },
              "marketingCarrier": {
                "name": "Duffel Airways",
                "iataCode": "ZZ",
                "logoURL": "http://localhost:5000/v1/assets/airlines/0/for-light-background/full-color-logo/ZZ.svg",
                "conditionsOfCarriage": "https://duffelairways.com/dummy-url/conditions-of-carriage"
              }
            },
            "flightNumber": "7252",
            "durationMinutes": 495,
            "passengers": [
              {
                "amenities": {
                  "wifi": {
                    "cost": "paid",
                    "available": true
                  },
                  "seat": {
                    "pitch": "30",
                    "legroom": "n/a",
                    "type": null
                  },
                  "power": true
                },
                "baggages": [
                  {
                    "type": "checked",
                    "quantity": 1,
                    "maxKg": "23"
                  },
                  {
                    "type": "carry_on",
                    "quantity": 1
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "CO2EmissionsKg": 249,
    "originalCurrency": "EUR",
    "currency": "EUR"
  },
  "liveMode": false
}