Seats Guide

The Seats APIs support the optional selection and booking of free and paid seats for both GDS and NDC content.

Related Content:JSON APIs Guide, Booking Guide, Seat Map API Reference, Seat Book API Reference

In this guide:

Basic Concepts

An assigned seat included in the price of the fare is a free seat. The customer must still select the seat but no separate payment is required. When a seat assignment must be purchased in addition to the fare, if desired, that's a paid seat.

Key points about paid seats:

  • Paid seats are a type of ancillary, which is any paid optional service filed for a flight. Other industry examples are paid baggage, carbon offsets, pet transport fees, and unaccompanied minor charges. Paid seats are detailed here instead of with other ancillaries such as paid baggage because they use the seat map and book requests that are also used for free seats instead of the ancillary shop and book requests.

  • Paid seats are paid for separately from the fare. For paid seats you must add a separate payment either before or during ticketing, and an electronic miscellaneous document (EMD) is issued for that payment. See Ancillary Payment & EMDs in the Ancillary Guide for more about EMDs, including payment requirements for specific NDC carriers.

Both free and paid seats follow the same workflow: You first send a seat map request to return a list of available seats and prices as applicable, followed by a seat book request to select the chosen seat and add it to the workbench.

You can send a seat map request to check availability at various points in the workflow, per the support table below.

The seat map response returns seat offers for each traveler segment, along with the status and characteristics of each seat. These seat offers are similar to offers in a Search response. In the JSON Search APIs, an offer is a product available at a specific price under a set of terms and conditions. A product is the flight or connecting flights for one leg of the itinerary, plus a service level that includes the cabin class and any fare codes that may apply. At booking, the selected offer from the Search response - including the flight/s, service level, price, terms and conditions, and brand if applicable - is converted into a single Offer object that is subsequently returned for that booking.Free seats are returned in an offer with a price point of zero. Paid seats are returned in one or more offers, with seats in each offer available at the same price.

The following seat status codes are commonly returned by airlines:

  • A: Available

  • O: Occupied

  • R: Restricted

  • N: No Seat

The seat book request is sent in a workbench session to add the selected seat to the workbench. Commit the workbench to book the seat.

Bundled Fares

If a seat is combined with an air offer, that offer is called a bundled fare and is returned in the Search API response. No additional price is charged for a seat in a bundled fare. For any traveler who has selected an ancillary bundle with a seat, a paid seat offer with price 0 00 is returned in the seat map response. At this time bundled fares are supported only for NDC in Search and AirPrice, and only for UA dynamic bundled fares.

Seats Support

The JSON APIs currently support free and paid seats in the booking and post-booking workflows as noted below for NDC and GDS. The table also notes support for requesting seat maps at various points in the JSON APIs workflow. Also see Canceling Seats later in this topic.

General notes:

  • Paid seats are a type of ancillary. See Ancillary Payment & EMDs for payment details, including payment requirements for specific NDC carriers.

  • The Add Product workflow, which creates a booking for a known itinerary without first searching and pricing, does not support seats in the initial booking workflow. Seats can be added after the reservation is created.

  • For GDS only, you can add some paid seats during one workflow session and add more seats in a later session. For example, you could book paid seats for one passenger in one workbench session, and add paid seats for a second passenger later. For NDC you must select all seats in the same booking session; you cannot add them later.

*The following NDC carriers do not support seats: AF/KLM, LHG, QR, AV, SK. Seats are supported for EK only for an existing reservation, not in the initial booking workflow. See the NDC Carrier Specific Notes for more details.
**Available in Ancillaries 24.11.24 and later. Note that seat map results for GDS are cached after a Search request and the request does not need to be repeated in a subsequent booking workbench. Seat map results are not cached outside a workbench for NDC or for GDS after AirPrice, and the seat map request must be repeated during booking.

Seat Type

Standalone Seat Map (full payload)

Request seat map after Search**

Request seat map after AirPrice**

 

Seat map and book in the initial booking workflow Seat map and book for an existing reservation Seat map and book in NDC Instant Pay flow

Change seat (cancel & rebook seat)

Cancel seat

GDS

NDC*

GDS

NDC*

GDS

NDC*

GDS

NDC*

GDS

NDC*

NDC only*

GDS

NDC*

GDS

NDC*

Paid seats

Yes

No

Yes

No

Yes

Yes

Supported only for AF/KLM, LHG, BA

No

Yes

Yes

Not supported for AA

Yes

Yes

Yes

Supported only for existing reservation, not during initial booking

Yes

Yes

Supported only for existing reservation, not during initial booking

Yes

Free seats

