Booking.com Demand API (3.2)

Demand API version 3.2 introduces several improvements and breaking changes from version 3.1, including updates to accommodation booking flows, inclusion of Attractions in orders/details for post-booking reporting and other structural enhancements.
- The API follows REST principles and returns data in JSON format.
- You can access endpoints via HTTPS POST requests.
Authentication: Use your Affiliate ID and token credentials to use these endpoints.
Try it out!

Download OpenAPI description
Languages
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/

Accommodation

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

Operations

Car rentals

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

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
bookerobject(schemas-booker)required

Defines the booker context.

booker.​countrystring(countryId)^[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.

currencystring(currencyId)^[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.

driverobject(driver)required

Defines the driver context.

driver.​ageinteger[ 18 .. 99 ]required

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

filtersobject(schemas-filters)

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_resultsinteger(maximumResultsCarsSearch)multiple of 10[ 10 .. 500 ]

The maximum number of results to return for car searches.

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

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

pagestring(page)

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

paymentobject(paymentInput)

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

routeobject(routeInput)required

Defines the route context.

route.​dropoffobject(routePointInput)required

Drop off location and time.

route.​dropoff.​datetimestring(date-time)required

Pick up / drop off datetime.

Example: "2023-11-01T11:05:00"
route.​dropoff.​locationlocationAsAirport (object) or locationAsCoordinates (object) or locationAsCity (object)required

Pick up / drop off location.

One of:

Pick up / drop off location.

route.​dropoff.​location.​airportstring(airportId)^[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.

route.​pickupobject(routePointInput)required

Pick up location and time.

route.​pickup.​datetimestring(date-time)required

Pick up / drop off datetime.

Example: "2023-11-01T11:05:00"
route.​pickup.​locationlocationAsAirport (object) or locationAsCoordinates (object) or locationAsCity (object)required

Pick up / drop off location.

One of:

Pick up / drop off location.

route.​pickup.​location.​airportstring(airportId)^[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.

sortobject(sort)

The sorting parameters for the response.

curl -i -X POST \
  https://demandapi.booking.com/3.2/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
    },
    "filters": {
      "transmission_type": "automatic",
      "mileage_type": "limited",
      "depot_location_type": "in_terminal"
    },
    "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(requestId)

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

dataArray of objects(schemas-product)
metadataobject(metadata)

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

Car constants

Request

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.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
constantsArray of strings

A list of car rental constant types to filter the results by. This allows you to narrow down the result based on particular criteria, such as fuel_policy, payment_timings etc.

Items Enum"depot_services""extras""fuel_policies""fuel_types""general""payment_timings""transmission"
languagesArray of strings(languageId)
Default ["en-gb"]
Example: ["en-us"]
curl -i -X POST \
  https://demandapi.booking.com/3.2/cars/constants \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "languages": [
      "de",
      "en-gb"
    ]
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring(requestId)

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

dataobject(ConstantsDataOutput)
Response
application/json
{ "request_id": "01jpvx9va93ghgwxq7zypagvdr", "data": { "depot_services": [], "extras": [], "fuel_policies": [], "fuel_types": [], "general": [], "payment_timings": [], "transmission": [] } }

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: "2025-11-01T11:05:00+00:00"
maximum_resultsinteger(maximumResults)multiple of 10[ 10 .. 100 ]

The maximum number of results to return.

languagesArray of strings(languageId)
Default ["en-gb"]
Example: ["en-us"]
pagestring(page)

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

curl -i -X POST \
  https://demandapi.booking.com/3.2/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(requestId)

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

dataArray of objects(depot)
metadataobject

Metadata about the request.

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

Locations

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

Operations

Payments

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

Operations

Languages

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

Operations

Orders

This API collection enables management of booking orders within the Demand API.
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.

Operations