### POST /orders/details Source: https://developers.booking.com/_spec/demand/docs/open-api/3.2/demand-api.json Use this endpoint to fetch detailed information about existing orders across accommodations, cars, flights, attractions, and taxis. Useful for **syncing your system with Booking.com order data, monitoring updates, and performing reporting or analytics across services**. You can query orders by one out of these filters: - **Creation** or **update date** — retrieve orders created or updated within a 7-day range. - **Travel dates** — filter by start or end date (up to 7 days). - **Order** or **reservation ID** — fetch details for specific orders. **Notes:** - 'currency' is a required field and must be a **three-letter ISO 4217 code**. - 'services' filters results by travel service type: accommodations, cars, flights, attractions, or taxis. **This endpoint is ideal for:** - Displaying booking details in partner dashboards or traveller confirmation pages. - Generating invoices or receipts. - Performing reporting, reconciliation, or analytics across all travel services. See the [Reporting and reconciliation guide](/demand/docs/orders-api/order-details) for more details. ```markdown ### Parameters - **X-Affiliate-Id** (integer, header, required): Include here your Affiliate identifier number ### Request Body **Content-Type:** application/json - **updated** (object) (required): Filtering orders by time range on basis of order "created" or "updated" time. Maximum time range is 7 days (1 week). - **from** (string (date-time)) (required): ISO 8601 timestamp in UTC, which indicates the timestamp from which you want to filter orders from (inclusive). The value should be within last 1 year. - **to** (string (date-time)): ISO 8601 timestamp in UTC, which indicates the timestamp till which you want to filter orders to (inclusive). It has to be greater than or equal to "from". - **currency** (string) (required): A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies. (example: "EUR") - **maximum_results** (integer): The maximum number of results to return. - **sort** (object): The sorting parameters for the response. - **by** (string (created|updated)) (required): The way to sort your results. ("created"|"updated") - **direction** (string (ascending|descending)) (required): The direction you wish for your sort.by parameter to be sorted in. ("ascending"|"descending") - **extras** (array (string (payment))): Input parameter to request for additional information about this order. - **services** (array (string (accommodations|cars|flights|attractions|taxis))): Use this field to restrict results to one or more travel services. If omitted, and no Order or Reservation IDs are provided in the request, all available services are returned. ### Responses #### 200 - Successful response. Returns a list of orders matching the requested filter criteria. **ordersDetailsOutput** - **data** (array (orderDetailsData)) Array items: - **id** (string): The id for this order. - **accommodations** (object) - **inventory** (object) - **third_party** (boolean): Boolean value is "true" if the product is facilitated by a Booking.com partner company and "false" otherwise. - **type** (string (net|sell)): Type of inventory - either net or sell rates. ("net"|"sell") - **location** (object): Accommodation location. - **address** (string): Accommodation address. - **city** (integer): A signed integer number that uniquely identifies a city. The full list can be obtained by calling common/locations/cities. - **country** (string): A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries. (example: "nl") - **name** (string): Accommodation name. - **number_of_guests** (number): The number of guests reserved for this product. - **reservation** (string): This is the reservation id for the accommodation in this order. - **stay_probability** (number (double)): Score that predicts the likelihood of a traveller's intent to stay, based on internal calculations. A score of 0 indicates the highest likelihood of cancellation, while a score of 1 represents the highest likelihood of the traveller staying. Note: This score may not always be available. - **affiliate** (integer): The affiliate id used for this order. - **attractions** (object): Details of an attraction included in this order. - **name** (string): The name of the attraction. (example: "Eiffel Tower Guided Tour") - **location** (object): Location details of the attraction. - **city** (string): The city where the attraction is located. - **country** (string): A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries. (example: "nl") - **reservation** (string): This is the reservation id for the attraction in this order. - **booker** (object): The booker's information. - **address** (object): The booker's address for showing the best price for that user and obeying laws regarding the display of taxes and fees. - **city** (string,null): The city for this address. - **country** (string,null): The country for this address. - **email** (string,null): The booker's email address. - **language** (string): A [IETF language tag code](https://en.wikipedia.org/wiki/IETF_language_tag) that uniquely identifies a supported human language or dialect. **Note:** Demand API only accepts lowercase for the language codes. Examples: "nl" for Dutch/Nederlands or "en-us" for English (US). To retrieve the full list of supported languages, call the `/common/languages` endpoint in the same Demand API version you are using. (example: "en-us") - **name** (object): The name of the booker. - **first_name** (string,null) - **last_name** (string,null) - **platform** (string (app|desktop|mobile_browser|tablet|unknown)): The booker platform for showing the platform based deals and prices. ("app"|"desktop"|"mobile_browser"|"tablet"|"unknown") - **telephone** (string,null): The booker's telephone number. - **travel_purpose** (string,null): The travel purpose of the booker. ("business"|"leisure"|"unknown") - **cars** (object) - **dropoff_location** (object) - **city** (string): The city where the dropoff location is. - **country** (string): A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries. (example: "nl") - **payment** (object): The payment policy that applies to this car rental. - **timing** (string (pay_online_now|pay_at_pickup|pay_partial_online_now|unknown)) (required): Indicates when payment for this car rental is expected. Use this field to determine whether prepayment is required or if payment will occur at pickup. ("pay_online_now"|"pay_at_pickup"|"pay_partial_online_now"|"unknown") - **pickup_location** (object) - **city** (string): The city where the pickup location is. - **country** (string): A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries. (example: "nl") - **reservation** (string): This is the reservation id for the car in this order. - **created** (string (date-time)): Order creation time. For taxi orders with multiple legs, this is the earliest booking date among all legs. - **commission** (object): Commission details for the partner for a given order. For taxi orders with multiple legs, amounts are the sum across all legs. - **actual_commission_amount** (object): The amount in both product and booker currencies (booker might be null, if not requested) - **booker_currency** (number (double)) - **product_currency** (number (double)) - **actual_percentage** (number (double)): Actual commission percentage for this order (`null` if not yet available). For taxi orders with multiple legs, this is the percentage of legs. - **estimated_commission_amount** (object): The amount in both product and booker currencies (booker might be null, if not requested) - **currencies** (object): Product and booker currencies. `booker` is `null` if it was not specified in the request. - **booker** (string): A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies. (example: "EUR") - **product** (string): A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies. (example: "EUR") - **end** (string (date-time)): The date when this order ends. Must be later than `start`. For taxi orders with multiple legs, this is the latest pickup time among all legs. - **flights** (object): Flight details for this order. - **itineraries** (array (itineraryOutput)): List of flight itineraries included in the order. Array items: - **arrival** (object) - **airport** (string): A three-letter code that uniquely identifies an airport as defined by the International Air Transport Association (IATA). The full list can be obtained by calling [common/locations/airports](#/common/locations/airports). (example: "AMS") - **date_time** (string (date-time)): Date time of the itinerary. (example: "2025-09-17T18:45:00Z") - **departure** (object) - **reservation** (string): This is the reservation id for flight in this order. - **label** (string,null): Custom string defined by the partner to track attribution throughout the booking journey. Use a consistent, machine-parseable format (for example, `brand-market_platform-channel_campaign`) to encode campaign, traffic source, platform, language, or other identifiers. Recommended for reliable reporting and analytics. See the [Labels and attributions guide](/demand/docs/orders-api/labels-attributions) for more details. - **loyalty_reward** (array,null): Details of the loyalty rewards associated with this order. - **payment** (object): The payment details of this order. - **accommodations** (object,null): The accommodation specific payment details of this order. - **method** (string (airplus|card|wallet)): The payment method of this order. ("airplus"|"card"|"wallet") - **paid** (array (object)) Array items: - **amount** (number): Amount of the transaction. - **at** (string (date-time)): Time of the transaction. - **transaction_currency** (string): Currency in which the transaction took place. - **pending** (array (object)) Array items: - **timing** (string (pay_at_the_property|pay_online_later|pay_online_now)): The payment timing of this order. ("pay_at_the_property"|"pay_online_later"|"pay_online_now") - **price** (object): The price components of this order. For taxi orders with multiple legs, amounts are the sum across all legs. - **commissionable_price** (object): The amount in both product and booker currencies (booker might be null, if not requested) - **total_price** (object): The amount in both product and booker currencies (booker might be null, if not requested) - **start** (string (date-time)): The date when this order starts. For taxi orders with multiple legs, this is the earliest pickup time among all legs. - **status** (string (booked|cancelled|cancelled_by_accommodation|cancelled_by_guest|no_show|stayed)) ("booked"|"cancelled"|"cancelled_by_accommodation"|"cancelled_by_guest"|"no_show"|"stayed") - **taxis** (array (taxiOutput)): List of taxi legs included in this order. Each item represents a separate taxi leg (e.g., outbound and return trips). Array items: - **commission** (object): Commission details for this taxi leg. - **actual_amount** (object): The amount in both product and booker currencies (booker might be null, if not requested) - **estimated_amount** (object): The amount in both product and booker currencies (booker might be null, if not requested) - **created** (string (date-time)): The creation time of this taxi leg. - **currencies** (object): Product and booker currencies for this taxi leg. - **booker** (string): A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies. (example: "EUR") - **product** (string): A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies. (example: "EUR") - **dropoff_location** (object): Details of the dropoff location for this taxi leg. - **address** (string): The full address of the dropoff location. (example: "Stationsplein 9, 3511 CE Utrecht") - **city** (string): The city of the dropoff location. (example: "Utrecht") - **country** (string): A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries. (example: "nl") - **end** (string (date-time)): The end date and time of this taxi leg. - **leg** (string): Unique identifier for this taxi leg within the order. (example: "607244787653565") - **pickup_location** (object): Details of the pickup location for this taxi leg. - **address** (string): The full address of the pickup location. (example: "Amstel 51, 1018 EH Amsterdam, Netherlands") - **city** (string): The city of the pickup location. (example: "Amsterdam") - **country** (string): A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries. (example: "nl") - **price** (object): The price components for this taxi leg. - **commissionable** (object): The amount in both product and booker currencies (booker might be null, if not requested) - **total** (object): The amount in both product and booker currencies (booker might be null, if not requested) - **reservation** (string): The reservation identifier shared by all taxi legs belonging to the same taxi order. (example: "916957580") - **start** (string (date-time)): The start date and time of this taxi leg. - **status** (string (booked|cancelled|cancelled_by_accommodation|cancelled_by_guest|no_show|stayed)) ("booked"|"cancelled"|"cancelled_by_accommodation"|"cancelled_by_guest"|"no_show"|"stayed") - **updated** (string (date-time)): The last update time of this taxi leg. - **updated** (string (date-time)): Time the order was last updated. For taxi orders with multiple legs, this is the latest last modified time among all legs. - **metadata** (object): Metadata about the request. - **next_page** (string): Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`). - **total_results** (integer): The total number of results available. - **request_id** (string): Uniquely identifies the request. Please provide this identifier when contacting support. ### Example Usage ```bash curl -X POST "https://demandapi.booking.com/3.2/orders/details" \ -H "Content-Type: application/json" \ -d '{ "updated": "value", "currency": "value", "maximum_results": "value", "sort": "value", "extras": "value", "services": "value" }' ``` ``` -------------------------------- ### POST /accommodations/chains Source: https://developers.booking.com/_spec/demand/docs/open-api/3.2/demand-api.json Use this endpoint to retrieve a list of accommodation chains and their associated brands. A chain-branded accommodation is part of a larger corporate group and operates under a recognised brand. The returned information can be used to filter search results by chain or brand across other endpoints. - To obtain the full list of chains, call this endpoint with an empty request body. - The `id` values returned are the codes used as input and output in other API requests, ensuring consistency across your integration. **Example of chain:** "Radisson Hotel Group" with brands such as "Radisson Blu" or "Park Inn by Radisson." ```markdown ### Parameters - **X-Affiliate-Id** (integer, header, required): Include here your Affiliate identifier number ### Responses #### 200 - Successful response. **output** - **request_id** (string): Uniquely identifies the request. Please provide this identifier when contacting support. - **data** (array (accommodationChain)) Array items: - **id** (integer): A signed integer number that uniquely identifies an accommodation chain. Examples of chains are: Radisson Hotel Group, Hilton Worldwide etc. The full list can be obtained by calling /accommodations/chains. - **brands** (array (accommodationBrand)): List of all the brands associated with this accommodation chain. Array items: - **id** (integer): A signed integer number that uniquely identifies an accommodation brand. Examples of brands are: Radisson Blu, WestCord Hotels, Westin etc. The full list can be obtained by calling /accommodations/chains. - **name** (string): Name of the accommodation brand. - **name** (string): Name of the accommodation chain. ### Example Usage ```bash curl -X POST "https://demandapi.booking.com/3.2/accommodations/chains" ``` ``` -------------------------------- ### Schema: Order details by start date input Source: https://developers.booking.com/_spec/demand/docs/open-api/3.2/demand-api.json Request parameters to retrieve orders based on the start date of the travel service (for example, check-in or pickup date). ```markdown ## Schema: Order details by start date input Request parameters to retrieve orders based on the start date of the travel service (for example, check-in or pickup date). **Type:** object - **start** (object) (required): Filter orders by date range, covering the "start" and "end" date. The maximum date range is up to 7 days (1 week). - **from** (string (date)) (required): ISO 8601 date in "YYYY-MM-DD" format. It indicates from which date you want to filter the orders. You can filter orders up to 1 year in the past and 500 days in the future. (example: "2026-06-01") - **to** (string (date)): ISO 8601 date in "YYYY-MM-DD" format. It indicates until which date you want to filter the orders to (inclusive). It has to be greater than or equal to "from". It uses "from" value as default. (example: "2026-06-03") - **currency** (string) (required): A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies. (example: "EUR") - **maximum_results** (integer): The maximum number of results to return. - **sort** (object): The sorting parameters for the response. - **by** (string (created|updated)) (required): The way to sort your results. ("created"|"updated") - **direction** (string (ascending|descending)) (required): The direction you wish for your sort.by parameter to be sorted in. ("ascending"|"descending") - **extras** (array (string (payment))): Input parameter to request for additional information about this order. - **services** (array (string (accommodations|cars|flights|attractions|taxis))): Use this field to restrict results to one or more travel services. If omitted, and no Order or Reservation IDs are provided in the request, all available services are returned. ``` -------------------------------- ### Schema: instructions Source: https://developers.booking.com/_spec/demand/docs/open-api/3.2/demand-api.json Pickup or drop-off information. ```markdown ## Schema: instructions Pickup or drop-off information. **Type:** object,null ``` -------------------------------- ### Schema: AccommodationsRoomTypeOutput Source: https://developers.booking.com/_spec/demand/docs/open-api/3.2/demand-api.json Designations for different types of rooms, based on topology and/or setup. Examples: "Twin/Double" or "Dormitory room". ```markdown ## Schema: AccommodationsRoomTypeOutput Designations for different types of rooms, based on topology and/or setup. Examples: "Twin/Double" or "Dormitory room". **Type:** object - **id** (integer) (required): A signed integer number that uniquely identifies an accommodation property room type. Example of room types are: Suite, Apartment, Twin/Double etc. The full list can be obtained by calling accommodations/constants. - **name** (object) (required): A string localised in multiple languages. ``` -------------------------------- ### Schema: AccommodationsSearchProductOutput Source: https://developers.booking.com/_spec/demand/docs/open-api/3.2/demand-api.json Details product information. It requires `{"extras":["products"]}`. ```markdown ## Schema: AccommodationsSearchProductOutput Details product information. It requires `{"extras":["products"]}`. **Type:** object - **id** (string): Unique ID of the product. - **bundle** (integer): The bundle ID of the product comprising of value added products. - **children** (array (integer)): The ages of the children allocated to this product. - **deal** (object,null): This specifies the deal tagging for the product. - **inventory** (object) - **third_party** (boolean): Boolean value is "true" if the product is facilitated by a Booking.com partner company and "false" otherwise. - **type** (string (net|sell)): Type of inventory - either net or sell rates. ("net"|"sell") - **number_available** (integer): Number of rooms available at this price. - **number_of_adults** (integer): The number of adults allocated to this product. - **policies** (object): The policies for this product. - **cancellation** (object): The cancellation policy for this product. - **free_cancellation_until** (string,null): Until when the order for this product can be cancelled for free. - **type** (string (free_cancellation|non_refundable|partially_refundable)): The cancellation policy applicable to this product: "free_cancellation" allows a period for free cancellation, "non_refundable" means immediate loss of total amount, "partially_refundable" means a portion of the amount may be refunded if the booking is cancelled. ("free_cancellation"|"non_refundable"|"partially_refundable") - **meal_plan** (object): The meal plan policy for this product. - **meals** (array (string (breakfast|dinner|lunch))): The meals included in the meal plan. - **plan** (string (all_inclusive|breakfast_included|full_board|half_board|no_plan)): The meal plan included in this product. ("all_inclusive"|"breakfast_included"|"full_board"|"half_board"|"no_plan") - **payment** (object): Payment terms and conditions for this product. - **prepayment_required** (boolean): Whether prepayment is required for this product. - **timings** (array (string (pay_at_the_property|pay_online_later|pay_online_now))): The payment timings supported by this product. - **price** (object): Contains the price components of an accommodation product. The 'base', 'display', 'chargeable_online' prices, and 'charges' are returned only when explicitly requested using extras=extra_charges. - **base** (object): The base price. It does not include any extra charges. - **accommodation_currency** (number (double)) - **booker_currency** (number (double)) - **charges** (array (object)): The charge breakdown. Includes taxes and fees. Array items: - **charge** (integer): A signed integer number that uniquely identifies an accommodation charge type. Examples of charges are: VAT, City Tax, etc. The full list can be obtained by calling accommodations/constants. - **condition** (integer,null): A signed integer number that uniquely identifies the condition ID. Find the full list in the Pricing guidelines. - **included_in** (object): Indicates where this charge is included - **display** (boolean): Indicates if this charge is included in the display price. - **mode** (string (calculated_amount|incalculable|percentage|per_day|per_night|per_person_per_day|per_person_per_night|per_person_per_stay|per_stay)): The mode of this charge. Determines how the price is calculated. ("calculated_amount"|"incalculable"|"percentage"|"per_day"|"per_night"|"per_person_per_day"|"per_person_per_night"|"per_person_per_stay"|"per_stay") - **percentage** (number): The percentage of 'base' that this charge amounts to. Only applicable when 'mode' is 'percentage'. - **total_amount** (object): The total price for this charge. - **unit_amount** (object): The price per unit for this charge. Only applicable when 'mode' is 'per_day', 'per_night', 'per_person_per_day', 'per_person_per_night', or 'per_person_per_stay'. - **display** (object): The display price that must be shown to the traveller in accordance with local booker protection laws. This price includes the base accommodation cost and all charges that are legally required to be part of the displayed amount. Equivalent to base + charges where included_in.display=true. - **total** (object): The total price. Includes all extra charges. - **room** (string): A unique identifier for a specific room within an accommodation property. You can retrieve the full list of available room IDs by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details). ``` -------------------------------- ### POST /common/locations/cities Source: https://developers.booking.com/_spec/demand/docs/open-api/3.2/demand-api.json This endpoint returns a list of city codes and their names in the selected languages. The cities returned may be filtered by a location id. For example, you can get the list of cities in The Netherlands by passing: `{"country":"nl"}`. To get the full list call the endpoint passing an empty body. The city codes returned are what is used as input and output for other endpoints. This endpoint implements pagination of the results. ```markdown ### Parameters - **X-Affiliate-Id** (integer, header, required): Include here your Affiliate identifier number ### Request Body **Content-Type:** application/json - **airport** (string): A three-letter code that uniquely identifies an airport as defined by the International Air Transport Association (IATA). The full list can be obtained by calling common/locations/airports. (example: "AMS") - **city** (integer): A signed integer number that uniquely identifies a city. The full list can be obtained by calling common/locations/cities. - **country** (string): A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries. (example: "nl") - **district** (integer): A signed integer number that uniquely identifies a district. Typically, districts define known areas within a city. The full list can be obtained by calling common/locations/districts. - **landmark** (integer): A signed integer number that uniquely identifies a relevant geographical landmark, like a monument or a natural attraction. The full list can be obtained by calling common/locations/landmarks. - **languages** (array (languageId)) - **page** (string): Pagination token used to retrieve the next page of results. Obtained from `next_page`. - **region** (integer): A signed integer number that uniquely identifies a geographical region. Regions usually define official administrative areas within a country, but may also include multiple countries and in some cases un-official but popular designations for geographical areas. An example of a region that crosses multiple countries is the Alps in Europe. The full list can be obtained by calling common/locations/regions. - **rows** (integer): The maximum number of results to return. ### Responses #### 200 - Successful response. **citiesOutput** - **request_id** (string): Uniquely identifies the request. Please provide this identifier when contacting support. - **data** (array (cities_city)) Array items: - **id** (integer): A signed integer number that uniquely identifies a city. The full list can be obtained by calling common/locations/cities. - **name** (object): A string localised in multiple languages. - **coordinates** (object) - **latitude** (number (double)) - **longitude** (number (double)) - **metadata** (object) - **next_page** (string): Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`). ### Example Usage ```bash curl -X POST "https://demandapi.booking.com/3.2/common/locations/cities" \ -H "Content-Type: application/json" \ -d '{ "airport": "value", "city": "value", "country": "value", "district": "value", "landmark": "value", "languages": [ "value" ], "page": "value", "region": "value", "rows": "value" }' ``` ```