How to scrape Booking.com hotels, prices & reviews

2026 guide · no code, no API key

Booking.com has no public data API, yet its hotels, prices, availability and reviews are some of the most useful travel data on the web. This guide shows how to extract them as structured JSON or CSV with the FactDen Booking.com Scraper - search a city to discover every hotel, pull live prices and per-room rates, watch availability and occupancy, and collect full guest reviews - without writing any code.

See it in action

Watch: a 96-second walkthrough of the Booking.com Scraper on Apify.

Does Booking.com have an API?

Not for the public. Booking.com's Connectivity and Demand APIs require partner accreditation and exist for hotels managing their own inventory - not for rate shopping or research. A scraper is the practical route: it reads the same publicly visible data and hands it back as clean JSON/CSV, giving you API-style access with no endpoint to apply for.

Step by step

  1. Open the actor. Go to the Booking.com Scraper on Apify and click Try for free.
  2. Choose what to scrape. Enter a city, region or country in Discover hotels in a place (e.g. Rome), or name an exact hotel, or paste Booking.com links.
  3. Pick your data. Prices & occupancy are on by default; toggle reviews and the availability calendar on or off. Set dates, guests, currency and Min rating / price filters if you want.
  4. Run & export. Click Save & start, then download the Hotels, Reviews and Calendar datasets as JSON, CSV, Excel or HTML - or pull them from the Apify API on a schedule.

What you get

Four clean datasets, so prices, reviews and calendar never collide:

Every hotel and review also carries a markdownContent block, so the output drops straight into a RAG or LLM pipeline. See the full field dictionary.

Example: discover a whole city

Run searchLocation: ["Lisbon"] with prices on and you get the market - each hotel priced and scored:

{
  "hotelName": "Maxime Boutique Hotel Avenida da Liberdade",
  "city": "Lisboa", "stars": 3, "reviewScore": 8.8, "reviewCount": 3692,
  "currency": "USD", "perNightPrice": 164.52, "availableRooms": 4,
  "scarcityMessage": "We have 4 left",
  "rooms": [ { "roomName": "Deluxe Double Room", "pricePerNight": 164.52, "refundable": false } ]
}

Run it from code

Kick off a run and read the dataset with the Python client:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("factden/booking-com-scraper").call(run_input={
    "searchLocation": ["Rome"], "includePrices": True, "maxResults": 25,
})
for h in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(h["hotelName"], h.get("perNightPrice"), h.get("currency"))

How much does it cost?

Pay only for what you pull - no start fee: Hotel $0.003, Prices $0.005 per priced hotel, Review $0.001, Calendar day $0.0005. Discover & price 50 hotels for about $0.40; pull 500 reviews for $0.50. New Apify accounts get free monthly credit.

Frequently asked questions

Does Booking.com have an API?
Not for the public - its partner APIs need accreditation. This scraper gives anyone structured Booking.com data with no keys.
Do I need a Booking.com login or API key?
No login, no cookies, no API key. Give it a place, a hotel name or links.
Can I discover every hotel in a city?
Yes - put the city, region or country in searchLocation and it returns every hotel there.
Does it get rating-only reviews?
Yes - no 500-review cap, and score-only reviews are included and flagged.
Is it legal?
Scraping public data is generally lawful; follow Booking.com's Terms and data-protection law, especially for personal data in reviews.

Try the Booking.com Scraper free →

Related: Booking.com Scraper overview · Google Hotels guide · Agoda reviews guide · Free Booking.com sample