Booking.com Hotel Scraper - Ratings, Review Counts & Prices
Pricing
from $2.00 / 1,000 hotel scrapeds
Booking.com Hotel Scraper - Ratings, Review Counts & Prices
Scrape Booking.com hotels by destination, or paste hotel URLs directly. Get the overall guest rating, total review count, star rating, full address, GPS coordinates, price per night and room type. One clean row per hotel. Fast, HTTP-only, no browser. JSON, CSV or Excel.
Pricing
from $2.00 / 1,000 hotel scrapeds
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
15
Monthly active users
12 hours ago
Last modified
Share
Booking.com Scraper ๐จ
Scrape Booking.com hotels and accommodations by destination โ prices, ratings, guest review scores, coordinates, room types, photos, cancellation policies, and direct booking URLs. Fast, HTTP-only, and structured JSON/CSV/Excel out.

Why use Booking.com Scraper?
- Search any destination, or paste hotel URLs โ city, region, country, a hotel name, or a list of direct Booking.com hotel page URLs.
- URLs resolve exactly, even after a rename โ a hotel's URL slug and its listed name are independent (
/hotel/tc/the-alexandrais listed as "Alexandra Resort - All-Inclusive"). Each URL is read from the property's own page, so renamed hotels come back rather than going missing. - Rich per-hotel data โ name, star rating, guest review score & count, total & per-night price, room type, bed/bathroom counts, GPS coordinates, full address, photo, and the direct Booking.com URL.
- Full control โ set check-in/check-out dates, guests, rooms, currency, language, sort order, price range, star filters, and property type.
- Unlimited results โ paginate through every matching property, not just the first page.
- No login, no browser โ talks directly to Booking's data API, so runs are fast and cheap.
- Runs on any plan โ the standard Apify proxy is enough, no residential subscription required.
- Pay only for what you scrape โ pay-per-result pricing with volume discounts, no monthly rental.
What data can you extract from Booking.com?
| Field | Type | Description |
|---|---|---|
| name | string | Hotel or property name |
| hotelId | number | Booking.com internal hotel ID |
| ufi | number | Booking.com destination (city) ID |
| url | string | Direct Booking.com hotel page URL |
| propertyType | number | Accommodation type ID (204 = Hotel, 201 = Apartment, โฆ) |
| address | string | Street address |
| city | string | City |
| countryCode | string | ISO country code |
| latitude | number | GPS latitude |
| longitude | number | GPS longitude |
| starRating | number | Star rating (1โ5) |
| reviewScore | number | Guest review score (0โ10) |
| reviewScoreWord | string | Rating label (e.g. "Exceptional", "Very Good") |
| reviewCount | number | Total number of guest reviews |
| price | number | Total price for the stay (numeric) |
| priceFormatted | string | Total price, formatted with currency symbol |
| priceBeforeDiscount | number | Original price before discount, if any |
| currency | string | Currency code (USD, EUR, GBP, โฆ) |
| roomType | string | Recommended room/unit type |
| bedrooms | number | Number of bedrooms |
| bathrooms | number | Number of bathrooms |
| beds | number | Total number of beds |
| freeCancellation | boolean | Whether free cancellation is available |
| noPrepayment | boolean | Whether no-prepayment is available |
| petsAllowed | boolean | Whether pets are allowed for free |
| mealPlan | string | Included meal plan text, if any |
| isSustainable | boolean | Whether the property has a sustainability certification |
| distanceFromCenter | string | Distance from city centre |
| photoUrl | string | Main hotel photo URL |
| description | string | Short property description, if available |
| checkin / checkout | string | The searched stay dates |
| scrapedAt | string | ISO 8601 timestamp of collection |
Use cases
- Rate & availability monitoring โ track competitor hotel prices across dates and markets.
- Travel content & metasearch โ power a hotel directory, deals site, or comparison tool.
- Market research โ analyse pricing, star ratings, and review scores across a destination.
- Lead lists โ build accommodation-partner prospect lists with locations and contact-ready URLs.
- Data science โ feed structured hotel data into pricing models and dashboards.
How to scrape Booking.com hotels
You can work two ways, and they can be mixed in one run.
By destination โ set Destination to a city, region, country, or hotel name (London, Paris, France, The Savoy), pick your check-in and check-out dates, set guests, rooms and any filters, then set Max results (0 = unlimited) and run.
By hotel URL โ paste Booking.com hotel page URLs into Start URLs and run. You get one row per URL, each read from that property's own page, so the name, rating and review count are exact.
Download the results as JSON, CSV, Excel, HTML, or XML โ one row per property.
Input configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
| startUrls | array | โ | Direct Booking.com hotel page URLs, e.g. https://www.booking.com/hotel/gb/the-savoy.html. One row per URL. Use this, locationQuery, or both. |
| resolveUrlsViaPage | boolean | true | Read each start URL's own page for its exact name, rating and review count. Leave this on โ it is what makes renamed properties resolve. |
| locationQuery | string | โ | City, region, country, or hotel name to search. Optional when you supply startUrls. |
| checkin | string | tomorrow | Check-in date, YYYY-MM-DD. |
| checkout | string | check-in + 2 days | Check-out date, YYYY-MM-DD. |
| adults | integer | 2 | Number of adult guests. |
| rooms | integer | 1 | Number of rooms. |
| children | integer | 0 | Number of children. |
| maxResults | integer | 100 | Max hotels to return. 0 = unlimited. |
| sortBy | enum | popularity | popularity, price, review_score, class, distance. |
| propertyType | enum | any | hotels, apartments, hostels, guesthouses, villas, resorts, bnb. |
| currency | string | USD | Currency code for prices (USD, EUR, GBP, โฆ). |
| language | string | en-us | Language code (en-us, de, fr, es, it, โฆ). |
| minPrice | integer | โ | Minimum price-per-night filter. |
| maxPrice | integer | โ | Maximum price-per-night filter. |
| starsFilter | string[] | โ | Star ratings to include, e.g. ["4","5"]. |
| proxyConfiguration | object | Apify proxy | Proxy settings. The standard Apify proxy is the default and is enough; residential is supported but costs more and is not required. |
Output sample
{"name": "Sansi Pedralbes","hotelId": 91017,"ufi": -372490,"url": "https://www.booking.com/hotel/es/sansipedralbes.html","propertyType": 204,"address": "Avenida Pearson, 1-3","city": "Barcelona","countryCode": "es","latitude": 41.3937882727419,"longitude": 2.1118788421154,"starRating": 4,"reviewScore": 9.7,"reviewScoreWord": "Exceptional","reviewCount": 567,"price": 790.42,"priceFormatted": "โฌ 790","currency": "EUR","roomType": "Double Room","bedrooms": 0,"bathrooms": 0,"beds": 2,"freeCancellation": true,"noPrepayment": true,"petsAllowed": false,"isSustainable": false,"distanceFromCenter": "4.9 km from downtown","photoUrl": "https://cf.bstatic.com/xdata/images/hotel/square600/36537530.jpg","checkin": "2026-09-10","checkout": "2026-09-12","scrapedAt": "2026-07-12T04:05:09.746Z"}
FAQ
Do I need a Booking.com account or API key? No. The scraper pulls public search-results data directly โ no login, cookies, or key required.
Do I need residential proxies? No. The default Apify proxy is enough for both destination search and hotel pages, and it is what the Actor uses out of the box. Residential is supported if you prefer it, but it costs considerably more per run and buys you nothing here.
A hotel URL returned nothing. Why? Almost always because the property has been delisted. A removed hotel redirects to a generic destination page with no property record left to read, so no scraper can recover it. If the hotel is still live on Booking and you get an empty result, send the URL via the Issues tab.
The name in my output doesn't match the URL. Is that wrong?
No, that is correct behaviour. A slug and a listed name are independent, and properties get renamed. /hotel/tc/leeward-resort is listed as "Blue Haven Resort", /hotel/tc/bianca-sands-on-grace-bay as "The Regent Grand". The Actor returns the name Booking currently shows.
Why is roomType / mealPlan sometimes empty?
Search-results pages expose a recommended room and a summary. Fields like full room lists, amenities, and reviews live on the individual hotel page โ see Additional services below for a detail/reviews-focused run. Rows resolved from a start URL also have no price fields, because rates are per-stay and only exist in a dated search.
Can I control the currency and language?
Yes โ set the currency (e.g. EUR, GBP) and language (e.g. fr, de) inputs.
How many results can I get?
Set maxResults to 0 for unlimited โ the scraper paginates through every matching property for your search.
Support
Found a bug or need a field added? Open an issue on the Actor's Issues tab and we'll take a look.
Additional services
Need individual hotel details (full room matrix, amenities, all photos) or guest reviews at scale? Those are available as companion runs on the same fast, HTTP-only pipeline โ get in touch via the Issues tab.
Explore more scrapers
Check the Apify Store for more travel and accommodation data tools.
๐ค For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/booking-scraper).
Purpose: Scrape Booking.com hotels by destination or by direct hotel URL โ prices, review scores, coordinates, room types, cancellation policies, and booking URLs, one row per property.
Minimal input (destination search):
{"locationQuery": "London","adults": 2,"rooms": 1,"children": 0,"maxResults": 25,"sortBy": "popularity","currency": "USD","language": "en-us","proxyConfiguration": { "useApifyProxy": true }}
Minimal input (specific hotels):
{"startUrls": [{ "url": "https://www.booking.com/hotel/gb/the-savoy.html" },{ "url": "https://www.booking.com/hotel/tc/the-alexandra.html" }],"proxyConfiguration": { "useApifyProxy": true }}
checkin/checkout default to tomorrow and +2 nights (set YYYY-MM-DD to override). Optional filters: propertyType, minPrice, maxPrice, starsFilter.
Output: one row per hotel โ name, hotelId, ufi, url, propertyType, address, city, countryCode, latitude, longitude, starRating, reviewScore, reviewScoreWord, reviewCount, price, priceFormatted, priceBeforeDiscount, currency, roomType, bedrooms, bathrooms, beds, freeCancellation, noPrepayment, petsAllowed, mealPlan, isSustainable, distanceFromCenter, photoUrl, description, checkin, checkout, scrapedAt.
Behaviors an agent should know:
- Supply
locationQuery,startUrls, or both. At least one is required. startUrlsresolves each URL from the property's own page, so the returnednameis the hotel's current listed name and may differ from the URL slug. That is correct: slugs and names are independent, and properties get renamed.- A start URL that yields no row means the property is delisted, not that the run failed. Live hotels always resolve.
- Rows from
startUrlscarry no price fields โ rates are per-stay and exist only in a dated search. UselocationQueryif you need pricing. maxResultscaps hotels returned and billed from the search path; set 0 for unlimited.currencyandlanguagecontrol regional pricing and result locale.- Filter with
sortBy,propertyType,minPrice,maxPrice,starsFilter. - The default Apify proxy is sufficient. Residential is supported but unnecessary and more expensive.
- Search-results data only โ full room matrix, amenities, and guest reviews live on hotel-detail pages (a separate run).
- Billing: pay per result โ one charge per hotel row.
โ ๏ธ Disclaimer
This Actor scrapes only publicly available information from Booking.com. It does not log in, bypass access controls, or collect personal data. You are responsible for how you use the extracted data, including compliance with Booking.com's Terms of Service, applicable laws (such as GDPR), and any copyright or database rights. Use the data lawfully and ethically.
SEO Keywords
booking.com scraper, booking scraper, hotel scraper, booking.com api, scrape booking.com, hotel price scraper, accommodation data, hotel data extraction, booking.com data, travel data scraper, hotel rates api, hotel availability scraper, booking hotels export, hotel review scraper, accommodation prices, hotel listings scraper