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

Search attraction

Request

Use this endpoint to retrieve attractions based on the provided search criteria.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
One of:
attractionsArray of strings[ 1 .. 100 ]required

List of attraction IDs to include in the search.

citiesArray of integers[ 1 .. 5 ]
coordinatesobject

Geographic coordinates for location-based search.

countriesArray of strings[ 1 .. 3 ]
Example: ["nl"]
currencystring(pricing_currencyId)[A-Z]{3}required

A three-letter code that uniquely identifies a monetary currency (ISO 4217). Example: EUR for Euro, USD for US Dollar. See common/payments/currencies. for the full list.

datesobject(datesInput)required

The start and end dates for attraction availability.

dates.​start_datestring(date)required

The start date for attraction availability.

dates.​end_datestring(date)required

End date for attraction availability.

filtersobject(filtersInput)

Filters for attraction search.

pagestring

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

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

The maximum number of results to return.

Default 20
sortobject(sort)

The sorting parameters for the response.

curl -i -X POST \
  https://demandapi.booking.com/3.2/attractions/search \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "currency": "EUR",
    "attractions": [
      "PR0dwCIbnsiU",
      "AFd2wcIjMauX"
    ],
    "dates": {
      "start_date": "2025-09-18",
      "end_date": "2025-09-20"
    },
    "rows": 50,
    "sort": {
      "by": "most_popular"
    }
  }'

Responses

Successful response.

Bodyapplication/json
dataArray of objects(attraction)
metadataobject(metadata)

Metadata about the request.

request_idstring(requestId)

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

Response
application/json
{ "data": [ {}, {}, {} ], "metadata": { "next_page": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImN1cnJlbmN5IjoiRVVSIiwicXVlcnkiOnsiY291bnRyaWVzIjpbIm5sIiwiZnIiXSwiY29vcmRpbmF0ZXMiOnsibGF0aXR1ZGUiOjUyLjM3LCJsb25naXR1ZGUiOjQuOTAsIm1heF9kaXN0YW5jZV9rbSI6MTAwLjAwfSwic3RhcnRfZGF0ZSI6IjIwMjUtMDktMjEiLCJlbmRfZGF0ZSI6IjIwMjUtMDktMjIiLCJzdXBwb3J0ZWRfbGFuZ3VhZ2VzIjpbIm5sIl0sIm1pbl9yYXRpbmciOjQuMDAsIm1pbl9yZXZpZXdfY291bnQiOjV9LCJvcmRlcl9ieSI6Im1hdGNoX3Njb3JlIiwicGFnZV9udW1iZXIiOjJ9LCJhdWQiOiIvYXR0cmFjdGlvbnMvc2VhcmNoIiwiZXhwIjoxNzU3Mzc0MzI0fQ.JUU7kbuwiCaS4n_SZANA577BvZWdqDDQizU8q6fTrg0", "total_results": 128 }, "request_id": "01fr9ez700exycb98w90w5r9sh" }

Attraction details

Request

Use this endpoint to retrieve static information about attractions such as name, description, address, URL, etc. Note: This endpoint does not return any pricing information.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
One of:
attractionsArray of strings(attractionId)[ 1 .. 100 ] itemsrequired

List of attraction IDs to retrieve details for.

citiesArray of integers[ 1 .. 5 ] items
countriesArray of strings[ 1 .. 3 ] items
Example: ["nl"]
languagesArray of strings<= 1 items

The attraction details language. IETF BCP 47 language code.

Default ["en-gb"]
pagestring

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

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

The maximum number of results to return.

Default 20
curl -i -X POST \
  https://demandapi.booking.com/3.2/attractions/details \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "attractions": [
      "PRTcWzDlwXjP",
      "PRahAzWtTraa",
      "PRAmdacCwQLH"
    ],
    "languages": [
      "en-gb"
    ],
    "rows": 50
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring(requestId)

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

dataArray of objects(AttractionsDetailsDataOutput)
metadataobject(metadata)

Metadata about the request.

Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": [ {} ], "metadata": { "next_page": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImN1cnJlbmN5IjoiRVVSIiwicXVlcnkiOnsiY291bnRyaWVzIjpbIm5sIiwiZnIiXSwiY29vcmRpbmF0ZXMiOnsibGF0aXR1ZGUiOjUyLjM3LCJsb25naXR1ZGUiOjQuOTAsIm1heF9kaXN0YW5jZV9rbSI6MTAwLjAwfSwic3RhcnRfZGF0ZSI6IjIwMjUtMDktMjEiLCJlbmRfZGF0ZSI6IjIwMjUtMDktMjIiLCJzdXBwb3J0ZWRfbGFuZ3VhZ2VzIjpbIm5sIl0sIm1pbl9yYXRpbmciOjQuMDAsIm1pbl9yZXZpZXdfY291bnQiOjV9LCJvcmRlcl9ieSI6Im1hdGNoX3Njb3JlIiwicGFnZV9udW1iZXIiOjJ9LCJhdWQiOiIvYXR0cmFjdGlvbnMvc2VhcmNoIiwiZXhwIjoxNzU3Mzc0MzI0fQ.JUU7kbuwiCaS4n_SZANA577BvZWdqDDQizU8q6fTrg0", "total_results": 128 } }

Attraction Reviews

Request

Retrieves reviews for a specific attraction. The reviews returned can be filtered and sorted, with the option to limit the number of reviews per attraction by specifying the "rows" parameter. Note: The scores reflect all traveller feedback across Booking.com and may not directly correspond to the experiences of your own customers. If you choose to display or use these ratings and reviews, you are responsible for ensuring that your travellers understand what these scores represent.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
attractionstring(attractionId)required

Uniquely identifies an attraction to retrieve reviews for.

languagestring[a-z]{2}(-[a-z]{2})?

The language for reviews content. IETF BCP 47 language code.

pagestring(page)

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

rowsintegermultiple of 10[ 10 .. 100 ]

The maximum number of results to return per page.

Default 10
curl -i -X POST \
  https://demandapi.booking.com/3.2/attractions/reviews \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "attraction": "PRTcWzDlwXjP",
    "language": "en-gb",
    "rows": 10
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring(requestId)

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

dataArray of objects(AttractionsReviewDataOutput)
metadataobject(metadata)

Metadata about the request.

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

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

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