Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Booking.com Scraper

Run on Apify License: MIT

Scrape Booking.com hotels at scale — reviews, prices, per-room rates, availability & occupancy, and a forward availability calendar. Search a city or country, name an exact hotel, or paste Booking.com links. Output is clean JSON / CSV / Excel.

Watch the walkthrough:

Booking.com Scraper walkthrough — hotels, prices, reviews and availability

Booking.com Scraper output — hotels with prices, scores and occupancy

Runs on the Apify platform: API, scheduling, proxy rotation, storage, and integrations (Make, Zapier, n8n, Google Sheets). New accounts get free monthly usage credit.

What it extracts

  • Hotels — id, name, stars, guest score, review count, per-night / gross / net price, currency, rooms available, scarcity, per-room rates, geo, address, markdownContent.
  • Reviews — score (0-10), positive/negative text, reviewer country, traveller type, stay date + nights, room type, hotelier reply; rating-only reviews included.
  • Calendar — forward day-by-day availability + min price.
  • Discovery — expand a city / region / country into all of its hotels.

See FIELDS.md for the full field dictionary and examples/ for sample input and output.

Quick start

API (cURL)

curl -X POST "https://api.apify.com/v2/acts/factden~booking-com-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{ "searchLocation": ["Rome"], "includePrices": true, "maxResults": 25 }'

Python (apify-client)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("factden/booking-com-scraper").call(run_input={
    "startUrls": ["https://www.booking.com/hotel/fr/le-meurice.html"],
    "includePrices": True,
    "includeReviews": True,
    "maxReviews": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["hotelName"], item.get("perNightPrice"), item.get("currency"))

More runnable snippets: snippets/.

Output

One flat row per hotel (default dataset), one row per review (reviews), one per calendar day (calendar). Full samples in examples/:

Availability calendar — one row per forward day with date, availability and minimum price

Use cases

  • Rate shopping / comp-set pricing — schedule daily runs on a hotel list or city.
  • Market discovery — build a full hotel catalog for a destination.
  • Guest-sentiment datasets — every review, with text, score and stay context, for NLP / RAG.
  • Availability & occupancy monitoring — track sell-out patterns across dates.

Cost

Pay-per-result, no start fee: Hotel $3 / 1k, Prices $5 / 1k, Review $1 / 1k, Calendar day $0.50 / 1k. A "50 hotels + 20 reviews each" run is well under a dollar. New Apify accounts get free monthly credit.

FAQ

Does Booking.com have a public API? No — its partner APIs need accreditation. This scraper gives anyone structured Booking.com data with no keys.

Can I discover all hotels in a city? Yes — put the place in searchLocation.

Are rating-only reviews included? Yes, flagged isRatingOnly. There is no 500-review cap.

Can AI agents use it? Yes — it's on the Apify MCP server, and every row has a markdownContent block for RAG.

Other FactDen scrapers

License

MIT © 2026 FactDen

About

Scrape Booking.com hotels: reviews, prices, room rates, availability & occupancy, and a forward calendar. Search a city/country or paste links. JSON/CSV, no login.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages