Skip to content

Booking.com Demand API (3.2-Beta)

Beta version – experimental endpoints

This API version is currently in Beta and is offered to a limited set of pilot affiliate partners. Access is granted on request via your Booking.com account manager.

⚠️ Important: This API is under active development. Endpoints, request/response structures, and functionality may change without prior notice. Specifications are updated frequently during the pilot phase.

  • Consult the Changelog for the latest updates.
  • All requests require authentication 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

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

Autocomplete

Use this endpoint to retrieve ranked suggestions based on a free-text query. Designed for real-time "as-you-type" autocomplete experiences.

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

Preview an order

Request

Use this endpoint to calculate the final price, including a detailed price breakdown, payment schedule, and cancellation policies for accommodation and car rentals. Provide the booker's details and preferred currency to receive personalised pricing. For accommodations: Include check-in and check-out dates. Include room allocations and selected products. For cars: Include the offer ID and search token. Optionally include an insurance quote_reference (from /cars/availability) to attach third-party insurance.

Security
BearerAuth
Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
One of:

Use this option to preview pricing and policies for car rentals.

carobject(carInput)required

Additional information related to the car order. This field is mutually exclusive with accommodation; only one of them can be included in a request.

car.​search_tokenstringrequired

Encoded string returned by the car search. Note: It is specific to Car rentals and differs from other tokens used in booking flows.

car.​offerinteger(offerId)>= 1required

This ID identifies the car rental offer and its associated policies. Include it when calling the /cars/availability endpoint.

car.​productsArray of objects(CarProductInput)

List of additional products to add to the car rental (e.g., child seats, GPS, additional insurance).

car.​insuranceobject

Insurance details for this car rental. Include this to add third-party insurance to the booking. If omitted, the booking proceeds without insurance.

car.​languagestring(languageId)^[a-z]{2}(-[a-z]{2})?$

A IETF language tag code that uniquely identifies a supported human language or dialect. Note: Demand API only accepts lowercase for the language codes. Examples: "nl" for Dutch/Nederlands or "en-us" for English (US). To retrieve the full list of supported languages, call the /common/languages endpoint in the same Demand API version you are using.

accommodationobject(accommodationInput)

Input parameter with the checkin and checkout date and all the accommodation products to be ordered. This field is mutually exclusive with car; only one of them can be included in a request.

currencystring(currencyId)^[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.

curl -i -X POST \
  https://demandapi.booking.com/3.2/orders/preview \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "currency": "EUR",
    "accommodation": {
      "id": 6745031,
      "booker": {
        "country": "nl",
        "platform": "mobile",
        "travel_purpose": "leisure",
        "user_groups": [
          "authenticated"
        ]
      },
      "checkin": "!START_DATE!",
      "checkout": "!END_DATE!",
      "products": [
        {
          "id": "674503106_275710478_0_2_0",
          "allocation": {
            "number_of_adults": 1,
            "children": [
              8
            ]
          }
        },
        {
          "id": "674503113_275710486_0_1_0",
          "allocation": {
            "number_of_adults": 1,
            "children": []
          }
        }
      ]
    }
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring(requestId)

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

dataobject(preview)

Contains the calculated order details for accommodation or car products, including pricing, policies, etc.

Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": { "accommodation": {}, "order_token": "..." } }

Create an order

Request

Use this endpoint to create and confirm an order using a valid order token and payment details.

Security
BearerAuth
Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
One of:

Use this object to create an accommodation order. Include accommodation-specific data and payment details.

accommodationobject(accommodation)required

Additional information related to the accommodation order. This field is mutually exclusive with car; only one of them can be included in a request.

accommodation.​labelstring

A label for this order. This can be read back later while fetching this order details.

accommodation.​productsArray of objects(OrderCreateProductInformationInput)
accommodation.​remarksobject(OrderCreateRemarksInput)

Optional remarks from the guest.

bookerobject(accommodation_booker)required

The booker's information for an accommodation order.

booker.​addressobject(address)required

The booker's address to be used for creating this order. All fields of this object are required if the /accommodations/details endpoint indicates that the booker's address is necessary by returning booker_address_required=true.

booker.​address.​address_linestring

The details of this address.

booker.​address.​citystring

The city for this address.

booker.​address.​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.

booker.​address.​post_codestring

Post code for this address.

booker.​companystring

The booker's company name.

booker.​emailstringrequired

The booker's email address.

booker.​languagestring(languageId)^[a-z]{2}(-[a-z]{2})?$

A IETF language tag code that uniquely identifies a supported human language or dialect. Note: Demand API only accepts lowercase for the language codes. Examples: "nl" for Dutch/Nederlands or "en-us" for English (US). To retrieve the full list of supported languages, call the /common/languages endpoint in the same Demand API version you are using.

booker.​nameobject(OrderCreateBookerNameInput)required

The name of the booker.

booker.​name.​first_namestringrequired
booker.​name.​last_namestringrequired
booker.​telephonestringrequired

The booker's telephone number.

order_tokenstringrequired

Token returned by /orders/preview containing the data required to create the order.

paymentobject(OrderCreatePaymentInput)required

Payment related information for the order.

payment.​airplusobject

All information related to airplus payment. This is required if airplus is selected as payment method.

payment.​business_informationobject(OrderCreateBusinessInformationInput)

All business related information for billing and authorisation form. This must be included for the payments that require authorisation form.

payment.​cardobject(OrderCreateCardInput)

Card information for executing the payment.

payment.​include_receiptboolean

Set to true to include a payment receipt URL in the response when available.

payment.​methodstring

The payment method to be used for this order.

Enum"airplus""card""wallet"
payment.​timingstringrequired

Payment timing for the order. Use one of the values returned in the corresponding /orders/preview response. Supported values depend on the travel service and payment configuration.

Enum ValueDescription
pay_at_pickup

Only for car rental orders. Traveller pays at the car rental pick-up location.

pay_at_the_property

Only for accommodation orders. Traveller pays at the accommodation property.

pay_online_later

Only for accommodation orders. Traveller pays online at a later time before check-in.

pay_online_now

Traveller pays online immediately at the time of booking.

pay_partial_online_now

Only for car rental orders. Traveller pays part online at booking and the remainder at the car rental pick-up location.

curl -i -X POST \
  https://demandapi.booking.com/3.2/orders/create \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "accommodation": {
      "label": "string",
      "products": [
        {
          "id": "string",
          "bed_configuration": "string",
          "guests": [
            {
              "email": "string",
              "name": "string"
            }
          ]
        }
      ],
      "remarks": {
        "estimated_arrival_time": {
          "hour": 23,
          "next_day": false
        },
        "special_requests": "string"
      }
    },
    "booker": {
      "address": {
        "address_line": "string",
        "city": "string",
        "country": "nl",
        "post_code": "string"
      },
      "company": "string",
      "email": "string",
      "language": "en-us",
      "name": {
        "first_name": "string",
        "last_name": "string"
      },
      "telephone": "string"
    },
    "order_token": "string",
    "payment": {
      "airplus": {
        "dbi": {
          "accounting_code": "string",
          "accounting_unit": "string",
          "cost_centre": "string",
          "department_code": "string",
          "employee_number": "string",
          "internal_account": "string",
          "order_number": "string",
          "project_number": "string"
        },
        "number": "string"
      },
      "business_information": {
        "authorisation_form": {
          "chargeable_items": [
            "alcohol"
          ]
        },
        "billing": {
          "address": {
            "address_line": "string",
            "city": "string",
            "country": "nl",
            "post_code": "string"
          },
          "email": "string",
          "vat": "string"
        },
        "company": "string"
      },
      "card": {
        "authentication": {
          "riskified": {
            "ip_address": "192.168.0.1",
            "session_id": "string"
          },
          "sca_exemption": "moto",
          "3d_secure": {
            "authentication_value": "string",
            "eci": "string",
            "transaction": "string"
          }
        },
        "cardholder": "string",
        "cvc": "string",
        "expiry_date": "string",
        "number": "string"
      },
      "include_receipt": true,
      "method": "airplus",
      "timing": "pay_at_pickup"
    }
  }'

