# Booking.com Demand API

The Booking.com Demand API enables Affiliate Partners to access Booking.com's travel inventory, including accommodations, car rentals, and flights. 

Use Demand API to search, retrieve details, check availability, manage bookings and run reports using orders details.

- RESTful API with JSON responses.
- Make HTTPS POST requests to interact with endpoints.
- Requires authentication using your Affiliate ID and token credentials.

[Check the try out guide!](/demand/docs/getting-started/try-out-the-api)


Version: 3.1

## Servers

Production environment
```
https://demandapi.booking.com/3.1
```

Sandbox environment
```
https://demandapi-sandbox.booking.com/3.1
```

## 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/demand-api.yaml)

## Accommodation

This API collection is specific for the stay part of the connected trip. </br></br>Use these endpoints to search for stays such as hotels and apartments, check availability, retrieve reviews, and get detailed property information.

### Search accommodation

 - [POST /accommodations/search](https://developers.booking.com/demand/docs/open-api/demand-api/accommodations/accommodations/search.md): This endpoint returns, by default, the cheapest available product for each accommodation that matches the specified search criteria. When you apply location filters using parameters such as country or region id, the results are sorted by Booking.com popularity (top_picks) instead of price.In this case, accommodations are ranked in descending order of popularity, meaning higher-ranked listings will appear earlier in the response.

### Check availability

 - [POST /accommodations/availability](https://developers.booking.com/demand/docs/open-api/demand-api/accommodations/accommodations/availability.md): Use this endpoint to return detailed product availability, price and charges of the accommodation matching a given search criteria. By default, only product availability and price is returned. To receive extended information use the extras parameter. Note: It is mandatory to pass the input parameters: accommodation, booker, checkin, checkout and guest.

### Check multiple availability

 - [POST /accommodations/bulk-availability](https://developers.booking.com/demand/docs/open-api/demand-api/accommodations/accommodations/bulk-availability.md): Use this endpoint to retrieve detailed product availability, price and charges of a list of accommodations. By default, only product availability and price is returned. To receive extended information use the extras parameter. Note: It is mandatory to pass the input parameters: accommodations, booker, checkin, checkout and guests.

### Chains

 - [POST /accommodations/chains](https://developers.booking.com/demand/docs/open-api/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/demand-api/accommodations/accommodations/constants.md): Use this endpoint to retrieve standardised codes and names for accommodation-specific types, including facilities, room types, bed types, themes, and charges. These constants can be used to filter searches or populate reference data across other accommodation endpoints. You can request multiple languages using IETF language tags (see common/languages).  Call with an empty body to retrieve all constants. The codes returned are canonical identifiers used across the API.

### Details

 - [POST /accommodations/details](https://developers.booking.com/demand/docs/open-api/demand-api/accommodations/accommodations/details.md): This endpoint returns detailed information on all accommodation properties matching a given search criteria. By default, only basic information is returned. It is mandatory to pass one of the input parameters: accommodations, airport, city, country or region. To receive extended information use the extras parameter.

### Updated accommodations

 - [POST /accommodations/details/changes](https://developers.booking.com/demand/docs/open-api/demand-api/accommodations/accommodations/details/changes.md): Use this endpoint to track accommodations that have opened, closed, or had relevant content updates since a specific timestamp. Changes can include updates to general information, facilities, rooms, photos, payments, and more. You can: - Filter results by country or city. - Use the "next" timestamp from the response to request further updates.To keep your local accommodation cache up to date, use this endpoint in combination with accommodations/details The maximum number of IDs returned is approximately 5000 per request.

### Accommodation reviews

 - [POST /accommodations/reviews](https://developers.booking.com/demand/docs/open-api/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.

### Accommodation review scores

 - [POST /accommodations/reviews/scores](https://developers.booking.com/demand/docs/open-api/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.

## Car rentals

This API collection is specific to the car rentals part of the connected trip.</br></br> Use these endpoints to search for car rentals, check car details and look for depots and suppliers.

### Search car rentals

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

### Depots

 - [POST /cars/depots](https://developers.booking.com/demand/docs/open-api/demand-api/cars/depots.md): Use this endpoint to retrieve the list of all available car rental depots.

### Depot scores

 - [POST /cars/depots/reviews/scores](https://developers.booking.com/demand/docs/open-api/demand-api/cars/depots/reviews/scores.md): Use this endpoint to return the score breakdown for the specified depots together with the overall number of reviews and score. - Please note that the ratings score is based on all traveller traffic across Booking.com/cars, and may not necessarily reflect the experience of your own customers. - If you choose to display or use these ratings, you are responsible for ensuring that your travellers are properly informed about what these scores represent.

### Car details

 - [POST /cars/details](https://developers.booking.com/demand/docs/open-api/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/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.

### Car constants

 - [POST /cars/constants](https://developers.booking.com/demand/docs/open-api/demand-api/cars/constants.md): This endpoint returns a list of relevant car constants names in the specified languages. For example, calling with the parameters {"languages":"en-us","fr"} will return the list in English (US) and French. To retrieve the full list, make the request with an empty body.

## Locations

Provides identifiers for a wide range of geographical locations, including airports, countries, cities, and regions. </br></br>Use these identifiers to construct your requests. </br></br>Note: These identifiers are available across all travel services and you can use them for both accommodotation and car rentals requests.

### Airports

 - [POST /common/locations/airports](https://developers.booking.com/demand/docs/open-api/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/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/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/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/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/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 endpoints, including supported currencies and payment types.

### Payment cards

 - [POST /common/payments/cards](https://developers.booking.com/demand/docs/open-api/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.

### Currencies

 - [POST /common/payments/currencies](https://developers.booking.com/demand/docs/open-api/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

Provides a list of supported language codes for use in API requests.

### Retrieve language codes

 - [POST /common/languages](https://developers.booking.com/demand/docs/open-api/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

Enables management of booking orders within the Demand API. </br></br>Use these endpoints to preview and create new orders, check order details, cancel or modify existing orders. 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/demand-api/orders/orders/preview.md): This endpoint returns the total final price with final charges, as well as the price breakdown and payment/cancellation policies for each product passed in the input.

### Create an order

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

### Orders details

 - [POST /orders/details](https://developers.booking.com/demand/docs/open-api/demand-api/orders/orders/details.md): This endpoint returns basic information for orders filtered according to the input.

### Orders with accommodation details

 - [POST /orders/details/accommodations](https://developers.booking.com/demand/docs/open-api/demand-api/orders/orders/details/accommodations.md): This endpoint returns all information for given accommodation orders, sorted by bookingDate in descending order

### Orders with car details

 - [POST /orders/details/cars](https://developers.booking.com/demand/docs/open-api/demand-api/orders/orders/details/cars.md): This endpoint returns car order details, sorted by bookingDate in descending order

### Orders with flight details

 - [POST /orders/details/flights](https://developers.booking.com/demand/docs/open-api/demand-api/orders/orders/details/flights.md): Use this endpoint to retrieve detailed information for one or more flight orders. - You can request car order details either by order ID or by reservation ID. - The response includes all relevant information for each order, such as booking and cancellation details, commission, pricing, and optional extras (for example, policies).   Results are sorted by bookingDate in descending order, with the most recently booked orders listed first. It returns 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.

### Modify an order

 - [POST /orders/modify](https://developers.booking.com/demand/docs/open-api/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.

### Cancel an order

 - [POST /orders/cancel](https://developers.booking.com/demand/docs/open-api/demand-api/orders/orders/cancel.md): Use this endpoint to process an order cancellation. Refer to the Cancellations guide for instructions, tips and examples.

## Messages

Provides endpoints for two-way post-booking communication between guests and properties. </br></br>Use these endpoints to send and retrieve messages, exchange images, and check conversation details.

### Send a message

 - [POST /messages/send](https://developers.booking.com/demand/docs/open-api/demand-api/messages/sendmessage.md): Sends a message within a conversation. The message body supports plain text.
Optionally, attach a file by referencing a previously uploaded attachment ID.

### Fetch latest messages

 - [POST /messages/latest](https://developers.booking.com/demand/docs/open-api/demand-api/messages/fetchlatestmessages.md): Retrieves up to 100 of the most recent messages including messages from both property and guest.

- Messages are returned in reverse chronological order (newest first).
- Use this endpoint to sync message threads or poll for updates.

Important:  To retrieve the latest messages, send an empty POST request.  Any content in the request body will be ignored.

### Confirm message receipt

 - [POST /messages/latest/confirm](https://developers.booking.com/demand/docs/open-api/demand-api/messages/confirmmessagereceipt.md): Confirms receipt of specified messages.
This confirmation is required before receiving new messages from the POST /messages/latest endpoint.

## Conversations

Provides endpoints to retrieve and manage messaging conversations. </br></br>Use these endpoints to list conversations, fetch conversation details, and track updates.

### Retrieve a conversation

 - [POST /messages/conversations](https://developers.booking.com/demand/docs/open-api/demand-api/conversations/retrieve-conversation.md): Retrieves a conversation accessible to the authenticated user, including message history and participants.

## Attachments

Provides endpoints for handling message attachments. </br></br>Use these endpoints to upload and download images shared within conversations.

### Upload an attachment

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

### Download a message attachment

 - [POST /messages/attachments/download](https://developers.booking.com/demand/docs/open-api/demand-api/attachments/downloadmessageattachment.md): Retrieves a file that was attached to a message. The response includes the file's content as a base64-encoded string.

### Retrieve attachment metadata

 - [POST /messages/attachments/metadata](https://developers.booking.com/demand/docs/open-api/demand-api/attachments/getattachmentmetadata.md): Returns metadata for a file uploaded in a message, including its name, type, and size.

