Booking.com Demand API (3.2)

v3.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

v3.2

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

Search for accommodation

Request

Use this endpoint to search for accommodations that match your specified criteria.
By default, the response returns the cheapest available product for each accommodation.

When applying location filters such as country or region, results are ranked by Booking.com popularity (top picks) rather than price, with higher-ranked listings appearing first.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
accommodationsArray of integers<= 100 items
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"
bookerobject(Booker)required

The booker's information.

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.

booker.​platformstringrequired

The booker platform for showing the platform based deals and prices.

Enum"android""desktop""ios""mobile""tablet"
booker.​statestring^[a-z]{2}$

The booker state for showing the best price for that user and obeying laws regarding the display of taxes and fees. Currently applicable only for country US.

booker.​travel_purposestring

The travel purpose of the booker.

Enum"business""leisure"
booker.​user_groupsArray of strings

The user groups that the booker is a member of.

Items Value"authenticated"
checkinstring(date)required

The checkin date. Must be within 500 days in the future and in the format yyyy-mm-dd.

checkoutstring(date)required

The checkout date. Must be later than {checkin}. Must be between 1 and 90 days after {checkin}. Must be within 500 days in the future and in the format yyyy-mm-dd.

cityinteger

A signed integer number that uniquely identifies a city. The full list can be obtained by calling common/locations/cities.

coordinatesobject(AccommodationsSearchCoordinatesOutput)

Limit the result list to the specified coordinates.

countrystring^[a-z]{2}$

A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries.

Example: "nl"
currencystring^[A-Z]{3}$

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"
districtinteger>= 1

A signed integer number that uniquely identifies a district. Typically, districts define known areas within a city. The full list can be obtained by calling common/locations/districts.

extrasArray of strings

Input parameter to request for additional information about the products.

Items Enum"extra_charges""products"
filtersobject

Filter criteria for the search results

guestsobject(AccommodationsGuests)required

The guest details for the request.

guests.​allocationArray of objects

The exact allocation of guests to rooms.

guests.​childrenArray of integers

Array with the children ages.

guests.​number_of_adultsinteger>= 1required

The number of adults for the search.

guests.​number_of_roomsinteger>= 1required

The number of rooms needed.

landmarkinteger>= 1

A signed integer number that uniquely identifies a relevant geographical landmark, like a monument or a natural attraction. The full list can be obtained by calling common/locations/landmarks.

pagestring

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

regioninteger>= 1

A signed integer number that uniquely identifies a geographical region. Regions usually define official administrative areas within a country, but may also include multiple countries and in some cases un-official but popular designations for geographical areas. An example of a region that crosses multiple countries is the Alps in Europe. The full list can be obtained by calling common/locations/regions.

rowsintegermultiple of 10[ 10 .. 100 ]

The maximum number of results to return.

Default 100
sortobject

The sorting parameters for the response

curl -i -X POST \
  https://demandapi.booking.com/3.2/accommodations/search \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "booker": {
      "country": "nl",
      "platform": "desktop"
    },
    "checkin": "!START_DATE!",
    "checkout": "!END_DATE!",
    "city": -2140479,
    "extras": [
      "extra_charges",
      "products"
    ],
    "guests": {
      "number_of_adults": 2,
      "number_of_rooms": 1
    }
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring

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

dataArray of objects(AccommodationsSearchDataOutput)
next_pagestring or null

Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter page).

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

Check availability

Request

Use this endpoint to check real-time availability, prices, and charges for one or more accommodations. By default, only product availability and price is returned.

To retrieve extended details such as extra charges or payment information, use the extras or filters parameters.
You must provide the following required input parameters: accommodations, booker, checkin, checkout, and guests.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
accommodationsArray of integersrequired
bookerobject(Booker)required

The booker's information.

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.

booker.​platformstringrequired

The booker platform for showing the platform based deals and prices.

Enum"android""desktop""ios""mobile""tablet"
booker.​statestring^[a-z]{2}$

The booker state for showing the best price for that user and obeying laws regarding the display of taxes and fees. Currently applicable only for country US.

booker.​travel_purposestring

The travel purpose of the booker.

Enum"business""leisure"
booker.​user_groupsArray of strings

The user groups that the booker is a member of.

Items Value"authenticated"
checkinstring(date)required

The checkin date. Must be within 500 days in the future and in the format yyyy-mm-dd.

checkoutstring(date)required

The checkout date. Must be later than {checkin}. Must be between 1 and 90 days after {checkin}. Must be within 500 days in the future and in the format yyyy-mm-dd.

currencystring^[A-Z]{3}$

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"
extrasArray of strings

Input parameter to request for additional information about this product.

Items Value"extra_charges"
filtersobject(AccommodationsAvailabilityFiltersInput)

The filters to apply in this availability request.

guestsobject(AccommodationsGuests)required

The guest details for the request.

guests.​allocationArray of objects

The exact allocation of guests to rooms.

guests.​childrenArray of integers

Array with the children ages.

guests.​number_of_adultsinteger>= 1required

The number of adults for the search.

guests.​number_of_roomsinteger>= 1required

The number of rooms needed.

curl -i -X POST \
  https://demandapi.booking.com/3.2/accommodations/availability \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "accommodations": [
      10004
    ],
    "booker": {
      "country": "nl",
      "platform": "desktop"
    },
    "checkin": "!START_DATE!",
    "checkout": "!END_DATE!",
    "extras": [
      "extra_charges"
    ],
    "filters": {
      "meal_plan": "breakfast_included",
      "cancellation_type": "free_cancellation"
    },
    "guests": {
      "number_of_adults": 2,
      "number_of_rooms": 1
    }
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring

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

dataArray of objects(AccommodationsAvailabilityDataOutput,)
Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": [ {} ] }

Chains

Request

Use this endpoint to retrieve a list of accommodation chains and their associated brands.

A chain-branded accommodation is part of a larger corporate group and operates under a recognised brand. The returned information can be used to filter search results by chain or brand across other endpoints.

- To obtain the full list of chains, call this endpoint with an empty request body.
- The id values returned are the codes used as input and output in other API requests, ensuring consistency across your integration.

Example of chain - "Radisson Hotel Group" with brands such as “Radisson Blu” or “Park Inn by Radisson”.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

curl -i -X POST \
  https://demandapi.booking.com/3.2/accommodations/chains \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'X-Affiliate-Id: 0'

Responses

Successful response.

Bodyapplication/json
request_idstring

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

dataArray of objects(AccommodationsChainsOutput)
Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": [ {}, "..." ] }

Car rentals

v3.2

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

Locations

v3.2

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

v3.2

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

v3.2

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

v3.2

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