Booking.com Demand API (3.2-Beta)

These endpoints are only available in Beta.
- Limited access: This API is currently offered to a limited number of pilot affiliate partners.
For inquiries regarding participation, please contact your dedicated Booking.com Account manager.
- Active development: These are under active development and subject to change.
- Frequent updates: These API specifications will be regularly updated throughout the pilot. We recommend checking the changelog periodically for the latest changes.


Note: Authentication is required using your Affiliate ID and token credentials.

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

Attractions

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/jsonrequired
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. Affects 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})?$

Optional. Controls the language of the Booking.com web and app URLs returned in the response. If not specified, English (en-gb) is used.

Default "en-gb"
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

Pickup / dropoff datetime.

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

Pickup / dropoff location.

One of:

Pickup / dropoff 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

Pickup / dropoff datetime.

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

Pickup / dropoff location.

One of:

Pickup / dropoff 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(schemas-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": "2026-11-10T11:05:00",
        "location": {
          "airport": "AMS"
        }
      },
      "pickup": {
        "datetime": "2026-11-05T11:05:00",
        "location": {
          "airport": "AMS"
        }
      }
    }
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring(requestId)required

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

dataArray of objects(schemas-product)required
data[].​carinteger(carFleetId)>= 1

This ID corresponds to a specific car model and supplier (fleet) combination, as returned by the /cars/details endpoint. Cache the details keyed by this ID and use it to match search results to your cached data.

data[].​categoriesArray of strings(categories)

The categories assigned to the car.

Items Enum ValueDescription
carriers

Vans or minivans designed for carrying larger groups or luggage.

estate

Station wagons or estate cars offering extra luggage space.

large

Large vehicles offering ample interior space and comfort.

medium

Mid-sized vehicles offering a balance of comfort and fuel efficiency.

premium

High-end or luxury vehicles with premium features.

small

Compact cars ideal for city driving and short distances.

suvs

Sport Utility Vehicles offering higher ground clearance and versatility.

data[].​dealobject or null(dealsOutput)

This specifies the deal tagging for the product.

data[].​offerinteger(offerId)>= 1

This ID identifies the car rental offer and its associated policies. Include it when calling the /cars/availability endpoint.

data[].​policiesobject(policiesOutput)

The policies that apply to this product.

data[].​priceobject(productPrice)

The price components of this product.

data[].​routeobject(routeOutput)

Defines the actual route associated with the product.

data[].​special_offerstring or null

The special offer included with this product, if any. This can be an additional service, a free upgrade, or a promotional feature provided by the supplier. If no special offer applies, the value will be null.

Enum"one_additional_driver""two_additional_drivers""three_additional_drivers""all_additional_drivers""gps""baby_or_child_seat""priority_pickup""wifi_device""sim_card""upgrade"
data[].​supplierinteger(vehicleSupplierId)>= 1

Related supplier id.

data[].​urlobject(urlOutput)

Urls to the relevant pages.

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 availability

Request

Retrieve details about the availability of a car rental.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
offerlong

The ID of the car offer.

search_tokenstringrequired

Encoded string returned by the car search. Note: It is specific to Car rentals and differs from other tokens used in booking flows.

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.

curl -i -X POST \
  https://demandapi.booking.com/3.2/cars/availability \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "offer": 740171366,
    "search_token": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7InNlYXJjaF9rZXkiOiJleUprY21sMlpYSnpRV2RsSWpvek5pd2laSEp2Y0U5bVprUmhkR1ZVYVcxbElqb2lNakF5TlMwd09TMHlNRlF4TVRvd05Ub3dNQ0lzSW1SeWIzQlBabVpNYjJOaGRHbHZiaUk2SWsxQlRpSXNJbVJ5YjNCUFptWk1iMk5oZEdsdmJsUjVjR1VpT2lKSlFWUkJJaXdpY0dsamExVndSR0YwWlZScGJXVWlPaUl5TURJMUxUQTVMVEU0VkRFeE9qQTFPakF3SWl3aWNHbGphMVZ3VEc5allYUnBiMjRpT2lKTlFVNGlMQ0p3YVdOclZYQk1iMk5oZEdsdmJsUjVjR1VpT2lKSlFWUkJJaXdpY21WdWRHRnNSSFZ5WVhScGIyNUpia1JoZVhNaU9qSXNJbk5sY25acFkyVkdaV0YwZFhKbGN5STZXeUpUVlZCUVVrVlRVMTlFU1ZKRlExUmZVRUZaWDB4UFEwRk1YMVpGU0VsRFRFVlRJbDE5IiwiYm9va2VyIjp7ImNvdW50cnkiOiJnYiJ9fSwiYXVkIjoiL2NhcnMvYXZhaWxhYmlsaXR5IiwiZXhwIjoxNzUzMTA2MDg2fQ.t8VrrJhUAvbAwIK_bO5cNAIB5Z_UfcolMEsGzlq3-eo",
    "currency": "GBP"
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring(requestId)

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

dataobject
Response
application/json
{ "request_id": "01k1deq3e5b41da80f28yybhz0", "data": { "offer": 740171366, "currency": "GBP", "policies": {}, "price": {}, "products": [], "deal": null, "special_offer": "upgrade", "supplier": 3486, "route": {} } }

Car constants

Request

This endpoint returns localised car rental constants used across the Cars API collection, such as extras, fuel policies, payment timings, and transmission types.

It also returns customer service contact email addresses per requested language for partner support scenarios where Booking.com handles travellers communication directly. 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

Use this field to limit the response to specific categories, such as fuel_policies, depot_services, customer_services, etc. If omitted, all constant groups are returned.

Items Enum"customer_services""depot_services""extras""special_offers""fuel_policies""fuel_types""general""payment_timings""transmission"
languagesArray of strings(languageId)

List of language codes used to localise constant names. Each constant name is returned as a translated object keyed by language. If not provided, en-gb is used by default.

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)

Contains constant groups keyed by constant type. Each group includes a list of constant identifiers and their translated names.

Response
application/json
{ "request_id": "01jpvx9va93ghgwxq7zypagvdr", "data": { "customer_services": [], "depot_services": [], "extras": [], "special_offers": [], "fuel_policies": [], "fuel_types": [], "general": [], "payment_timings": [], "transmission": [] } }

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

Messages

This API collection enables two-way communication between guests and properties. Use these endpoints to send and receive messages, include attachments, follow conversations, and more.

Operations

Conversations

Operations

Attachments

Operations