Booking.com Scraper: Hotel Prices, Ratings, Deals & Alerts avatar

Booking.com Scraper: Hotel Prices, Ratings, Deals & Alerts

Pricing

from $1.40 / 1,000 hotel price delivereds

Go to Apify Store
Booking.com Scraper: Hotel Prices, Ratings, Deals & Alerts

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

EuroScrape

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 hours ago

Last modified

Security

Limited permissions

Share

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.

Hotel prices, ratings and review counts for a city and dates

  • 🏨 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, dealBadge for 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 numbersPer night and for the stay, before and after a shown discount, with the currency and whether taxes are included.
🎯 Filters that match the siteReview 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 cheapestThe summary names the cheapest hotel and the best-value one (score 8 or more, at least 50 reviews, lowest price).
🔁 Monitoring built inA monitor name turns any search into a daily watch: changeType, previous price and change in % on every row.
🏨 Rate shopping, every roomWith 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:

City31 Dec7 JanNew Year's Eve premiumAvailable 31 Dec / 7 Jan
Prague380 €67 €×5.7378 / 1 503
Edinburgh437 €86 €×5.1142 / 538
Vienna431 €91 €×4.7461 / 1 489
Amsterdam286 €85 €×3.4259 / 545
London346 €101 €×3.42 204 / 4 193
Barcelona233 €81 €×2.9418 / 872
Berlin147 €71 €×2.1571 / 895
Paris277 €135 €×2.11 659 / 3 163
Rome277 €137 €×2.03 383 / 6 665
Lisbon144 €77 €×1.91 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. pricePerNight is the stay price divided by the nights.
  • Summary medians use every hotel collected for that location and date (set maxHotelsPerLocation to 100 or more for a market view, and leave sortBy on Booking's default rather than price_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

EventPrice
Hotel price delivered (one hotel, one stay)$2 / 1,000
Run start$0.003
Destination summaries, monitor baselinefree

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-prices to 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