---
title: "List bookings"
method: GET
path: "/flights/bookings"
tags: ["Flight Bookings"]
---

# List bookings

`GET /flights/bookings`

## Overview

List confirmed flight bookings owned by the authenticated user. Supports an optional PNR + last-name lookup for retrieving a single booking.

## When to Use

- **"My bookings" page** - Display the authenticated user's confirmed flight bookings
- **PNR lookup** - Retrieve a single booking by `airlinePnr` and a passenger's `lastName`
- **Booking management** - Build dashboards or list views of past and upcoming reservations

## What You Get

- **Confirmed bookings only** - Returns records persisted from the booking flow;
- **Full booking objects** with status, journey, passengers, order reference, and pricing
- **Sandbox isolation** - Sandbox and live bookings are scoped by the API key used

## Key Features

- **Owner-scoped**: Only returns bookings belonging to the authenticated user
- **PNR + last-name lookup**: When both `airlinePnr` and `lastName` are supplied, returns a single matching booking; both are required together
- **Stable response shape**: `data` is always an array containing exactly one element with a `bookings` array

## Quick Start

Call with no query parameters to list all bookings for the authenticated user. To look up a specific booking, pass both `airlinePnr` and `lastName`.

## Query parameters

- `airlinePnr` string
- `lastName` string

## Response `200`

Successful response

