Scrape listings on booking.com
The call that returns listings from booking.com today, with the parameters, patterns and failure modes read off the request log since 14 Aug 2026. Last tested 6 Sep 2026.
About booking.com
booking.com describes itself as “Explore the world with Booking.com. Big savings on homes, hotels, flights, car rentals, taxis, and attractions: build your perfect trip on any budget”.
Its home page declares 12 languages: en-gb, en-us, de, nl, fr, es, es-ar, es-mx, ca, it, pt-pt, pt-br.
Its robots.txt names 354 sitemaps and disallows 12 paths.
Measured on Crawlbase
Success rate over every request from every account in August 2026: 99.2%. Patterns, countries and failures come from the request log since 14 Aug 2026; 37.0% of successful calls used the JavaScript token and the median answer took 2.7s.
Among the 5 travel and events sites in the Cookbook, booking.com ranks 4 of 5 by success rate; the category median is 100%. Its median answer of 2.7s sits at the category median of 2.7s. 3 of the 5 accept the plain token; this one does on some pages only.
The call
Product pages are the shape the accounts fetch most here, with the country and token that succeed most often. Replace the placeholder path with a real product URL from the site.
curl "https://api.crawlbase.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fwww.booking.com%2Fexample-page"from crawlbase import CrawlingAPI api = CrawlingAPI({'token': 'YOUR_TOKEN'}) r = api.get('https://www.booking.com/example-page') html = r['body']
const { CrawlingAPI } = require('crawlbase'); const api = new CrawlingAPI({ token: 'YOUR_TOKEN' }); const r = await api.get('https://www.booking.com/example-page');
Parameters that matter
| Parameter | Set it to | Why |
|---|---|---|
country | leave unset | Most successful calls set no country (94.3%) and succeed at 99.3%. |
javascript | leave unset | Plain-token calls succeed at 99.2%, JavaScript-token calls at 99.2%. Both work; start without the browser and switch per URL pattern where the table below shows it. |
URL patterns accounts fetch
| Pattern | Share of successes | JavaScript token | Country | Query parameters |
|---|---|---|---|---|
/{slug} | 45.8% | 100% | none | ss, checkin, checkout |
/hotel/{slug}/{slug} | 30.0% | 38.3% | none | checkin, checkout, group_adults |
/{slug}/{slug} | 23.0% | 0.0% | none | chal_t, force_referer, lang |
Fields you get
A product page usually carries an ld+json Product block with name, price, currency and availability, and the same values in the visible markup. Read the block first; it changes less often than the layout.
What breaks, and the fix
Of the failures since 14 Aug 2026, the site answered:
Run it on a schedule
A catalogue refresh is a list of product URLs. Push it to the Crawler with a callback, let it pace the calls and retry what the site refuses, and read the results from Cloud Storage. The median answer on this site is 2.7s.
Questions
Do I need a browser to scrape booking.com?
It depends on the page. Plain-token calls succeed at 99.2%, JavaScript-token calls at 99.2%; the URL pattern table shows which paths accounts fetch with a browser.
How much does a booking.com page cost on Crawlbase?
1 credit without a browser. booking.com is in the standard tier.
Which country should I set for booking.com?
None is needed: most successful calls leave it unset.
Other pages on booking.com
Pages booking.com lists in its own sitemaps, fetched by Crawlbase on 6 Sep 2026 and verified in 2 consecutive runs. Each row is the cheapest call that returned the page with its content.
| Page | Example | Token | Country | Median |
|---|---|---|---|---|
Home/ | booking.com/ | Plain | none | 4.5s |
Other/{slug}/{slug}/{slug} | none | Plain | none | 9.2s |