Yes

No

Yes

No

Yes

Yes

Supported only for AF/KLM, LHG, BA

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Seats Workflows

Seat Availability before Booking

You can send the Seat Map request, which sends identifiers from a previous search or price request, to check availability at various points in the JSON APIs workflow, per the support table above.

The Standalone Seat Map request is a full payload request that sends flight details including a booking code without needing a previous request. It returns a view-only seat map and can be sent on its own, either within or outside of a workbench session. (GDS only; not supported for NDC.)

The seat booking workflow, however, must take place in a reservation workbench session per the following sections.

Seat Map and Selection Workflow during Booking

When selecting seats as part of the initial booking workflow, send the seat map and book requests during the workflow as follows. This creates a held booking with assigned seats.

  1. Create a reservation workbench.
  2. Add offer.
  3. Add traveler.
  4. Send a seat map request if not already requested prior to the workbench session (cached only for GDS and only after a Search request).
  5. Send one seat book request for each segment. You can include multiple travelers in each request.
  6. Commit the workbench.

Seat Map and Selection Workflow for Existing Reservation

Take the following steps to add seats to an existing reservation. This flow updates the held booking by adding assigned seats.

  1. Create a post-commit workbench.
  2. Send a seat map request if not already requested prior to the workbench session.
  3. Send one seat book request for each segment. You can include multiple travelers in each request.
  4. Commit the workbench.
For GDS only, you can add some paid seats during one workflow session and add more seats in a later session. For example, you could book paid seats for one passenger in one workbench session, and add paid seats for a second passenger later. For NDC you must select all seats in the same booking session; you cannot add them later.

Seats Workflow Diagrams

Seats APIs Diagrams

Seat Map Layout Diagram

You can request seat availability by any of the following:

  • offer (all flights on the itinerary)

  • product (all flights on one leg of an itinerary)

  • segment sequence number/s (one or more individual flights).

The following diagram illustrates the general structure of the Seat Map request and response, including most high-level objects. This diagram shows the payload format sent during a workbench session. Seat map requests sent outside a workbench session use the same endpoint and a slightly different message payload. See the Seat Map API Reference for endpoint and reference details and examples.

The Seat Map response is the same regardless of where in the workflow the request is sent. The response returns one offer for each price level of seats. Each instance of CatalogOffering includes a Price object with a value of zero for free seats and a positive value for paid seats.

For example, a response might return one instance of CatalogOffering for seats costing 10 USD, another for seats costing 25 USD, and another for free seats at 0 USD. Information across those seats is consolidated in the ReferenceList object, which lists for each row in the cabin each seat number and the characteristics for that seat.

Seat Book Layout Diagram

After retrieving a list of available seats, you can send a seat book request for any available seat to add it to the workbench. For endpoints and references see the Seat Book API Reference.

The seat book response returns an identifier for the transaction.

The following diagram illustrates the general structure of the Seat Book request and response, including most high-level objects.

Canceling Seats

You can cancel seats that were booked in the same or a previous workbench session. If desired, you can then select new seats in the same or a subsequent workbench session.

Only one seat per workbench session can be canceled. If you need to cancel multiple seats, send one seat cancel request at a time, commit the workbench, and start a new workbench session to cancel the next seat, and so on.
You cannot cancel seats from a ticketed itinerary.

Seat Cancel Support

Free and paid seat cancellation is supported in the booking and post-booking workflows as follows:

Seat Type

Can be canceled out of the initial booking workflow for

 

 

Can be canceled for an existing reservation (cancels seats booked in the same or a previous workbench session):

GDS

NDC

GDS

NDC

Paid seats

No

Yes

Yes

Yes

Free seats

Yes

Yes

Yes

Yes

Seat Cancel during Initial Booking

The following full workflow includes canceling the seats selected in that workflow.

  1. Create a reservation workbench.
  2. Add offer.
  3. Add traveler.
  4. Send a seat map request.
  5. Send a seat book request for each segment. You can include a seat assignment for multiple travelers on the same segment in the same request.
  6. Send a seat cancel request.
  7. Optional: Repeat steps 4 and 5 above to select new seats if desired.
  8. Complete the reservation workflow as necessary, and then commit the workbench.

Seat Cancel for Existing Reservation

The following full workflow includes canceling the seats selected in a previous workflow.

You can also send a seat cancel request for seats added in the same post-booking workflow session.

  1. Create a post-commit workbench.
  2. Send a seat cancel request.
  3. Optional: Send seat map and seat book requests per above to select new seats, if desired.
  4. Complete the reservation workflow as necessary, and then commit the workbench.