Unfortunately, this feature is not supported on mobile devices. For the best experience, please use a computer.

Booking.com Demand API (3.1)

Download OpenAPI description
Languages
Servers
https://demandapi.booking.com/3.1/

Accommodations

These are the endpoints and sections specific for the stay part of the connected trip.

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

Operations

Common/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

Common/payments

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

Operations

Common

Operations

Orders

Operations

Cancel an order

Request

Use this endpoint to process an order cancellation. Refer to the Cancellations guide for instructions, tips and examples.

Bodyapplication/json
orderstringrequired

ID of the order to cancel.

reasonstringrequired

The reason for cancelling this order.

curl -i -X POST \
  https://demandapi.booking.com/3.1/orders/cancel \
  -H 'Content-Type: application/json' \
  -d '{
    "order": "509430129718799",
    "reason": "I would like to book another property instead of this one."
  }'
Experience it firsthand in the API Explorer!

Responses

Successful response.

Bodyapplication/json
request_idstring

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

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

Create an order

Request

Bodyapplication/json
accommodationobject(OrderCreateAccommodationInput)

Additional information related to the accommodation order.

bookerobject(OrderCreateBookerInput)required

The booker's information.

booker.addressobject(OrderCreateAddressInput)required

The booker's address to be used for creating this order.

booker.address.address_linestringrequired

The details of this address.

booker.address.citystringrequired

The city for this address.

booker.address.countrystring^[a-z]{2}$required

The country for this address.

Example:

"nl"

booker.address.post_codestringrequired

Post code for this address.

booker.companystring

The booker's company name.

booker.emailstringrequired

The booker's email address.

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

An IETF language tag code that uniquely identifies a supported human language or dialect as described here: https://en.wikipedia.org/wiki/IETF_language_tag. Note that in v3 the whole tag is always lowercase. Examples: "nl" for Dutch/Nederlands or "en-us" for English (US). The full list can be obtained by calling common/languages.

Example:

"en-us"

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

A token containing the necessary data to be used for creating this 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

This is used to determine whether to include payment receipt_url in the response or not.

payment.methodstring

The payment method to be used for this order.

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

Information about when to execute the payment.

Enum"pay_at_the_property""pay_online_later""pay_online_now"
curl -i -X POST \
  https://demandapi.booking.com/3.1/orders/create \
  -H 'Content-Type: application/json' \
  -d '{
    "accommodation": {
      "label": "Sample label",
      "products": [
        {
          "id": "333",
          "bed_configuration": "123456",
          "guests": [
            {
              "email": "test.name@booking.com",
              "name": "Test Name"
            }
          ]
        }
      ],
      "remarks": {
        "estimated_arrival_time": {
          "hour": 12
        },
        "special_requests": "We will need an extra cot."
      }
    },
    "booker": {
      "address": {
        "address_line": "Road-1, house-2",
        "city": "Amsterdam",
        "country": "nl",
        "post_code": "11111"
      },
      "company": "Booking B.V",
      "email": "test.name@booking.com",
      "language": "en-gb",
      "name": {
        "first_name": "Test",
        "last_name": "Name"
      },
      "telephone": "12345678"
    },
    "order_token": "sample-token",
    "payment": {
      "card": {
        "cardholder": "Test Name",
        "cvc": "111",
        "expiry_date": "2030-10",
        "number": "23333333333333"
      },
      "include_receipt": true,
      "method": "card",
      "timing": "pay_at_the_property"
    }
  }'
Experience it firsthand in the API Explorer!

Responses

Successful response.

Bodyapplication/json
request_idstring

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

dataobject(OrderCreateDataOutput)
Response
application/json
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": { "accommodation": {}, "payment": {} } }

List orders

Request

This endpoint returns basic information for orders filtered according to the input.

