---
title: "Get booking details"
method: GET
path: "/flights/bookings/{bookingId}"
tags: ["Flight Bookings"]
---

# Get booking details

`GET /flights/bookings/{bookingId}`

## Request

- Base URL: `https://api.liteapi.travel/v3.0`
- URL: `https://api.liteapi.travel/v3.0/flights/bookings/{bookingId}`
- Auth: API key in header `X-API-Key`

## Overview

Retrieve complete details of a confirmed flight booking using its unique booking ID.

## When to Use

- **Booking confirmation page** - Display full itinerary after booking completes
- **Booking management** - Retrieve details for an existing reservation
- **Itinerary display** - Show passengers, segments, and confirmation numbers
- **Status checks** - Verify booking status for a given booking ID

## What You Get

- **Complete itinerary** with all flight segments and connection details
- **Passenger manifest** with names, documents, and seat assignments
- **Booking status** and provider confirmation reference
- **Pricing breakdown** including taxes and fees paid
- **Ancillary services** (seats, baggage) in `booking.bookedServices`, with the post-margin price charged for each; when the live provider omits them, falls back to the attach/book snapshot. Omitted only when the booking has none

## Key Features

- **Full booking record**: Returns all data associated with the confirmed booking
- **Provider reference**: Includes the provider-side booking confirmation number
- **Passenger details**: Complete passenger information for all travelers

## Quick Start

Provide the `bookingId` (returned from `POST /flights/bookings`) in the URL path. Returns the complete booking record.

## Path parameters

- `bookingId` string, required

## Response `200`

Successful response

