BookingScraper
Pricing
$19.99/month + usage
BookingScraper
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeBase
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Apify Actor BookingScraper scrapes Booking.com hotel detail pages and optional search results. It produces output in the same format as the reference (e.g. output.json): one JSON object per hotel with order, url, startUrlOrQuery, name, type, description, stars, price, currency, rating, ratingLabel, reviews, breakfast, checkIn/checkOut, checkInDate/checkOutDate, location, address, image, rooms, highlights, finePrint, policies, images, roomImages, categoryReviews, hotelChain, licenseInfo, hostInfo, traderInfo, breadcrumbs, hotelId, facilities, timeOfScrapeISO, and optional source_url. By default it uses no proxy; if Booking.com blocks or rejects requests, it automatically falls back to datacenter then residential proxy (with up to 3 retries), and logs all proxy events clearly.
Why Choose Us?
- Same output shape as your reference: Produces one JSON object per hotel with
order,url,name,type,description,stars,price,currency,rating,ratingLabel,reviews,rooms,images,roomImages,facilities,traderInfo,address,location,checkIn/checkOut,breadcrumbs,categoryReviews, and more. - Robust proxy handling: No proxy by default; automatic fallback to datacenter then residential with clear
[PROXY]logs. - Live saving: Each hotel is pushed to the dataset as soon as it’s scraped, so partial results are kept if the run stops.
- Bulk URLs: Supply many hotel or search URLs in one run.
- Optional search: Provide a search query (e.g.
"New York") and optional dates/filters to discover hotels from search results.
Key Features
| Feature | Description |
|---|---|
| Hotel detail scraping | Full extraction from Booking.com hotel pages (Apollo state, schema.org, HTML fallbacks). |
| Search results | Optionally scrape from search URLs or a search query to get a list of hotels, then scrape each. |
| Proxy fallback | NO_PROXY → DATACENTER → RESIDENTIAL (3 retries); once on residential, all remaining requests use it. |
| Detailed logs | Progress and proxy events logged so you can follow the run until the final result. |
| Retries | Failed requests trigger proxy fallback or residential retry so the actor recovers from blocks. |
Input
Configure the actor with the Apify input schema. Example:
{"urls": [{ "url": "https://www.booking.com/hotel/us/trump-international-new-york.en-gb.html" }],"proxyConfiguration": {"useApifyProxy": false},"maxItems": 10,"search": "New York","checkIn": "2026-03-25","checkOut": "2026-03-31"}
| Field | Type | Description |
|---|---|---|
| urls | array | Required (or use search). List of Booking.com hotel page URLs or search results page URLs. Each item can be { "url": "..." } or a string. |
| proxyConfiguration | object | Proxy settings. Default: no proxy. Use Apify proxy if you want; fallback will use datacenter/residential when needed. |
| maxItems | integer | Max number of hotels to scrape when using search or search result URLs (default: 10). |
| search | string | If no URLs (or only search URLs), use this as the location/landmark (e.g. "New York"). |
| checkIn / checkOut | string | Optional dates in YYYY-MM-DD for search. |
Output
The default dataset contains one item per scraped hotel. Each item matches the structure of your reference output, for example:
{"order": 1,"url": "https://www.booking.com/hotel/us/trump-international-new-york.en-gb.html","startUrlOrQuery": "New York","name": "Trump International New York","type": "hotel","description": "Located at the juncture of Columbus Circle and Broadway...","stars": 5,"price": 3067.11,"currency": "USD","rating": 8.9,"ratingLabel": "Very good","reviews": 842,"breakfast": "Available","checkIn": "From 16:00 to None","checkOut": "From None to 12:00","checkInDate": "2026-03-25","checkOutDate": "2026-03-31","location": { "lat": 40.769, "lng": -73.981 },"address": { "full": "One Central Park West", "country": "US", "city": "New York" },"image": "https://cf.bstatic.com/...","rooms": [...],"highlights": [...],"finePrint": "...","policies": [...],"images": [...],"roomImages": [...],"categoryReviews": [...],"hotelChain": null,"licenseInfo": null,"hostInfo": null,"traderInfo": { "isBusiness": true, "email": "...", "phone": "...", "address": {...} },"breadcrumbs": [...],"hotelId": "...","facilities": [...],"source_url": "https://www.booking.com/...","timeOfScrapeISO": "2026-03-15T12:00:00.000000+00:00"}
| Field | Description |
|---|---|
| order | 1-based index of the hotel in this run. |
| url / source_url | Canonical and requested URL. |
| name, type, description | Basic property info. |
| stars, price, currency | Star rating and price. |
| rating, ratingLabel, reviews | Guest rating and count. |
| rooms | Room types with id, name, price when available. |
| images, roomImages | Main and per-room image URLs. |
| traderInfo | Business/contact and address. |
| facilities, highlights | Amenities and highlights. |
| timeOfScrapeISO | When the page was scraped (UTC). |
How to Use the Actor (Apify Console)
- Log in at https://console.apify.com and go to Actors.
- Find booking-hotel-scraper (or your actor name) and open it.
- Set Input:
- urls: Add one or more Booking.com hotel or search URLs (or use search and optional dates).
- proxyConfiguration: Leave default (no proxy) or enable Apify Proxy; fallback will be used automatically if needed.
- Click Start.
- Watch Log for progress and
[PROXY]messages. - Open the Output tab to see the dataset (table or JSON).
- Export to JSON/CSV if needed.
Best Use Cases
- Hotel data for travel/price tools: Get structured details for many properties.
- Competitor or market research: Collect names, prices, ratings, facilities.
- Lead or contact data: Use
traderInfo(email, phone, company, address) from listing pages.
Frequently Asked Questions
Do I need to enable proxy?
No. By default the actor sends requests without proxy. Enable Apify Proxy in input if you want; the actor will still start without proxy and only switch to datacenter/residential when it detects blocks.
What if I get blocked?
The actor will log [PROXY] and switch to datacenter, then residential. After switching to residential it keeps using it for all remaining requests. If residential fails, it retries up to 3 times and then fails the run with a clear message.
Can I scrape only from a search query?
Yes. Leave urls empty and set search (e.g. "New York"). Optionally set checkIn, checkOut, and maxItems.
Is the output format stable?
Yes. The output matches the same structure as the reference dataset (order, url, name, price, rooms, traderInfo, etc.).
Support and Feedback
Use the Apify platform support or your team’s channel for bugs or feature requests. Ensure your use complies with Booking.com’s terms and applicable law.
Cautions
- Data is collected only from publicly available Booking.com pages.
- You are responsible for legal compliance (privacy, data protection, terms of use).
- Use reasonable maxItems and rate to avoid overloading the target site.