Booking.com Hotel Data Extractor avatar

Booking.com Hotel Data Extractor

Pricing

from $0.50 / 1,000 search results

Go to Apify Store
Booking.com Hotel Data Extractor

Booking.com Hotel Data Extractor

Extract Booking.com hotel search results, property details, live pricing, room availability, guest reviews, ratings, photos, facilities, and policies using destination queries, destination IDs, or property IDs. Ideal for travel data, hotel leads, and market research.

Pricing

from $0.50 / 1,000 search results

Rating

0.0

(0)

Developer

Crawlio

Crawlio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Booking.com Scraper & Hotel Data Extractor

What does Booking.com Scraper do?

Booking.com Scraper lets you collect Booking hotel search results, property details, and guest reviews directly from Booking.com using destination queries, Booking destination IDs, Booking property IDs, or Booking property URLs.

Booking.com Scraper can scrape:

  • Hotel search results for a destination
  • Filtered hotel search results using Booking-style dropdown and toggle filters
  • Property details with live pricing and room availability
  • Paginated property reviews

Why scrape Booking.com?

Booking.com listings contain useful pricing, availability, rating, and review data for travel research, market analysis, lead generation, and competitive monitoring.

Here are some common use cases:

  • Compare hotel pricing and ratings across destinations
  • Monitor filtered hotel inventories for specific market segments
  • Collect property-level room and availability data
  • Analyze guest review volume, scores, and review text

If you would like more inspiration on how scraping travel and local listing platforms could help your business or organization, check out our industry pages.

How to scrape Booking.com

It is straightforward to run Booking.com Scraper.

  1. Click on Try for free.
  2. Select operation:
    • Hotel search -> Search Booking hotels for a destination
    • Property details -> Fetch one Booking property with pricing and rooms
    • Property reviews -> Fetch paginated reviews for one Booking property
  3. Fill in the input fields.
  4. Click on Run.
  5. When the run finishes, open the Dataset tab to preview or download the results.

Supported operations

The Actor supports three operations:

  • search - fetch Booking hotel search results
  • property - fetch one Booking property with pricing and room details
  • reviews - fetch Booking guest reviews for one property

search is the default mode for new runs.


Use hotel search when you want Booking results for a destination. You can pass a destination query and let the Actor resolve the destination automatically, or provide a Booking destinationId directly.

For consistent pagination, hotel search results are returned in a deterministic order before limit and offset are applied. This makes repeated runs more stable, but it can differ from Booking's live on-site ranking order.

You can also apply Booking filters such as:

  • Property type
  • Minimum star rating
  • Minimum review score
  • Distance from city center
  • Free cancellation
  • Breakfast included
  • Swimming pool
  • Internet
  • Parking
  • Airport transfer
  • Gym / fitness

Example input:

{
"mode": "search",
"search": {
"query": "New York",
"checkIn": "2026-05-24",
"checkOut": "2026-05-27",
"adults": 2,
"children": 0,
"childAges": [],
"rooms": 1,
"limit": 3,
"offset": 0,
"propertyType": "hotel"
},
"currency": "USD",
"languageLocale": "en-us"
}

Example output:

{
"resultType": "search",
"property_id": 5579202,
"property_url": "https://www.booking.com/hotel/us/sonder-116-john.html",
"name": "Nester Finn Financial District",
"city": "New York",
"country_code": "us",
"stars": 4,
"review_score": 9,
"review_score_word": "Superb",
"review_count": 6,
"price_total": 738.37,
"currency": "USD",
"check_in": "2026-05-24",
"check_out": "2026-05-27",
"distance_to_city_center_km": null,
"accommodation_type_id": 204,
"accommodation_type": "Hotel",
"free_cancellation": false,
"breakfast_included": false,
"is_preferred": true,
"is_genius_deal": false,
"is_mobile_deal": false,
"thumbnail": "https://cf.bstatic.com/xdata/images/hotel/square60/680668299.jpg?k=6039115fabf68970c9064ca0c82d240a57bf14ed721eba8a9ef45125d04232dc&o=",
"source_query": "New York",
"source_url": "https://www.booking.com/hotel/us/sonder-116-john.html"
}

Property details

Use property details when you already know the Booking property ID or Booking property URL and want one record with hotel information, live pricing, available room offers, policies, nearby places, and other Booking property sections.