- object
  - `data` object[] — List of booking result sets (always exactly one element)
    - `bookings` FlightBooking[] — Confirmed bookings owned by the authenticated user. Empty array when the user has no bookings.
      - `bookingId` string — Unique booking identifier
      - `bookingRef` string — FlightHub booking reference (FH-YYM-XXXXXXXX)
      - `status` string — Booking status: PENDING_CONFIRMATION, CONFIRMED, CANCELLED, PENDING, TICKETED
      - `timestamp` string — Booking creation time (UTC)
      - `offerId` string — Offer ID from verify stage
      - `paymentStatus` string — Payment status: pending, completed, failed, not_required
      - `distributorCommission` number — Commission amount for the distributor.
      - `distributorPrice` number — Price after distributor commission.
      - `providerEnvironment` 'sandbox' | 'production' — Provider environment used for this booking (sandbox or production)
      - `ticketLimitTime` string, date-time — Deadline for ticket issuance (UTC)
      - `lastRefreshedAt` string, date-time — UTC timestamp of the last successful provider API status refresh
      - `journey` object — Journey details as confirmed by the provider at booking time
        - `journeyKey` string — Unique journey identifier
        - `segments` FlightSegment[] — Flight segments in this booking
          - `arrivalTime` string — Arrival time (ISO 8601)
          - `carrier` object — Marketing and operating carrier details for this segment
            - `marketingCode` string — Marketing carrier IATA code
            - `marketingLogo` string — Marketing carrier logo path/URL
            - `marketingName` string — Marketing carrier name
            - `operatingCode` string — Operating carrier IATA code
            - `operatingLogo` string — Operating carrier logo path/URL
            - `operatingName` string — Operating carrier name
          - `departureTime` string — Departure time (ISO 8601)
          - `destinationCode` string — Destination IATA code
          - `direction` string — OUTBOUND or INBOUND
          - `duration` object — Flight duration in ISO 8601 and minutes
            - `iso8601` string — Duration in ISO 8601 format (e.g. PT7H45M)
            - `minutes` integer — Duration in minutes
          - `flight` object — Marketing and operating flight numbers
            - `marketingNumber` string — Flight number as marketed to passengers
            - `operatingNumber` string — Flight number as operated by the carrier
          - `originCode` string — Origin IATA code
          - `originName` string — Full name of the origin airport
          - `destinationName` string — Full name of the destination airport
          - `segmentKey` string — Unique identifier for this segment, used to link with offers, fares, and amenities
        - `price` FlightPrice — Full price breakdown including base fare, taxes, fees, and per-passenger amounts
          - `base` number — Base fare amount (before taxes and fees)
          - `currency` string — ISO 4217 currency code
          - `fees` number — Service fees and surcharges
          - `taxes` number — Total taxes applied to the fare
          - `total` number — Total price (base + taxes + fees)
          - `perPassenger` object — Price breakdown per passenger type
            - `adult` object — Price breakdown for each adult passenger
              - …
            - `child` object — Price breakdown for each child passenger
              - …
            - `infant` object — Price breakdown for each infant passenger
              - …
        - `pricing` FlightOfferPricing — Full offer pricing with per-passenger breakdown
          - `display` FlightPrice — Full price breakdown including base fare, taxes, fees, and per-passenger amounts
            - `base` number — Base fare amount (before taxes and fees)
            - `currency` string — ISO 4217 currency code
            - `fees` number — Service fees and surcharges
            - `taxes` number — Total taxes applied to the fare
            - `total` number — Total price (base + taxes + fees)
            - `perPassenger` object — Price breakdown per passenger type
              - …
          - `converted` boolean — True if FX currency conversion was applied
        - `baggage` object — Fare baggage allowance on the booked journey (included and paid options; aligns with provider FlattenedJourney.baggage)
          - `hasCarryOnBag` boolean — Whether carry-on bag is included
          - `hasCheckedBag` boolean — Whether checked bag is included
          - `included` object[] — Baggage included in the fare
            - `bagType` 'cabin' | 'checked' | 'personal'
            - `description` string
            - `passengerType` 'ADT' | 'CHD' | 'INF' | 'ALL'
            - `pieces` integer
            - `pricing` FlightItemPricing — Pricing for an ancillary item (e.g. baggage)
              - …
            - `size` string
            - `unit` string
            - `weightKg` number
          - `paid` object[] — Available paid baggage options
            - `bagType` 'cabin' | 'checked' | 'personal'
            - `description` string
            - `passengerType` 'ADT' | 'CHD' | 'INF' | 'ALL'
            - `pieces` integer
            - `pricing` FlightItemPricing — Pricing for an ancillary item (e.g. baggage)
              - …
            - `size` string
            - `unit` string
            - `weightKg` number
        - `terms` object, nullable — Booking terms from the provider
          - `changeable` boolean
          - `refundable` boolean
          - `summary` object[]
            - `level` string
            - `message` string
          - `changeFee` FlightFee, nullable — Change or refund fee published by the provider. Null when the provider does not publish a fee.
            - `pricing` object, nullable — Fee pricing; null when only a percentage is available
              - …
            - `percent` number, nullable — Fee as a percentage of the base fare (e.g. 100 = full penalty). May appear without pricing.
            - `applicability` 'anytime' | 'noShow' | 'beforeDeparture' | 'afterDeparture' — When the fee applies
            - `label` string — Human-readable fee description (e.g. 'Change fee (before departure)')
          - `refundFee` FlightFee, nullable — Change or refund fee published by the provider. Null when the provider does not publish a fee.
            - `pricing` object, nullable — Fee pricing; null when only a percentage is available
              - …
            - `percent` number, nullable — Fee as a percentage of the base fare (e.g. 100 = full penalty). May appear without pricing.
            - `applicability` 'anytime' | 'noShow' | 'beforeDeparture' | 'afterDeparture' — When the fee applies
            - `label` string — Human-readable fee description (e.g. 'Change fee (before departure)')
          - `hasChangeFee` boolean
          - `hasRefundFee` boolean
      - `passengers` object[] — Passenger details as submitted and confirmed by the provider
        - `type` string — Passenger type code (ADT, CHD, INF)
        - `title` string — Passenger title (Mr, Mrs, Ms, etc.)
        - `firstName` string — Passenger first name as on travel document
        - `lastName` string — Passenger last name as on travel document
        - `middleName` string — Passenger middle name
        - `dateOfBirth` string — Date of birth (YYYY-MM-DD)
        - `birthday` string, date — Date of birth (YYYY-MM-DD)
        - `gender` string — Passenger gender: M or F
        - `nationality` string — Passenger nationality as ISO country code
        - `passengerType` integer — 0=Adult, 1=Child, 2=Infant
        - `documentType` string — Type of travel document (e.g. passport, id_card)
        - `documentNumber` string — Travel document number
        - `documentIssueCountry` string — ISO country code of the document issuing country
        - `documentExpiry` string — Travel document expiry date (YYYY-MM-DD)
      - `contact` object — Primary contact person for the booking
        - `firstName` string — Contact first name
        - `lastName` string — Contact last name
        - `middleName` string — Contact middle name
        - `email` string — Contact email address for booking confirmation
        - `phoneCountryCode` string — Phone country code without + (e.g. 1 for US, 33 for France)
        - `phoneNumber` string — Phone number without country code
      - `order` object — Order and provider confirmation details
        - `reference` object — Provider and airline reference identifiers
          - `orderId` string — Provider order or PNR reference ID
          - `provider` object — Provider-level booking reference (code + PNR)
            - `code` string — Provider code (e.g. SABRE, TRAVELPORT)
            - `pnr` string — Provider PNR (Passenger Name Record) locator code
          - `airlineBookings` object[] — Per-airline booking references and PNR codes
            - `airlineCode` string — Airline IATA code
            - `airlineName` string — Airline name
            - `airlinePnr` string — Airline-specific PNR/locator code
            - `pnr` string — PNR locator code for this airline
        - `currency` string — ISO 4217 currency code for this order
        - `status` string — Order status from the provider (e.g. ticketed, created)
        - `price` object — Order price as confirmed by the provider
          - `currency` string — ISO 4217 currency code
          - `total` number — Total order price
        - `ticketLimitTime` string — Deadline for ticket issuance (UTC)
        - `timestamp` string — UTC timestamp when the order was created
      - `airlineLocators` object[] — Airline-specific PNR/locator codes
        - `airlineCode` string — Airline IATA code
        - `airlinePnr` string — Airline-specific PNR/locator code
      - `pricing` object — Billing breakdown for this booking including base fare and any ancillary services
        - `subtotal` number — Subtotal before ancillary services
        - `servicesAmount` number — Total cost of attached ancillary services (seats, baggage, etc.)
        - `seatsAmount` number — Total cost of seat selections
        - `baggageAmount` number — Total cost of additional baggage
        - `totalAmount` number — Grand total charged to the customer
        - `currency` string — ISO 4217 currency code
      - `payment` object — Payment amounts captured for this booking
        - `amount` number — Amount captured for payment
        - `currency` string — ISO 4217 currency code of the payment
      - `remarks` object[] — Reservation remarks or comments from the provider
        - `name` string — Remark name or category
        - `value` string — Remark content
      - `selectedServices` SelectedService[] — Ancillary services attached to this booking (seats, baggage, etc.)
        - `passengerIndex` integer — Zero-based index of the passenger this service is for (matches position in passengers array)
        - `serviceId` string — Service identifier from servicesAttachable.groups[].services[].serviceId
        - `quantity` integer — Number of units of this service to attach
      - `bookedServices` FlightBookedService[] — Detailed view of the ancillary services confirmed by the provider for this booking, including pricing and per-passenger / per-segment metadata. Present once /services has been called.
        - `serviceId` string, required — Encoded service identifier (carries provider serviceId, post-margin price, currency, category)
        - `name` string — Human-readable service name (e.g. 'Seat 1A')
        - `category` string — Service category (e.g. 'seat', 'baggage')
        - `passengerType` string — Applicable passenger type (ALL, ADT, CHD, INF)
        - `passengerIndex` integer — Index of the passenger this service applies to (0-based; matches the passengers[] array)
        - `segmentKey` string — The flight segment this service applies to (matches journey.segments[].segmentKey)
        - `quantity` integer — Number of units booked
        - `createdAt` string, date-time — UTC timestamp when the provider attached the service
        - `phase` string — Provider phase, e.g. 'post_booking'
        - `status` string — Provider status of this service, e.g. 'pending', 'confirmed'
        - `pricing` FlightItemPricing, required — Pricing for an ancillary item (e.g. baggage)
          - `display` FlightMoneyAmount — A monetary amount with currency
            - `amount` number — Monetary amount
            - `currency` string — ISO 4217 currency code
          - `converted` boolean — True if FX currency conversion was applied
        - `metadata` object — Category-specific metadata. Contains exactly one of `seat` (when category is 'seat') or `baggage` (when category is 'baggage').
          - `seat` object — Seat details — present only when category is 'seat'
            - `available` boolean — Whether this seat is currently available
            - `position` string — Physical position (window, middle, aisle)
            - `seatColumn` string — Column letter (e.g. A, B, C)
            - `seatNumber` string — Full seat label (e.g. 1A)
            - `seatRow` integer — Row number
            - `seatType` string — Seat class/type (standard, extra_legroom, exit_row, ...)
          - `baggage` object — Baggage details — present only when category is 'baggage'
            - `bagType` string — Type of bag (e.g. checked, cabin)
            - `pieces` integer — Number of bag pieces booked
            - `weightKg` number — Weight allowance in kilograms
      - `ticketData` object — Ticket issuance details from the provider
        - `confirmationId` string — Ticket confirmation identifier
        - `ticketedAt` string — UTC timestamp when the ticket was issued
        - `provider` string — Provider that issued the ticket
        - `source` string — Source system that generated the ticket
      - `timings` object — Step-by-step UTC timestamps for booking flow observability
        - `startedAt` string — When the booking flow was initiated
        - `persistedAt` string — When the booking record was saved to the database
        - `orderSentAt` string — When the order request was sent to the provider
        - `pnrReceivedAt` string — When the PNR confirmation was received from the provider
        - `paymentStartedAt` string — When payment capture was initiated
        - `paymentCompletedAt` string — When payment capture was completed
        - `completedAt` string — When the full booking flow was completed
      - `settings` object — Booking settings
      - `paymentInput` object — Echo of payment submitted when creating the booking; may include additional provider-specific fields
        - `method` 'TRANSACTION_ID' | 'CREDIT' — How the booking was paid: Stripe (`TRANSACTION_ID`) or credit line (`CREDIT`)
        - `transactionId` string — Stripe transaction id when `method` is `TRANSACTION_ID`

## Other responses

- `400` — Bad request — invalid PNR lookup parameters
- `401` — Unauthorized
- `404` — Booking not found (PNR lookup only)
- `500` — Server error

---

[API](https://skmtc.net/liteapi/apis/api-search.md) · [All operations](https://skmtc.net/liteapi/apis/api-search/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/liteapi/api-search/versions/315ba2a4dcf4/schema)
