Unfortunately, this feature is not supported on mobile devices. For the best experience, please use a computer.

Demand API (3.1)

Our Demand API offers a wide range of functionalities for affiliate partners to be able to retrieve data from Booking.com inventory.

- Based on basic REST principles, our endpoints return JSON data directly from our system.
- You can consume them directly through HTTPS calls, using the POST method.

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

Accommodations

These are the endpoints and sections specific for the stay part of the connected trip.

Use them to look for accommodation such as hotels, apartments, etc, check their availability, reviews, accommodation details, etc.

Operations

Cars

These endpoints and sections are specific to the car rentals part of the connected trip.

Use them to look for car rentals, depots and suppliers, check car details and depot reviews/scores.

Operations

Available cars

Request

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

Headers
X-Affiliate-Idintegerrequired

Affiliate identifier

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.

maximum_resultsintegermultiple of 10[ 10 .. 100 ]

The maximum number of results to return.

Default 20
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.

routeobjectrequired

Defines the route context.

route.dropoffobjectrequired

Drop off location and time.

route.dropoff.datetimestring(date-time)required

Pick up / drop off datetime.

Example:

"2023-11-01T11: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(date-time)required

Pick up / drop off datetime.

Example:

"2023-11-01T11: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": {
      "pickup": {
        "datetime": "2025-05-03T11:05:00",
        "location": {
          "airport": "AMS"
        }
      },
      "dropoff": {
        "datetime": "2025-05-05T11:05:00",
        "location": {
          "airport": "AMS"
        }
      }
    }
  }'
Experience it firsthand in the API Explorer!

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.

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

Car rental suppliers

Request

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.

Headers
X-Affiliate-Idintegerrequired

Affiliate identifier

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.

suppliersArray of integers<= 100 items

Defines the suppliers that should be returned. Without it all suppliers will be returned

curl -i -X POST \
  https://demandapi.booking.com/3.1/cars/suppliers \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "suppliers": [
      62
    ]
  }'
Experience it firsthand in the API Explorer!

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.

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

Car rental depots

Request

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

Headers
X-Affiliate-Idintegerrequired

Affiliate identifier

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": "2023-11-01T11:05:00+00:00",
    "maximum_results": 100,
    "languages": [
      "en-gb",
      "nl"
    ]
  }'
Experience it firsthand in the API Explorer!

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

This endpoint returns score breakdown for the specified car depots.

Headers
X-Affiliate-Idintegerrequired

Affiliate identifier

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
  }'
Experience it firsthand in the API Explorer!

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 } }

Car details

Request

Use this endpoint to fetch car details like bag capacity, number of doors, brand and model, etc.

Headers
X-Affiliate-Idintegerrequired

Affiliate identifier

Bodyapplication/json
last_modifiedstring(date-time)

The last modified date-time, only returns depots newer than this timestamp. The value should be within last 7 days

Example:

"2023-11-01T11:05:00+00:00"

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/details \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "last_modified": "2023-11-01T11:05:00+00:00",
    "maximum_results": 100
  }'
Experience it firsthand in the API Explorer!

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 } }

Common/locations

These are the endpoints you can use to retrieve the identifiers of a wide range of geographical locations: airports, countries, cities, regions, etc.

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

Common/payments

Generic endpoints related to payments and finance: currencies, payment types, etc.

Operations

Common

Operations

Orders

Operations