Skip to content

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.

Search accommodation

Request

This endpoint returns, by default, the cheapest available product for each accommodation that matches the specified search criteria.

When you apply location filters using parameters such as country or region id, the results are sorted by Booking.com popularity (top_picks) instead of price.
In this case, accommodations are ranked in descending order of popularity, meaning higher-ranked listings will appear earlier in the response.

Security
BearerAuth
Headers
X-Affiliate-Idintegerrequired

Include here your Affiliate identifier number

Bodyapplication/json
24_hour_receptionboolean

Filter the result based if the front desk reception is available 24/7. When specified true, the result will filter the products where front desk is available 24/7.

accommodation_facilitiesArray of integers
accommodation_typesArray of integers
accommodationsArray of integers, <= 100 items
airportstring^[A-Z]{3}$

A three-letter code that uniquely identifies an airport as defined by the International Air Transport Association (IATA). The full list can be obtained by calling common/locations/airports.

Example:"AMS"
bookerobject(Booker)required

The booker's information.

brandsArray of integers
cancellation_typestring

Filters the result for the cancellation type specified. Possible values are free_cancellation & non_refundable. If cancellation_type is free_cancellation, the result will contain all the products with free_cancellation.

Enum:"free_cancellation""non_refundable"
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.

cityinteger

A signed integer number that uniquely identifies a city. The full list can be obtained by calling common/locations/cities.

coordinatesobject(AccommodationsSearchCoordinatesOutput)

Limit the result list to the specified coordinates.

countrystring^[a-z]{2}$

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.

Example:"nl"
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"
districtinteger, >= 1

A signed integer number that uniquely identifies a district. Typically, districts define known areas within a city. The full list can be obtained by calling common/locations/districts.

dormitoriesstring

This parameter specifies if the results should include dormitory beds or rooms. The default behaviour will include the dormitory beds or rooms with other results. When this flag is set to 'only', the response will only include dormitory beds or rooms. When this flag is set to 'exclude', the response will exclude dormitory beds or rooms. When this flag is set to 'include', the response will include dormitory beds or rooms with other results.

Default:"include"
Enum:"include""exclude""only"
extrasArray of strings

Input parameter to request for additional information about the products.

Items Enum:"extra_charges""products"
guestsobject(AccommodationsGuests)required

The guest details for the request.

landmarkinteger, >= 1

A signed integer number that uniquely identifies a relevant geographical landmark, like a monument or a natural attraction. The full list can be obtained by calling common/locations/landmarks.

meal_planstring

Filter the result based on the selected meal plan. Example: When specified breakfast_included, it will show the product with free breakfast.

Enum:"all_inclusive""breakfast_included""full_board""half_board"
pagestring

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

paymentobject

The payment filter for the request

priceobject

If specified, will return only results where the price per night falls in the specified range (inclusive). This filter requires that a currency is passed

ratingobject

The rating filter for the request

regioninteger, >= 1

A signed integer number that uniquely identifies a geographical region. Regions usually define official administrative areas within a country, but may also include multiple countries and in some cases un-official but popular designations for geographical areas. An example of a region that crosses multiple countries is the Alps in Europe. The full list can be obtained by calling common/locations/regions.

room_facilitiesArray of integers
rowsinteger, multiple of 10, [ 10 .. 100 ]

The maximum number of results to return.

Default:100
sortobject

The sorting parameters for the response

travel_proudboolean

Filter the result based on if the property is LGBTQ+ friendly. When specified true, the result will filter and return only the accommodations that are Proud Certified.

curl -i -X POST \
  https://demandapi.booking.com/3.1/accommodations/search \
  -H 'Authorization: Bearer <YOUR_string_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-Affiliate-Id: 0' \
  -d '{
    "booker": {
      "country": "nl",
      "platform": "desktop"
    },
    "checkin": "!START_DATE!",
    "checkout": "!END_DATE!",
    "city": -2140479,
    "extras": [
      "extra_charges",
      "products"
    ],
    "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(AccommodationsSearchDataOutput)
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
{ "request_id": "01fr9ez700exycb98w90w5r9sh", "data": [ {}, "..." ], "next_page": "..." }