Google Hotels Scraper: Prices from Every Booking Site avatar

Google Hotels Scraper: Prices from Every Booking Site

Pricing

from $1.40 / 1,000 hotel prices

Go to Apify Store
Google Hotels Scraper: Prices from Every Booking Site

Google Hotels Scraper: Prices from Every Booking Site

Hotel prices from Google Hotels for any destination and dates: price per night and total, rating, stars, amenities, location, plus the price on every booking site (official site, Booking.com, Expedia, Agoda…). Price calendars, rate parity and price-drop alerts.

Pricing

from $1.40 / 1,000 hotel prices

Rating

0.0

(0)

Developer

EuroScrape

EuroScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Get hotel prices from Google Hotels for any destination and any dates, and see the price of each hotel on every booking site (official website, Booking.com, Expedia, Agoda, Hotels.com, Trip.com and 20+ more), in one clean dataset.

The price of a hotel on every booking site, night by night

  • 🏨 Search a destination: hotels with price per night and total for your dates, taxes, deal badge, rating, stars, amenities, GPS position, nearby stations and airports.
  • 💶 Compare booking sites: for each hotel and date, every site's price, the cheapest site, the official website price and the gap between them (rate parity).
  • 📅 Price calendars: check up to 90 check-in dates in one run, e.g. every day of next month, and get the cheapest date for each hotel.
  • 🔔 Price-drop alerts: schedule it with a monitor name and get alerts on Telegram, Discord, Slack or a webhook when a price falls.

✨ Why this Actor

🧾 All booking sites in one rowOne item per hotel and date with an array of all booking sites (often 20–30), instead of one billed row per site. Tracking 5 hotels over 30 dates costs about $0.75 (150 × $0.005), where per-site billing at $0.001 a row would cost about $4 for 25 sites.
🏷️ Rate parity built inofficialSitePricePerNight, cheapestSite and officialVsCheapestPct on every item, and a calendar summary with the share of dates where the official website is the cheapest.
📅 Price calendarnumberOfDates × daysBetweenDates: every day, every weekend or the same weekday each week, for destinations and tracked hotels.
🔎 Rich hotel dataRating, number of reviews, star distribution, what guests talk about, 25+ amenities, description, photos, address, phone, website, check-in and check-out times, Google Maps link.
💱 Any currency, any market20 currencies. Choose the traveller's country to see the booking sites and prices of that market. Families: set children's ages.
🧹 Clean resultsHotels only by default (vacation rentals optional), duplicates removed, sold-out dates flagged with available: false.
💸 Fair priceYou pay per hotel price delivered, and booking-site prices only when you ask for them. Summaries are free.

🎯 Use cases

  • Hotels and revenue managers: follow your own rates and your competitors' rates on every booking site, every day, and check that your official website is the cheapest.
  • Travel agencies, tour operators and deal sites: the cheapest hotels and dates for a destination, with a deal badge and a best-value list.
  • Travellers and price trackers: the cheapest night in the next 30 days, with an alert when the price drops.
  • Market research and analysts: median price per night per star class, occupancy pressure on event dates, booking-site coverage.

🚀 Examples

Hotels in Lisbon for 2 nights, 4-star and up, rated 4.2+, with a pool:

{
"locations": ["Lisbon"],
"checkInDate": "2026-11-06",
"nights": 2,
"hotelClasses": ["4", "5"],
"minRating": 4.2,
"amenities": ["pool"],
"sortBy": "lowest_price"
}

Rate shopping: 3 hotels, every night of November, price on every booking site:

{
"hotels": ["Hotel Adlon Kempinski Berlin", "Regent Berlin", "Hotel de Rome Berlin"],
"checkInDate": "2026-11-01",
"numberOfDates": 30,
"currency": "EUR",
"countryCode": "de"
}

Daily price-drop alert for a family trip:

{
"hotels": ["https://www.google.com/travel/hotels/entity/…"],
"checkInDate": "2027-07-10",
"nights": 7,
"adults": 2,
"childrenAges": [6, 9],
"monitorName": "summer-trip",
"alertOnPriceDropPct": 5,
"telegramBotToken": "123456:ABC…",
"telegramChatId": "123456789"
}

📦 Output

A hotel with booking-site prices (real data, shortened: 16 booking sites):

