Booking.com Demand API (3.1)

The Demand API allows Affiliate Partners to access Booking.com’s inventory, including accommodation, car rental, and flight information.

- The API follows REST principles and returns JSON responses.
- You can consume them directly through HTTPS calls, using the POST method.
- Note: Authentication is required using your Affiliate ID and token credentials.

Try it out!

Download OpenAPI description
Languages
Servers
Production environment
https://demandapi.booking.com/3.1/
Sandbox environment
https://demandapi-sandbox.booking.com/3.1/

Accommodation

This API collection is specific for the stay part of the connected trip.

Use these endpoints to search for stays such as hotels and apartments, check availability, retrieve reviews, and get detailed property information.

Operations

Car rentals

This API collection is specific to the car rentals part of the connected trip, and form part of an early access pilot programme restricted to selected partners.

Pilot phase:
- All the functionalities are currently under active development and are subject to change.
- Initial search, look, and post-book functionalities (Type 2 and Type 4 partners) are available exclusively for testing purposes.
- General availability is targeted for Q3 2025.

Limited access:
- This API collection is currently accessible only to a select group of Type 2 and Type 4 pilot partners.
- If you are not part of the pilot, you will not have access to these endpoints.
- For inquiries regarding participation, please contact our Partnerships team.

Frequent updates:
These endpoints and documentation will be updated regularly throughout the pilot.

Operations

Search car rentals

Request

Use this endpoint to retrieve the available car rentals matching the search criteria.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
bookerobjectrequired

Defines the booker context.

booker.​countrystring^[a-z]{2}$required

The booker country for showing the best price for that user and obeying laws regarding the display of taxes and fees.

Example: "nl"
currencystring^[A-Z]{3}$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"
driverobjectrequired

Defines the driver context.

driver.​ageinteger[ 18 .. 99 ]required

Driver age. Affect the availability and price of the products.

filtersobject

Defines the filtering criteria for refining the request results. It allows you to specify various parameters to narrow down the available car rental options based on specific attributes.

maximum_resultsintegermultiple of 10[ 10 .. 500 ]

The maximum number of results to return per page.

Default 100
languagestring^[a-z]{2}(-[a-z]{2})?$

Effects on the selected language of the target website after redirection by provided url.

Example: "en-us"
pagestring

Pagination token used to retrieve the next page of results. Obtained from next_page.

paymentobject

Payment-related input filters that allow you to narrow down car search results based on the payment timing options.

routeobjectrequired

Defines the route context.

route.​dropoffobjectrequired

Drop off location and time.

route.​dropoff.​datetimestring^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$required

Pick up / drop off datetime.

Example: "2025-11-10T11:05:00"
route.​dropoff.​locationobject or object or objectrequired

Pick up / drop off location.

One of:

Pick up / drop off location.

route.​dropoff.​location.​airportstring^[A-Z]{3}$

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"
route.​pickupobjectrequired

Pick up location and time.

route.​pickup.​datetimestring^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$required

Pick up / drop off datetime.

Example: "2025-11-05T11:05:00"
route.​pickup.​locationobject or object or objectrequired

Pick up / drop off location.

One of:

Pick up / drop off location.

route.​pickup.​location.​airportstring^[A-Z]{3}$

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"
sortobject

The sorting parameters for the response.

curl -i -X POST \
  https://demandapi.booking.com/3.1/cars/search \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "booker": {
      "country": "nl"
    },
    "currency": "EUR",
    "driver": {
      "age": 36
    },
    "route": {
      "dropoff": {
        "datetime": "2025-11-10T11:05:00",
        "location": {
          "airport": "AMS"
        }
      },
      "pickup": {
        "datetime": "2025-11-05T11:05:00",
        "location": {
          "airport": "AMS"
        }
      }
    }
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring

Uniquely identifies the request. Please provide this identifier when contacting support.

dataArray of objects
metadataobject(MetadataOutput)

Metadata about the request.

search_tokenstring

Encoded string that must be passed in subsequent requests to identify the context of the car search. Note: It is specific to Car rentals and differs from other tokens used in booking flows.

Response
application/json
{ "request_id": "01h00fr9y7qkbxtc6kyv97j49z", "data": [ {} ], "metadata": { "next_page": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7Im1heGltdW1fcmVzdWx0cyI6MTAsIm9mZnNldCI6MTB9LCJhdWQiOiJDQVJTX1NVUFBMSUVSUyIsImV4cCI6MTY4MzY0NzMwNX0.y7NmH48mm7lImd2WxsHdotj6n-dVQAzJCGCnIJCKy3A", "total_results": 122 }, "search_token": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImJvb2tlciI6eyJjb3VudHJ5IjoidXMifX0sImF1ZCI6Ii9ob3RlbHMvc2VhcmNoIiwiZXhwIjoxNzUwMDAwMDAwfQ.XYZ123AbcDefGHIjklMNOpqrsTUVwxYZ456789" }

Depots

Request

Use this endpoint to retrieve the list of all available car rental depots.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
last_modifiedstring(date-time)

The last modified date-time, only returns depots newer than this timestamp.

Example: "2023-11-01T11:05:00+00:00"
maximum_resultsintegermultiple of 10[ 10 .. 100 ]

The maximum number of results to return.

Default 100
languagesArray of strings
Default ["en-gb"]
Example: ["en-us"]
pagestring

Pagination token used to retrieve the next page of results. Obtained from next_page.

curl -i -X POST \
  https://demandapi.booking.com/3.1/cars/depots \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "last_modified": "2025-11-01T11:05:00+00:00",
    "maximum_results": 100,
    "languages": [
      "en-gb",
      "nl"
    ]
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring

Uniquely identifies the request. Please provide this identifier when contacting support.

dataArray of objects
metadataobject

Metadata about the request.

Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": [ {} ], "metadata": { "next_page": null } }

Depot scores

Request

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.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
maximum_resultsintegermultiple of 10[ 10 .. 100 ]

The maximum number of results to return.

Default 100
pagestring

Pagination token used to retrieve the next page of results. Obtained from next_page.

curl -i -X POST \
  https://demandapi.booking.com/3.1/cars/depots/reviews/scores \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "maximum_results": 10
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring

Uniquely identifies the request. Please provide this identifier when contacting support.

dataArray of objects
metadataobject

Metadata about the request.

Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": [ {} ], "metadata": { "next_page": null } }

Locations

Provides identifiers for a wide range of geographical locations, including airports, countries, cities, and regions.

Use these identifiers to construct your requests.

Note: These identifiers are available across all travel services and you can use them for both accommodotation and car rentals requests.

Operations

Payments

Provides generic payment-related endpoints, including supported currencies and payment types.

Operations

Languages

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

Operations

Orders

Enables management of booking orders within the Demand API.

Use these endpoints to preview and create new orders, check order details, cancel existing orders, or modify reservations. This collection is required to integrate booking and order management functionality.

Operations

Messages

This API collection is specific to Messaging integrations, and form part of an early access pilot programme restricted to selected partners.

Pilot phase:
- All the functionalities are currently under active development and are subject to change.
- Initial post-booking functionalities are available exclusively for testing purposes.
- General availability is targeted for Q3 2025.

Limited access:
- This API collection is currently accessible only to a select group of pilot partners.
- If you are not part of the pilot, you will not have access to these endpoints.
- For inquiries regarding participation, please contact our Partnerships team.

Frequent updates:
These endpoints and documentation will be updated regularly throughout the pilot.

Operations

Conversations

Endpoints to retrieve and manage messaging conversations.

Operations

Attachments

Endpoints for uploading and retrieving message attachments.

Operations