- object
  - `data` object[]: Booking result array (always one item)
    - `booking` FlightBooking: Flight booking details (maps to provider BookingData)
      - `bookingId` string: Unique booking identifier
      - `bookingRef` string: FlightHub booking reference (FH-YYM-XXXXXXXX)
      - `customTags` object: Optional bag of up to 5 user-defined key/value labels persisted with the booking. Keys must match `^[A-Z0-9_-]+$` (uppercase letters, digits, `-`, `_`). Values are arbitrary strings up to 255 characters. These labels are returned on booking responses and can be used to filter booking list endpoints via the `customTags=KEY:VALUE,KEY2:VALUE2` query parameter.
      - `status` 'CREATED' | 'PENDING_CONFIRMATION' | 'CONFIRMED' | 'CANCELLED' | 'CANCELLED_WITH_CHARGES': Booking status.
      - `cancelIntentAt` string, date-time, nullable: Set when a cancellation was requested and is awaiting airline confirmation (or retained after finalize as evidence). Present on `GET /flights/bookings/{bookingId}` while cancellation is in progress. Omitted when null. Not applicable to prebook endpoints.
      - `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.
      - `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
          - `stopCount` integer: Number of en-route (technical) stops inside this segment. 0 means the segment is genuinely non-stop. A technical stop keeps the same flight number and aircraft (no plane change, no bag re-check) but adds ground time, so a one-segment journey can still have stops.
          - `stops` FlightSegmentStop[]: En-route (technical) stops inside this segment, in travel order. Omitted when stopCount is 0.
            - `airportCode` string: IATA code of the airport where the aircraft lands for the technical stop
            - `airportName` string: Full name of the stop airport
            - `arrivalTime` string: Local arrival time at the stop airport (ISO 8601)
            - `departureTime` string: Local departure time from the stop airport (ISO 8601)
            - `duration` object: Time spent on the ground at the stop airport
              - …
        - `price` FlightPrice: Full price breakdown including supplier base fare, taxes and fees, and per-passenger amounts. base, taxes and fees are always the supplier values and never include the partner markup; only total carries it, so total may exceed base + taxes + fees. The markup amount itself is not exposed.
          - `base` number: Base fare amount as returned by the supplier (before taxes and fees). Never includes the partner markup.
          - `currency` string: ISO 4217 currency code
          - `fees` number: Supplier service fees and surcharges plus, when the account passes them to the customer, the LiteAPI platform fees itemised in platformFees. Never includes the partner markup.
          - `taxes` number: Total airline / government taxes applied to the fare, as returned by the supplier. Never includes the partner markup.
          - `total` number: Total selling price, including the partner markup and, when present, platformFees.total. Because base and taxes are supplier values, total may exceed base + taxes + fees when a markup is configured.
          - `platformFees` object: LiteAPI platform fees included in total and fees. Present only when the account passes the fees to the customer. Booking-level amounts (not distributed over perPassenger).
            - `merchantOfRecord` number: Merchant-of-record fee: percentage of the full transaction value, charged when LiteAPI collects the payment (Payment SDK / third-party). Removed at book time for credit-line and CREDIT_CARD settlements.
            - `ticketing` number: Ticketing fee: percentage of the net fare with a floor and ceiling, per booking or per passenger depending on the account configuration. The rate may depend on the operating airlines. Applies to every payment method.
            - `ancillary` number: Ancillary fee on attached seats and bags: percentage of each item's net price with a per-item floor and ceiling. Present on prebooks / bookings once services are attached. Applies to every payment method.
            - `total` number: merchantOfRecord + ticketing + ancillary
          - `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 supplier base fare, taxes and fees, and per-passenger amounts. base, taxes and fees are always the supplier values and never include the partner markup; only total carries it, so total may exceed base + taxes + fees. The markup amount itself is not exposed.
            - `base` number: Base fare amount as returned by the supplier (before taxes and fees). Never includes the partner markup.
            - `currency` string: ISO 4217 currency code
            - `fees` number: Supplier service fees and surcharges plus, when the account passes them to the customer, the LiteAPI platform fees itemised in platformFees. Never includes the partner markup.
            - `taxes` number: Total airline / government taxes applied to the fare, as returned by the supplier. Never includes the partner markup.
            - `total` number: Total selling price, including the partner markup and, when present, platformFees.total. Because base and taxes are supplier values, total may exceed base + taxes + fees when a markup is configured.
            - `platformFees` object: LiteAPI platform fees included in total and fees. Present only when the account passes the fees to the customer. Booking-level amounts (not distributed over perPassenger).
              - …
            - `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. Equipment (bagType equipment) does not count as a checked bag
          - `included` object[]: Baggage included in the fare
            - `bagType` 'cabin' | 'checked' | 'personal' | 'equipment': Type of bag: cabin (carry-on), checked, personal (under-seat / personal item), or equipment (sports equipment or musical instrument)
            - `description` string: Human-readable baggage allowance description from the carrier
            - `passengerType` 'ADT' | 'CHD' | 'INF' | 'ALL': Passenger type this allowance applies to: ADT (adult), CHD (child), INF (infant), or ALL
            - `pieces` integer, nullable: Number of bag pieces for this option. Null when the provider states no piece limit (weight-only allowance); never means zero bags
            - `pricing` FlightItemPricing: Pricing for an ancillary item (e.g. baggage)
              - …
            - `size` string: Bag size / dimensions when published by the carrier (e.g. 55x40x20)
            - `unit` string: Weight unit for the allowance (e.g. kg)
            - `weightKg` number, nullable: Maximum weight per bag in kilograms. Null when the provider states no weight limit
          - `paid` object[]: Available paid baggage options
            - `bagType` 'cabin' | 'checked' | 'personal' | 'equipment': Type of bag: cabin (carry-on), checked, personal (under-seat / personal item), or equipment (sports equipment or musical instrument)
            - `description` string: Human-readable baggage allowance description from the carrier
            - `passengerType` 'ADT' | 'CHD' | 'INF' | 'ALL': Passenger type this allowance applies to: ADT (adult), CHD (child), INF (infant), or ALL
            - `pieces` integer, nullable: Number of bag pieces for this option. Null when the provider states no piece limit (weight-only allowance); never means zero bags
            - `pricing` FlightItemPricing: Pricing for an ancillary item (e.g. baggage)
              - …
            - `size` string: Bag size / dimensions when published by the carrier (e.g. 55x40x20)
            - `unit` string: Weight unit for the allowance (e.g. kg)
            - `weightKg` number, nullable: Maximum weight per bag in kilograms. Null when the provider states no weight limit
        - `terms` object, nullable: Booking terms from the provider (change/refund rules and published fees)
          - `changeable` boolean: True if the fare allows changes (rebooking)
          - `refundable` boolean: True if the fare is refundable
          - `summary` object[]: Human-readable policy messages with severity levels
            - `level` string: Severity of the remark: info, warning, or danger
            - `message` string: Policy message text (e.g. Non-refundable, Changes allowed with fee)
          - `changeFee` object, nullable: Change fee details; 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` object, nullable: Refund/cancellation fee details; 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: True when the provider signalled that a change fee applies to the fare, even when the actual amount is not published in `changeFee`. Lets clients render a "change fee applies — amount on request" remark for fares where the rule is known but the monetary amount is not exposed (common for LCC content distributed via GDS, e.g. U2 / easyJet via Sabre). When `false` or absent, no change fee is known to apply.
          - `hasRefundFee` boolean: True when the provider signalled that a refund/cancellation fee applies to the fare, even when the actual amount is not published in `refundFee`. Lets clients render a "cancellation fee applies — amount on request" remark for fares where the rule is known but the monetary amount is not exposed. When `false` or absent, no refund fee is known to apply.
        - `cabinClass` 'ECONOMY' | 'PREMIUM_ECONOMY' | 'BUSINESS' | 'FIRST' | 'MIXED': Normalized cabin class for the whole journey, derived from segmentFares[].cabin (falls back to fare.family). MIXED when segments are booked in different cabins. Omitted when the cabin is unknown.
        - `fare` object: Fare class information
          - `family` string: Fare family name (e.g. Economy, Business, First)
          - `mixedCabin` boolean: True if outbound and inbound legs are in different cabin classes
          - `mixedFareFamily` boolean: True when legs are sold under different fare families/brands (e.g. Plus outbound + Basic inbound) combined into one fare. `family` reflects the first leg only; baggage and terms reflect the most restrictive leg.
          - `seatsRemaining` integer: Number of seats remaining at this fare
        - `segmentFares` object[]: Per-segment fare details
          - `bookingCode` string: Booking/RBD class code (e.g. W, Y, J)
          - `cabin` string: Cabin class (e.g. Economy, Business, First)
          - `fareBasisCode` string: Fare basis code used for pricing and rules
          - `fareFamily` string: Commercial fare family name
          - `seatsRemaining` integer: Number of seats remaining at this fare
          - `segmentKey` string: Links this fare to the corresponding segment
      - `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: Booking order / PNR reference ID
          - `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, any ancillary services and, when passed to the customer, the LiteAPI platform fees
        - `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: subtotal + services, plus the LiteAPI platform fees when feesIncludedInTotal is true
        - `merchantOfRecordFee` number: LiteAPI merchant-of-record fee included in totalAmount. Only present when feesIncludedInTotal is true and LiteAPI collects the payment (Payment SDK / third-party); dropped at book time when paying with a credit line or your own card (CREDIT / CREDIT_CARD).
        - `ticketingFee` number: LiteAPI ticketing fee included in totalAmount (percentage of the net fare with a floor and ceiling). Only present when feesIncludedInTotal is true. Applies to every payment method.
        - `ancillaryFee` number: LiteAPI ancillary fee included in totalAmount (percentage of each attached seat / bag net price with a per-item floor and ceiling). Only present when feesIncludedInTotal is true and services are attached. Applies to every payment method.
        - `feesIncludedInTotal` boolean: True when the LiteAPI platform fees are added on top of the price and included in totalAmount. Omitted when the account absorbs the fees (they are then deducted from the account commission and not shown).
        - `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
      - `bookedServices` FlightBookedService[]: Ancillary services (seats, baggage) on this booking as reported by the provider, with the post-margin price charged and per-passenger / per-segment metadata. Includes services attached on the prebook and services sold after ticketing. Omitted when the booking has no services.
        - `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: When the service joined the booking: 'pre_booking', 'post_booking', or 'post_ticketing' (sold on the ticketed booking with POST /flights/bookings/{bookingId}/services/confirm)
        - `status` string: Provider status of this service: 'pending', 'requested', 'confirmed', 'failed', 'dropped', 'replaced' or 'cancelled'
        - `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, equipment). equipment is sports equipment or a musical instrument (skis, bike, golf bag...), with its own maxQuantity / maxBagsAllowed
            - `pieces` integer, nullable: Number of bag pieces. Null for an included allowance with no piece limit (weight-only); never means zero bags
            - `weightKg` number, nullable: Weight allowance in kilograms. Null when the provider states no weight limit
            - `maxQuantity` integer: Maximum quantity of this bag option per passenger per segment. Omitted when unknown.
            - `maxBagsAllowed` integer: Highest bag position covered by the bag options of this bagType (e.g. 5 for "4th to 5th bag"). A position, not a count of bags to buy: position 1 may be the fare's free bag. Omitted when unknown.
        - `emdNumber` string, nullable: Airline document (EMD) number issued for a service sold after ticketing. Null until the provider reports it on a later read of the reservation.
      - `ticketData` object: Ticket issuance details when available (confirmation id and ticketed timestamp only; no GDS/provider identity)
        - `confirmationId` string: Ticket confirmation identifier
        - `ticketedAt` string: UTC timestamp when the ticket was issued
      - `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`
      - `canAddServicesAfterTicketing` boolean: On ticketed bookings (status CONFIRMED): true when seats / bags can still be bought with POST /flights/bookings/{bookingId}/services. Requires the provider and fare to support it, a booking paid by Stripe transaction or credit line, and the account option. When false this is the last chance to sell ancillaries before ticketing.
      - `ticketedServices` FlightTicketedServicesSale[]: Seats / bags sales on the ticketed booking. Sold services also appear in pricing.servicesAmount and bookedServices.
        - `batchId` string: Identifier of the selection returned by POST /flights/bookings/{bookingId}/services; send it to /services/confirm
        - `status` 'pending' | 'confirming' | 'requested' | 'sold' | 'partially_sold' | 'failed' | 'cancelled': pending: selected and payment prepared. confirming: being sold. requested: the sale outcome is not known yet and the payment is held until the reservation confirms it. sold / partially_sold: sold (the unsold part of the payment was released). failed: nothing sold, payment released. cancelled: replaced by a new selection, cleared, or released by a cancellation.
        - `services` SelectedService[]: Selected services
          - `passengerIndex` integer, required: Zero-based index of the passenger this service is for (matches position in passengers array)
          - `serviceId` string, required: Service identifier from servicesAttachable.groups[].services[].serviceId
          - `quantity` integer: Number of units of this service to attach
        - `soldServices` SelectedService[]: Services the provider sold
          - `passengerIndex` integer, required: Zero-based index of the passenger this service is for (matches position in passengers array)
          - `serviceId` string, required: Service identifier from servicesAttachable.groups[].services[].serviceId
          - `quantity` integer: Number of units of this service to attach
        - `currency` string: Booking currency (ISO 4217)
        - `amount` number: Services total of the selection
        - `soldAmount` number: Services total of what was sold
        - `platformFee` number: Merchant-of-record fee added on top of the services (only when platform fees are passed to the customer)
        - `chargeAmount` number: Amount authorized on the payment intent (or checked against the credit line)
        - `chargedAmount` number: Amount kept from the customer after the sale
        - `paymentMethod` 'TRANSACTION_ID' | 'CREDIT': Always the booking's own payment method
        - `transactionId` string: Stripe payment intent of the services (TRANSACTION_ID). Distinct from the booking's fare payment.
        - `failedCategories` string[]: Categories the provider did not sell
        - `error` string: 'price_changed' (nothing sold: a service is no longer offered at the price shown), 'rejected', or 'payment_collection_failed'
        - `refundStatus` 'refunded' | 'manual': Set when the booking is cancelled after the sale: refunded automatically, or settled by support (the provider did not reverse every airline document)
        - `amountRefunded` number: Amount refunded to the customer when the booking was cancelled after the sale (refundStatus = refunded). Includes the platform fee when it is refundable.
        - `createdAt` string, date-time: When the selection was created (UTC)
        - `confirmedAt` string, date-time: When the sale was submitted via /services/confirm (UTC)
        - `settledAt` string, date-time: When the batch reached a final status: sold, partially_sold, failed, or cancelled (UTC)

## Other responses

- `400`: Bad request — invalid booking ID format
- `401`: Unauthorized
- `404`: Booking not found

---

[API](https://skmtc.dev/liteapi/apis/api-flights.md) - [All operations](https://skmtc.dev/liteapi/apis/api-flights/llms.txt) - [OpenAPI document](https://skmtc.dev/liteapi/apis/api-flights/revisions/7ccb4b3a8bde?raw)
