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

Booking.com 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

Endpoints and sections specific to the accommodations travel vertical: hotels, apartments, etc.

Operations

cars

Endpoints and sections specific to car rentals.

Operations

Available cars

Request

Use this endpoint to return the available rental cars 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 them to construct your requests.

Operations

common/payments

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

Operations

common

Operations

orders

Operations