Booking.com Scraper: Hotel Prices, Ratings, Deals & Alerts
Pricing
from $1.40 / 1,000 hotel price delivereds
Booking.com Scraper: Hotel Prices, Ratings, Deals & Alerts
Scrapes Booking.com hotel prices for a city and dates: price per night, review score and count, stars, free cancellation, breakfast and distance to centre. Supports price calendars over many dates, competitor rate tracking and price-drop alerts. Pay per hotel.
Pricing
from $1.40 / 1,000 hotel price delivereds
Rating
0.0
(0)
Developer
EuroScrape
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 hours ago
Last modified
Categories
Security
Limited permissionsShare
For AI agents: use this Actor to get Booking.com hotel prices and review scores for a city. Minimal input:
{"locations": ["Lisbon"], "checkInDate": "2026-12-12", "nights": 2}. Returns one row per hotel: price per night and total, review score, review count, stars, cancellation and breakfast terms.
Every hotel of a city for your dates, as rows: price per night and total, guest score and number of reviews, stars, free cancellation, breakfast, distance to the centre, deals. Give it one or several cities and a check-in date, or thirty check-in dates for a price calendar, and get back what Booking.com shows a traveller, in the currency you choose, with a free summary per destination: median price, cheapest hotel, best value, price drops since yesterday.