{
"type": "hotel",
"searchType": "location",
"query": "Amsterdam",
"name": "DoubleTree by Hilton Amsterdam - NDSM Wharf",
"hotelId": "ChgIoo6wxpGl69AuGgwvZy8xcHYybDJ6ZHMQAQ",
"checkIn": "2026-10-14",
"checkOut": "2026-10-15",
"nights": 1,
"adults": 2,
"currency": "EUR",
"pricePerNight": 130.93,
"priceTotal": 130.93,
"dealLabel": "23% less than usual",
"bookingSitesCount": 16,
"cheapestSite": "DoubleTree by Hilton Amsterdam - NDSM Wharf",
"officialSitePricePerNight": 130.93,
"officialVsCheapestPct": 0,
"bookingSites": [
{ "site": "DoubleTree by Hilton Amsterdam - NDSM Wharf", "isOfficialSite": true, "pricePerNight": 130.93, "priceTotal": 130.93, "url": "https://www.hilton.com/…" },
{ "site": "Qantas Hotels", "isOfficialSite": false, "pricePerNight": 134.45, "priceTotal": 134.45, "url": "…" },
{ "site": "KAYAK.fr", "isOfficialSite": false, "pricePerNight": 135.11, "priceTotal": 135.11, "url": "…" },
"…"
],
"rating": 4.4,
"reviewsCount": 1702,
"hotelClass": 3,
"amenities": ["Free Wi-Fi", "Air conditioning", "Fitness center", "Bar", "Restaurant", "Room service", "Accessible", "Kid-friendly", "…"],
"address": "NDSM-Plein 28, 1033 WB Amsterdam, Netherlands",
"latitude": 52.4006129,
"longitude": 4.8940182,
"phone": "+31 20 722 0666",
"checkInTime": "3:00 PM",
"checkOutTime": "12:00 PM",
"googleHotelsUrl": "https://www.google.com/travel/hotels/entity/…"
}

A price calendar (free, one per tracked hotel; real data, 7 dates):

{
"type": "hotelPriceCalendar",
"name": "Hotel Adlon Kempinski Berlin",
"currency": "EUR",
"datesChecked": 7,
"cheapestCheckIn": "2026-11-08",
"cheapestPricePerNight": 275.64,
"mostExpensiveCheckIn": "2026-11-05",
"highestPricePerNight": 2376.13,
"averagePricePerNight": 882.74,
"cheapestSiteByDates": [{ "site": "Super.com", "dates": 7 }],
"officialSiteCheapestPct": 0,
"calendar": ["…"]
}

A destination summary (free, one per destination and date):

{
"type": "destinationSummary",
"query": "Lisbon",
"checkIn": "2026-10-20",
"checkOut": "2026-10-22",
"hotels": 25,
"minPricePerNight": 29,
"medianPricePerNight": 65.67,
"p75PricePerNight": 77.7,
"byHotelClass": { "3-star": { "hotels": 9, "medianPricePerNight": 71 }, "4-star": { "hotels": 3, "medianPricePerNight": 107 } },
"dealsCount": 3,
"bestValue": ["…"]
}

The dataset has three views: Hotels & prices, Prices per booking site (one row per site) and Rate parity.

💰 Pricing

Pay per event:

EventPrice
Run start$0.003
Hotel price (one hotel, one stay date)$0.002
Booking-site prices for that hotel and date (all sites)$0.003
Summariesfree

Destination search: $0.002 per hotel and date, or $0.005 with every booking site's price. Tracked hotels always include booking-site prices: $0.005 per hotel and date.

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's reached.

❓ FAQ

How do I track a specific hotel? Put its name in hotels (add the city if the name is common) or paste its Google Hotels URL. The item shows matchConfidence when a name was used.

Why is available false? No booking site offers a room for these dates and guests (sold out or not bookable yet).

Do prices include taxes? They are the prices Google shows for the chosen market. priceBeforeTaxes and taxesAndFees are filled when Google splits them. Choose countryCode to see the prices of a given market.

Why are amenities empty for some tracked hotels? Amenities come from destination results. When a hotel is given by URL or by an exact name, Google opens its page directly and the amenity list isn't always available.

How does monitoring work? Set monitorName and schedule the Actor (for example every morning). Each item then shows changeType, previousPricePerNight and priceChangePct, and price drops of at least alertOnPriceDropPct % trigger alerts. The first run is the baseline.

Is it affiliated with Google? No. The Actor reads the public Google Hotels pages, at a moderate pace, like a visitor would. You are responsible for how you use the data.

⭐ Your feedback

If this Actor saves you time, a short review on Apify Store helps other users find it. Missing a field, a country or a filter? Say it in your review: the most requested features are added first.

🔗 More from EuroScrape