Booking.com Demand API (3.1)

Our Demand API offers a wide range of functionalities for Affiliate Partners to be able to retrieve accommodation, car rental and flights information from Booking.com inventory.

- Based on basic REST principles, our endpoints return JSON data directly from our system.
- You can consume them directly through HTTPS calls, using the POST method.

Download OpenAPI description
Languages
Servers
Production environment
https://demandapi.booking.com/3.1/
Sandbox environment
https://demandapi-sandbox.booking.com/3.1/

Accommodation

This API collection is specific for the stay part of the connected trip.

Use these endpoints to look for accommodation such as hotels, apartments, etc, check their availability, reviews, accommodation details, etc.

Operations

Updated accommodations

Request

This endpoint returns all accommodations that have closed, opened or changed relevant content since the given timestamp up to a limit of around 5000 ids.

Cache: It is recommended to cache accommodation information locally in order to speed up responses. Use this endpoint in combination with accommodations/details to maintain the local cache up-to-date.

The number of accommodation ids returned may vary since some may be removed due to blacklisting, while all changes from the last second will be included even if already beyond the 5000 ids threshold.

Multiple changes to the same accommodation are grouped by intervals of 30 minutes in order to reduce the number of records.

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.1/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

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

dataobject(AccommodationDetailsChangesDataOutput)
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": 5125 } }

Reviews

Request

This endpoint provides access to reviews for specified accommodations, allowing you to retrieve traveller feedback associated with a particular property.

✅ The reviews returned can be filtered and paginated, with the option to limit the number of reviews per accommodation by specifying the rows parameter.

Please note that the ratings score is based on all traveller traffic across Booking.com, and may not necessarily reflect the experience of your own customers.

If you choose to display or use these ratings and reviews, you are responsible for ensuring that your travellers are properly informed about what these scores represent.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
accommodationsArray of integers<= 100 itemsrequired
languagesArray of strings

Limits reviews to those written in this language.

Example: ["en-us"]
last_changestring(date)

Limits the reviews to those changed after the given date. Format: YYYY-MM-DD.

pagestring

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

reviewerobject(AccommodationsReviewer)
rowsintegermultiple of 10[ 10 .. 100 ]

The maximum number of results to return.

Default 100
scoreobject(AccommodationsReviewScoreInput)
curl -i -X POST \
  https://demandapi.booking.com/3.1/accommodations/reviews \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "accommodations": [
      10004
    ],
    "languages": [
      "en-gb"
    ]
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring

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

dataArray of objects(AccommodationsReviewsDataOutput)
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": "..." }

Review scores

Request

This endpoint returns score distribution and score breakdown for the specified accommodations. The scores information can be filtered by reviewer parameters and languages.

Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
accommodationsArray of integers<= 100 itemsrequired
languagesArray of strings

Limits reviews to those written in this language.

Example: ["en-us"]
reviewerobject(AccommodationsReviewer)
curl -i -X POST \
  https://demandapi.booking.com/3.1/accommodations/reviews/scores \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "accommodations": [
      10004
    ],
    "languages": [
      "en-gb"
    ]
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring

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

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

Car rentals

This API collection is specific to the car rentals part of the connected trip, and form part of an early access pilot programme restricted to selected partners.

Pilot phase:
- All the functionalities are currently under active development and are subject to change.
- Initial search, look, and post-book functionalities (Type 2 and Type 4 partners) are available exclusively for testing purposes.
- General availability is targeted for Q2 2025.

Limited access:
- This API collection is currently accessible only to a select group of Type 2 and Type 4 pilot partners.
- If you are not part of the pilot, you will not have access to these endpoints.
- For inquiries regarding participation, please contact our Partnerships team.

Frequent updates:
These endpoints and documentation will be updated regularly throughout the pilot.

Operations

Locations

These are the endpoints you can use to retrieve the identifiers of a wide range of geographical locations: airports, countries, cities, regions, etc.

Use these identifiers to construct your requests.

Note: These identifiers are available across all travel services and you can use them for both accommodotation and car rentals requests.

Operations

Payments

Generic endpoints related to payments and finance: currencies, payment types, etc.

Operations

Languages

Use this endpoint to retrieve the list of available language codes.

Operations

Orders

These endpoints enable you to manage and process booking orders within the Demand API. These operations include previewing and creating new orders, checking order details, cancelling existing orders, and modifying orders if needed.

This API collection is essential for integrating the order management functionality, such as handling bookings, cancellations, and updates to reservation details, etc.

Operations