Booking.com Search Scraper avatar

Booking.com Search Scraper

Pricing

from $2.99 / 1,000 hotel search results

Go to Apify Store
Booking.com Search Scraper

Booking.com Search Scraper

Scrape hotel listings, prices, ratings, and detailed descriptions from Booking.com with support for search by location, specific hotel URLs, and deep details extraction.

Pricing

from $2.99 / 1,000 hotel search results

Rating

0.0

(0)

Developer

w3crawler

w3crawler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

What does Booking.com Search Scraper do?

Booking.com Search Scraper collects public hotel and accommodation results from Booking.com. It supports location searches, custom public search URLs, direct hotel URLs, optional detail-page enrichment, and an HTTP fallback for public HTML or JSON-LD responses. It is a practical Booking.com API alternative for travel research, rate comparison, and public property-data workflows.

The Actor only uses information exposed on public pages. It does not request private account data, bypass CAPTCHAs, or use protected endpoints. When a target cannot produce a source-backed hotel row, the Actor records the reason in the run log and reports counts in the OUTPUT summary.

Why use Booking.com Search Scraper?

  • Search by city or region, submit an existing public search URL, or provide public hotel URLs.
  • Capture public names, prices, review scores, distances, images, cancellation and meal indicators when displayed.
  • Enable deep scraping for descriptions, amenities, room offers, policies, coordinates, nearby landmarks, transportation, sustainability text, and review highlights.
  • Keep source and extraction provenance on every record, including the browser or HTTP fallback path.
  • Run on Apify with scheduling, API access, webhooks, proxy configuration, monitoring, and integrations.

What data can it extract?

FieldTypeDescription
name, url, hotelIdstringPublic property identity and URL-derived identifier.
price, priceAmount, priceCurrency, originalPricestring/numberPublic displayed price, parsed amount, inferred display currency, and optional original price.
reviewScore, reviewCategory, reviewsCountstring/numberPublic guest-review information.
starRatingintegerPublic hotel class in stars.
address, distance, thumbnailstringPublic location and search-card information.
amenities, rooms, imagesarrayOptional detail-page enrichment.
scrapedAtstringUTC timestamp for the emitted row.

The dataset schema also preserves useful legacy aliases such as rating, reviewCount, location, distanceFromCenter, badge, rawText, and priceAvailable.

How to scrape Booking.com

  1. Open the Actor and choose search, hotelUrl, or searchUrl in the input tab.
  2. For search, enter a city or region. Add check-in and check-out dates when you need date-specific public prices.
  3. Set maxItems and choose whether to enable deepScraping and includeReviews.
  4. Direct public requests are used by default. Configure a proxy only when explicitly needed for your lawful public-data use case.
  5. Start the run and inspect source-backed hotel rows in the dataset. Target failures and clean empty results are described in the run log and OUTPUT summary.

How much does it cost?

The Actor uses Apify compute units and any proxy resources selected for the run. Search-only runs are generally lighter than detail-enriched runs because deep scraping visits individual property pages. Keep maxItems low while developing, and disable deepScraping when you only need search-card data. Exact cost depends on browser time, retries, concurrency, page complexity, and proxy usage.

Input

See the input tab for full configuration options. The main inputs are mode, searchQuery, hotelUrls, searchUrl, checkInDate, checkOutDate, adults, children, rooms, currency, language, maxItems, deepScraping, includeReviews, headless, and proxyConfiguration.

hotelUrls should contain public Booking.com hotel URLs. searchUrl should be a complete public search URL with its desired filters. maxItems accepts 1–1000 and counts source-backed hotel rows; unavailable targets do not consume that count.

When dates are omitted, the Actor generates a one-night stay beginning 30 days in the future so search results can expose current public prices.

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. A simplified successful output looks like this:

[
{
"name": "Example Central Hotel",
"price": "US$245",
"priceAmount": 245,
"priceCurrency": "USD",
"reviewScore": "8.4",
"url": "https://www.booking.com/hotel/fr/example-central-hotel.html",
"scrapedAt": "2026-09-08T00:00:00.000Z"
}
]

The OUTPUT key-value-store record includes required status, runStatus, and dataStatus fields plus datasetItems, diagnosticItems, uniqueItems, and failureCount. Failure details remain in the run log. A clean empty result is SUCCEEDED with dataStatus: NO_RESULTS; a failure after saved rows is SUCCEEDED with dataStatus: PARTIAL.

Tips and advanced options

  • Start with deepScraping: false to confirm search-card coverage, then enable detail enrichment.
  • Supply dates and currency for more meaningful public price text.
  • Use includeReviews: true only when review snippets are needed; it increases page work.
  • Treat missing optional fields as normal. Booking.com may not expose address, cancellation, breakfast, or room details on every locale or property page.

FAQ, disclaimers, and support

Does this Actor bypass CAPTCHAs or private access controls?

No. The Actor stops its current path when a public access barrier is detected and reports it in the run log. It does not bypass CAPTCHAs, paywalls, login walls, geofences, rate limits, device checks, or WAF controls.

Is the output personal data?

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.

Use the Issues tab for feedback and the API tab for programmatic access. You are responsible for complying with Booking.com terms, applicable law, robots guidance, and any restrictions that apply to your use case.