Responses

Successful response.

Bodyapplication/json
request_idstring(requestId)

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

dataobject(OrderCreateDataOutput)
Response
application/json

Orders details

Request

Use this endpoint to fetch detailed information about existing orders across accommodations, cars, flights, attractions, and taxis. Useful for syncing your system with Booking.com order data, monitoring updates, and performing reporting or analytics across services.

You can query orders by:

  • Creation or update date — retrieve orders created or updated within a 7-day range.
  • Travel dates — filter by start or end date (up to 7 days).
  • Order or reservation ID — fetch details for specific orders.

Notes:

  • Only one filter type (created, updated, start, end, orders, reservations) or pagination (page) should be provided per request.
  • 'currency' must be a three-letter ISO 4217 code. Defaults to product base currency if omitted.
  • 'extras' can request additional data (currently supports 'payment').
  • 'services' filters results by travel service type: accommodations, cars, flights, attractions, or taxis.

This endpoint is ideal for:

  • Displaying booking details in partner dashboards or traveller confirmation pages.
  • Generating invoices, receipts, or post-booking communications.
  • Performing reporting, reconciliation, or analytics across all travel services. See the Order reporting guide for more details.
Security
BearerAuth
Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
One of:

Retrieve orders that were last updated within a specific time range. Use this to sync incremental changes, such as status updates, cancellations, or modifications.

updatedobject(orderDatetimeFilter)required

Filtering orders by time range on basis of order "created" or "updated" time. Maximum time range is 7 days (1 week).

updated.​fromstring(date-time)required

ISO 8601 timestamp in UTC, which indicates the timestamp from which you want to filter orders from (inclusive). The value should be within last 1 year.

updated.​tostring(date-time)

ISO 8601 timestamp in UTC, which indicates the timestamp till which you want to filter orders to (inclusive). It has to be greater than or equal to "from".

currencystring(currencyId)^[A-Z]{3}$required

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.

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

The maximum number of results to return.

sortobject(orderSort)

The sorting parameters for the response.

extrasArray of strings(schemas-extras)

Input parameter to request for additional information about this order.

Items Value"payment"
servicesArray of strings(services)

Filter orders by included travel services.

Items Enum"accommodations""cars""flights""attractions""taxis"
curl -i -X POST \
  https://demandapi.booking.com/3.2/orders/details \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "created": {
      "from": "2026-03-26T02:00:00+00:00",
      "to": "2026-03-28T02:00:00+00:00"
    },
    "currency": "EUR",
    "maximum_results": 20,
    "sort": {
      "by": "created",
      "direction": "descending"
    },
    "extras": [
      "payment"
    ]
  }'

Responses

Successful response. Returns a list of orders matching the requested filter criteria.

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

Metadata about the request.

request_idstring(requestId)

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

Response
application/json

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