Booking.com Scraper — Hotel Prices, Ratings & Availability
Pricing
from $20.00 / 1,000 result scrapeds
Booking.com Scraper — Hotel Prices, Ratings & Availability
Scrape live hotel search results from Booking.com: name, address, review score, review count, price per night and total, currency, and direct booking links for any European destination and dates.
Pricing
from $20.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
What does Booking.com Scraper do?
Booking.com Scraper extracts live hotel search results from Booking.com, Europe's largest online travel agency. Give it a destination and check-in/check-out dates, and it returns the hotels Booking.com's own destination search surfaces for those dates: name, address, guest review score, review count, price per night and total, currency, and a direct booking link. No login or cookies required.
Use it to collect structured hotel data via the Apify platform with full API access, scheduling, integrations, and no need to run a browser yourself.
Why use Booking.com Scraper?
- Price monitoring — Track nightly rates for specific hotels or destinations over time and catch price drops or spikes
- Travel research — Compare guest review scores, prices, and locations for a destination without manually clicking through the site
- Rate benchmarking — Feed live Booking.com pricing into your own competitor or market-rate analysis
- Meta-search / travel apps — Pull current Booking.com listings into your own booking tool or comparison site
- Corporate travel — Check hotel rates for upcoming business trips in bulk, across multiple destinations and date ranges
How to use Booking.com Scraper
- Go to the Input tab
- Enter a Destination (city, region, or landmark, e.g.
Amsterdam,Paris,Rijksmuseum) - Enter a Check-in date and Check-out date in
YYYY-MM-DDformat - Optionally set adults, rooms, max results, or a review-score/price filter
- Click Start and wait for the run to finish
- Download your data from the Output tab in JSON, CSV, Excel, or other formats
Input
| Field | Type | Required | Description |
|---|---|---|---|
destination | String | No | City, region, or landmark (default: Amsterdam) |
checkIn | String | No | Check-in date, YYYY-MM-DD (default: ~30 days out) |
checkOut | String | No | Check-out date, YYYY-MM-DD (default: check-in + 2 nights) |
adults | Integer | No | Number of adult guests (default: 2) |
rooms | Integer | No | Number of rooms (default: 1) |
maxResults | Integer | No | Maximum hotels to return, up to 30 (default: 20) |
minReviewScore | Number | No | Post-filter: minimum guest review score (0-10 scale) |
minPricePerNight | Integer | No | Post-filter: minimum price per night |
maxPricePerNight | Integer | No | Post-filter: maximum price per night |
proxyConfiguration | Object | No | Proxy settings (Apify automatic proxy works — see Limitations) |
The three filter fields are applied to Booking.com's own results after they load — they don't change what Booking.com searches, only what gets pushed to the dataset. Booking.com's own search already returns its best-matching properties for the destination and dates, so this is a sharpening filter, not a full re-query.
Output
Booking.com's own destination search surfaces its top-matching hotels for
the given destination and dates — typically 6 to 20 properties, not a fully
paginated catalogue of every hotel in a city. maxResults caps how many of
those get pushed; it does not trigger extra requests or unlock more results.
| Field | Type | Example |
|---|---|---|
hotelName | String | "Tribe Amsterdam City" |
address | String | "Hotel in Amsterdam Noord, Amsterdam" |
reviewScore | Number | 9.0 |
reviewScoreWord | String | "Wonderful" |
reviewCount | Number | 5922 |
priceTotal | Number | 91.07 |
pricePerNight | Number | 45.54 |
currency | String | "EUR" |
nights | Number | 2 |
availability | Boolean | true |
url | String | Direct hotel page on Booking.com |
imageUrl | String | Primary hotel photo URL |
Example output
{"hotelId": "tribe-amsterdam-city","hotelName": "Tribe Amsterdam City","url": "https://www.booking.com/hotel/nl/tribe-amsterdam-city.html","address": "Hotel in Amsterdam Noord, Amsterdam","city": "Amsterdam","countryCode": "nl","starRating": null,"reviewScore": 9.0,"reviewScoreScale": "1-10","reviewScoreWord": "Wonderful","reviewCount": 5922,"priceTotal": 91.07,"pricePerNight": 91.07,"currency": "EUR","nights": 1,"roomType": null,"availability": true,"imageUrl": "https://cf.bstatic.com/xdata/images/hotel/square600/880172813.webp","checkIn": "2026-10-19","checkOut": "2026-10-21","adults": 2,"searchDestination": "Amsterdam","scrapedAt": "2026-09-04T18:30:00.000Z"}
Data fields
| Field | Description | Example |
|---|---|---|
reviewScore | Guest review score on Booking.com's own 1-10 scale | 9.0 |
reviewScoreWord | Booking.com's own label for the score | Wonderful |
priceTotal | Booking.com's own "Price from" figure, for the stay length in nights — see Limitations | 91.07 |
pricePerNight | priceTotal divided by nights | 91.07 |
nights | Stay length priceTotal actually covers, per Booking.com's own label — see Limitations | 1 |
availability | true = bookable at the searched dates, false = explicitly sold out, null = not stated | true |
starRating | Official star classification — see Limitations | null |
roomType | Specific room/rate name — see Limitations | null |
How much does it cost to scrape Booking.com?
Booking.com is protected by AWS WAF Bot Control and renders results client-side, so this actor uses a real, JS-executing headless browser rather than a plain HTTP request. The browser + compute cost is folded into the actor's per-event price, not billed separately.
It costs $0.01 per run plus $0.005 per result (per hotel returned). A typical search returning 10-20 hotels costs roughly $0.06-$0.11. Running the same destination repeatedly (e.g. daily rate tracking) is the most cost-efficient way to use this actor, since each run is one browser session covering the whole search.
The Apify Free plan includes $5 of monthly credits. Usage cost for a run only settles after it reports SUCCEEDED — reading the dataset mid-run will undercount what the run ultimately costs.
Limitations
- Curated results, not a full catalogue. Booking.com's own destination search returns its top-matching properties for the destination and dates (typically 6-20), not every hotel in a city. This actor returns exactly what Booking.com's search surfaces — it does not paginate beyond that.
starRatingandroomTypeare usually null. Booking.com doesn't expose official star classification or a specific room/rate name at the search-result level for most destinations — only guest review score, which this actor does capture reliably.- Price is Booking.com's own "Price from" indicator, not always scaled to
the full requested stay. Verified live: this destination-search price
is tied to Booking's own reference period for the property (
nightsin the output, often 1 night) rather than always recalculating for the exactcheckIn-checkOutspan you searched — the same behavior you'd see browsing Booking.com's own destination pages directly. UsenightsalongsidepriceTotal/pricePerNightrather than assuming it always matchescheckOutminuscheckIn. - Proxy. This actor uses a Residential proxy by default. Booking.com's AWS WAF Bot Control silently stalls every connection from Apify's automatic (datacenter) proxy pool — verified live, every attempt timed out with no response at all. Residential clears it reliably.
- Occupancy changes are best-effort. Adjusting
adults/roomsaway from Booking.com's own defaults (2 adults, 1 room) uses UI automation that can occasionally fail silently; the search still runs with whatever occupancy was actually set. - Data is scraped from the public website and may change without notice.
- Respect Booking.com's terms of service and use responsibly.
FAQ and support
Is it legal to scrape Booking.com? Booking.com Scraper accesses only publicly available hotel search results that any visitor can see, without logging in or bypassing payment. Always review and comply with the target website's Terms of Service before use.
Why did I get fewer results than maxResults?
Booking.com's own destination search for that city/date combination
returned fewer hotels than your maxResults value, or a review-score/price
filter excluded some of them. See Output above.
I found a bug or need help Please submit an issue on the Issues tab and we'll get back to you quickly. For custom scraping solutions, reach out via the same channel.
How to scrape Booking.com data
- Go to this actor's page on the Apify Store.
- Click Try for free to open it in Apify Console.
- Enter your destination, check-in date, and check-out date.
- Set the number of adults, rooms, and max results if needed.
- Click Start and wait for the run to finish — most searches complete in under a minute.
- Download your data in JSON, CSV, Excel, or connect it to your workflow via the Apify API.
You can also schedule daily runs to track hotel rates in a destination over time, set up webhooks for price-drop notifications, or integrate results directly into your own booking or comparison tool using the Apify API.
Related Scrapers
- Skyscanner Scraper — flight prices and search results
- Rental Cars Scraper — car rental prices and availability
- Sunweb Scraper — package holiday deals
- GetYourGuide Scraper — tours and activities
- Trainline Scraper — train tickets and schedules
Need this data on a schedule, or a custom version?
We run this scraper as a managed service for businesses: scheduled runs, price-drop alerts, delta detection, and delivery to your inbox, Google Sheets, or API — maintenance included. We can also build a custom version with room-level detail, multi-destination batches, or your exact fields.
See studioamba.dev/services or email hello@studioamba.dev for a free data sample. We maintain 700+ European web scrapers and answer within one business day.