# Booking.com Demand API

**Beta version – experimental endpoints**

This API version is **currently in Beta** and is offered to a limited set of pilot affiliate partners. Access is granted on request via your Booking.com account manager.

> ⚠️ **Important:** This API is **under active development**. Endpoints, request/response structures, and functionality may change without prior notice. Specifications are updated frequently during the pilot phase.

- Consult the [Changelog](/demand/docs/whats-new/changelog) for the latest updates.
- All requests **require authentication** using your Affiliate ID and token credentials.

Version: 3.2-Beta

## Servers

Production environment – use for live integrations.
```
https://demandapi.booking.com/3.2
```

Sandbox environment – use for testing and validation.
```
https://demandapi-sandbox.booking.com/3.2
```

## Security

### BearerAuth

Type: http
Scheme: bearer
Bearer Format: string

## Download OpenAPI description

[Booking.com Demand API](https://developers.booking.com/_bundle/demand/docs/open-api/3.2-beta/demand-api.yaml)

## Accommodation

This collection includes endpoints related to **stays** within the connected trip experience. <br/>Use these endpoints to:<br/>- Search for hotels, apartments, and other accommodation types.<br/>- Check real-time availability and pricing.<br/>- Retrieve property details and guest reviews.

### Search

 - [POST /accommodations/search](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/accommodations/accommodations/search.md): Use this endpoint to search for accommodations that match your specified criteria. By default, the response returns the cheapest available product for each accommodation.When applying location filters such as country or region, results are ranked by Booking.com popularity (top picks) rather than price, with higher-ranked listings appearing first.

### Availability

 - [POST /accommodations/availability](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/accommodations/accommodations/availability.md): Use this endpoint to check real-time availability, prices, and charges for up to 50 accommodation IDs.

- By default, only product availability and prices are returned.
- Use the extras or filters parameters to retrieve additional details such as extra charges or payment information.

Mandatory fields: accommodations, booker, checkin, checkout, and guests.

### Chains

 - [POST /accommodations/chains](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/accommodations/accommodations/chains.md): 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."

### Constants

 - [POST /accommodations/constants](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/accommodations/accommodations/constants.md): Retrieve standardised codes and names for accommodation-related entities, such as facilities, room types, bed types, themes, and additional charges.

These constants are canonical identifiers that can be used to filter searches, populate reference data, or ensure consistency across other accommodation endpoints.

- To fetch constants in multiple languages, provide IETF language tags (see common/languages).
- Sending an empty request body returns all available constants.
- Use the constants array to request only specific sections (e.g., accommodation_facilities, bed_types).

### Details

 - [POST /accommodations/details](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/accommodations/accommodations/details.md): Retrieve detailed information about accommodation properties that match your search criteria.

You must provide at least one of the following parameters: accommodations, airport, city, country, or region.

Use the extras parameter to request additional information such as facilities, photos, policies, rooms, or bundles.

Key points:
- You can request data in multiple languages using IETF language tags.
- This endpoint provides static information about properties; availability and pricing are retrieved via other endpoints.
- Passing an empty extras array returns only the core property details.
- Maximum 100 accommodation IDs can be queried in a single request.

### Updates

 - [POST /accommodations/details/changes](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/accommodations/accommodations/details/changes.md): Use this endpoint to track accommodations that have opened, closed, or had content updates since a specific timestamp.

Changes can include updates to general information, facilities, rooms, photos, payments, and more.

Key points:
- You can filter results by country or city.
- Use the next timestamp from the response to fetch subsequent updates.
- Combine this endpoint with accommodations/details to keep your local accommodation cache up to date.
- Maximum number of IDs returned is approximately 5000 per request.

### Reviews

 - [POST /accommodations/reviews](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/accommodations/accommodations/reviews.md): This endpoint provides access to reviews for specified accommodations, allowing you to retrieve traveller feedback associated with a particular property. The reviews returned can be filtered and sorted, with the option to limit the number of reviews per accommodation by specifying the rows parameter. Please note that the ratings score is based on all traveller traffic across Booking.com, and may not necessarily reflect the experience of your own customers. If you choose to display or use these ratings and reviews, you are responsible for ensuring that your travellers are properly informed about what these scores represent.

### Review and scores

 - [POST /accommodations/reviews/scores](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/accommodations/accommodations/reviews/scores.md): This endpoint returns score distribution and score breakdown for the specified accommodations. The scores information can be filtered by reviewer parameters and languages.

## Attractions

### Search attractions

 - [POST /attractions/search](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/attractions/search.md): Use this endpoint to search for attractions based on a single search criterion, such as attraction IDs, cities, countries, or geographic coordinates.

### Attraction details

 - [POST /attractions/details](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/attractions/attractions/details.md): Use this endpoint to retrieve static information about attractions such as name, description, address, URL, etc. Note: This endpoint does not return any pricing information.

### Attraction Reviews

 - [POST /attractions/reviews](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/attractions/attractions/reviews.md): Retrieves reviews for a specific attraction. The reviews returned can be filtered and sorted, with the option to limit the number of reviews per attraction by specifying the "rows" parameter.
Note: The scores reflect all traveller feedback across Booking.com and may not directly correspond to the experiences of your own customers. If you choose to display or use these ratings and reviews, you are responsible for ensuring that your travellers understand what these scores represent.

### Attraction Review Scores

 - [POST /attractions/reviews/scores](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/attractions/attractions/reviews/scores.md): Returns detailed review scores for specific attractions.

## Car rentals

This collection includes endpoints related to **car rental** services within the connected trip experience.<br/>Use these endpoints to:<br/>- Search and retrieve car details.<br/>- Retrieve car specifications, depot locations, and supplier information.

### Search car rentals

 - [POST /cars/search](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/cars/search.md): Use this endpoint to retrieve the available car rentals matching the search criteria.

### Car availability

 - [POST /cars/availability](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/cars/availability.md): Retrieve details about the availability of a car rental.

### Car constants

 - [POST /cars/constants](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/cars/constants.md): This endpoint returns localised car rental constants used across the Cars API collection, such as extras, fuel policies, payment timings, and transmission types.

It also returns customer service contact email addresses per requested language for partner support scenarios where Booking.com handles travellers communication directly. 
To retrieve the full list, make the request with an empty body.

### Depots

 - [POST /cars/depots](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/cars/depots.md): Retrieve the list of available car rental depots.

### Depot scores

 - [POST /cars/depots/reviews/scores](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/cars/depotscores.md): Use this endpoint to return the score breakdown for the specified depots together with the overall number of reviews and score.

### Car details

 - [POST /cars/details](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/cars/details.md): Use this endpoint to fetch car details like bag capacity, number of doors, brand and model, etc.

### Suppliers

 - [POST /cars/suppliers](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/cars/suppliers.md): Use this endpoint to fetch a list of car rental suppliers. You can use a supplier ID (or an array of them), to retrieve specific details. Alternatively, if you do not add any ID in the request, the response will include all suppliers.

### Retrieve terms and conditions.

 - [POST /cars/terms-and-conditions](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/cars/terms-and-conditions.md): Use this endpoint to retrieve the terms and conditions for a specific car during the pre-booking process. The response includes structured content in the requested language.

## Locations

This collection provides standardised **location identifiers** for geographical entities such as airports, countries, cities, and regions. <br/>Use the returned identifiers when constructing requests across all travel services API collections, including both accommodation and car rental endpoints.

### Airports

 - [POST /common/locations/airports](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonlocations/common/locations/airports.md): This endpoint returns a list of airport codes and their names in the selected languages. The airports returned may be filtered by a location id. For example, you can get the list of airports in The Netherlands by passing: {"country":"nl"}. To get the full list call the endpoint passing an empty body. The airport codes returned are what is used as input and output for other endpoints. This endpoint implements pagination of the results.

### Cities

 - [POST /common/locations/cities](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonlocations/common/locations/cities.md): 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.

### Countries

 - [POST /common/locations/countries](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonlocations/common/locations/countries.md): This endpoint returns a list of country codes and their names in the selected languages. The countries returned may be filtered by a location id. For example, you can get the list of countries that are associated with the European Alps region by passing: {"region":1199}. To get the full list call the endpoint passing an empty body. The returned country codes are used as input and output for other endpoints. This endpoint implements pagination of the results.

### Districts

 - [POST /common/locations/districts](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonlocations/common/locations/districts.md): This endpoint returns a list of districts with translations in the selected languages. The districts returned may be filtered by a location id. For example, you can get the list of districts in Amsterdam by passing: {"city":-2140479}. To get the full list call the endpoint passing an empty body. The district ids returned are what is used as input and output for other endpoints. This endpoint implements pagination of the results.

### Landmarks

 - [POST /common/locations/landmarks](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonlocations/common/locations/landmarks.md): This endpoint returns a list of relevant geographical landmark codes and their names in the selected languages. The landmarks returned may be filtered by a location id. For example, you can get the list of landmarks that are associated with the city of Paris in France by passing: {"city":-1456928}. To get the full list call the endpoint passing an empty body. The landmark codes returned are what is used as input and output for other endpoints. This endpoint implements pagination of the results.

### Regions

 - [POST /common/locations/regions](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonlocations/common/locations/regions.md): This endpoint returns a list of regions with translations in the selected languages. The regions returned may be filtered by a location id. For example, you can get the list of regions in the Netherlands or that the Netherlands is a part of by passing: {"country":"nl"}. To get the full list call the endpoint passing an empty body. The region ids returned are what is used as input and output for other endpoints. This endpoint implements pagination of the results.

## Payments

Provides generic **payment-related identifiers**, including supported currency codes, payment cards, and relevant metadata for booking flows.<br/>- Use the returned identifiers when constructing requests across all travel services API collections, including both accommodation and car rental endpoints.

### Retrieve payment cards

 - [POST /common/payments/cards](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonpayments/common/payments/cards.md): This endpoint returns a list of supported payment cards and their names in English. Examples of payment types are the different credit and debit cards. To get the full list call the endpoint passing an empty body. The codes returned are what is used as input and output for other endpoints.

### Retrieve currency codes

 - [POST /common/payments/currencies](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonpayments/common/payments/currencies.md): This endpoint returns a list of currency codes and their names in the selected languages. To get the full list call the endpoint passing an empty body. The currency codes returned are what is used as input and output for other endpoints.

## Languages

Use this endpoint to retrieve a list of supported IETF language tag codes.<br/>- You can use these codes when constructing requests across all travel services API collections, including both accommodation and car rental endpoints.

### Retrieve language codes

 - [POST /common/languages](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/commonlanguages/common/languages.md): This endpoint returns a list of human language codes and their names in the corresponding language. To get the full list call the endpoint passing an empty body. The language codes returned are what is used as input and output for other endpoints.

## Orders

This API collection enables **management of booking orders** within the Demand API.</br>Use these endpoints to:</br>- Preview and create new orders.</br>- Check order details.</br>- Cancel or modify existing orders.</br>This collection is required to integrate booking and order management functionality.

### Preview an order

 - [POST /orders/preview](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/orders/preview.md): Use this endpoint to calculate the final price, including a detailed price breakdown, payment schedule, and cancellation policies for accommodation and car rentals.
Provide the booker's details and preferred currency to receive personalised pricing.
For accommodations:
Include check-in and check-out dates.
Include room allocations and selected products.
For cars:
Include the offer ID and search token.
Optionally include an insurance quote_reference (from /cars/availability) to attach third-party insurance.

### Create an order

 - [POST /orders/create](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/create.md): Use this endpoint to confirm the order and proceed the payment.

### Orders details

 - [POST /orders/details](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/orders/details.md): 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:
- 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:
- Only one filter type (created, updated, start, end, orders, reservations, page) should be provided per request.
- 'currency' must be a three-letter ISO 4217 code. Defaults to product base currency if omitted.
- 'extras' can request additional data (currently supports 'payment').
- 'services' allows filtering by travel service type (accommodations, cars, flights, attractions, taxis).

This endpoint is ideal for:
- Displaying booking details in partner dashboards or traveller confirmation pages.
- Generating invoices, receipts, or post-booking communications.
- Performing reporting, reconciliation, or analytics across all travel services.
 See the Order reporting guide for more details.

### Orders with accommodation details

 - [POST /orders/details/accommodations](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/orders/details/accommodations.md): Use this endpoint to retrieve detailed information for one or more accommodation orders.You can request order details either by reservation or order ID depending on your integration.
- The response includes all key information for each order, including booking status, pricing, commission, cancellation details, and optional extras.
- Results are sorted by order creation date in descending order, with the most recently booked orders listed first.

### Orders with car details

 - [POST /orders/details/cars](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/orders/details/cars.md): Use this endpoint to retrieve detailed information for one or more car rental orders.

- You can request car order details using your reservation ID.
- The response includes booking and cancellation details, commission, pricing, and optional extras (for example, policies).
- Results are sorted by the date of order creation in descending order, with the most recently booked orders listed first.

### Orders with flight details

 - [POST /orders/details/flights](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/orders/details/flights.md): Use this endpoint to retrieve detailed information for one or more flight orders.

- You can request flight order details either by order ID or by reservation ID.
- The response includes structured order data, including pricing, itinerary segments with IATA airport codes, etc.

This endpoint is ideal for:
- Displaying flight booking details in traveller dashboards or confirmation pages.
- Generating post-booking communications and invoices.
- Performing reporting or reconciliation tasks that require accurate itinerary and pricing data.

### Car order terms & conditions

 - [POST /orders/details/cars/terms-and-conditions](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/cars-terms-and-conditions.md): Retrieve the full, structured terms and conditions for one or more car rental orders.

The response contains hierarchical legal content organised into chapters containing nested sections, clauses, sub-clauses, and clause options.

Use cases:
-Displaying full rental contract details to travellers.
-Providing terms and conditions on order detail pages.
-Recreating the booking voucher terms section.
-Supporting legal and compliance requirements.

Notes:
-Include at least one order ID. Invalid IDs will return null.
-Language defaults to English if not specified or unsupported. Language uses an ISO 639-1 language code (for example en-gb).
-You can optionally filter the response to return only voucher-required terms.

### Retrieve Car rental FAQs

 - [POST /orders/details/cars/faq](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/cars/faqs.md): Returns a list of frequently asked questions (FAQs) and their answers related to car rentals. You can request one or more preferred languages using the languages parameter.
If content is not available in any of the requested languages, the response defaults to English.

### Live Car order details

 - [POST /orders/details/cars/live](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/details/cars/live.md): Returns enriched, live car order details for a specific reservation. This endpoint is intended for partner use cases that require full car, supplier, pricing, and driver information. It is a temporary endpoint and will be deprecated once these changes are merged into the primary /orders/details/cars endpoint in v3.3.

### Modify an order

 - [POST /orders/modify](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/orders/modify.md): Use this endpoint to modify certain aspects of an accommodation order, such as credit card details, checkin/checkout dates, and room configurations (guest allocation, guest names, and smoking preferences). See the Orders modification guide for examples and best practices.

### Preview order modification

 - [POST /orders/modify/preview](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/orders/modify/preview.md): Preview whether a requested modification can be applied to an order and retrieve the expected cost impact before confirming the change.

Use this endpoint to:

- Check if the requested modification can be applied.
- Review the updated total cost (for accommodation changes).

Note: This endpoint does not apply any changes to the order.

### Cancel an order

 - [POST /orders/cancel](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/orders/orders/cancel.md): Use this endpoint to cancel a reservation within an existing order. Provide the reservation details for the travel service you want to cancel. You can optionally include the order ID to help identify the order. Only one reservation can be cancelled per request.

For step-by-step instructions, examples, and best practices, see the Cancellations guide.

## Messages

This API collection enables two-way communication between guests and properties. Use these endpoints to send and receive messages, include attachments, follow conversations, and more.

### Send a message

 - [POST /messages/send](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/messages/send.md): Use this endpoint to send a message to a conversation. You can include plain text and optionally attach a file using an attachment ID from a previous upload.

### Retrieve latest messages

 - [POST /messages/latest](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/messages/latest.md): Use this endpoint to fetch the most recent messages, including messages sent by both the property and the guest. By default, up to 100 messages are returned in reverse chronological order (newest first).

This endpoint is ideal for:
- Synchronising message threads between your system and the Booking.com platform.
- Polling for updates to detect new messages since your last request.

### Confirm message receipt

 - [POST /messages/latest/confirm](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/messages/confirm.md): Use this endpoint to confirm receipt of messages. Confirmation is required in order to receive new messages from POST /messages/latest.

### Retrieve attachment metadata

 - [POST /messages/attachments/metadata](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/messages/metadata.md): Use this endpoint to get basic information about an uploaded file, such as its name, type, and size.

## Conversations

### Retrieve a conversation

 - [POST /messages/conversations](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/conversations/conversations.md): Use this endpoint to retrieve a conversation available to the authenticated user.

## Attachments

### Upload attachment

 - [POST /messages/attachments/upload](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/attachments/upload.md): Use this endpoint to upload a file to be used as a message attachment. The response includes an attachment ID to reference when sending messages.

### Download attachment

 - [POST /messages/attachments/download](https://developers.booking.com/demand/docs/open-api/3.2-beta/demand-api/attachments/download.md): Use this endpoint to retrieve a file that was attached to a message. The response includes the file in a base64-encoded format.