Bodyapplication/json
One of:
updatedobject(OrderDetailsDatetimeFilterInput)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^[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.

Example:

"EUR"

maximum_resultsintegermultiple of 10[ 10 .. 100 ]

The maximum number of results to return.

Default 100
sortobject(OrderDetailsSortInput)

The sorting parameters for the response.

extrasArray of strings

Input parameter to request for additional information about this order.

Items Value"payment"
servicesArray of strings

Filter orders by included services.

Items Enum"accommodations""cars"
curl -i -X POST \
  https://demandapi.booking.com/3.1/orders/details \
  -H 'Content-Type: application/json' \
  -d '{
    "created": {
      "from": "2023-02-28T02:00:00+00:00",
      "to": "2023-02-28T02:00:00+00:00"
    },
    "currency": "EUR",
    "maximum_results": 20,
    "sort": {
      "by": "updated",
      "direction": "descending"
    },
    "extras": [
      "payment"
    ]
  }'
Experience it firsthand in the API Explorer!

Responses

Successful response.

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

Metadata about the request.

request_idstring

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

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

Accommodation order details

Request

This endpoint returns all information for given accommodation orders, sorted by bookingDate in descending order

Bodyapplication/json
One of:
ordersArray of strings<= 100 itemsrequired

List of order IDs for which details should be returned.

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 the accommodation order. It should be passed as a JSON array with one or more items.

Items Enum"accommodation_details""policies""extra_charges"
curl -i -X POST \
  https://demandapi.booking.com/3.1/orders/details/accommodations \
  -H 'Content-Type: application/json' \
  -d '{
    "currency": "USD",
    "extras": [
      "policies",
      "extra_charges"
    ],
    "reservations": [
      2321873123,
      4666773123
    ]
  }'
Experience it firsthand in the API Explorer!

Responses

Successful response.

Bodyapplication/json
request_idstring

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

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

Cars order details

Request

This endpoint returns car order details, sorted by bookingDate in descending order

Bodyapplication/json
One of:
ordersArray of strings<= 100 itemsrequired

List of order IDs for which details should be returned.

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

Optional extra information groups that the user can request. It should be passed as a JSON array with one or more items.

Items Value"policies"
curl -i -X POST \
  https://demandapi.booking.com/3.1/orders/details/cars \
  -H 'Content-Type: application/json' \
  -d '{
    "currency": "USD",
    "extras": [
      "policies"
    ],
    "orders": [
      "123456789",
      98765432
    ]
  }'
Experience it firsthand in the API Explorer!

Responses

Successful response.

Bodyapplication/json
request_idstring

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

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

Preview an order

Request

This endpoint returns the total final price with final charges, as well as the price breakdown and payment/cancellation policies for each product passed in the input.

Bodyapplication/json
bookerobject(OrdersPreviewBookerOutput)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.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"
currencystring^[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.

Example:

"EUR"

accommodationobject(OrdersPreviewAccommodationInput)required

Input parameter with the checkin and checkout date and all the accommodation products to be ordered.

accommodation.idinteger>= 1

A signed integer number that uniquely identifies an accommodation property. The full list can be obtained by calling accommodations/details.

accommodation.checkinstring(date)

The checkin date. Must be within 500 days in the future and in the format yyyy-mm-dd.

accommodation.checkoutstring(date)

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.

accommodation.productsArray of objects(OrdersPreviewProductInput)
curl -i -X POST \
  https://demandapi.booking.com/3.1/orders/preview \
  -H 'Content-Type: application/json' \
  -d '{
    "booker": {
      "country": "nl",
      "platform": "mobile",
      "travel_purpose": "leisure",
      "user_groups": [
        "authenticated"
      ]
    },
    "currency": "EUR",
    "accommodation": {
      "id": 6745031,
      "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": []
          }
        }
      ]
    }
  }'
Experience it firsthand in the API Explorer!

Responses

Successful response.

Bodyapplication/json
request_idstring

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

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

Flights order details

Request

This endpoint returns all the information about an order made for a given flight

Bodyapplication/json
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"

ordersArray of arrays

List of order IDs for which details should be returned

curl -i -X POST \
  https://demandapi.booking.com/3.1/orders/details/flights \
  -H 'Content-Type: application/json' \
  -d '{
    "currency": "EUR",
    "orders": [
      "ssdfugrjndknkgj"
    ]
  }'
Experience it firsthand in the API Explorer!

Responses

Successful response.

Bodyapplication/json
dataArray of objects(FlightsOutput)
request_idstring

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

Response
application/json
{ "data": { "flights": [] } }

Cars

Operations