v3.2 Accommodation quick guide
Follow this quick guide to start playing with our v3.2 Accommodation API collection in your client application.
This quick guide shows the minimum steps needed to integrate the v3.2 Demand API accommodation endpoints
Steps
Follow these steps to test a basic example:
A traveller searches for a 2-night stay in Amsterdam for 2 adults in 1 room.
1. Search for accommodation
To find properties that match the use case search criteria:
→ Use the accommodations/search endpoint.
- By default, the response returns the cheapest available product per accommodation.
- When filtering by broader locations such as
countryorregion, results are ranked by Booking.com popularity (top picks) rather than strictly by price.
Required fields
The following fields are mandatory:
bookercheckincheckoutguests
Example request:
{
"country": "nl",
"booker": {
"country": "nl",
"platform": "mobile"
},
"extras": [
"extra_charges",
"products"
],
"checkin": "2026-11-06",
"checkout": "2026-11-08",
"guests": {
"number_of_rooms": 1,
"number_of_adults": 2
},
"sort": {
"by": "price",
"direction": "ascending"
}
}
More details
You must specify at least one location parameter. Supported options include:
city— city IDcountry— ISO 3166-1 alpha-2 lowercaseregiondistrictairportlandmarkcoordinatesaccommodations— specific accommodation IDs (max 100)
Get location IDs from location endpoints
Filters
Use the filters object to refine results. For example:
- price (per night range — requires currency)
- rating (review score and/or stars)
- meal_plan
- cancellation_type
- payment timing
- accommodation_types
- accommodation_facilities
- room_facilities
- travel_proud
- sustainability_certification
- See the accommodation search guide for examples and tips on creating search requests.
- See the Data conventions guide for date/times formats.
- Check the v3.2 Filtering guide
Example response:
The response contains a list of accommodations that match the specified search criteria, including the price and url to Booking.com property page.
{
"request_id": "01fr9ez700exycb98w90w5r9sh",
"data": [
{
"id": 10507360,
"currency": {
"accommodation": "EUR",
"booker": "EUR"
},
"deep_link_url": "booking://hotel/10507360?affiliate_id=956509&checkin=2026-11-06&checkout=2026-11-08&mcid=10",
"price": {
"base": {
"accommodation_currency": 1081.49,
"booker_currency": 1081.49
},
"charges": [],
"display": {
"accommodation_currency": 1260.52,
"booker_currency": 1260.52
},
"total": {
"accommodation_currency": 1260.52,
"booker_currency": 1260.52
}
},
"products": [
{
"id": "10507360_95127794_2_0_0",
"number_of_adults": 2,
"price": {
"total": {
"accommodation_currency": 1260.52,
"booker_currency": 1260.52
}
}
}
],
"url": "https://www.booking.com/hotel/nl/example.html?aid=956509&checkin=2026-11-06&checkout=2026-11-08&group_adults=2&no_rooms=1"
}
],
"metadata": {
"next_page": "eyJwYWdlIjoyfQ=="
}
}
Keep the accommodation id for the next step.
2. Get accommodation details
Use this step to retrieve static property information (not availability or pricing). Availability and prices must be retrieved via /accommodations/availability.
→ Call /accommodations/details using the accommodation id from the search response.
You must provide at least one of the following parameters:
accommodationsairportcitycountryregion
You can query up to 100 accommodation IDs in a single request.
Example request:
{
"accommodations": [
10507360
],
"extras": [
"description"
],
"languages": [
"en-gb"
]
}More details
Languages
- You can request multiple languages using IETF language tags (e.g. en-gb, zh-cn).
- If content is not available in a requested language, English is returned by default.
Using extras
- The extras array controls which additional datasets are returned.
- Common
extrasvalues include:description,photos,facilities,policies,rooms,bundles,payment.
Example:
"extras": [
"description",
"photos",
"facilities",
"payment"
],Check the "Extras" use guide.
Pagination
- Use
rowsto control the number of results (max 1000).
Example response:
The response contains all static information about the selected accommodation, including:
- Name and translated content.
- Location and coordinates.
- Contact details.
- Facilities and photos (if requested via extras).
- Policies and payment configuration.
- Ratings and ranking.
- URLs for web and app redirects.
{
"request_id": "01k2kv6g4de00n4cw4cvr4v5bm",
"data": [
{
"id": 10507360,
"name": {
"en-gb": "Demand API Sandbox Hotel Orion"
},
"accommodation_type": 204,
"booker_address_required": false,
"checkin_checkout_times": {
"checkin_from": "12:00:00",
"checkin_to": "20:00:00",
"checkout_from": "08:00:00",
"checkout_to": "12:00:00"
},
"contacts": {
"general": {
"email": "demand.api.dev@booking.com",
"telephone": "+31207125609"
},
"reservations": null
},
"currency": "EUR",
"is_genius": true,
"location": {
"address": {
"en-gb": "Oosterdoksstraat 154"
},
"city": -2140479,
"coordinates": {
"latitude": 52.376388,
"longitude": 4.90919
},
"country": "nl",
"districts": [
145,
9173
],
"postal_code": "1011 DL",
"regions": [
1010
]
},
"meal_prices": {
"breakfast": 12,
"lunch": 10,
"dinner": 15
},
"number_of_rooms": 300,
"ranking": 4703915,
"rating": {
"number_of_reviews": 0,
"preferred": true,
"review_score": null,
"stars": 5,
"stars_type": "official"
},
"spoken_languages": [
"en-gb"
],
"url": {
"web": "https://www.booking.com/hotel/nl/demand-api-sandbox-orion.html?aid=956509",
"app": "booking://hotel/10507360?affiliate_id=956509"
}
]
}
- Use this information to enrich your property listing page (photos, facilities, descriptions, policies, payment methods, etc.).
- To retrieve live prices and available products, continue with the availability step.
3. Get availability and prices
Use this step to retrieve real-time availability, prices, and extra charges for the selected accommodations.
→ Call the accommodations/availability endpoint using the accommodation id from the previous step.
Mandatory fields: accommodations, booker, checkin, checkout, and guests. Maximum 50 accommodation IDs per request.
Example request:
{
"accommodations": [10507360],
"booker": {
"country": "nl",
"platform": "desktop"
},
"checkin": "2026-11-06",
"checkout": "2026-11-08",
"guests": {
"number_of_adults": 2,
"number_of_rooms": 1
},
"extras": [
"extra_charges"
],
"filters": {
"meal_plan": "breakfast_included",
"cancellation_type": "free_cancellation"
}
}More details
- Use
Filters:Apply criteria like meal_plan, cancellation_type, or other product-specific filters.
Example response
The response provides available products, prices, policies, and a recommendation for the best option.
{
"request_id": "01k2m3js8k6rkgb09vehxcfbjy",
"data": [
{
"id": 10507360,
"currency": {
"accommodation": "EUR",
"booker": "EUR"
},
"deep_link_url": "booking://hotel/10507360?affiliate_id=!AFFILIATE_ID!&checkin=2026-02-02&checkout=2026-02-10",
"products": [
{
"id": "1050736003_405384551_2_0_0",
"bundle": null,
"deal": {
"discount_percentage": 3,
"public_price": 98.2,
"tags": ["mobile_rate"]
},
"maximum_occupancy": {
"adults": 4,
"children": null,
"total": 4
},
"number_available": 6,
"policies": {
"cancellation": {
"free_cancellation_until": "2026-10-31T00:00:00+00:00",
"type": "free_cancellation",
"schedule": [
{ "from": "now", "price": { "accommodation_currency": 0, "booker_currency": 0 } },
{ "from": "2026-10-31T00:00:00+00:00", "price": { "accommodation_currency": 95.38, "booker_currency": 95.38 } }
]
},
"meal_plan": {
"meals": ["breakfast"],
"plan": "breakfast_included"
},
"payment": {
"timings": ["pay_at_the_property"]
}
},
"price": {
"base": { "accommodation_currency": 95.38, "booker_currency": 95.38 },
"chargeable_online": { "accommodation_currency": 95.38, "booker_currency": 95.38 },
"total": { "accommodation_currency": 95.38, "booker_currency": 95.38 }
},
"room": "1050736003"
}
],
"recommendation": {
"price": {
"base": { "accommodation_currency": 95.38, "booker_currency": 95.38 },
"chargeable_online": { "accommodation_currency": 95.38, "booker_currency": 95.38 },
"total": { "accommodation_currency": 95.38, "booker_currency": 95.38 }
},
"products": [
{
"id": "1050736003_405384551_2_0_0",
"children": [],
"number_of_adults": 2,
"price": {
"base": { "accommodation_currency": 95.38, "booker_currency": 95.38 },
"chargeable_online": { "accommodation_currency": 95.38, "booker_currency": 95.38 },
"total": { "accommodation_currency": 95.38, "booker_currency": 95.38 }
}
}
]
},
"url": "https://www.booking.com/hotel/nl/demand-api-sandbox-orion.html?aid=!AFFILIATE_ID!&checkin=2026-11-06&checkout=2026-11-08&no_rooms=1&group_adults=2"
}
]
}
Use the
recommendationfield to highlight the best-priced option for your user.
Prices and availability are dynamic and may change between search and booking. Always confirm before proceeding.
4. Handle the booking
Choose your integration type:
- Search, look and redirect → Redirect travelleres to the Booking.com
urlprovided in the availability response. - Search, look and book → Book within your application using /orders/preview and /orders/create
For Search, look and book, you must have:
- An approved business case.
- A signed partner agreement.
- See the Orders creation guide to learn how to proceed the booking.
Best practices
✓ Always include your API key token and X-Affiliate-Id in every request.
✓ Use the correct data conventions in your requests to avoid errors.
✓ Store static location data (cities, countries, etc) to reduce API calls.
Next steps
Congratulations, by now you know the basics of how to use the key accommodation endpoints!
- See the Search, look and book tutorial for full step by step guide.
- Refer to the Orders and payments guides to make your first order.
Use the