Booking.com Hotels Scraper - Worldwide Search & Categories
Pricing
from $3.00 / 1,000 results
Booking.com Hotels Scraper - Worldwide Search & Categories
Scrape Booking.com hotel search results for any destination worldwide. Extract names, prices, ratings, locations, room types, and listing links. Filter by property category or leave empty for all types.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Booking.com Hotels Scraper
Scrape Booking.com search results for any destination worldwide — prices, ratings, locations, and listing links in structured JSON. Filter by property category, stars, review score, and free cancellation. No Booking partner API required.
What does this Actor do?
- Search Booking.com stays for cities, regions, countries, or landmarks worldwide
- Resolve destinations via Booking autocomplete (
dest_id/dest_type) when possible; falls back to free-textss=search if autocomplete is unavailable - Filter by property types (empty = all), stars, min review score, and free cancellation
- Support children / child ages in the search URL
- Sort by popularity, price, reviews, stars, or distance
- Extract hotelId, name, price, total price (when shown), rating, review count, location, room type, and image
- Paginate up to your
maxResultslimit with headed Chrome + sticky Apify RESIDENTIAL proxies (never unproxied)
Output fields
| Field | Description |
|---|---|
source | Always booking |
hotelId | Stable id from URL/card when available (e.g. sg/marina-bay-sands) |
name | Property name |
url | Booking.com listing URL |
price | Nightly / primary displayed price (when available) |
totalPrice | Total stay price when visible on the search card |
currency | ISO currency code |
rating | Numeric review score (typically 1–10) |
ratingText | Raw rating text from the card |
reviewCount | Number of reviews |
propertyType | Inferred type (Hotel, Apartment, Hostel, …) |
location | Neighborhood / area text |
distanceFromCenter | Distance-from-center text |
imageUrl | Primary card image |
roomType | Recommended unit / room text |
amenities | Amenity labels when present on SERP (often empty) |
destination / checkin / checkout | Echoed from the search input when set |
scrapedAt | ISO timestamp |
How to use
- Enter a destination (city, region, country, or landmark — e.g.
Tokyo,France,near Times Square) - Set check-in / check-out (
YYYY-MM-DD) for accurate prices - Optionally choose property types, stars, review score, sort, language, currency, and proxy country
- Click Start — results appear in the Dataset tab
Example: worldwide city search
{"destination": "Tokyo","checkin": "2026-08-01","checkout": "2026-08-03","adults": 2,"maxResults": 20,"currency": "USD","lang": "en-us","proxyCountry": "JP"}
Example: apartments only in Paris
{"destination": "Paris","checkin": "2026-08-01","checkout": "2026-08-05","adults": 2,"propertyTypes": ["apartment"],"sort": "price","maxResults": 30,"currency": "EUR","lang": "en-us","proxyCountry": "FR"}
Example: family stay with filters
{"destination": "Singapore","checkin": "2026-08-01","checkout": "2026-08-03","adults": 2,"children": 1,"childAges": [8],"stars": [4, 5],"minReviewScore": 8.0,"freeCancellation": true,"propertyTypes": ["hotel"],"maxResults": 20,"currency": "SGD","proxyCountry": "SG"}
Leaving propertyTypes empty means all accommodation categories.
Example output
{"source": "booking","hotelId": "fr/negresco","name": "Hotel Negresco Nice","url": "https://www.booking.com/hotel/fr/negresco.html","price": 312.0,"totalPrice": 1248.0,"currency": "USD","rating": 8.7,"ratingText": "Fabulous","reviewCount": 4521,"propertyType": "Hotel","location": "Promenade des Anglais, Nice","distanceFromCenter": "1.2 km from center","imageUrl": "https://cf.bstatic.com/xdata/images/hotel/square200/12345.webp","roomType": "Superior Double Room","amenities": [],"destination": "Nice","checkin": "2026-08-01","checkout": "2026-08-05","scrapedAt": "2026-07-20T05:00:00Z"}
Input
| Field | Type | Default | Notes |
|---|---|---|---|
destination | string | Singapore | City / region / country / landmark |
checkin / checkout | string | (empty) | YYYY-MM-DD |
adults | integer | 2 | 1–10 |
children | integer | 0 | 0–10 |
childAges | integer[] | [] | Ages 0–17; padded to children |
rooms | integer | 1 | 1–10 |
maxResults | integer | 50 | 1–500 |
currency | string | USD | ISO code + cur_curr cookie |
lang | string | en-us | UI language tag |
sort | enum | popularity | popularity, price, review_score, … |
propertyTypes | string[] | [] | Empty = all categories |
stars | integer[] | [] | 1–5 → class= filters |
minReviewScore | number | (null) | 0–10 → review_score= tenths |
freeCancellation | boolean | false | → oos=1 |
destId / destType | string | (empty) | Skip autocomplete when both set |
customNfltFilters | string[] | [] | Raw nflt fragments |
proxyCountry | string | (empty) | RESIDENTIAL country (default US) |
proxy | object | (none) | Optional Apify proxy editor |
Supported property types
hotel, apartment, hostel, motel, resort, bed_and_breakfast, villa, guesthouse, holiday_home, aparthotel, lodge, homestay, country_house, capsule_hotel, campground, inn, ryokan, riad, chalet, holiday_park, tent, love_hotel, pension
Limits & notes
- SERP only — no detail-page enrichment; amenities/
totalPriceare often empty on cards - Autocomplete — tries API + UI suggestion fallback; if both fail, search continues with free-text
ss=(destSource:query_onlyin warnings) - Proxy required — sticky RESIDENTIAL is mandatory; the Actor does not fall back to direct/unproxied browsing
- Anti-bot — headed Chrome + Xvfb; Cloudflare challenges are waited on and fail the page/attempt if unresolved (no CapSolver)
Diagnostics
Each run writes:
INPUT_ECHO— sanitized input including resolveddestId/destTypeandnfltRUN_SUMMARY— status, counters, field completeness, warnings (destSource:…, proxy mode, etc.)ERROR_SUMMARY— written only on hard failures
Statuses: ok | partial | blocked.
Pricing
This Actor uses Pay per event pricing. Platform usage costs are paid by the Actor developer (not passed to the user).
| Event | Price |
|---|---|
apify-actor-start (Actor Start) | $0.005 per start (memory-scaled) |
apify-default-dataset-item (Result) | $3.00 / 1,000 listings ($0.003 each) |
FAQ
Can I search any country?
Yes. Enter a city, region, or country name. The Actor tries Booking autocomplete for dest_id; if that fails it still searches with the destination text. Inventory is global on www.booking.com.
What does empty propertyTypes mean?
All categories — hotels, apartments, hostels, and other accommodation types shown on the SERP.
Do I need a Booking.com account?
No.
Are amenities always filled?
No. This Actor scrapes search results only; amenities are often absent on SERP cards.
Related Actors
- Booking.com & Airbnb Scraper — dual-platform comparison
- Browse more: apify.com/lentic_clockss