Skip to content

The reservation

A completed lookup returns the booking as one reservation, the same for every airline. Each field the airline shows is there, each critical one says where it came from, and nothing is made up.

{
  "schema_version": "1.0",
  "airline": { "iata": "LH", "name": "Lufthansa" },
  "pnr": "X7K2QD",
  "booking_status": "confirmed",
  "retrieved_at": "2026-12-04T09:12:46Z",
  "passengers": [
    {
      "surname": "Hartley",
      "given_names": "Eleanor",
      "type": "adult",
      "seats": { "0": "14C" }
    }
  ],
  "segments": [
    {
      "flight_number": "LH 925",
      "marketing_carrier": "LH",
      "operating_carrier": "LH",
      "origin": "LHR",
      "destination": "FRA",
      "scheduled_departure": "2026-12-04T07:15:00+00:00",
      "scheduled_arrival": "2026-12-04T09:55:00+01:00",
      "cabin": "economy",
      "status": "confirmed",
      "connection_group": 0
    }
  ],
  "ticketing": { "status": "ticketed", "tickets": ["2201234567890"] },
  "baggage": { "0": { "checked": "1 bag, 23 kg", "cabin": "1 bag, 8 kg" } },
  "provenance": {
    "segments[0].flight_number": { "source": "network_response", "confidence": 1 }
  }
}

Fields

FieldWhat it is
schema_versionThe reservation's version. New fields arrive under the same one; see Versions
airlineThe airline's IATA code and name
pnrThe booking reference, as you sent it
booking_statusconfirmed, cancelled, pending or unknown
retrieved_atWhen we read the booking
passengersEveryone on the booking
segmentsEvery flight, in travel order
ticketingTicket numbers and status, where the airline shows them
baggageAllowances by segment, where the airline shows them
provenanceFor each critical field, where it came from and how sure we are
rawThe airline's own words we read, by segment, so you can check ours. On GET only, not in webhooks

A passenger

surname, given_names, type (adult, child or infant), frequent_flyer where the airline shows it, and seats by segment.

A segment

FieldWhat it is
flight_numberAs the passenger sees it, like LH 925
marketing_carrier, operating_carrierIATA codes; they differ on a codeshare
origin, destinationIATA airport codes
scheduled_departure, scheduled_arrivalLocal time at the airport, with its UTC offset
cabineconomy, premium_economy, business or first
statusconfirmed, cancelled, schedule_changed or waitlisted
aircraftWhere the airline shows it
connection_groupSegments with the same number are one journey, so you can group the legs

Where each field came from

The critical fields are the booking reference, the booking's status, each passenger's surname, and each segment's flight number, airports and scheduled times. Before a lookup completes, each one is checked: airports and carriers against the IATA codes, and each flight against the published schedule for that day.

Each critical field has an entry in provenance: its source (network_response, page_text, or operator when a person entered it) and a confidence from 0 to 1. A field we couldn't confirm has a confidence under 0.9 and is never passed off as fact.

How fields are written

  • A field the airline doesn't show is left out. It's never a guess or an empty string.
  • Times are local to the airport, with the UTC offset, so you never work out a time zone.
  • Airports and carriers are IATA codes.