Booking.com Hotels Scraper
Under maintenancePricing
from $4.99 / 1,000 results
Booking.com Hotels Scraper
Under maintenanceScrape hotel listings from Booking.com search results. Extracts hotel name, price, rating, review count, location, and star rating.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Coding Frontned
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
What does Booking.com Hotels Scraper do?
Booking.com Hotels Scraper is a public-data Booking.com API alternative for collecting hotel search results. It reads hotel cards from public search pages and can use the page's public JSON-LD as a bounded fallback. It does not sign in, use private endpoints, or extract private account data. See Booking.com for the source website.
Why use Booking.com Hotels Scraper?
Use the Actor for travel planning, accommodation price comparison, competitive rate monitoring, and destination research. Results retain the existing hotel fields and add stable provenance fields for downstream auditing.
Key features include:
- Configurable destination, dates, adult count, and successful hotel limit.
- Public DOM extraction with a public JSON-LD HTTP fallback.
- Hotel name, URL, price text, rating, reviews, location, star class, amenities, badges, and availability signals when published.
recordType,found,dataAvailable, source URL, extraction method, and compact evidence metadata on enriched records.- Entity-only datasets: access and no-data diagnostics are written to the
OUTPUTsummary and logs, never mixed with hotel rows. - Apify scheduling, API access, webhooks, monitoring, and configurable proxy support.
What data can Booking.com Hotels Scraper extract?
| Field | Type | Description |
|---|---|---|
hotelId | string | Hotel identifier parsed from the public URL when available. |
name | string | Public hotel name. |
url | string | Public Booking.com hotel or search URL. |
price / originalPrice | string | Publicly displayed localized price text and pre-discount price when available. |
priceAmount / originalPriceAmount / currency | number / number / string | Typed price amounts and inferred ISO currency. |
rating / reviewCount | string / integer | Public review score and review count. |
stars | integer | Public star classification when available. |
location / distanceFromCenter | string | Public location and distance text. |
amenities | array | Public facility labels found on the hotel card. |
recordType, found, dataAvailable | string / boolean / boolean | Record classification and whether usable public hotel data is present. |
sourceUrl, extractionMethod, evidence | mixed | Compact public provenance for the record. |
How to scrape Booking.com hotel results
- Open the Actor and enter a destination such as
Parisin the input tab. - Optionally provide
checkIn,checkOut, andadults. If dates are omitted, the Actor uses a one-night stay 30 days ahead so Booking.com exposes live prices. - Set
maxItemsto the number of successful hotel records you need. - Configure an Apify proxy only when you are authorized to use it and the public site permits the request. Residential routing is recommended by the input form because Booking.com may restrict automated public requests.
- Start the run, then download the dataset or use the API tab. Apify can schedule repeated runs and deliver webhooks for monitoring workflows.
How much will it cost to scrape Booking.com?
This Actor does not define a separate per-result price. Your cost depends on the Apify compute time, browser resources, and any proxy traffic used by the run. Start with a small maxItems value, then increase it after confirming the public response is available. Browser extraction generally uses more compute than the HTTP fallback.
Input
See the input tab for full configuration options. destination is required; checkIn and checkOut use YYYY-MM-DD and default to a one-night stay 30 days ahead; adults defaults to 2; and maxItems defaults to 25 with a maximum of 300. Direct public browser requests are the default, and proxy configuration is optional.
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. A successful item resembles:
{"recordType": "booking-hotel","found": true,"dataAvailable": true,"hotelId": "example-hotel-123","name": "Example Paris Hotel","price": "EUR 120","rating": "8.4","reviewCount": 1250,"url": "https://www.booking.com/hotel/fr/example-paris-hotel.html","sourceUrl": "https://www.booking.com/searchresults.html?ss=Paris"}
If Booking.com is blocked, unavailable, or returns no usable public hotel records, the Actor fails clearly, leaves the dataset empty, and records a diagnostic in the OUTPUT key:
{"datasetItems": 0,"runStatus": "completed_no_data","dataAvailable": false,"diagnostic": {"code": "NO_RESULTS","message": "The public Booking.com response contained no usable hotel records."}}
Tips and advanced options
- Keep
maxItemsreasonable to reduce browser time and public-site load. - Use
sourceUrl,extractionMethod, andevidenceto audit which public response produced each item. - If a run fails without hotel rows, review
OUTPUT.diagnostic, the run log, and the optional debug HTML key.
FAQ, disclaimers, and support
Does the Actor access private Booking.com information?
No. It is limited to public search responses and does not request account credentials or private endpoints. Respect Booking.com's terms, robots rules, and applicable laws.
Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
For programmatic use, see the API tab. For troubleshooting or feature requests, use the Issues tab and include the OUTPUT diagnostic and run ID.