Booking Hotel Search · Listings by City
Pricing
from $0.80 / 1,000 hotel scrapeds
Booking Hotel Search · Listings by City
Search Booking.com by destination or URL — hotels, prices, ratings, coordinates. Beats the 1,000 result cap. Companion Actors: Booking Pro Host (emails) and Booking Availability (day-by-day rates). Free plan: 20 hotels/run. No login.
Pricing
from $0.80 / 1,000 hotel scrapeds
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
60
Total users
35
Monthly active users
9 days ago
Last modified
Categories
Share
Booking.com Hotel Search
Type a destination, get the Booking.com hotel catalog — names, nightly prices, ratings, photos, coordinates, and cancellation flags. Export JSON, CSV, or Excel from Apify.
No login. No Booking.com account. No setup.
Free plan: 20 hotels / run. Paid plans follow PPE (billed per hotel row).
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| Travel startup or OTA | Hotel catalog with prices and coordinates | Destination text · leave details off |
| Revenue manager | Competitor rates for one market and date window | Destination + check-in / check-out |
| Market researcher | City supply snapshot — prices, stars, availability | Destination · maxResults: 0 on a paid plan |
| Hospitality investor | Density and pricing in a neighbourhood | Paste a Booking.com search URL with map filters |
| Data journalist | Tourism prices, structured | Destination · export CSV |
| Developer or agency | Dataset without maintaining a scraper | Start from a ready-made example |
What you get by default: one row per hotel — name, Booking.com URL, city, coordinates, nightly rate, stars, guest score, photo, free-cancellation / prepayment / pets flags.
When to enable the details add-on: you need room types, check-in hours, or the hotel description. Leave it off for prices and ratings — faster and cheaper. The Store image is HTTP-only; room-type enrichment needs Chrome and is skipped on the default build.
Not sure it covers your city? The scraper works around Booking.com's 1,000-result cap — major cities like Paris or London typically return 3,000–5,000+ hotels on a paid run with
maxResults: 0.
Also available
The Booking.com suite — pick the job:
| Actor | Use when |
|---|---|
| This Actor — Hotel Search | Full hotel catalog by city or URL |
| Booking Pro Host | Hotel emails and company names |
| Booking Availability | Day-by-day rates and sold-out |
| Booking Price Monitor | Market rates across date windows |
| Booking Reviews | Guest scores and feedback |
Quick start
Option A — Type your destination
- Open the Actor Input tab
- Set Destination to
Paris, France(or any city) - Optionally set check-in and check-out
- Click Start
- Download results from the Dataset tab (JSON, CSV, Excel, or HTML)
Option B — Paste a Booking.com search URL (keep your filters)
- Open booking.com and search for a city
- Apply filters in the browser (stars, neighbourhood, review score, property type)
- Copy the URL from the address bar
- Paste it into Or use Booking.com search URLs
- Click Start
Input
Destination search
{"destination": "Paris, France","checkin": "2026-10-12","checkout": "2026-10-14","adults": 2,"rooms": 1,"maxResults": 20}
Booking.com search URL (filters kept)
{"urls": ["https://www.booking.com/searchresults.html?ss=Barcelona%2C+Spain"],"maxResults": 20}
Hotels only, skip apartments
{"destination": "Paris, France","propertyType": "Hotels","maxResults": 20}
All input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
destination | String | — | City or region (Paris, France). Leave empty if you pass urls. |
urls | String[] | — | Booking.com search-result URLs. Browser filters stay on the URL. |
checkin | Date | +7 days | Check-in used for displayed prices. |
checkout | Date | +9 days | Check-out (default 2-night stay). |
adults | Integer | 2 | Occupancy for prices (1–30). |
rooms | Integer | 1 | Number of rooms (1–30). |
currency | String | Booking.com default | Dropdown ISO code (EUR, USD, GBP…). Empty = Booking.com default for that search. |
propertyType | String | all types | Hotels, Apartments, Hostels, Guest houses, Bed & breakfasts, Villas, Resorts, Motels. |
maxResults | Integer | 0 (no cap) | Cap how many hotels to return. Console Try prefills 15. Free plan: 20 / run even if you set higher or 0. |
scrapeDetails | Boolean | false | Add-on: room types, check-in hours, description. Extra PPE. Skipped on the HTTP-only Store image. |
Need a review-score or neighbourhood cut? Apply it on Booking.com, copy the search URL, and paste it in urls.
Ready-made examples (published tasks)
| Example | Best for |
|---|---|
| Export Paris hotels with prices and ratings | Flagship city catalog |
| Scrape Barcelona hotels from Booking.com | Second-market snapshot |
| Export hotels from a Booking.com search URL | Keep browser filters |
| Find Booking.com apartments in Gstaad | Property-type slice |
| Export London hotels | UK catalog |
| Scrape Rome hotels | Italy snapshot |
| Export Amsterdam hotels | NL catalog |
| Export Lisbon hotels | Portugal snapshot |
| Villas in Marbella | Villa-only slice |
| Amsterdam search URL | Keep NL filters |
| Paris hotels only | Skip apartments |
| Export New York hotels | US catalog |
What data does it extract?
| Category | Fields |
|---|---|
| Identity | hotelName, hotelUrl, hotelId |
| Location | city, countryCode, latitude, longitude, distanceFromCenter |
| Price | pricePerNight, currency, hasDiscount, badges, checkin, checkout |
| Ratings | starRating, rating (guest score / 10), reviewCount |
| Policies | freeCancellation, noPrepayment, petsAllowed |
| Media | photoUrl |
| Add-on | description, checkinFrom / checkinUntil / checkoutUntil, rooms[], surroundings[] |
Download in JSON, CSV, Excel, or HTML from the Dataset tab.
Output example
Default run (prices, ratings, photo — details add-on off):
{"type": "hotel","hotelId": 12215313,"hotelName": "TheLander - Serviced Apartment in Le Marais","hotelUrl": "https://www.booking.com/hotel/fr/thelander-serviced-apartment-in-le-marais.html","city": "Paris","countryCode": "fr","latitude": 48.8576393,"longitude": 2.3525712,"starRating": 4,"rating": 8.7,"reviewCount": 7,"distanceFromCenter": "150 m from downtown","photoUrl": "https://cf.bstatic.com/xdata/images/hotel/square600/566929521.webp","pricePerNight": 1350.73,"currency": "EUR","hasDiscount": false,"badges": [],"freeCancellation": false,"noPrepayment": false,"petsAllowed": false,"checkin": "2026-10-12","checkout": "2026-10-14","searchLabel": "Paris, France"}
The details add-on — when to turn it on
Turn it on for room types, what's nearby, check-in hours, and the hotel description.
Leave it off if you only need prices, ratings, and availability.
| Default | With details add-on | |
|---|---|---|
| Speed | ~30 seconds for 1,000 hotels | ~3–4 seconds per hotel |
| 200 hotels | ~30 seconds | ~12 minutes |
| Memory | 1,024 MB | 2,048 MB |
| Store image | HTTP — add-on skipped | Needs Chrome; not in the default build |
Set Max results to cap how many hotels you pull — useful for a top-50 sample.
How much does it cost?
Pay per hotel row. No Actor-start fee on this listing. No monthly commitment on top of your Apify plan.
From 15 September 2026 the hotel-row event becomes $0.0035 on Free (Bronze $0.0028 · Silver $0.0021 · Gold $0.0014). The details add-on does not change. Until then, the table below is what you are billed.
Standard run (prices, ratings, photos)
| FREE | BRONZE | SILVER | GOLD | |
|---|---|---|---|---|
| Per hotel (until 15 Sep 2026) | $0.002 | $0.0016 | $0.0012 | $0.0008 |
| Per hotel (from 15 Sep 2026) | $0.0035 | $0.0028 | $0.0021 | $0.0014 |
| 50 hotels (until / from) | ~$0.10 / $0.18 | ~$0.08 / $0.14 | ~$0.06 / $0.11 | ~$0.04 / $0.07 |
| 500 hotels (until / from) | ~$1.00 / $1.75 | ~$0.80 / $1.40 | ~$0.60 / $1.05 | ~$0.40 / $0.70 |
| 2,000 hotels (until / from) | ~$4.00 / $7.00 | ~$3.20 / $5.60 | ~$2.40 / $4.20 | ~$1.60 / $2.80 |
With details add-on (rooms, description)
Add-on cost is on top of the standard rate. Only charged when the add-on actually runs (Chrome build).
| FREE | BRONZE | SILVER | GOLD | |
|---|---|---|---|---|
| Per hotel enriched | $0.008 | $0.004 | $0.003 | $0.002 |
| 50 hotels + details | ~$0.50 | ~$0.28 | ~$0.21 | ~$0.14 |
| 200 hotels + details | ~$2.00 | ~$1.12 | ~$0.84 | ~$0.56 |
Cost uses Apify pay-per-event. Check Apify pricing for platform compute on top of PPE.
Run on a schedule
Set a weekly or daily task to track how prices move for a market and date window. Useful for revenue management, competitive intelligence, or a live dashboard.
Local development
$npm install
Edit input.json at the project root, then:
cp input.json storage/key_value_stores/default/INPUT.jsonapify run --purge-none
Example input.json for a 15-hotel Paris sample:
{"destination": "Paris, France","maxResults": 15}
Use apify run (not npm start).
Is it legal to scrape Booking.com?
This Actor only collects data that any visitor can see on Booking.com — hotel names, public prices, ratings, and policies. No login, no personal guest data.
Make sure your use complies with applicable regulations (GDPR, local data laws). When in doubt, consult a legal professional. See also Apify on the legality of web scraping.
FAQ
- Do I need a Booking.com account? No.
- Does it use an official Booking.com API? No. It reads the public search results any visitor can see.
- Why did I only get 20 hotels? Free plan: 20 hotels / run. Upgrade on Apify to raise the cap; billed per hotel.
- Can I get more than 1,000 hotels in one city? Yes on a paid plan with
maxResults: 0. The Actor splits the market so it is not stuck on Booking.com's first 1,000 results. - How do I keep star / neighbourhood / review-score filters? Apply them on Booking.com, copy the search URL, paste it in
urls. - Room types came back empty. The default Store image is HTTP-only. Room-type enrichment needs Chrome and
scrapeDetails: true. - What if results look incomplete? Raise Timeout in Run options, or cap
maxResultsand retry. Large cities withmaxResults: 0can run for hours. - How do I leave a Store review? Actor page → Reviews. A short note after a successful export helps the next travel team find this listing.
Support
Questions, custom work, or feedback: corentin@outreacher.fr or the Issues tab on the Actor page.
Ready? Type a destination (or paste a Booking.com URL), keep the details add-on off for a cheap first export, and click Start.