API delivery for Itineraries
With Itineraries, you can display customers' booking information and help them find booking-related products or services such as tours or experiences. You can also use the data to analyze booking trends and create reports for your stakeholders.
Delivery options
Your API delivery of Itineraries data can use either a push or pull mechanism.
Push mechanism
The push service sends itinerary updates as they occur. Core booking fields are available within minutes of a transaction, with ancillary and enrichment fields following within 2–4 hours. This option allows you to:
- Display customers' booking information on your website or app
- Offer travelers additional products and services to purchase for their trip
Push events will be delivered via a Webhook to the URL you provide, in the format of an HTTP POST message. These messages may arrive unordered, so refer to the creation_date and update_date_time elements to determine order.
For details on how to adopt this delivery option, see API setup.
Working with push events
Because itinerary data is delivered as it becomes available, you may receive multiple events for the same itinerary—an initial event with core fields followed by subsequent events as ancillary data is enriched or the itinerary is updated. See Available fields for a full breakdown of which fields arrive in real time and which follow within 2–4 hours.
Do:
- Expect multiple events per itinerary: use
itinerary_idto correlate events and always treat the event with the latestupdate_date_timeas authoritative - Choose how to handle updates: when you receive a new event for an existing itinerary, you can either overwrite the previous record with the latest data, or append each event to maintain a history of changes
- Handle missing fields gracefully: ancillary fields may be absent from early events; check for field presence before processing
Don't:
- Assume the first event contains the full payload: ancillary fields follow in later events
- Treat multiple events for the same itinerary as errors: this is expected behavior
- Treat real-time financial values as final: they may be refined within 24 hours
Pull mechanism
The pull service provides detailed itinerary data to support:
- Data analysis
- Reconciling booking records against Expedia Group data
- Data retrieval for time windows where push delivery failed
- Help desk investigations
As with push delivery, itinerary data is available in two tiers for pull delivery: core fields (itinerary_ID, status, gross_booking_value, checkin_date, and checkout_date) are accessible within minutes of a booking or update, with ancillary and enrichment fields following within 2–4 hours. See Available fields for a full breakdown by field.
This service consists of two HTTP GET endpoints that allow you to:
- Create a list of itineraries created or updated in a specified time range using the
creation_date_start,creation_date_end,update_date_time_start, andupdate_date_time_endvariables - Retrieve specific itineraries by their
itinerary_id
For details on the authentication process, see API setup.
Retrieving itinerary data by time window
To retrieve itinerary data for a given time window, poll the GET /itineraries endpoint using update_date_time_start and update_date_time_end as your query window.
Recommended approach:
- Use update_date_time fields for the query window: Use
update_date_time_startandupdate_date_time_endas your query window to retrieve itineraries created or updated in a given period. Usingcreation_datealone will miss itinerary updates. - Persist your last successful poll timestamp: Use this as your next
update_date_time_start, advancing the window incrementally. - Deduplicate: Use
itinerary_id+update_date_timein your queries. The same itinerary may appear across multiple poll windows as ancillary fields are enriched. Always treat the record with the latestupdate_date_timeas authoritative.
If your use case requires the most complete and timely itinerary data, push delivery is recommended.
Available fields
The tables below list the fields, including any nested objects, available through our push and pull delivery methods. The Availability column indicates when each field is typically accessible after a booking event or update:
- Real time: Available within minutes of a booking or update
- Near-real-time: Available within 2–4 hours of a booking or update
Field names that begin with a name followed by a period (for example, <variable>.<nested variable>) indicate a nesting relationship.
White Label Travel Platform
| Field name | Definition | Example | Availability |
|---|---|---|---|
itinerary_id | The itinerary number or point of sale order reference number. | 72622069245694 | Real time |
status | The status of the itinerary and of its individual items. | Possible values: confirmed cancelled | Real time |
creation_date* | The date a booking was initially made, represented in ISO 8601 date format (YYYY-MM-DD). | 2023-02-05 | Real time |
update_date_time* | The last update date and time for the itinerary, represented in ISO 8601 date format (YYYY-MM-dd"T"HH:mm:ss.SSSZ). | 2023-10-21T00:00:00.000Z | Real time |
online | Indicates whether the itinerary was booked online (true) or via an agent (false). Represented as a Boolean. | true | Near-real-time |
package | Indicates whether the itinerary is a part of a package or a standalone booking. Represented as a Boolean. | false | Near-real-time |
payment_type | The means of payment used at checkout. | Possible values: credit card points split pay | Real time |
point_of_sale_country_code | The country code for the point of sale from which the customer made the booking. Represented in two-letter ISO 3166-1 alpha-2 format. | GB | Near-real-time |
purchaser | Identification of the person who made the booking. See purchaser table for listing of nested items. | ||
property_booking_items | Lodging components booked as part of the itinerary. See property_booking_items table for listing of nested items. | ||
flight_booking_items | Air components booked as part of the itinerary. See flight_booking_items table for listing of nested items. | ||
car_booking_items | Car components booked as part of the itinerary. See car_booking_items table for listing of nested items. | ||
activity_booking_items | Activity components booked as part of the itinerary. See activity_booking_items table for listing of nested items. | ||
insurance_booking_items | Insurance components booked as part of the itinerary. See insurance_booking_items table for listing of nested items. | ||
rate | The rate and pricing details of a booking item or of the whole itinerary. See rate table for listing of nested items. | ||
coupon | The coupon applied to the itinerary, when applicable. See coupon table for listing of nested items. |
Notes for all White Label Travel Platform fields
* Date fields are in Coordinated Universal Time (UTC).
** This represents Personally Identifiable Information (PII) data. Be sure to handle this correctly per your company's guidelines. Include only when absolutely necessary.
Travel Agent Affiliate Program (TAAP)
| Field name | Definition | Example | Availability |
|---|---|---|---|
itinerary_id | The itinerary number or point of sale order reference number. | 72622069245694 | Real time |
agency_reference_code | A custom itinerary reference provided by the agency at checkout. | 86549B_GB | Real time |
status | The status of the itinerary and of its individual items. | Possible values: confirmed cancelled | Near-real-time |
creation_date* | The date a booking was initially made, represented in ISO 8601 date format (YYYY-MM-DD). | 2023-02-05 | Real time |
update_date_time* | The last update date and time for the itinerary, represented in ISO 8601 date format (YYYY-MM-dd"T"HH:mm:ss.SSSZ). | 2023-10-21T00:00:00.000Z | Real time |
online | Indicates whether the itinerary was booked online (true) or via an agent (false). Represented as a Boolean. | true | Near-real-time |
point_of_sale_country_code | The code for the country in which the customer made the booking. Represented in two-letter ISO 3166-1 alpha-2 format. | GB | Near-real-time |
purchaser | Identification of the person who made the booking. See purchaser table for listing of nested items. | ||
agency | Identification of the TAAP agency and agent who made the booking. See agency table for listing of nested items. | ||
payment | Payment information for the itinerary. See payment table for listing of nested items. | ||
property_booking_items | Lodging components booked as part of the itinerary. See property_booking_items table for listing of nested items. | ||
flight_booking_items | Air components booked as part of the itinerary. See flight_booking_items table for listing of nested items. | ||
car_booking_items | Car components booked as part of the itinerary. See car_booking_items table for listing of nested items. | ||
activity_booking_items | Activity components booked as part of the itinerary. See activity_booking_items table for listing of nested items. | ||
rate | The rate and pricing details of a booking item or of the whole itinerary. See rate table for listing of nested items. | ||
earnings | The commission details of a booking item or of the whole itinerary. See earnings table for listing of nested items. |
Notes for all TAAP fields
* Date fields are in Coordinated Universal Time (UTC).
** This represents Personally Identifiable Information (PII) data. Be sure to handle this correctly per your company's guidelines. Include only when absolutely necessary.
API details
We've provided a snapshot of the API schema and configurations based on how your business would use Itineraries API data. You can download the OpenAPI specifications and use an API testing tool to understand how the examples and schema definitions compare to the actual output.
White Label Travel Platform
The fields, including any nested objects, available to our White Label Travel Platform partners through our push and pull delivery methods are:
TAAP
The fields, including any nested objects, available to our TAAP partners through our push delivery method are: