Overview
Offer retrieval is a two-step process:- Create an offer request
- Retrieve offers associated with that request
- Deterministic search results
- Supplier timeout isolation
- Async supplier aggregation support
- Pagination support
- Reliable pricing consistency
Offer Lifecycle
Create Offers Request
Request Body
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
| data | object | Yes | Offer request parameters |
| data.slices | array | Yes | Flight segments |
| data.passengers | array | Yes | Passenger list |
| data.cabin_class | string | Yes | Cabin class |
| return_offers | boolean | No | Return offers immediately |
| supplier_timeout | integer | No | Supplier timeout in seconds, ensure itβs greater or equals to 2 |
Slice Object
Defines a flight segment.Passenger Object
Supported passenger types:
- adult
- child
- infant_without_seat
Cabin Classes
Supported values:- economy
- premium_economy
- business
- first
Example Request
Response
Pagination
This endpoint supports cursor-based pagination for efficient retrieval of large result sets. Use thelimit, after, and before parameters to navigate between pages.
Example
Filtering Connections
Retrieve an Offer
GET /v1/air/offers/:id
Retrieve a single offer by ID to view specific pricing and itinerary details before booking.
Path Parameters
| Parameter | Description |
|---|---|
id | The unique identifier for the Offer. |
Query Parameters
| Parameter | Description |
|---|---|
return_available_services | Include optional services such as seats and baggage. |
Example Request
Response
The Offer Object
An Offer is a time-sensitive, priced itinerary. It represents the final βquoteβ provided by a supplier before a booking is finalized. Because airline pricing is dynamic, these objects are ephemeral and must be consumed before they expire.Attributes
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the offer. |
object | string | The type of object (always offer). |
total_amount | string | The total price including all taxes and fees. |
currency | string | Three-letter ISO currency code (e.g., USD, EUR). |
expires_at | string | ISO 8601 timestamp indicating when the offer expires. |
slices | array | A list of flight slices (legs) included in the itinerary. |
passengers | array | The list of passengers and their associated pricing breakdown. |
Offer Expiration
Offers expire after a supplier-defined duration. Expired offers cannot be booked. If theexpires_at timestamp has passed, you must initiate a new offer request to retrieve fresh availability and pricing. Attempting to book an expired offer will result in an error.
Pagination
The list endpoint supports cursor-based pagination to manage large result sets efficiently.Best Practices
Cache Request IDs
Store the
offer_request_id to quickly refresh results for a user session.Avoid Long-term Storage
Offers are ephemeral. Do not store them in long-term databases.
Verification
Always verify the
expires_at field on the client side before allowing a user to proceed to the booking stage.Performance
Use the
limit parameter to paginate results and keep your UI responsive.Timeouts
Respect supplier timeouts to ensure optimal system performance and user experience.
Next Steps
Create Order
Book an offer and issue a ticket by creating an order.

