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

Constants

Request

Use this endpoint to retrieve standardised codes and names for accommodation-specific types, including facilities, room types, bed types, themes, and charges.
These constants can be used to filter searches or populate reference data across other accommodation endpoints.
You can request multiple languages using IETF language tags (see common/languages).
Call with an empty body to retrieve all constants. The codes returned are canonical identifiers used across the API.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
constantsArray of strings

Allows to filter the results only for specific sections.

Items Enum"accommodation_facilities""accommodation_themes""accommodation_types""bed_types""charge_types""facility_types""review_scores""room_facilities""room_types"
languagesArray of strings(languageId)
Default ["en-gb"]
Example: ["en-us"]
curl -i -X POST \
  https://demandapi.booking.com/3.2/accommodations/constants \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "languages": [
      "en-gb",
      "zh-cn"
    ]
  }'

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": "01fr9ez700exycb98w90w5r9sh", "data": { "accommodation_facilities": [], "accommodation_themes": [], "accommodation_types": [], "bed_types": [], "charge_types": [], "facility_types": [], "review_scores": [], "room_facilities": [], "room_types": [] } }

Details

Request

Use this endpoint to retrieve detailed information about accommodation properties matching your search criteria.

You must provide at least one of the following parameters: accommodations, airport, city, country, or region.

To receive extended information use the extras parameter.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
accommodation_facilitiesArray of integers(accommodationFacilityId)
accommodation_typesArray of integers(accommodationTypeId)
accommodationsArray of integers(accommodationId)<= 100 items
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.

brandsArray of integers(accommodationBrandId)
cityinteger(cityId)

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

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

extrasArray of strings(extrasV32)

Input parameter to request for additional information about the accommodation property. It should be passed as a JSON array with one or more items.

Items Enum"description""facilities""payment""photos""policies""refuses_free_cancellation_requests""rooms"
languagesArray of strings(languageId)
Example: ["en-us"]
pagestring(page)

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

paymentobject(paymentInputFilter)

Payment input information to filter results.

regioninteger(regionId)>= 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.

rowsinteger(maximumResults)multiple of 10[ 10 .. 1000 ]

The maximum number of results to return.

curl -i -X POST \
  https://demandapi.booking.com/3.2/accommodations/details \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "accommodations": [
      10004
    ],
    "extras": [
      "description",
      "facilities",
      "payment",
      "photos",
      "policies",
      "rooms"
    ],
    "languages": [
      "en-gb",
      "zh-cn"
    ]
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring(requestId)

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

dataArray of objects(AccommodationsDetailsDataOutput)
metadataobject(MetadataOutput)
Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": [ {} ], "metadata": { "next_page": null } }

Updated accommodations

Request

Use this endpoint to track accommodations that have opened, closed, or had relevant content updates since a specific timestamp. Changes can include updates to general information, facilities, rooms, photos, payments, and more.
You can:
- Filter results by country or city.
- Use the "next" timestamp from the response to request further updates.

To keep your local accommodation cache up to date, use this endpoint in combination with accommodations/details

The maximum number of IDs returned is approximately 5000 per request.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
last_changestring(date-time)required

The timestamp in ISO-8601 format from which changes to accommodations are returned (inclusive). Only UTC time zone is supported. We support changes for last 24 hours. Format: YYYY-MM-DDTHH:mm:ss+00:00

filtersobject

parameter basis which filtering needs to be done. Only one of (countries or cities) must be provided.

curl -i -X POST \
  https://demandapi.booking.com/3.2/accommodations/details/changes \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "last_change": "!START_DATE!T12:00:00+00:00",
    "filters": {
      "countries": [
        "nl",
        "es",
        "in"
      ]
    }
  }'

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": "01fr9ez700exycb98w90w5r9sh", "data": { "changes": {}, "from": "!START_DATE!T12:00:00+00:00", "next": "!START_DATE!T12:24:42+00:00", "total_changes": 8 } }

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

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