Booking.com Hotel Scraper
Pricing
from $2.87 / 1,000 hotel scrapeds
Booking.com Hotel Scraper
Scrape hotel listings from Booking.com including prices, ratings, availability, and cancellation policies. Uses the unprotected GraphQL API — HTTP-only, low memory, fast.
Pricing
from $2.87 / 1,000 hotel scrapeds
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
3
Bookmarked
361
Total users
167
Monthly active users
13 days ago
Last modified
Categories
Share
Scrape hotel listings from Booking.com with 34+ structured fields including GPS coordinates, guest review scores, street addresses, discount badges, sold-out signals, high-res photos, and cancellation policies. Search any city, region, or country worldwide.
Export results as JSON, CSV, Excel, or HTML directly from the Apify platform.
How it works
- Enter a destination (e.g., "Berlin", "Rome", "Tokyo")
- Set check-in and check-out dates
- Choose number of guests and rooms
- Run the actor — results appear in seconds
The actor calls Booking.com's internal GraphQL API directly. No browser, no cookies, no manual session handling required.
Use cases
- Travel price comparison and monitoring — track nightly rates across hundreds of hotels for any destination and date range
- Revenue management and competitive pricing intelligence — monitor competitor pricing, discount patterns, and availability signals
- Market research for hotel operators and consultants — benchmark star ratings, pricing tiers, and cancellation policies by location
- Mapping hotel inventories with GPS data — build geo-analytics dashboards, coverage maps, or proximity-based filters using latitude/longitude
- Lead generation for travel agencies and OTAs — extract hotel contact details and inventory at scale
- Tracking promotional discount patterns — capture "Getaway Deal", "Limited-time Deal", and "Early Bird" badges as they appear
- Monitoring availability and sold-out signals — identify high-demand periods by tracking
is_sold_outacross date windows - Building hotel comparison tools and travel apps — structured data with photos, GPS, pricing, and policies ready for direct integration
- Academic research on travel pricing patterns — large-scale structured dataset for econometric or machine-learning studies
- Yield analysis and demand forecasting — correlate occupancy signals with price fluctuations over time
Architecture note
HTTP-only (no browser) — uses Booking.com's internal GraphQL API with TLS fingerprinting. Significantly faster and cheaper than browser-based alternatives, with lower memory requirements and no risk of JavaScript rendering failures.
Output
| Field | Type | Description |
|---|---|---|
id | number | Booking.com hotel ID |
name | string | Hotel name |
url | string | Direct link to hotel on Booking.com |
star_rating | number|null | Star rating (1–5) |
review_score | number|null | Guest review score (0–10, e.g. 8.7) |
review_count | number|null | Total number of guest reviews |
review_score_word | string|null | Score label (Exceptional / Fabulous / Wonderful / Superb / Very Good / Good / Pleasant / Okay) |
secondary_score | number|null | Secondary review sub-score (0–10) |
is_closed | boolean | Whether the hotel is temporarily closed |
photo_url | string|null | Main photo (240px square) |
photo_url_high_res | string|null | Main photo (600px square, high-res) |
photos | string[]|null | All photo URLs (when includeAllPhotos=true) |
location | string|null | District + city from search results |
district | string|null | District or neighborhood |
city | string|null | City from destination resolution |
property_city | string|null | City from hotel's own data |
property_country | string|null | Country from hotel's own data |
country_code | string|null | ISO country code |
address | string|null | Street address (e.g. "Kurfürstendamm 12") |
latitude | number|null | GPS latitude |
longitude | number|null | GPS longitude |
distance_from_center | string|null | Distance from city center |
price | number|null | Total stay price in selected currency |
price_per_night | number|null | Price divided by number of nights |
original_price | number|null | Original price before discount |
original_price_stay | string|null | Pre-discount formatted stay total (e.g. "CHF 259") |
currency | string|null | Price currency code |
is_sold_out | boolean | Whether sold out for selected dates |
discount_badge | string|null | Promotion label ("Getaway Deal", "Limited-time Deal") |
discount_badge_id | string|null | Internal badge identifier from Booking.com |
free_cancellation | boolean | Free cancellation available |
free_cancellation_until | string|null | Cancellation deadline date |
no_prepayment | boolean | No prepayment required |
room_id | string|null | Room type identifier |
meal_plan | string|null | Included meal plan |
scraped_at | string | ISO timestamp of when data was scraped |
Pricing
| Event | Cost |
|---|---|
| Start | $0.050 per run |
| Hotel | $0.005 per result |
100 hotels = $0.55 | 1,000 hotels = $5.05
Input options
| Field | Default | Description |
|---|---|---|
destination | (required) | City, region, or country name |
checkin | Tomorrow | Check-in date (YYYY-MM-DD) |
checkout | Day after checkin | Check-out date (YYYY-MM-DD) |
adults | 2 | Number of adult guests |
children | 0 | Number of child guests |
rooms | 1 | Number of rooms |
currency | EUR | Price currency (ISO 4217) |
sortBy | POPULARITY | Sort order (POPULARITY, PRICE, REVIEW_SCORE, DISTANCE) |
maxResults | 100 | Max hotels to scrape (0 = unlimited) |
includeAllPhotos | false | Include photos[] array with all photo URLs |
Use with AI Agents (MCP)
Connect this actor to any MCP-compatible AI client — Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.
Apify MCP server URL:
https://mcp.apify.com?tools=santamaria-automations/booking-com-scraper
Example prompts once connected:
"Use
booking-com-scraperto find the 20 cheapest hotels in Rome for next weekend. Sort by price and return as a table with name, price per night, GPS coordinates, and cancellation policy."
"Scrape 50 hotels in Amsterdam for July 15–17 and show which ones have a discount badge active."
Clients that support dynamic tool discovery (Claude.ai, VS Code) will receive the full input schema automatically via add-actor.
Examples
Hotels in Berlin
{"destination": "Berlin","checkin": "2026-08-01","checkout": "2026-08-03","adults": 2,"currency": "EUR","maxResults": 50}
Cheapest hotels in Rome
{"destination": "Rome","checkin": "2026-09-01","checkout": "2026-09-03","sortBy": "PRICE","maxResults": 100}
Family trip to Zurich with photos
{"destination": "Zurich","checkin": "2026-10-01","checkout": "2026-10-05","adults": 2,"children": 2,"rooms": 1,"currency": "CHF","maxResults": 50,"includeAllPhotos": true}
Hotels sorted by review score in Tokyo
{"destination": "Tokyo","checkin": "2026-11-01","checkout": "2026-11-04","sortBy": "REVIEW_SCORE","currency": "JPY","maxResults": 200}
Related Actors
E-Commerce & Price Comparison
- AutoScout24 Scraper — European car listings
- AliExpress Scraper — Global marketplace
- Galaxus.ch Scraper — Swiss electronics retailer
- Groupon Scraper — Deals in 12 countries
Classifieds
- Kleinanzeigen.de Scraper — Germany
- Willhaben.at Scraper — Austria
- Marktplaats.nl Scraper — Netherlands
Enrich your data
Issues & Feedback
Missing a field or not working as expected? Open an issue and we'll fix it.