- 🏨 Any destination: cities, districts, lakes or landmarks, as typed on Booking.com, in 40+ languages.
- 📅 Price calendars: the same search for 7, 30 or 90 check-in dates in a row, or the same weekday every week.
- 🧾 Rate conditions: free cancellation, breakfast included, rooms left at this price, taxes included or not, the room offered.
- 📊 Free summary per destination and date: median, lowest and highest price per night, median score, share of free cancellation, median price by stars, cheapest and best-value hotel.
- 🏷️ Competitor rate tracking: paste the Booking.com addresses of your hotel and your competitors (
hotelUrls) and get each one's full rate table for every date: room type, beds, size, guests, meal plan, cancellation, prepayment, price, taxes excluded, rooms left, partner offers. A free row per date ranks the hotels by price. - 🔔 Price-drop alerts: name a monitor and schedule the Actor; each run compares with the previous one and sends drops to Telegram, Discord, Slack or a webhook.
🤖 At a glance (for people and AI assistants)
- Use it when you need hotel prices and availability from Booking.com for a destination and dates: price, stars, review score, deals.
- Minimal input:
{ "locations": ["Lisbon"], "nights": 2, "maxHotelsPerLocation": 25 } - Output: one row per hotel:
name,url,stars,reviewScore,reviewCount,distanceFromCentreKm,pricePerNight,priceTotal,dealBadgefor your dates. - Price: $2 per 1,000 hotels, plus $0.003 per run.
- Not for: prices on every booking site at once (use Google Hotels Prices).
✨ Why this Actor
| 💶 Prices as numbers | Per night and for the stay, before and after a shown discount, with the currency and whether taxes are included. |
| 🎯 Filters that match the site | Review score, stars, property type, free cancellation, breakfast, price range: the same filters as Booking.com, applied by the site, so the counts are the site's counts. |
| 🧭 Best value, not just cheapest | The summary names the cheapest hotel and the best-value one (score 8 or more, at least 50 reviews, lowest price). |
| 🔁 Monitoring built in | A monitor name turns any search into a daily watch: changeType, previous price and change in % on every row. |
| 🏨 Rate shopping, every room | With hotelUrls, the hotel page itself is read: not just the cheapest room, all of them, refundable and non-refundable, with or without breakfast. Still one charge per hotel and date. |
| 💸 Pay per hotel | $0.002 per hotel and stay delivered. Summaries and the first baseline of a monitor are free. |
🎯 Use cases
- Travellers and travel agents: the cheapest week to go, the hotels under a budget with free cancellation, an alert when a price drops.
- Hotels and revenue managers: your competitive set for the next 30 days, hotel by hotel and room by room (
hotelUrls), or a whole city with the median price by stars, who discounts and by how much. - Rental investors and analysts: median prices and occupancy signals (rooms left) for a district, dates and seasons.
- Media and research: price levels of European cities for the same dates, in one currency.
🚀 Examples
Lisbon, two nights in two weeks, 50 hotels, prices in euros:
{"locations": ["Lisbon"],"nights": 2,"maxHotelsPerLocation": 50}
Price calendar: Paris, every day of November, 4-star hotels rated 8 or more, free cancellation:
{"locations": ["Paris"],"checkInDate": "2026-11-01","numberOfDates": 30,"nights": 1,"hotelClasses": [4],"minReviewScore": 8,"freeCancellation": true,"sortBy": "price_asc","maxHotelsPerLocation": 25}
Rate shopping: your hotel and two competitors, every room, the next four Tuesdays (leave locations empty):
{"locations": [],"hotelUrls": ["https://www.booking.com/hotel/pt/moxy-lisbon-city.html","https://www.booking.com/hotel/pt/feeling-chiado-xv-lisboa.html","https://www.booking.com/hotel/pt/esqina-apartments.html"],"checkInDate": "2026-11-10","nights": 2,"numberOfDates": 4,"daysBetweenDates": 7,"monitorName": "lisbon-compset"}
Daily watch of three cities with price-drop alerts on Telegram:
{"locations": ["Barcelona", "Porto", "Seville"],"checkInDate": "2026-12-05","nights": 3,"monitorName": "december-weekend","onlyChanges": true,"alertOnPriceDropPct": 15,"telegramBotToken": "123456:ABC…","telegramChatId": "987654321"}
📊 Data Report · 2 Nov 2026: one hotel night on New Year's Eve
One run, 10 cities, Thursday 31 December 2026 against Thursday 7 January 2027 (numberOfDates: 2, daysBetweenDates: 7), 1 night, 2 adults, the first 30 properties Booking.com shows for each city (570 prices, read on 2 November), median price per night and properties still available:
| City | 31 Dec | 7 Jan | New Year's Eve premium | Available 31 Dec / 7 Jan |
|---|---|---|---|---|
| Prague | 380 € | 67 € | ×5.7 | 378 / 1 503 |
| Edinburgh | 437 € | 86 € | ×5.1 | 142 / 538 |
| Vienna | 431 € | 91 € | ×4.7 | 461 / 1 489 |
| Amsterdam | 286 € | 85 € | ×3.4 | 259 / 545 |
| London | 346 € | 101 € | ×3.4 | 2 204 / 4 193 |
| Barcelona | 233 € | 81 € | ×2.9 | 418 / 872 |
| Berlin | 147 € | 71 € | ×2.1 | 571 / 895 |
| Paris | 277 € | 135 € | ×2.1 | 1 659 / 3 163 |
| Rome | 277 € | 137 € | ×2.0 | 3 383 / 6 665 |
| Lisbon | 144 € | 77 € | ×1.9 | 1 037 / 1 657 |
Two months ahead, a New Year's Eve night already costs 1.9 to 5.7 times the same weekday a week later, and 37 % to 75 % fewer properties are still available. Each run also returns the median, cheapest and dearest price per city and date for free (includeSummary). Schedule it with monitorName to follow the rates down to the day.
Reproduce it (then widen the list):
{"locations": ["Prague","Edinburgh","Vienna","Lisbon"],"checkInDate": "2026-12-31","nights": 1,"numberOfDates": 2,"daysBetweenDates": 7,"adults": 2,"currency": "EUR","maxHotelsPerLocation": 30,"includeSummary": true}
More reports like this one, twice a week: EuroScrape on LinkedIn.
📦 Output
One row per hotel and stay (type: "hotel") and one free destinationSummary row per location and date; with hotelUrls, one hotelRates row per tracked hotel and date and one free rateComparison row per date. Ready-made views: Hotels, Destination summary and Tracked hotels (rates); exports to JSON, CSV or Excel.
A hotel (real data, Lisbon, two nights):
{"type": "hotel","location": "Lisbon", "checkIn": "2026-11-10", "checkOut": "2026-11-12", "nights": 2, "adults": 2,"position": 1,"name": "Charming Suites Chiado","url": "https://www.booking.com/hotel/pt/charming-suites-chiado.en-gb.html","countryCode": "PT", "area": "Santa Maria Maior, Lisbon", "distanceFromCentreKm": 0.35,"stars": null, "reviewScore": 7.5, "reviewLabel": "Good", "reviewCount": 137, "guestFavourite": true,"dealBadge": "Limited-time Deal","priceTotal": 156, "pricePerNight": 78, "originalPriceTotal": 216, "discountPct": 28, "currency": "EUR", "taxesIncluded": true,"roomName": "Double Room with Private Bathroom", "freeCancellation": true, "breakfastIncluded": false, "unitsLeftAtThisPrice": 1,"imageUrl": "https://cf.bstatic.com/xdata/images/hotel/max500/…","changeType": null}
A tracked hotel (hotelUrls, real data, 20 Oct 2026, two nights from 10 Nov): one row per hotel and date, with every rate in rates (12 for this hotel, first one shown):
{"type": "hotelRates","location": "Moxy Lisbon City", "checkIn": "2026-11-10", "checkOut": "2026-11-12", "nights": 2,"name": "Moxy Lisbon City", "hotelId": "6522788", "stars": 3, "reviewScore": 8.7, "reviewCount": 1077,"address": "Av Duque De Loule No 2, Arroios, 1050-090 Lisbon, Portugal","pricePerNight": 288.5, "priceTotal": 577, "currency": "EUR", "roomTypes": 2, "soldOut": false,"cheapestRate": { "roomName": "Moxy Sleeper Twin Room", "pricePerNight": 288.5, "priceTotal": 577, "mealPlan": "Fabulous breakfast € 16", "breakfastIncluded": false, "freeCancellation": false },"cheapestFlexibleRate": { "roomName": "Moxy Sleeper Twin Room", "pricePerNight": 321, "priceTotal": 642, "mealPlan": "Fabulous breakfast € 16" },"rates": [{ "roomName": "Moxy Sleeper Twin Room", "beds": "2 single beds", "roomSizeM2": 18, "maxGuests": 2,"priceTotal": 577, "pricePerNight": 288.5, "currency": "EUR","taxesIncluded": false, "taxesExcluded": "6 % VAT, € 4 City tax per person per night","mealPlan": "Fabulous breakfast € 16", "breakfastIncluded": false,"cancellation": "Non-refundable", "freeCancellation": false, "nonRefundable": true,"prepayment": "Pay the property before arrival", "noPrepayment": false, "unitsLeft": 5, "partnerOffer": false }]}
And the free ranking of the tracked hotels for that date (Feeling Chiado 15 had no room left):
{"type": "rateComparison", "checkIn": "2026-11-10", "checkOut": "2026-11-12", "nights": 2, "currency": "EUR","hotelsTracked": 3, "hotelsWithAvailability": 2, "soldOutHotels": ["Feeling Chiado 15"], "medianPricePerNight": 229.5,"ranking": [{ "rank": 1, "name": "Esqina Chiado Apartments", "pricePerNight": 170.5, "vsMedianPct": -25.7, "cheapestFlexiblePerNight": 189 },{ "rank": 2, "name": "Moxy Lisbon City", "pricePerNight": 288.5, "vsMedianPct": 25.7, "cheapestFlexiblePerNight": 321 }]}
The destination summary:
{"type": "destinationSummary","location": "Lisbon", "checkIn": "2026-11-10", "checkOut": "2026-11-12", "nights": 2, "currency": "EUR","status": "ok", "propertiesOnSite": 2632, "hotelsCollected": 50, "hotelsDelivered": 50,"medianPricePerNight": 121.5, "minPricePerNight": 39, "maxPricePerNight": 412,"medianReviewScore": 8.6, "shareFreeCancellationPct": 64, "shareBreakfastIncludedPct": 18,"byStars": [ { "stars": 3, "hotels": 9, "medianPricePerNight": 92 }, { "stars": 4, "hotels": 21, "medianPricePerNight": 138 }, { "stars": 5, "hotels": 4, "medianPricePerNight": 290 } ],"cheapest": { "name": "…", "pricePerNight": 39, "reviewScore": 7.9, "url": "…" },"bestValue": { "name": "…", "pricePerNight": 84, "reviewScore": 8.8, "reviewCount": 2271, "url": "…" },"priceDrops": 0}
🧮 How the numbers are computed
- Prices are read as Booking.com shows them to a visitor for your dates, guests and rooms, in the currency you choose (
selected_currency), with Booking's own discount when there is one.pricePerNightis the stay price divided by the nights. - Summary medians use every hotel collected for that location and date (set
maxHotelsPerLocationto 100 or more for a market view, and leavesortByon Booking's default rather thanprice_asc, which would bias the medians). - Best value: among hotels with a score of 8 or more and at least 50 reviews, the lowest price per night.
- Monitoring compares the price per night of each hotel with the previous run of the same monitor name, location, check-in date and stay length.
💰 Pricing
| Event | Price |
|---|---|
| Hotel price delivered (one hotel, one stay) | $2 / 1,000 |
| Run start | $0.003 |
| Destination summaries, monitor baseline | free |
A city for 30 check-in dates with 25 hotels each costs about $1.50. Apify subscribers pay less: −10% (Starter), −20% (Scale), −30% (Business). Set a maximum cost per run in the run options and the Actor stops cleanly when it is reached.
❓ FAQ
Is the price the final price? It is the price Booking.com shows in the results for your search, taxes included when Booking says so (taxesIncluded). Some destinations add city taxes at the property; Booking shows that on the hotel page, and tracked hotels (hotelUrls) report it in taxesExcluded.
Why fewer hotels than propertiesOnSite? maxHotelsPerLocation caps what is collected (25 per page, up to 1,000); the site's total is kept in the summary.
What does status: "blocked" mean? Booking.com sometimes answers a bot challenge instead of results. The Actor retries through other IPs, then residential ones; if every attempt is challenged, the search is reported as blocked and nothing is charged for it. Run again later or with a residential proxy group.
Can I watch one hotel rather than a city? Yes: put its Booking.com address in hotelUrls (any language version of the page works, query parameters are ignored). Each hotel and date is one row with all its rates, charged like one hotel ($0.002). A hotel page takes about 20 to 30 seconds to read, so 5 hotels × 30 dates is roughly an hour: raise the run timeout accordingly.
Are city taxes included? On a tracked hotel, each rate says so: taxesIncluded and, when Booking lists them, taxesExcluded (for example "6 % VAT, € 4 City tax per person per night").
Is this personal data? No: hotels are businesses, and nothing about guests or reviewers is collected.
🔌 API, AI agents and integrations
- API: one call runs the Actor and returns the results,
POST https://api.apify.com/v2/acts/euroscrape~booking-prices/run-sync-get-dataset-items(see the API tab for Python, JavaScript and cURL). - AI agents (MCP): add
https://mcp.apify.com?tools=euroscrape/booking-pricesto Claude, Cursor, VS Code or any MCP client, and the Actor becomes a tool your agent can call. - No-code automation: start runs and pass the results on with Apify's integrations for n8n, Make and Zapier, or with a webhook when a run ends.
- Exports: every result set downloads as JSON, CSV, Excel or XML, and can be sent to Google Sheets.
- Data Reports: twice a week, EuroScrape turns a run of one of its Actors into a 30-second data report (used-iPhone prices in 18 countries, electricity prices, Ryanair fares…) on LinkedIn. Follow the page to see what the data looks like.
⭐ Your feedback
Found a bug or missing a field? Open an issue on the Actor's Issues tab. A short review on the Apify Store helps other users find this Actor.
🔗 More from EuroScrape
- Google Hotels Scraper (Google Travel): Prices on Booking Sites: hotel prices for any destination and dates with the price on every booking site, rate parity and price calendars.
- Google Flights Scraper: Cheapest Dates, Prices & Price History: flight prices for any route and dates, cheapest day to fly and price-drop alerts.
- Ryanair Low Fare Finder: Cheapest Days, Anywhere & Alerts: the cheapest day of the month on a route, every destination under a price cap.
- AutoScout24 Scraper: Used Cars in 8 Countries, Deals & Alerts: used cars across eight countries with the market price of similar cars.
- App Store Reviews Scraper + Google Play Reviews (All Countries): newest reviews of any app in 58 countries, with a summary per country and version.