Response Format

All fare search responses follow the same structure. This page walks through each part so you know exactly what to expect.

Top-level fields

Every fare response includes the route and date you searched, plus an array of matching itineraries:

ParameterTypeRequiredDescription
originstringYesThe resolved 3-letter IATA departure code.
destinationstringYesThe resolved 3-letter IATA arrival code.
departure_datestringYesDeparture date in YYYY-MM-DD format.
return_datestringNoReturn date for round-trip responses.
itinerariesarrayYesList of matching itineraries (may be empty).

Itinerary object

Each itinerary represents a complete travel option. Here's a connecting one-way flight with two segments:

Single itinerary
{
  "price": {
    "amount": 542,
    "currency": "USD"
  },
  "outbound": {
    "carrier": "United Airlines",
    "duration_minutes": 475,
    "segments": [
      {
        "marketing_carrier_code": "UA",
        "flight_number": "1234",
        "operating_carrier_name": "United Airlines",
        "departure_airport": "SFO",
        "departure_time_local": "2026-05-12T06:00:00",
        "departure_timezone": "America/Los_Angeles",
        "departure_time_utc": "2026-05-12T13:00:00Z",
        "arrival_airport": "ORD",
        "arrival_time_local": "2026-05-12T12:15:00",
        "arrival_timezone": "America/Chicago",
        "arrival_time_utc": "2026-05-12T17:15:00Z",
        "duration_minutes": 255,
        "aircraft": "Boeing 737 MAX 9"
      },
      {
        "marketing_carrier_code": "UA",
        "flight_number": "5678",
        "operating_carrier_name": "United Airlines",
        "departure_airport": "ORD",
        "departure_time_local": "2026-05-12T13:30:00",
        "departure_timezone": "America/Chicago",
        "departure_time_utc": "2026-05-12T18:30:00Z",
        "arrival_airport": "JFK",
        "arrival_time_local": "2026-05-12T16:55:00",
        "arrival_timezone": "America/New_York",
        "arrival_time_utc": "2026-05-12T20:55:00Z",
        "duration_minutes": 145,
        "aircraft": "Airbus A320"
      }
    ]
  },
  "cabin_class": "economy",
  "ignav_id": "a1b2c3d4e5f6789012345678abcdef01"
}

Price

The price object always has an amount (number) and currency (3-letter ISO code). The currency is determined by the market you pass in the request, and the numeric amount is the displayed fare for that market.

Legs

Every itinerary includes an outbound leg. Round-trip itineraries may also include an inbound leg.

Each leg contains airline display carrier, elapsed duration_minutes, and segments. Carrier names are display strings and may be localized. If you need a stable airline code, use each segment's marketing_carrier_code.

Optional itinerary fields are omitted when unavailable.

ParameterTypeRequiredDescription
carrierstringNoAirline display name for this leg when available.
duration_minutesintegerNoElapsed leg travel time in minutes, including layovers when present.
segmentsarrayYesArray of flight segments for this leg (see below).

Segments

Each leg's segments array contains one entry per flight segment. A nonstop itinerary leg has one segment; a connection has two or more. Each segment includes:

ParameterTypeRequiredDescription
marketing_carrier_codestring | nullYes2-letter code of the airline selling the ticket.
flight_numberstring | nullYesFlight number (e.g. "1234").
operating_carrier_namestring | nullYesName of the airline operating the aircraft.
departure_airportstringYes3-letter IATA code.
departure_time_localstringYesLocal departure time in YYYY-MM-DDTHH:MM:SS format.
departure_timezonestring | nullYesIANA timezone name for the departure airport.
departure_time_utcstring | nullYesDeparture timestamp converted to UTC.
arrival_airportstringYes3-letter IATA code.
arrival_time_localstringYesLocal arrival time in YYYY-MM-DDTHH:MM:SS format.
arrival_timezonestring | nullYesIANA timezone name for the arrival airport.
arrival_time_utcstring | nullYesArrival timestamp converted to UTC.
duration_minutesintegerYesFlight duration in minutes.
aircraftstring | nullYesAircraft type, e.g. "Boeing 737 MAX 9".

departure_time_local and arrival_time_local remain airport-local wall times. Each segment also includes the corresponding IANA timezone and a UTC timestamp so browser clients do not have to infer the conversion.

Do not derive elapsed travel time by subtracting the local wall-clock fields. Use segment duration_minutes, leg duration_minutes, or the UTC timestamps instead.

Baggage

When available, the bags object shows how many carry_on and checked bags are included in the fare. Either field may be omitted when the information is unavailable.

ignav_id

Every itinerary includes an ignav_id — a unique string that identifies this exact itinerary. Pass it to the booking links endpoint to get direct booking URLs.

Round-trip additions

Round-trip itineraries include an optional inbound leg object with the same fields as outbound.

Booking links response

The booking links endpoint returns the matched itinerary plus grouped booking options:

Booking links response
{
  "itinerary": {
    "price": {
      "amount": 488,
      "currency": "USD"
    },
    "outbound": {
      "carrier": "American Airlines",
      "duration_minutes": 330,
      "segments": [
        {
          "marketing_carrier_code": "AA",
          "flight_number": "100",
          "operating_carrier_name": "American Airlines",
          "departure_airport": "SFO",
          "departure_time_local": "2026-05-12T08:00:00",
          "departure_timezone": "America/Los_Angeles",
          "departure_time_utc": "2026-05-12T15:00:00Z",
          "arrival_airport": "JFK",
          "arrival_time_local": "2026-05-12T16:30:00",
          "arrival_timezone": "America/New_York",
          "arrival_time_utc": "2026-05-12T20:30:00Z",
          "duration_minutes": 330,
          "aircraft": "Boeing 777"
        }
      ]
    },
    "cabin_class": "economy"
  },
  "booking_options": [
    {
      "legs": [
        "outbound"
      ],
      "links": [
        {
          "provider_name": "American Airlines",
          "provider_type": "airline",
          "fare_name": "Main Cabin",
          "price": {
            "amount": 488,
            "currency": "USD"
          },
          "url": "aa.com/booking/..."
        },
        {
          "provider_name": "Expedia",
          "provider_type": "third_party",
          "price": {
            "amount": 502,
            "currency": "USD"
          },
          "url": "expedia.com/flights/..."
        }
      ]
    }
  ]
}

Each booking option has a legs array plus a links array. Each link includes provider_name, provider_type, optional fare_name and price, and a url that takes the user directly to a booking page with the flight pre-selected.

Ready to get started?

Create a free account to get your API key, or try the playground — no signup required.