Booking.com Demand API (3.1)

The Booking.com Demand API enables Affiliate Partners to access Booking.com's travel inventory, including accommodations, car rentals, and flights.

Use Demand API to search, retrieve details, check availability, manage bookings and run reports using orders details.

  • RESTful API with JSON responses.
  • Make HTTPS POST requests to interact with endpoints.
  • Requires authentication using your Affiliate ID and token credentials.

Check the try out guide!

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 search for stays such as hotels and apartments, check availability, retrieve reviews, and get detailed property information.

Operations

Check multiple availability

Request

Retrieve detailed availability, pricing, and charges for up to 50 accommodation IDs.

  • By default, only availability and price are returned.
  • Use the extras parameter to receive additional information.

Mandatory fields: 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. Add "include_bundle_variants" to include all bookable products with bundles.

Items Enum"extra_charges""include_bundle_variants"
filtersobject(AccommodationsBulkAvailabilityFiltersInput)

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.1/accommodations/bulk-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(AccommodationsBulkAvailabilityDataOutput,)
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.1/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": [ {}, "..." ] }

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
Default ["en-gb"]
Example: ["en-us"]
curl -i -X POST \
  https://demandapi.booking.com/3.1/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

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": [] } }

Car rentals

This API collection is specific to the car rentals part of the connected trip.

Use these endpoints to search for car rentals, check car details and look for depots and suppliers.

Operations

Locations

Provides identifiers for a wide range of geographical locations, including airports, countries, cities, and regions.

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

Provides generic payment-related endpoints, including supported currencies and payment types.

Operations

Languages

Provides a list of supported language codes for use in API requests.

Operations

Orders

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

Provides endpoints for two-way post-booking communication between guests and properties.

Use these endpoints to send and retrieve messages, exchange images, and check conversation details.

Operations

Conversations

Provides endpoints to retrieve and manage messaging conversations.

Use these endpoints to list conversations, fetch conversation details, and track updates.

Operations

Attachments

Provides endpoints for handling message attachments.

Use these endpoints to upload and download images shared within conversations.

Operations