ParseForge Scrapers

Booking.com Hotels Scraper

parseforge/booking-com-hotels-scraper

TravelDeveloper toolsAutomation

Scrapes Booking.com hotel listings by destination search or direct URL. Returns each hotel as a flat row with price, rating, review count, address, star count, and property type.

Run this scraper See the API call
Total users
112
Monthly active
16
Total runs
897
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the Booking.com Hotels Scraper return?

ParseForge

Booking.com Hotels Scraper

Scrape hotel listings from Booking.com by destination and stay dates, up to a million per run. Every listing returns its name, price, review score, review count, stars, address, city, country, image and URL. Export to CSV, JSON, Excel, or XML.

Low minimum charge: $0.01 to start a run, then you only pay for the results you get.

Booking.com's hotel data is spread across thousands of search pages, and manually copying prices or ratings for a market analysis is slow and error-prone. This Actor opens the public search results for any destination and stay dates and returns one structured row per hotel.

Who uses it What they scrape Booking.com for
Revenue managers Monitor competitor pricing and rating trends for a destination over a specific date range.
Market researchers Build a dataset of hotel supply, price distribution, and locations in a city.
Travel app builders Feed a hotel search backend with fresh listing data for a set of destinations.
Lead generation teams Collect the business contact Booking.com publishes for each property.

What it does

  • ๐Ÿจ Destination search: type a city, region or landmark and the Actor builds the Booking.com search for you.
  • ๐Ÿ“… Date control: set check-in and check-out to capture real prices and availability for those nights.
  • ๐Ÿ“„ Flat rows: every hotel has the same fields, ready for CSV, JSON, Excel, or XML export.
  • ๐ŸŒ Residential proxies built in: no proxy setup needed.
  • โž• Optional extras: price breakdown, coordinates, full hotel details and host contact, each behind its own switch.

Input

Field What it does
destination City, region, or landmark to search (for example Paris). Required.
checkIn Check-in date, YYYY-MM-DD.
checkOut Check-out date, YYYY-MM-DD.
maxItems Maximum number of hotels to collect.
includePriceBreakdown Optional extra, off by default. Adds priceBreakdown.
includeGeoLocation Optional extra, off by default. Adds geoLocation.
includeHotelDetails Optional extra, off by default. Adds hotelDetails.
includeHostContact Optional extra, off by default. Adds hostContact.

A first run with the defaults:

{
  "destination": "Paris",
  "checkIn": "2026-11-10",
  "checkOut": "2026-11-12",
  "maxItems": 10
}

With every extra turned on:

{
  "destination": "Barcelona",
  "checkIn": "2026-11-10",
  "checkOut": "2026-11-12",
  "maxItems": 50,
  "includePriceBreakdown": true,
  "includeGeoLocation": true,
  "includeHotelDetails": true,
  "includeHostContact": true
}

Output

Every row carries imageUrl, name, stars, rating, reviewCount, reviewScore, pricePerNight, currency, city, country, address, hotelUrl and scrapedAt.

The optional extras add one block each, only when it comes back:

Block What is inside
priceBreakdown Exact total for the stay, nights, average per night, total in the hotel currency, price before discount, each discount with its amount, taxes and fees not included, deal badges, free cancellation and its deadline, prepayment terms, meal plan, and the room the price is for (name, bedrooms, bathrooms, beds, area, occupancy).
geoLocation Latitude, longitude, Booking.com property ID, street address, district, distance from the center, nearest public transport, country code.
hotelDetails Full description, full address with postal code and region, property type, check-in and check-out times, popular facilities, amenities, languages spoken, review subscores (staff, facilities, cleanliness, comfort, value, location, wifi), featured guest reviews, room types with size and beds, breakfast, questions and answers, fine print, and photo URLs.
hostContact The trader information Booking.com publishes for the property: email, phone, company legal name, trade register name, registration number, business address and license numbers. When the trader is a private individual, the person's name and street address are left out.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Booking.com Hotels Scraper.
  3. Set your destination and dates, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Booking.com through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/booking-com-hotels-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your destination name is spelled correctly and that Booking.com returns results for it in a browser. Also check that the dates are in the future and in YYYY-MM-DD format.

Why are prices missing or different from what I see on the site?

Prices depend on the exact check-in and check-out dates. Booking.com also personalizes prices by visitor location; this Actor searches from the United States in USD.

Why does a hotel have no hostContact?

Booking.com publishes trader information mainly for properties that sell to customers in the European Union. When a property has none, the block is left out and nothing is charged for it.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Booking.com B.V. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

What input does the Booking.com Hotels Scraper accept?

FieldTypeWhat it doesDefault
destination required string City, region, or landmark to search for hotels (e.g. 'Paris', 'New York', 'Tokyo'). Paris
checkIn string Check-in date in YYYY-MM-DD format. 2026-08-01
checkOut string Check-out date in YYYY-MM-DD format. 2026-08-03
maxItems integer Maximum number of hotels to collect per run. 10
includePriceBreakdown boolean Adds priceBreakdown to each hotel: exact total for the stay, average per night, price in the hotel currency, price before discount, each discount, taxes and fees not included, free cancellation and prepayment terms, and the room the price is for. No extra request. Charged only for a row that receives it. false
includeGeoLocation boolean Adds geoLocation to each hotel: latitude, longitude, Booking.com property ID, street address, district, distance from the center and nearest public transport. No extra request. Charged only for a row that receives it. false
includeHotelDetails boolean Adds hotelDetails to each hotel from its property page: full description, full address with postal code, check-in and check-out times, amenities, review subscores (staff, cleanliness, location and more), featured guest reviews, room types, breakfast, questions and answers, fine print and photos. One extra request per hotel. Charged only for a row that receives it. false
includeHostContact boolean Adds hostContact to each hotel when Booking.com publishes the trader information for it: email, phone, company legal name, registration number, business address and license numbers. One extra request per hotel (shared with hotel details). Charged only for a row that receives it. false

How much does the Booking.com Hotels Scraper cost?

from $11.99 per 1,000 results

Charged forWhat it isPrice each
Result Item Charged once per result collected. $0.01199 to $0.01599
Price breakdown Exact total for the stay, price before discount, each discount, taxes and fees not included, cancellation and prepayment terms, and the room the price is for. Charged once per hotel, only when a price came back for the dates. $0.003 to $0.004
Coordinates and location details Latitude, longitude, Booking.com property ID, street address, district, distance from the center and nearest public transport. Charged once per hotel, only when the coordinates came back. $0.00225 to $0.003
Hotel details Full description, address with postal code, check-in and check-out times, amenities, review subscores, featured guest reviews, room types, breakfast, questions and answers, fine print and photos. Charged once per hotel, only when the property page came back. $0.009 to $0.012
Host contact The trader information Booking.com publishes for the property: email, phone, company legal name, registration number, business address and license numbers. Charged once per hotel, only when an email or phone came back. $0.0075 to $0.01
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.0075 to $0.01

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Booking.com Hotels Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~booking-com-hotels-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "destination": "Paris",
    "checkIn": "2026-08-01",
    "checkOut": "2026-08-03",
    "maxItems": 10,
    "includePriceBreakdown": false
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "destination": "Paris",
  "checkIn": "2026-08-01",
  "checkOut": "2026-08-03",
  "maxItems": 10,
  "includePriceBreakdown": false
}

What do users say about the Booking.com Hotels Scraper?

No reviews yet. Be the first.

How do I report an issue with the Booking.com Hotels Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Booking.com Hotels Scraper on Apify All scrapers