Google Hotels Price Scraper
Pricing
from $2.00 / 1,000 hotel results
Google Hotels Price Scraper
Reliable Google Hotels price scraper for price monitoring. Get nightly and total prices, booking-site prices (Booking.com, Expedia, official site...), ratings, reviews, hotel class, amenities and location for any city and dates.
Pricing
from $2.00 / 1,000 hotel results
Rating
0.0
(0)
Developer
Damian Boni
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Reliable Google Hotels price scraper for hotel price monitoring. Enter a city (or paste a Google Hotels URL), pick your dates and guests, and get every hotel's nightly price, total stay price, taxes, deal label, rating, reviews, star class, amenities, photos and coordinates, straight from Google Hotels. Turn on booking-site prices to compare Booking.com, Expedia, Hotels.com, Agoda, Trip.com, the hotel's official site and more, with direct booking links and free-cancellation flags.
Built for recurring runs: relative dates ("14 days from today"), stable hotel IDs for joining runs, fast plain-HTTP requests (no browser), automatic retries with fresh residential IPs, and clear errors instead of silent empty datasets.
What you can do with it
- Hotel price monitoring: schedule a daily run and track how prices move for the same dates, hotels and cities.
- Revenue management and rate shopping: see your hotel's price next to competitors and every OTA, per night and per stay.
- Travel apps and dashboards: feed live hotel prices, ratings and photos into your product or spreadsheet.
- Market research: compare price levels across cities, dates, star classes and neighbourhoods.
- Deal alerts: filter by "lowest price" or Google's "X% less than usual" deal labels.
What data you get
For every hotel on Google Hotels for your destination and stay:
| Field | Example |
|---|---|
| Hotel name, position in Google's list | Pullman Paris Tour Eiffel, #1 |
| Price per night and total stay price (taxes and fees included) | $502.09 / $1,004.18 |
| Price before taxes, taxes and fees, currency | $877.01, $127.17, USD |
| Google deal label | "18% less than usual" |
| Rating, review count, rating histogram | 4.6, 17,213 reviews |
| Hotel class | 4 ("4-star tourist hotel") |
| Amenities | Free Wi-Fi, Air conditioning, Restaurant, ... |
| Latitude, longitude, country, website, check-in/out times | 48.8556, 2.2929, FR |
| Photos (thumbnail + up to 10 images) | googleusercontent.com URLs |
| IDs: Google hotel ID, entity ID, Knowledge Graph ID, Maps CID | stable keys for monitoring |
| Google Hotels URL (same dates) and Google Maps URL | |
| Booking-site prices (optional): site, nightly and total price, official-site flag, free cancellation (and until when), direct booking link | Booking.com $682/night |
| Address, neighbourhood, phone (with booking-site prices on) | 18 Avenue De Suffren, 75015 Paris |
How to use it
- Add one or more destinations: a city, area or landmark ("Paris", "Shibuya, Tokyo", "hotels near Times Square"), or paste a Google Hotels URL (search page,
google.com/travel/hotels/<city>or a single hotelgoogle.com/travel/hotels/entity/...). - Set the check-in date (a date or a relative value like
14 days) and nights (or a check-out date). - Choose adults, children, currency, language and country.
- Optionally add filters: sort order, minimum rating, hotel class, price range, free cancellation.
- Optionally switch on Include booking-site prices.
- Run it, then download the dataset as JSON, CSV, Excel or via API, or connect it to Google Sheets, Make, Zapier or a webhook.
Price monitoring tips
- Use a relative check-in date (
7 days,2 weeks,1 month) in a schedule so every run looks at future dates. - Join runs on
entityId(orhotelId) pluscheckInDate/checkOutDateto build a price history. - Paste single-hotel URLs to track specific properties (with all booking-site prices).
- Keep the same
currencyandcountrybetween runs: Google can show different prices to visitors from different countries.
Input example
{"destinations": ["Paris", "London", "https://www.google.com/travel/hotels/entity/ChgIxfW9593Qkbu3ARoLL2cvMXRnczA3ZHQQAQ"],"checkInDate": "14 days","nights": 2,"adults": 2,"children": 1,"childrenAges": [7],"currency": "EUR","language": "en","country": "gb","maxHotelsPerDestination": 100,"sortBy": "lowest_price","minRating": "4.0","hotelClass": ["4", "5"],"maxPrice": 300,"freeCancellationOnly": true,"includeBookingPrices": true,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
| Input | Description | Default |
|---|---|---|
destinations | Cities/areas/landmarks or Google Hotels URLs. Dates, guests, currency and filters inside a pasted URL are used for that URL. | required |
checkInDate | YYYY-MM-DD or relative (14 days, 2 weeks, 1 month) | 14 days |
nights / checkOutDate | Length of stay, or an explicit check-out date (overrides nights) | 1 night |
adults, children, childrenAges | Guests. Google Hotels prices the whole party; it has no separate room count. | 2 adults |
currency | Any currency Google Hotels offers (72) | USD |
language, country | Google hl and gl values | en, us |
maxHotelsPerDestination | Hotels to save per destination (Google pages 20 at a time) | 20 |
sortBy | relevance, lowest_price, highest_rating, most_reviewed | relevance |
minRating | any, 3.5, 4.0, 4.5 | any |
hotelClass | Any of 2, 3, 4, 5 | any |
minPrice, maxPrice | Nightly price range in your currency | none |
freeCancellationOnly | Only hotels with a free-cancellation rate | false |
includeBookingPrices | Per-booking-site prices, links, address and phone (one extra request per hotel) | false |
proxyConfiguration | Apify Proxy settings. Residential is recommended; the proxy country follows country unless you set one. | Residential |
Output example
One dataset item per hotel (shortened):
{"destination": "Paris","destinationResolved": "Paris","position": 2,"name": "Pullman Paris Tour Eiffel","propertyType": "hotel","hotelId": "5592324419017481846","entityId": "ChgIxfW9593Qkbu3ARoLL2cvMXRnczA3ZHQQAQ","knowledgeGraphId": "/g/1tgs07dt","googleMapsCid": "13219831296943946437","url": "https://www.google.com/travel/hotels/entity/ChgIxfW9593Qkbu3ARoLL2cvMXRnczA3ZHQQAQ?ts=...&hl=en&gl=us","googleMapsUrl": "https://www.google.com/maps?cid=13219831296943946437","hotelClass": 4,"hotelClassText": "4-star tourist hotel","rating": 4.6,"reviewCount": 17213,"ratingHistogram": { "1": 625, "2": 301, "3": 613, "4": 1926, "5": 13748 },"pricePerNight": 561.81,"totalPrice": 1123.63,"priceBeforeTaxes": 990.38,"taxesAndFees": 133.25,"priceText": "$562","currency": "USD","priceAvailable": true,"dealLabel": null,"bookingPrices": [{"source": "Pilot","isOfficialSite": false,"pricePerNight": 581,"totalPrice": 1162,"priceText": "581 US$","totalPriceText": "1.162 US$","freeCancellation": false,"freeCancellationUntil": null,"link": "https://pilotplans.com/stays/pullman-paris-tour-lp27e2f?checkInDate=2026-10-16&checkOutDate=202...","googleRedirectUrl": "https://www.google.com/travel/lodging/clk?pc=...","logo": "https://www.gstatic.com/travel-hotels/branding/1471863362130829129.png"}],"cheapestBookingTotalPrice": 1124,"cheapestBookingSite": "goseek.com","description": "Polished quarters in a sleek hotel offering Eiffel Tower views, chic dining & 23 meeting rooms.","address": "18 Avenue De Suffren, 22 Rue Jean Rey Entrée Au, 75015 Paris, France","area": "Beaugrenelle","phone": "+33 1 44 38 56 00","website": "https://all.accor.com/...","countryCode": "FR","latitude": 48.8556488,"longitude": 2.2928584,"checkInTime": "4:00 PM","checkOutTime": "11:00 AM","amenities": ["Paid breakfast", "Free Wi-Fi", "Paid parking", "Air conditioning", "Pet-friendly", "Fitness center", "Bar", "Restaurant"],"thumbnail": "https://lh3.googleusercontent.com/...","images": ["https://lh3.googleusercontent.com/..."],"checkInDate": "2026-10-16","checkOutDate": "2026-10-18","nights": 2,"adults": 2,"children": 0,"scrapedAt": "2026-09-25T20:03:49.387Z"}
The Output tab has three views: Hotels and prices, Booking-site prices (one row per hotel and site) and Hotel details. A run summary (hotels per destination, errors, requests, traffic) is saved to the key-value store as SUMMARY.
Pricing
This Actor uses pay-per-event pricing. You pay only for hotels saved to your dataset; Apify platform usage and proxy traffic are included.
| Event | Price | When it is charged |
|---|---|---|
hotel-result | $0.0035 per hotel ($3.50 per 1,000 hotels) | Once for each hotel saved to the dataset, with or without booking-site prices. Lower prices may apply on higher Apify plans (tiered discounts). |
apify-actor-start | $0.00005 per run (Apify's standard start event, per GB of memory) | Once when a run starts. |
Nothing is charged for retries, blocked requests, destinations with no results or booking-site lookups. Examples: 20 hotels ≈ $0.07; monitoring 100 hotels every day for 30 days (3,000 results) ≈ $10.50.
Set Max total charge on a run to cap spending: the Actor stops as soon as the next hotel would exceed it and never saves hotels it has not charged for.
FAQ
Is it legal to scrape Google Hotels? The Actor collects publicly available business information (hotel names, public prices, ratings, business addresses and phone numbers) that anyone can see without logging in. It does not collect personal data about individuals and does not log in to any account. You are responsible for how you use the data; check the terms that apply to your use case and jurisdiction, and consult a lawyer if unsure.
Why are the prices different from what I see in my browser?
Google personalises hotel prices by the visitor's country, currency, dates, guest count and sometimes membership or sign-in status. Match currency, country (and the proxy country) to your browser, and remember prices change during the day.
Is the price per night or for the whole stay?
Both: pricePerNight and totalPrice include taxes and fees; priceBeforeTaxes and taxesAndFees split the total.
How many hotels can I get per destination?
Google returns 20 hotels per page and the Actor pages through them up to maxHotelsPerDestination (max 2,000). Very large cities have thousands of properties; small towns may have only a few dozen.
What if Google blocks a request? The Actor detects rate limits, "unusual traffic" and consent pages, switches to a new residential IP and retries with exponential backoff. If Google changes its data format so that no hotels can be read, the run fails with a clear message instead of finishing with an empty dataset.
Can I track one specific hotel?
Yes. Paste its Google Hotels URL (https://www.google.com/travel/hotels/entity/...) as a destination; you get its price and all booking-site prices for your dates.
Can I use it through the API, Python, JavaScript, Make or Zapier? Yes. Like every Apify Actor it can be started via the Apify API and clients, scheduled, and connected to integrations and webhooks. The dataset schema describes every field for AI agents and MCP clients.
Limitations
- Prices are what Google shows to an anonymous visitor from the proxy's country; member and signed-in prices are not included.
- Booking-site prices need one extra request per hotel, so those runs take longer.
- Amenities are returned as English names for the most common amenities. For single-hotel URLs amenities may be empty.
- Google Hotels has no room-count selector; prices are for the whole party in the cheapest option Google shows.
- Stays can be up to 30 nights and up to about 500 days ahead.
- Vacation rentals appear when Google mixes them into hotel results (
propertyType: "vacation_rental").
Changelog
See ./CHANGELOG.md.
- 1.0 (2026-09-25): first release: hotel prices with pagination, filters, booking-site prices, hotel URLs, relative dates, pay-per-event budget handling.