Booking.com prices and availability by date for destinations or hotels by URL, name or id. One row per hotel: stay total, nightly rate, taxes, free cancellation, breakfast, stars, review score, sold out. Optional room rates. Filters before billing: max price, star class. Price tracking, comp sets.
Fix: every place and hotel-name search failed with "autocomplete failed after 6 tries (last: 403)". Booking retired the public accommodations.booking.com/autocomplete.json endpoint (403 to every caller). The lookup now uses the GraphQL AutoComplete request that Booking's own search box sends. It resolves the same Booking ids (Lisbon -2167973, Algarve 1064, Memmo Alfama 536251) without a browser. Hotel ids and every other path are unchanged.
No input, output field, default or price changed. The same inputs return the same rows, and charged == delivered still holds.
2026-10-16 — Keyword Planner and locale documentation
Validated search terminology against Google Ads Keyword Planner and Store shelves. Added localized usage guidance and bounded examples; retained existing English phrases. Clarified locale limitations where measured. No runtime, output fields, defaults, or pricing changed.
1.1 — listing and input form reworded, 2026-10-11
No behaviour, output or price changed; the same inputs return the same rows.
Title unchanged — its phrases hold #1 ("availability by date", "hotel availability", "prices availability by date") and #3 ("booking.com scraper") in Store search today. Description rewritten in the shape an agent reads: what it prices and by which input, "One row per hotel:" and its eight most asked fields, the optional room rates, the filters that run before billing, the uses (price tracking, comp sets). The old text's "every property in a destination or a list of hotels" said nothing about dates in the first clause and nothing about sold-out rows.
The input form is reordered: what to price (locationQueries, hotelNames, hotelIds, startUrls), the stay and guests, then how many hotels, sort and the two pre-billing filters, includeRooms, locale, proxy. maxHotelsPerQuery moved from second place to after the stay; nothing was renamed or removed. Every input now says what to pass, with an example value, its default, what 0/empty means and what it costs: checkIn says it is required (the code has no default for it; the old text did not say so), maxHotelsPerQuery says the filters apply before the cap and that 100 is one request, includeRooms opens with "false (DEFAULT)" and names rooms_listed as the number of room rows to expect, minStars says exactly what is sent to Booking (its class=N filter) instead of promising a minimum.
The pricing text lists what is never charged (sold-out and unpriced properties, filtered rows, a property reached twice, places that match nothing, status rows, bad input), that there is no start fee, and that a run stops at the maximum cost you set (maxTotalChargeUsd). Prices unchanged.
seoDescription: the Store search surface now also carries "availability", "room rates", "hotel price monitoring", "API" and the native nouns Hotelpreise, precios de hoteles, prix hôtel.
README: a section "Booking.com scraper for AI agents" mapping common requests to the exact input, with the output row, the status rows and the empty-result contract.
2026-08-30
Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
Store listing: moved into the categories buyers actually browse (the old Business category has no Store page).
1.1 — 2026-08-29
Documented that Booking.com prices a stay per session, so repeat runs can differ by a few per cent: compare like with like, give alerts a threshold, take a median for anything that must be defensible.
1.0 — 2026-08-29
First release.
Booking.com prices for exact dates, guests and rooms, for whole destinations (city, region, district, landmark, airport, country) or a list of properties by URL, name or id.
One hotel row per property: stay total in your currency, the derived nightly rate, the hotel-currency total, taxes and fees that are excluded, free-cancellation, no-prepayment and breakfast flags, stars, review score and count, address and coordinates, distance from the centre, the cheapest room's name, sold-out state and alternative dates.
Optional room rows (includeRooms): every room and rate combination Booking matched to the stay, with its price, meal plan, free-cancellation deadline and "only X left" message.
maxPrice keeps properties whose nightly rate is at or under a figure and minStars is passed to Booking itself — both run before billing. Sold-out and unpriced properties are delivered free.
No browser, no login: the search results page's own GraphQL call, through Apify's residential proxies, with Chrome's TLS signature.