You can use either propertyId or propertyUrl. If you set children above 0, provide matching child ages. Turn on enrichPricing when you want richer room pricing details.

Example input:

{
"mode": "property",
"property": {
"adults": 2,
"checkIn": "2026-05-24",
"checkOut": "2026-05-27",
"children": 0,
"childAges": [],
"enrichPricing": true,
"includeQAndA": false,
"propertyUrl": "https://www.booking.com/hotel/us/riu-plaza-manhattan-times-square.html?hotel_id=6966158",
"rooms": 1
},
"currency": "USD",
"languageLocale": "en-us"
}

Example output:

{
"resultType": "property",
"property_id": 6966158,
"property_url": "https://www.booking.com/hotel/us/riu-plaza-manhattan-times-square.html",
"name": "Riu Plaza Manhattan Times Square",
"address": "145 West 47th Street, New York, NY 10036, United States",
"city": "New York",
"country": "United States",
"country_code": "us",
"review_count": 9680,
"wifi_rating": 9.1,
"latitude": 40.758951,
"longitude": -73.983386,
"check_in": "2026-05-24",
"check_out": "2026-05-27",
"currency": "USD",
"price_total_min": 920.32,
"price_nightly_min": 306.77,
"free_cancellation": false,
"non_refundable_available": true,
"breakfast_included": false,
"amenities": [
"Non-smoking rooms",
"Fitness centre",
"Facilities for disabled guests",
"Restaurant",
"Free WiFi"
],
"room_offers": [
{
"name": "Deluxe King - Low rate - no money back",
"total_price": 920.32,
"currency": "USD",
"free_cancellation": false,
"rooms_left": 10
}
],
"total_blocks": 16,
"pricing_enriched": true,
"source_query": "Riu Plaza Manhattan Times Square",
"source_url": "https://www.booking.com/hotel/us/riu-plaza-manhattan-times-square.html"
}

pricing_enriched is true only when Booking returns room offers from the pricing endpoint. If enrichPricing is enabled but the selected dates have no availability, the property details still return but pricing_enriched is false, room_offers is empty, and price fields can be null.

Example unavailable pricing output:

{
"property_id": 6966158,
"name": "Riu Plaza Manhattan Times Square",
"check_in": "2026-05-19",
"check_out": "2026-05-30",
"price_total_min": null,
"price_nightly_min": null,
"room_offers": [],
"total_blocks": 0,
"pricing_enriched": false
}

Property reviews

Use property reviews when you want guest review text, rating summaries, filters, and paginated comments for one Booking property.

Example input:

{
"mode": "reviews",
"reviews": {
"propertyId": 1397916,
"propertyUrl": "",
"limit": 3,
"offset": 0,
"sortBy": "mostRelevant"
},
"currency": "USD",
"languageLocale": "en-us"
}

Example output:

{
"resultType": "review",
"property_id": 1397916,
"property_url": "https://www.booking.com/hotel/us/riu-plaza-new-york-times-square.html",
"review_id": "0d5e474d76b6cae3",
"reviewer_name": "Sonia",
"reviewer_country": "us",
"language_code": "en-us",
"rating": 3.59999990463257,
"review_text": "Cleanliness, great location and free breakfast!",
"negative_text": "Check in - new employee who struggled just adding names to our reservation for several minutes before agreeing to ask a colleague for help.",
"travel_type": "young couple",
"review_date": "2026-05-13 16:53:14",
"source_url": "https://www.booking.com/hotel/us/riu-plaza-new-york-times-square.html"
}

Input notes

  • Use query in search when you want the Actor to resolve the destination for you.
  • Use destinationId in search if you already know the Booking destination ID.
  • Use either propertyId or propertyUrl in property and reviews.
  • limit and offset are used in search and reviews.
  • Use childAges in search and property as an array of integers such as [4, 8].
  • When children is greater than 0, provide exactly one age per child.
  • Use enrichPricing in property when you want richer room-level pricing details.

Output

Each dataset item represents one result for the selected operation:

  • search returns one dataset item per hotel
  • property returns one dataset item for the property
  • reviews returns one dataset item per review comment

The Actor also stores a compact run summary in the default key-value store OUTPUT record.

Personal data may be protected by GDPR in the European Union and by other privacy regulations around the world. You should only scrape and process personal data when you have a legitimate reason to do so. If you are unsure, consult your lawyers.

We also recommend reading our blog post: is web scraping legal?