Skip to content

Booking.com Demand API (3.2)

The Booking.com Demand API enables Affiliate Partners to access Booking.com's travel inventory, including accommodations, car rentals, and flights. The version 3.2 introduces several improvements and breaking changes from version 3.1, including updates to price structures, inclusion of Attractions and taxis 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.

Check the Try out guide!

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

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

Modify an order

Request

Use this endpoint to modify certain aspects of an accommodation order, such as credit card details, checkin/checkout dates, and room configurations (guest allocation, guest names, and smoking preferences). See the Orders modification guide for examples and best practices.

Security
BearerAuth
Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
One of:
orderstring(orderId)required

Order ID to be modified

modificationobjectrequired
modification.​accommodationobject(accommodationChange)required
modification.​accommodation.​reservationstringrequired

Reservation ID

modification.​accommodation.​changeDateChange (object) or RoomChange (object)required
One of:
modification.​accommodation.​change.​checkinstring(date)required

New checkin date

modification.​accommodation.​change.​checkoutstring(date)required

New checkout date

modification.​accommodation.​typestringrequired

Type of the accommodation change

Enum"dates""room"
curl -i -X POST \
  https://demandapi.booking.com/3.2/orders/modify \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "order": "string",
    "modification": {
      "accommodation": {
        "reservation": "string",
        "change": {
          "checkin": "2019-08-24",
          "checkout": "2019-08-24"
        },
        "type": "dates"
      }
    }
  }'

Responses

Successful modification

Bodyapplication/json
One of:
modificationobject
Response
application/json
{ "modification": { "accommodation": {} } }

Cancel an order

Request

Use this endpoint to cancel a reservation within an existing order. Provide the reservation details for the travel service you want to cancel. You can optionally include the order ID to help identify the order. Only one reservation can be cancelled per request.

For step-by-step instructions, examples, and best practices, see the Cancellations guide.

Security
BearerAuth
Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
One of:

Use this option to cancel a car rental reservation.

orderstring

Unique identifier of the order containing the reservation to cancel.

accommodationobject(AccommodationOrdersCancelInput)
carobject(CarsOrdersCancelInput)required
car.​reservationstringrequired

Unique identifier of the car rental reservation to cancel.

car.​reasonstringrequired

Free-text explanation for the cancellation request.

car.​bookerobjectrequired

Information about the person who made the booking. Required for car cancellations.

car.​booker.​countrystring(countryId)^[a-z]{2}$required

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.

curl -i -X POST \
  https://demandapi.booking.com/3.2/orders/cancel \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "order": "509430129718799",
    "accommodation": {
      "reservation": "1234567890",
      "reason": "My travel dates have changed and I need to book a different property."
    }
  }'

Responses

Indicates whether the cancellation request was successfully processed.

Bodyapplication/json
request_idstring(requestId)

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

dataobject(OrdersCancelDataOutput)
Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": { "status": "successful" } }