Booking.com Search Scraper
Pricing
from $0.50 / 1,000 results
Booking.com Search Scraper
Scrape Booking.com search results by destination. Returns hotel id, name, URL, price, taxes, review score, star rating, coordinates, address, district, room and bed setup, meals and cancellation policy. Dedupes past Booking's result cap, so you are never billed for repeat rows.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Crikit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape Booking.com hotel search results for any destination and date range. This Booking.com scraper returns hotel ID, name, URL, nightly and total price, taxes and charges, review score and count, star rating, coordinates, full address, district, room and bed setup, meal plan, and cancellation policy across 61 fields.
No Booking.com API key, no login, and no headless browser. Results land in a structured dataset you can export to JSON, CSV, Excel, or XML, or pull straight from the Apify API.
What is Booking.com Search Scraper?
Booking.com Search Scraper is an Apify Actor that extracts hotel search results from Booking.com and returns them as clean, structured records. It dedupes past Booking.com's own result cap, so a busy destination returns far more distinct properties than the site will paginate through in a browser.
What data can this Booking.com scraper extract?
Every run writes one row per property. The full schema carries 61 fields; the most-used ones are below.
| Field | Type | Description |
|---|---|---|
hotelId | integer | Booking.com internal property id. Stable across runs and the join key to Booking.com property detail pages. |
name | string | Property name as displayed on the search result card. |
url | string | Canonical Booking.com detail page URL for the property. |
slug | string | Booking.com URL slug for the property. |
propertyType | string | Human readable accommodation type, for example Hotel, Apartment or Hostel. |
propertyTypeId | integer | Booking.com numeric accommodation type id. |
starRating | number | Official star rating from 1 to 5. Null for property types Booking does not star rate. |
starRatingType | string | Whether the rating is official stars or a Booking assigned symbol. |
reviewScore | number | Guest review score on Booking's 10 point scale. |
reviewCount | integer | Number of guest reviews behind the score. |
reviewScoreWord | string | Booking's word for the score, for example Very Good or Superb. |
locationScore | number | Guest score for the property location specifically. |
address | string | Street address of the property. |
city | string | City the property is listed under. |
countryCode | string | Two letter ISO country code. |
latitude | number | WGS84 latitude of the property. |
longitude | number | WGS84 longitude of the property. |
district | string | Neighbourhood and city as displayed on the card. |
neighborhood | string | Popular district name Booking associates with the property. |
distanceFromCenter | string | Distance from the destination centre, as displayed. |
publicTransport | string | Nearest public transport description, when Booking supplies one. |
isCentrallyLocated | boolean | Whether Booking flags the property as centrally located. |
See the Output tab in Apify Console for all 61 fields.
How to scrape Booking.com hotel search results
- Open Booking.com Search Scraper and click Try for free.
- Put a destination in
search, then setcheckIn,checkOut,adults, androoms. - Filter server-side with
minPrice,maxPrice,minReviewScore,starRatings, andpropertyTypes. - Choose
currencyandlanguage, and pick asortByorder. - Set
maxResultsto bound the run. - Click Start and watch rows appear live in the Output tab.
- Export the dataset as JSON, CSV, Excel, or XML — or fetch it from the Apify API once the run finishes.
Booking.com Search Scraper input options
| Input | Type | What it does | Default |
|---|---|---|---|
search | array | One or more destinations to search, exactly as you would type them into Booking.com. Cities, regions, districts,... | yes |
checkIn | string | Check-in date in YYYY-MM-DD format. Prices and availability are always tied to a date range. Leave empty to use a... | |
checkOut | string | Check-out date in YYYY-MM-DD format. Must be at least one night after check-in. Leave empty to use a two night stay. | |
adults | integer | Number of adults in the party. Affects which rooms and prices Booking returns. | 2 |
childrenAges | array | Age of each child travelling, for example [4, 9] for two children. Leave empty for an adults-only search. | |
rooms | integer | Number of rooms required. | 1 |
maxResults | integer | Hard cap on the number of properties written to the dataset across all destinations. Booking limits any single... | 100 |
sortBy | string | Result ordering. Booking's default relevance ranking is used when left empty. | |
currency | string | Currency for all returned prices, as a 3 letter ISO code. Setting this explicitly is recommended, since an unset... | "USD" |
language | string | Booking language code used for text fields such as district names, meal plans and review score words. | "en-us" |
minPrice | integer | Only return properties at or above this total stay price, in the selected currency. | |
maxPrice | integer | Only return properties at or below this total stay price, in the selected currency. | |
minReviewScore | string | Only return properties whose guest review score is at least this value, on Booking's 10 point scale. | |
starRatings | array | Only return properties with these star ratings. Leave empty for all. | |
propertyTypes | array | Narrow results to these Booking property categories. This maps to Booking's own category filter, which is broader... |
Proxy is configured through the standard proxyConfiguration object; the defaults shipped with this Actor are already tuned for the target site.
Example output
{"hotelId": 1169919,"name": "Hotel Edison Times Square","url": "https://www.booking.com/hotel/us/edison-triumph-group.html","propertyType": "Hotel","starRating": 4,"reviewScore": 8.1,"reviewCount": 12316,"reviewScoreWord": "Very Good","locationScore": 9.6,"address": "228 West 47th Street","city": "New York (New York)","countryCode": "us","latitude": 40.7596825,"longitude": -73.9863504,"district": "Manhattan, New York","neighborhood": "Times Square","distanceFromCenter": "1 km from downtown","publicTransport": "49th Street station is within 250 meters","price": 895.22,"originalPrice": 1098.02,"isDiscounted": true,"pricePerNight": 447.61,"currency": "USD","taxesAndCharges": "+US$139 taxes","dealBadges": ["Getaway Deal"],"roomName": "Signature 1 Queen Bed","beds": 1,"mealPlan": "Breakfast included","freeCancellation": true,"freeCancellationUntil": "2026-09-13T04:00:00Z","urgencyMessage": "We have 3 left at this price","isSustainable": false,"mainImage": "https://cf.bstatic.com/xdata/images/hotel/square600/864195523.jpg","position": 1}
How much does it cost to scrape Booking.com?
This Actor runs on pay per result pricing: $0.0005 per property ($0.5 per 1,000). A one-time start fee of $0.00005 applies per run.
| Results | Approximate cost |
|---|---|
| 1,000 | $0.50 |
| 10,000 | $5.00 |
| 100,000 | $50.00 |
You pay for rows you actually receive, so a search that returns nothing costs nothing beyond the start fee. Every Apify account includes free monthly usage credit, so you can trial Booking.com Search Scraper at no cost.
What can you build with Booking.com data?
Track hotel rates across a destination
Re-run the same dates daily to build a rate calendar per property and see exactly when competitors open or close discounts.
Benchmark your property against its comp set
Review score, star rating, and price on one row let you position a hotel against genuinely comparable properties rather than the whole city.
Feed a travel metasearch or comparison site
Coordinates, address, price, and booking URL are enough to render a full comparison listing directly.
Research a hospitality market before investing
Distribution of star ratings, review scores, and prices across a destination shows where supply is thin and where it is saturated.
Monitor cancellation and meal-plan strategy
Policy fields reveal how competitors use free cancellation and breakfast inclusion as conversion levers.
Booking.com scraping tips and limits
- Always set
checkInandcheckOut. Booking.com prices are date-dependent and a dateless run returns indicative rates that will not match a real quote. - Keep
currencyfixed across runs — Booking.com localises by IP, and mixed-currency rows quietly corrupt any price time series. - Booking.com caps how deep its own search paginates. Splitting a large city by district returns more distinct properties than one broad search.
- Prices move constantly. For rate-tracking, run at the same hour each day so your series is comparable.
Integrations and automation
Run Booking.com Search Scraper on a schedule to keep a Booking.com dataset fresh, or trigger it from your own stack through the Apify API and the official JavaScript and Python clients. Native integrations push results into Google Sheets, Slack, Airtable, Zapier, Make, GitHub, or any webhook endpoint. The Actor also works as an MCP tool, so an AI agent can call it directly.
Related scrapers
| Actor | What it does |
|---|---|
| Booking.com Property Details Scraper | 50+ detail fields per property, including all rooms and policies. |
| Agoda Hotel Search Scraper | The same destinations on Agoda, for rate comparison. |
| Tripadvisor Hotels Scraper | Tripadvisor rankings and per-provider offers. |
| Hostelworld Property Search Scraper | Hostel and budget inventory Booking.com under-covers. |
Frequently asked questions
Does it return the total price including taxes?
Yes. price, pricePerNight, and taxesAndCharges come back separately, so you can work with either the headline rate or the true all-in cost.
Can I scrape a whole city?
Yes, and the Actor dedupes beyond Booking.com's visible result cap. For very large destinations, split by district or neighborhood to maximise distinct property coverage.
Do I need a Booking.com API key?
No. Booking.com Search Scraper reads publicly available Booking.com pages and endpoints directly, so there is no key to obtain, no OAuth app to register, and no account to connect.
Can I export Booking.com data to CSV, Excel, or Google Sheets?
Yes. Every run stores results in an Apify dataset that exports to JSON, JSONL, CSV, Excel, XML, or HTML with one click, and the Google Sheets integration writes rows straight into a spreadsheet.
Can I run Booking.com Search Scraper on a schedule?
Yes. Apify schedules run the Actor hourly, daily, weekly, or on any cron expression, and webhooks can notify your systems the moment a run finishes.
Is it legal to scrape Booking.com?
Scraping publicly available data is broadly lawful in the US and EU, but the answer depends on what you collect and how you use it. This Actor is built to gather public hotel and pricing information Booking.com publishes publicly. Personal data carries extra obligations under GDPR and CCPA. Read Apify's guide on whether web scraping is legal and take your own legal advice for your use case.
Support and feedback
Found a bug, a missing field, or a Booking.com page shape this Actor does not handle yet? Open an issue from the Issues tab on the Actor page. Feature requests and custom-scraper enquiries are welcome there too.