canonical: https://jentic.com/apis/amadeus.com/amadeus-seatmap-display

# Amadeus Seatmap Display

The Amadeus Seatmap Display API returns the cabin layout and per-seat metadata for a flight, enabling the seat-selection step of a booking flow. Two endpoints cover the common patterns: a GET keyed on a confirmed flight order id, and a POST that accepts an in-progress flight offer and returns the seat map before the booking is committed. Each seat in the response includes coordinates, characteristics (window, aisle, exit row, extra legroom), availability, and applicable price.

## For AI agents

Render an aircraft cabin map for a flight offer or order, with per-seat coordinates, characteristics, prices, and availability for in-flow seat selection.

## Scope

Does not commit bookings, charge for upgrades, or change seat assignments - use for retrieving and rendering cabin seat maps only.

## Capabilities

- Retrieve the seat map for a flight by flightOrderId
- Generate a seat map from an in-progress flight offer payload via POST before booking
- Surface per-seat coordinates, row, and column for cabin rendering
- Expose seat characteristics - window, aisle, exit row, extra legroom, restricted
- Return per-seat availability and price so the UI can disable or charge for premium seats

## Use cases

### In-flow seat selection during booking

Render the seat map mid-booking after the user has selected a flight offer but before committing the order. POST the offer payload to Seatmap Display, parse the returned cabin into a grid, and let the user pick a seat with live pricing and availability. This is the standard way to add a seat-selection step to a custom booking funnel built on Amadeus Flight Offers Search.

Example prompt: POST /shopping/seatmaps with a flight offer payload and return all seats marked AVAILABLE with characteristic 'WINDOW'.

### Post-booking seat upgrade

After a flight is booked, allow the passenger to upgrade their seat assignment. Use the GET variant keyed on flightOrderId to retrieve the live seat map for an existing reservation, surface available premium seats with their prices, and present an upgrade flow. Combine with Flight Order Management to update the seat assignment on the order.

Example prompt: Call GET /shopping/seatmaps with flight-orderId and return all seats with characteristic 'EXIT_ROW' that are AVAILABLE.

### Seat preference matching

For corporate travel platforms with stored seat preferences (window, aisle, no middle seats), automatically pre-select the best available seat on a freshly booked flight. Call Seatmap Display with the flight order, score each available seat against the traveller's profile, and POST the chosen seat back to the order. The seat characteristics array makes preference matching straightforward.

Example prompt: Given a stored preference of 'aisle, no middle, no exit row', call Seatmap Display and return the lowest-row aisle seat that matches.

### AI agent seat assistant

An AI agent helping a traveller pick a seat uses Seatmap Display to ground its recommendation in real cabin data rather than guessing. The agent calls Jentic to discover the operation, executes it for the user's flight offer, and presents the best 3 seats matching the user's preferences with live prices. This grounds AI seat advice in actual availability.

Example prompt: Use Jentic to search 'get a flight seat map', execute Seatmap Display for the user's flight offer, and return the top 3 available aisle seats sorted by ascending price.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /shopping/seatmaps | Get the seat map for a flightOrderId |
| POST | /shopping/seatmaps | Generate a seat map from a flight offer payload |

## Key resources

- **Seatmaps** — Retrieve a cabin seat map by flightOrderId or generate one from a flight offer payload.

## Why Jentic

- **Setup:** Wiring Seatmap Display by hand means running the Amadeus Self-Service OAuth 2.0 client_credentials exchange, refreshing the bearer token before it expires, choosing the test or production host, and supporting both the GET keyed on a flightOrderId and the POST that accepts an in-progress flight offer payload. Through Jentic you install once, import Seatmap Display from the API Directory, store the client_id and client_secret once, and your agent calls it.
- **Permission scoping:** The GET takes a flightOrderId as a query parameter and the POST takes the flight offer in the request body, not the URL path, so scoping is by operation rather than by a specific flight. Limit the agent to the operations it needs, such as reading a seat map for an offer, and it cannot reach booking or order-cancellation operations because this API is read-only for cabin layouts.
- **Credential handling:** Your Amadeus client_id and client_secret are stored once, encrypted, by your own Jentic One instance, which runs the OAuth exchange and injects a fresh bearer token at execution time. The secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get a flight seat map', and Jentic returns the GET and POST Seatmap Display operations with their flightOrderId and offer-payload schemas so the agent calls the right one.

## Related APIs

- **Amadeus Flight Offers Price** — Flight Offers Price re-prices an offer; Seatmap Display renders the cabin for that same offer.
- **Amadeus Flight Create Orders** — Flight Create Orders commits the booking; Seatmap Display feeds the chosen seat into the order.
- **Amadeus Flight Order Management** — Flight Order Management lets you retrieve and update an existing order - including a seat upgrade.

## FAQ

### What authentication does the Seatmap Display API use?

OAuth 2.0 client credentials. Exchange your Amadeus API key and secret for a bearer access token, then pass it as the Authorization header on each call. Through Jentic, the client secret stays encrypted in the vault and the agent only ever receives a scoped token.

### When should I use the GET vs the POST variant?

Use GET /shopping/seatmaps with a flightOrderId for an already-booked itinerary, for example to support a post-booking seat upgrade flow. Use POST /shopping/seatmaps with a flight offer payload during the booking funnel - before the order has been committed - to render the seat map for the offer the user has just selected.

### What seat characteristics are returned?

Each seat includes its row and column coordinates and a characteristics list - common values include WINDOW, AISLE, EXIT_ROW, EXTRA_LEGROOM, and RESTRICTED. The response also includes per-seat availability and price, so a UI can both disable unavailable seats and charge for premium ones.

### What are the rate limits for the Seatmap Display API?

Amadeus enforces per-second and per-month transaction quotas that vary by environment. The test environment (test.api.amadeus.com/v1) has low quotas suitable for development; production limits are configured in your Amadeus for Developers contract.

### How do I get a flight seat map through Jentic?

Install with pip install jentic, then search 'get a flight seat map' to discover the Seatmap Display operations. Load the GET or POST schema and execute. Jentic returns the parsed cabin map ready to render. Get started with Jentic One, the self-hosted execution layer.

### Does test.api.amadeus.com return seat maps for every flight?

No. The test environment is a subset of production. If a query returns no results, retry with a major-city flight (e.g. routes through LON or NYC) or move to production for full coverage.

### Can I limit what my agent is allowed to do with the Seatmap Display API?

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, so you can grant it only the seat-map calls it needs. This API scopes by operation rather than by a specific flight: the GET reads a cabin map for a flightOrderId passed as a query parameter, and the POST returns a seat map from a flight offer sent in the request body. Both operations are read-only for cabin layouts, so an agent limited to them cannot commit bookings, charge for upgrades, or cancel orders.
