{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-demand/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab"]},"type":"markdown"},"seo":{"title":"Search, look and book tutorial","siteUrl":"https://developers.booking.com"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"search-look-and-book-tutorial","__idx":0},"children":["Search, look and book tutorial"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Follow this end-to-end tutorial to build a complete Search, look and book integration for accommodation using Demand API."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"span","attributes":{"style":{"backgroundColor":"#003B95","color":"white","fontSize":"0.8rem","padding":"0.2rem 0.5rem","borderRadius":"4px"}},"children":["v3.3"]},"  ",{"$$mdtype":"Tag","name":"span","attributes":{"style":{"backgroundColor":"#0070C9","color":"white","fontSize":"0.8rem","padding":"0.2rem 0.5rem","borderRadius":"4px"}},"children":["v3.2"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"card","style":{"flex":"1","minWidth":"300px"}},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["⏱️ Estimated time to complete:"]}," 30 - 45 minutes ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-youll-learn","__idx":1},"children":["What you’ll learn"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["How to search for accommodations and retrieve property details."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["How to check real-time availability and prices for a selected property."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["How to display accommodation options to travellers."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["How to implement the booking flow in your platform."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"before-you-start","__idx":2},"children":["Before you start"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Complete the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/getting-started/try-out-the-api#before-you-start---prerequisites"},"children":["Demand API prerequisites"]},". You’ll need:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A valid API token and your Affiliate ID. Authenticate every request. See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/development-guide/authentication"},"children":["Authentication guide"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Access to the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/getting-started/try-out-the-api#try-out-console"},"children":["try-out console"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/getting-started/sandbox"},"children":["sandbox environment and properties"]}," for testing."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Approval required"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The full Search, look and book flow explained in this guide requires Booking.com approval and an appropriate partner agreement. Confirm that this integration flow is enabled for your account before implementing it."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"use-case","__idx":3},"children":["Use case"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This tutorial follows a typical accommodation search, look and book:"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["A traveller is looking for a two-night stay in Amsterdam for two adults in one room."," ","The booker is in the Netherlands and is using a mobile device."," ","When the traveller finds the property that matches their needs, places the order from your platform."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this scenario throughout the examples. Replace the dates and other values with the traveller’s actual search details."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"search-look-and-book-flow-overview","__idx":4},"children":["Search, look and book flow overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following diagram shows the endpoints involved for the Search, look and book flow:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/try-out-1.c704b17660da8f74cbaa7f7b7031f6b08d73f9f40ff616bc835071a70b1a0074.4302f616.png","alt":"Getting Started Steps"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"steps---search-and-look","__idx":5},"children":["Steps - Search and look"]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["Step 1 - Search for matching accommodations",{"$$mdtype":"Tag","name":"b","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["→ Use the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/accommodations/accommodations/search"},"children":["accommodations/search"]}," endpoint to find accommodations that match the traveller’s destination, dates, guest allocation and other criteria."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Request","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The request requires the booker’s country and platform, check-in and check-out dates, and guest information."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example searches Amsterdam for two adults in one room."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"city\": -2140479,\n  \"booker\": {\n    \"country\": \"nl\",\n    \"platform\": \"mobile\"\n  },\n  \"checkin\": \"2027-11-06\",\n  \"checkout\": \"2027-11-08\",\n  \"guests\": {\n    \"number_of_rooms\": 1,\n    \"number_of_adults\": 2\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"City and country lookup"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use the location ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/commonlocations/common/locations/cities"},"children":["cities"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/commonlocations/common/locations/countries"},"children":["countries"]}," endpoints to resolve the IDs and ISO‑2 codes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Country codes must be lowercase (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nl"]},")."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/accommodations/accommodations/search","style":{"textDecoration":"none","display":"inline-block"}},"children":[" ",{"$$mdtype":"Tag","name":"span","attributes":{"style":{"backgroundColor":"#0070c9","color":"white","fontSize":"0.8rem","padding":"0.5rem 0.5rem","borderRadius":"4px"}},"children":[" ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Try it yourself"]}," "]}," "]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Response","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response contains matching accommodations."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["By default, the search returns the cheapest available product for each accommodation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When you search by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["country"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["region"]},", results are ranked by Booking.com popularity rather than price."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A response item includes the accommodation ID, currency, price summary and booking URLs. For example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"request_id\": \"01fr9ez700exycb98w90w5r9sh\",\n  \"data\": [\n    {\n      \"id\": 10004,\n      \"currency\": {\n        \"accommodation\": \"EUR\",\n        \"booker\": \"EUR\"\n      },\n      \"price\": {\n        \"display\": {\n          \"accommodation_currency\": 1260.52,\n          \"booker_currency\": 1260.52\n        },\n        \"total\": {\n          \"accommodation_currency\": 1260.52,\n          \"booker_currency\": 1260.52\n        }\n      },\n      \"deep_link_url\": \"booking://hotel/10004?affiliate_id=!AFFILIATE_ID!&checkin=!START_DATE!&checkout=!END_DATE!\",\n      \"url\": \"https://www.booking.com/hotel/nl/toren.html?affiliate_id=!AFFILIATE_ID!\"\n    }\n  ],\n  \"metadata\": {\n    \"next_page\": null\n  }\n}\n\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use the returned ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," to request property details and availability."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price"]}," object contains price components in the accommodation and booker currencies."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["url"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deep_link_url"]}," provide web and app booking links."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/accommodations/search-for-available-properties"},"children":["Search for accommodation guide"]}," for details and recommendations."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The search result is a starting point for comparing properties. Retrieve live availability and prices for the selected accommodation before presenting bookable products."]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["Step 2 - Get details of selected accommodations",{"$$mdtype":"Tag","name":"b","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[]},"\nBefore you show search results to the traveller you need to get some more information about each accommodation.\n",{"$$mdtype":"Tag","name":"p","attributes":{},"children":["→ Use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/accommodations/accommodations/details"},"children":["/accommodations/details"]}," to retrieve static information about the selected property. Availability and pricing are returned by /accommodations/availability."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Request","disable":false},"children":[{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Pass the accommodation ID returned by the search."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extras"]}," to request the additional fields your application needs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["languages"]}," to specify the languages for localised content."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"accommodations\": [\n    10004\n  ],\n  \"extras\": [\n    \"description\",\n    \"facilities\",\n    \"payment\",\n    \"photos\",\n    \"policies\",\n    \"rooms\"\n  ],\n  \"languages\": [\n    \"en-gb\"\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/genius-bulb.3e13976eeeabd0526f1d76bfb7de5967932211a5ef4afe526a3b0a71a7b02fb0.5e2a7131.png","alt":"genius-bulb"},"children":[]}," You can also request ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bundles"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extras"]},". Request only the data you need; an empty or omitted ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extras"]}," value returns core property details."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/accommodations/accommodations/details","style":{"textDecoration":"none","display":"inline-block"}},"children":[" ",{"$$mdtype":"Tag","name":"span","attributes":{"style":{"backgroundColor":"#0070c9","color":"white","fontSize":"0.8rem","padding":"0.5rem 0.5rem","borderRadius":"4px"}},"children":[" ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Try it yourself"]}," "]}," "]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Response","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response contains a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," array with property details."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Depending on the requested ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extras"]},", the response can include the property’s name and address, description, facilities, photos, policies, payment information, rooms and bundles."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This response example is abbreviated to show the fields used for the tutorial use case:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"request_id\": \"01fr9ez700exycb98w90w5r9sh\",\n  \"data\": [\n    {\n      \"id\": 10004,\n      \"accommodation_status\": \"open\",\n      \"accommodation_type\": 204,\n      \"name\": {\n        \"en-gb\": \"The Pavilions Amsterdam, The Toren\"\n      },\n      \"location\": {\n        \"address\": {\n          \"en-gb\": \"Keizersgracht 164\"\n        },\n        \"city\": -2140479,\n        \"country\": \"nl\",\n        \"coordinates\": {\n          \"latitude\": 52.375858,\n          \"longitude\": 4.886006\n        },\n        \"postal_code\": \"1015 CZ\"\n      },\n      \"rating\": {\n        \"number_of_reviews\": 930,\n        \"review_score\": 9,\n        \"stars\": 4,\n        \"stars_type\": \"official\"\n      },\n      \"url\": {\n        \"web\": \"https://www.booking.com/hotel/nl/toren.html?affiliate_id=!AFFILIATE_ID!\",\n        \"app\": \"booking://hotel/10004?affiliate_id=!AFFILIATE_ID!\"\n      }\n    }\n  ],\n  \"metadata\": {\n    \"next_page\": null\n  }\n}\n\n","lang":"json"},"children":[]}]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/genius-bulb.3e13976eeeabd0526f1d76bfb7de5967932211a5ef4afe526a3b0a71a7b02fb0.5e2a7131.png","alt":"genius-bulb"},"children":[]}," Use the property information that helps travellers decide whether to continue. For example, you can request ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["photos"]}," for search cards and request ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rooms"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["policies"]}," when a traveller opens a property page. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/accommodations/look-accommodation-details"},"children":["Look up accommodation details"]}," for field descriptions and display guidance."]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["Step 3 - Display search results page",{"$$mdtype":"Tag","name":"b","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[]},"\nCombine the search response with the property details to build the results list. You can display:\n",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Property name and location."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A primary photo, if requested."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The search price and currency."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The review score and number of reviews, where available."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The web or app link for the redirect flow you support."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Review scores are based on traveller traffic across Booking.com and may not represent your own customers’ experience."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you display these scores or reviews, make sure travellers are informed what they represent. See /accommodations/reviews for the applicable guidance."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["The traveller selects a property and opens its details page to compare available rooms and prices."]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["Step 4 - Get real-time availability and prices",{"$$mdtype":"Tag","name":"b","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["→ Use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/accommodations/accommodations/availability"},"children":["/accommodations/availability"]}," to retrieve current availability, prices, charges and policies for the selected property."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can request details for up to 50 accommodation IDs at a time."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Request","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["booker"]},", dates and guest allocation as in the search request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pass the selected accommodation ID in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accommodations"]}," array."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"accommodations\": [\n    10004\n  ],\n  \"booker\": {\n    \"country\": \"nl\",\n    \"platform\": \"mobile\"\n  },\n  \"checkin\": \"2027-11-06\",\n  \"checkout\": \"2027-11-08\",\n  \"guests\": {\n    \"number_of_rooms\": 1,\n    \"number_of_adults\": 2\n  },\n  \"extras\": [\n    \"extra_charges\"\n  ]\n}\n\n\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/accommodations/accommodations/availability","style":{"textDecoration":"none","display":"inline-block"}},"children":[" ",{"$$mdtype":"Tag","name":"span","attributes":{"style":{"backgroundColor":"#0070c9","color":"white","fontSize":"0.8rem","padding":"0.5rem 0.5rem","borderRadius":"4px"}},"children":[" ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Try it yourself"]}," "]}," "]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Response","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response contains a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," array. Each accommodation can include available products and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommendation"]}," for the request."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A product includes its ID, room, occupancy, availability, price and policies."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommendation"]}," includes the recommended product ID and its guest allocation."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/genius-bulb.3e13976eeeabd0526f1d76bfb7de5967932211a5ef4afe526a3b0a71a7b02fb0.5e2a7131.png","alt":"genius-bulb"},"children":[]}," Highlight the recommended product to the traveller as the best match."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"request_id\": \"01fr9ez700exycb98w90w5r9sh\",\n  \"data\": [\n    {\n      \"id\": 10004,\n      \"currency\": {\n        \"accommodation\": \"EUR\",\n        \"booker\": \"EUR\"\n      },\n      \"products\": [\n        {\n          \"id\": \"1000420_95127794_2_0_0\",\n          \"inventory\": {\n            \"third_party\": false,\n            \"type\": \"sell\"\n          },\n          \"maximum_occupancy\": {\n            \"adults\": 2,\n            \"children\": null,\n            \"total\": 2\n          },\n          \"number_available\": 3,\n          \"policies\": {\n            \"cancellation\": {\n              \"free_cancellation_until\": \"2027-11-04T00:00:00+00:00\",\n              \"type\": \"free_cancellation\"\n            },\n            \"meal_plan\": {\n              \"meals\": [],\n              \"plan\": \"no_plan\"\n            },\n            \"payment\": {\n              \"timings\": [\n                \"pay_at_the_property\"\n              ]\n            }\n          },\n          \"price\": {\n            \"display\": {\n              \"accommodation_currency\": 1385.97,\n              \"booker_currency\": 1385.97\n            },\n            \"total\": {\n              \"accommodation_currency\": 1385.97,\n              \"booker_currency\": 1385.97\n            }\n          },\n          \"room\": \"1000420\"\n        }\n      ],\n      \"recommendation\": {\n        \"products\": [\n          {\n            \"id\": \"1000420_95127794_2_0_0\",\n            \"number_of_adults\": 2,\n            \"children\": []\n          }\n        ]\n      },\n      \"url\": \"https://www.booking.com/hotel/nl/toren.html?affiliate_id=!AFFILIATE_ID!&checkin=2027-11-06&checkout=2027-11-08\"\n    }\n  ]\n}\n\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is an abbreviated response example. Because the request includes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extra_charges"]},", the actual price response can also include the base price, chargeable-online amount and charge details."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the selected product’s ID and allocation from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommendation.products"]}," when you call /orders/preview. Pass the returned values through unchanged."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Availability can change"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Availability and prices can change between requests. A product returned by search might no longer be available when you call /accommodations/availability. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommendation"]}," can be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," if no product matches the request. Handle this state and show the traveller current available options."]}]}]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["Step 5 - Display the product in property page",{"$$mdtype":"Tag","name":"b","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[]},"\n   Combine the live products and prices from Step 4 with the static content from Step 2. \n   * Show the traveller the details needed to choose a product, including the room, occupancy, price, meal plan, cancellation terms and payment timing.\n   * Make the total price and applicable charges clear. Do not treat a product as bookable based only on the earlier search response; use the current availability response.\n"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["After browsing the details of the accommodation, the traveller selects a product and continues to booking."]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"steps---create-the-order-in-your-platform-book","__idx":6},"children":["Steps - Create the order in your platform (Book)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To process bookings directly in your application you must use the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/orders"},"children":["/orders API collection"]},"."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Important"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Requires approval and partner agreement."]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["Step 1 - Preview the order"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["→ Call ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/orders/orders/preview"},"children":["/orders/preview"]}," to validate the selected products and retrieve the current price, policies and payment options before asking the traveller to confirm."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Request","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the accommodation ID, dates, booker details and product IDs from the availability response."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For each product, provide the allocation returned in the recommendation or the traveller’s chosen allocation."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"currency\": \"EUR\",\n  \"accommodation\": {\n    \"id\": 10004,\n    \"booker\": {\n      \"country\": \"nl\",\n      \"platform\": \"mobile\",\n      \"travel_purpose\": \"leisure\"\n    },\n    \"checkin\": \"2027-11-06\",\n    \"checkout\": \"2027-11-08\",\n    \"products\": [\n      {\n        \"id\": \"1000420_95127794_2_0_0\",\n        \"allocation\": {\n          \"number_of_adults\": 2,\n          \"children\": []\n        }\n      }\n    ]\n  }\n}\n\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/orders/orders/preview","style":{"textDecoration":"none","display":"inline-block"}},"children":[" ",{"$$mdtype":"Tag","name":"span","attributes":{"style":{"backgroundColor":"#0070c9","color":"white","fontSize":"0.8rem","padding":"0.5rem 0.5rem","borderRadius":"4px"}},"children":[" ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Try it yourself"]}," "]}," "]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Response","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response includes an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accommodation"]}," object with the calculated price, selected products, and general policies. It also includes the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["order_token"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Inspect the preview before showing the traveller the final booking details."," ","For example, the response can contain:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"request_id\": \"01fr9ez700exycb98w90w5r9sh\",\n  \"data\": {\n    \"accommodation\": {\n      \"id\": 10004,\n      \"currency\": {\n        \"accommodation\": \"EUR\",\n        \"booker\": \"EUR\"\n      },\n      \"general_policies\": {\n        \"payment\": {\n          \"pay_online_now\": {\n            \"methods\": {\n              \"cards\": [\n                1,\n                4\n              ]\n            }\n          },\n          \"pay_at_the_property\": null,\n          \"pay_online_later\": null\n        }\n      },\n      \"price\": {\n        \"base\": {\n          \"accommodation_currency\": 100,\n          \"booker_currency\": 100\n        },\n        \"display\": {\n          \"accommodation_currency\": 118,\n          \"booker_currency\": 118\n        },\n        \"total\": {\n          \"accommodation_currency\": 118,\n          \"booker_currency\": 118\n        }\n      },\n      \"products\": [\n        {\n          \"id\": \"1000420_95127794_2_0_0\",\n          \"price\": {\n            \"base\": {\n              \"accommodation_currency\": 100,\n              \"booker_currency\": 100\n            },\n            \"total\": {\n              \"accommodation_currency\": 118,\n              \"booker_currency\": 118\n            }\n          },\n          \"policies\": {\n            \"cancellation\": {\n              \"type\": \"non_refundable\"\n            },\n            \"meal_plan\": {\n              \"meals\": [],\n              \"plan\": \"no_plan\"\n            }\n          }\n        }\n      ]\n    },\n    \"order_token\": \"sample-order-token\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is an illustrative response excerpt. The available payment timings and methods, price components and policy fields depend on the selected product. Use the values in the actual preview response when constructing the create request."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Present the traveller with the final price, charges, payment timing and method, and cancellation policy."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Collect the booker and guest details required to create the order."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use the returned ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["order_token"]}," in the create request. It expires 15 minutes after it is issued."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/orders-api/order-preview-create"},"children":["Order preview and create"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/accommodations/prices-accommodations"},"children":["Accommodation pricing"]}," for more guidance."]}]}]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["Step 2 - Display your order preview page"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can now show the traveller final details of what they are booking, what they will have to pay, when and how they can pay it, and the cancellation terms that will apply."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You should also gather any other information needed from the traveller to complete the order - for example, guest details for rooms, estimated arrival times or special requests."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["→ Select the data from your ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/orders/orders/preview"},"children":["/orders/preview"]}," response to provide the appropriate information on your preview page."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["After checking the details of the order, the traveller confirms the preview and provide their payment information together with any other needed details."]}]}]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["Step 3 - Create the order"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["→ Call ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/orders/orders/create"},"children":["/orders/create"]}," with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["order_token"]}," returned by /orders/preview and the required booker, guest and payment details."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Request","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example assumes that the preview allows the traveller to pay online now by card."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In your request, use a payment timing and method supported by the preview response."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide the details required for the selected payment flow."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"accommodation\": {\n    \"products\": [\n      {\n        \"id\": \"1000420_95127794_2_0_0\",\n        \"guests\": [\n          {\n            \"name\": \"Jane Doe\",\n            \"email\": \"jane.doe@example.com\"\n          }\n        ]\n      }\n    ]\n  },\n  \"booker\": {\n    \"address\": {\n      \"address_line\": \"1 Example Street\",\n      \"city\": \"Amsterdam\",\n      \"country\": \"nl\",\n      \"post_code\": \"1000 AA\"\n    },\n    \"email\": \"jane.doe@example.com\",\n    \"language\": \"en-gb\",\n    \"name\": {\n      \"first_name\": \"Jane\",\n      \"last_name\": \"Doe\"\n    },\n    \"telephone\": \"+31123456789\"\n  },\n  \"order_token\": \"sample-order-token\",\n  \"payment\": {\n    \"card\": {\n      \"cardholder\": \"Jane Doe\",\n      \"cvc\": \"123\",\n      \"expiry_date\": \"2030-10\",\n      \"number\": \"!CARD_NUMBER!\"\n    },\n    \"include_receipt\": true,\n    \"method\": \"card\",\n    \"timing\": \"pay_online_now\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The card details displayed here are placeholders. Do not reuse the example card details in a real request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For online card payments, provide the CVC by default. The API may require additional authentication or verification fields for the selected payment flow."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For accommodation payments made at the property, follow the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cvc_required"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amex_cvc_required"]}," value returned by /accommodations/details."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/payments/models/accommodation-payment-models"},"children":["Accommodation payment models"]}," for more details."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/open-api/3.3/demand-api/orders/orders/create","style":{"textDecoration":"none","display":"inline-block"}},"children":[" ",{"$$mdtype":"Tag","name":"span","attributes":{"style":{"backgroundColor":"#0070c9","color":"white","fontSize":"0.8rem","padding":"0.5rem 0.5rem","borderRadius":"4px"}},"children":[" ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Try it yourself"]}," "]}," "]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Response","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A successful response contains the order ID and the accommodation reservation details. It can also include a payment receipt URL when requested and available."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"request_id\": \"01fr9ez700exycb98w90w5r9sh\",\n  \"data\": {\n    \"order\": \"509430129718799\",\n    \"accommodation\": {\n      \"pincode\": \"0250\",\n      \"reservation\": \"12345678\"\n    },\n    \"payment\": {\n      \"receipt_url\": \"https://secure.booking.com/payment_receipt.html?bn=0000000000&pincode=0000&lang=en\"\n    }\n  }\n}\n\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Store the order and reservation identifiers for post-booking tasks."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You can retrieve order information through /orders/details or /orders/details/accommodations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use the Orders API guides for cancellation, modification, reporting and reconciliation."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/orders-api/post-booking-overview"},"children":["Post-booking"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/orders-api/order-details"},"children":["Reporting guides"]}," for details."]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"references","__idx":7},"children":["References"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/accommodations/search-for-available-properties"},"children":["Search for available properties"]}," for recommendations and examples when searching for accommodation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Learn how to ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/accommodations/look-accommodation-details"},"children":["Retrieve accommodation details"]}," for property details and extras."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/orders-api/order-preview-create"},"children":["Order preview and create"]}," for booking requests and payment handling."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Explore the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/payments/payments-timings"},"children":["Payment timings"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/payments/payments-methods"},"children":["Payment methods"]}," for payment guidance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/orders-api/order-details"},"children":["Reporting and reconciliation"]}," for post-booking order data."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Previous version - See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/demand/docs/accommodations/v3.1/accommodation-tutorial"},"children":["Tutorial for v3.1"]}]}]}]}]},"headings":[{"value":"Search, look and book tutorial","id":"search-look-and-book-tutorial","depth":1},{"value":"What you’ll learn","id":"what-youll-learn","depth":2},{"value":"Before you start","id":"before-you-start","depth":2},{"value":"Use case","id":"use-case","depth":2},{"value":"Search, look and book flow overview","id":"search-look-and-book-flow-overview","depth":2},{"value":"Steps - Search and look","id":"steps---search-and-look","depth":2},{"value":"Steps - Create the order in your platform (Book)","id":"steps---create-the-order-in-your-platform-book","depth":2},{"value":"References","id":"references","depth":2}],"frontmatter":{"title":"Accommodation tutorial","description":"Follow this end to end tutorial to learn how to use our /accommodation endpoints for search, look and book integrations.","tags":["tutorial","steps","step-by-step","guide"],"audience":"developer","apiVersion":"v3.3, v3.2","seo":{"title":"Search, look and book tutorial"}},"lastModified":"2026-11-13T11:12:44.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/demand/docs/accommodations/v3.3/accommodation-tutorial","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}