Google Hotels Scraper - Prices, Reviews & Hotel Leads
Pricing
from $4.00 / 1,000 hotel scrapeds
Google Hotels Scraper - Prices, Reviews & Hotel Leads
Scrape Google Hotels for prices, per-OTA price comparison, ratings, reviews, amenities, geo, deals and hotel contacts. Search or paste URLs, track prices with monitor mode. No browser, no API key.
Pricing
from $4.00 / 1,000 hotel scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Google Hotels Scraper — Prices, Per-OTA Comparison, Reviews & Hotel Leads
Extract complete Google Hotels data — the fields thin scrapers leave empty: real nightly + taxes-included prices, featured booking rates (official site vs. top partner) and Google's lowest "from" price, star class, guest ratings & reviews, full amenities, GPS coordinates, deal flags, street address and phone. Search by keyword or paste URLs, and turn on monitor mode to pull only new hotels and price drops.
No login, no cookies, no browser, no API key — fast SSR extraction with high reliability.
Why this Google Hotels scraper?
Most Google Hotels scrapers return the listing card and stop. This actor merges the search card and the property page into one rich record — the richest dataset in the category — and adds a price monitor for recurring price-drop alerts.
| Data | Typical scrapers | This actor |
|---|---|---|
| Nightly price + taxes-included total | partial | ✅ both |
| Featured booking rates (official site vs. partner, nightly + total) | ❌ | ✅ |
| Google's lowest "from" price across all providers | ❌ | ✅ |
| Star class + guest rating + review count | partial | ✅ |
| Guest reviews (source, rating, text, date) | ❌ | ✅ opt-in |
| Full amenities list | partial | ✅ |
| Street address + phone (hotel contact leads) | ❌ | ✅ opt-in |
| Check-in / check-out times | ❌ | ✅ opt-in |
| GPS coordinates (lat/lng) | ❌ | ✅ |
| Deal flags ("Great deal · 30% less than usual") | ❌ | ✅ |
| Vacation-rental facts (beds, baths, sleeps, size) | ❌ | ✅ |
| Photos | partial | ✅ |
| Monitor mode — only new & price-changed | ❌ | ✅ |
Use cases
- Hotel price intelligence — track nightly and taxes-included prices, compare the official-site rate vs. a top partner rate, and capture Google's lowest "from" price for every property, on any dates and in any currency.
- Price-drop alerts — turn on monitor mode + Schedules to get only the hotels whose price dropped since your last run.
- Travel apps & metasearch — feed hotel listings, prices, ratings, amenities, photos and geo into your own booking or comparison product.
- Hospitality lead generation — with details on, every hotel record carries a street address and phone — a clean list of properties to prospect for SaaS, supplies, OTAs, revenue management, or services, scored by rating and review volume.
- Market & revenue research — benchmark competitor pricing, star mix, review scores and deal frequency by city, neighborhood, or brand.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Google Hotels Scraper, enter one or more search queries (or paste Google Hotels URLs), pick your dates, and click Start.
- Watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"searchQueries": ["hotels in Austin", "5-star hotels in Miami"],"checkInDate": "2026-08-15","checkOutDate": "2026-08-17","adults": 2,"maxResults": 50,"sortBy": "lowest_price","includeDetails": true,"includeReviews": true,"maxReviewsPerHotel": 10,"currency": "USD","countryCode": "us"}
- searchQueries — free-text Google Hotels searches. Each returns the first page (~20 properties). For broad coverage, add several narrower queries (by neighborhood, brand, or star level) — the actor de-duplicates hotels across them.
- startUrls — paste Google Hotels URLs directly: a search page (
…/travel/search?q=…) or a single property page (…/travel/hotels/entity/…). Property URLs are always enriched with full details. - checkInDate / checkOutDate —
YYYY-MM-DD. Leave both empty and the actor uses an upcoming 2-night stay so the search price and per-OTA detail prices line up. - adults / children — occupancy.
- maxResults — total hotels to return after de-dup, filtering and sorting (default 50;
0= no limit). - sortBy —
relevance,lowest_price,highest_rating, ormost_reviewed. - includeDetails (default false) — add street address, phone, check-in/out times, coordinates, description, full amenities, and the featured booking rates (official site + top partner, each with nightly & taxes-included total) plus Google's "from" price. One extra request per hotel.
- includeReviews (default false) — attach guest reviews (source, rating, reviewer, date, text). maxReviewsPerHotel caps how many.
- minRating / minPrice / maxPrice / hotelClasses / propertyTypes — filters.
- currency / countryCode / languageCode — market controls; the country also pins the proxy so prices come back in the local currency.
- monitorMode / monitorKey — only output new & price-changed hotels between runs (see below).
Output
One record per hotel (type: "hotel"). With details and reviews on:
{"type": "hotel","hotelId": "ChkIisyi57DBkdktGg0vZy8xMWJ5X3pkdHBoEAE","hotelUrl": "https://www.google.com/travel/hotels/entity/ChkIisyi57DBkdktGg0vZy8xMWJ5X3pkdHBoEAE","name": "Fairmont Austin","propertyType": "hotel","hotelClass": 4,"rating": 4.6,"reviewsCount": 5231,"price": 289,"currency": "USD","pricePerNight": 289,"totalPrice": 331,"taxesIncludedInTotal": true,"dealLabel": "Great deal","dealPercentOff": 22,"amenities": ["Free Wi-Fi", "Pool", "Spa", "Fitness center", "Bar", "Restaurant", "Air conditioning", "Pet-friendly"],"topMentions": ["Rooftop pool", "Service", "Location"],"address": "101 Red River St, Austin, TX 78701","phone": "(512) 600-2000","checkInTime": "3:00 PM","checkOutTime": "12:00 PM","latitude": 30.2626,"longitude": -97.7396,"description": "Polished property featuring multiple bars & restaurants, plus a rooftop pool & spa.","featuredOffers": [{ "provider": "Official site", "pricePerNight": 289, "totalPrice": 331, "currency": "USD" },{ "provider": "Super.com", "pricePerNight": 262, "totalPrice": 300, "currency": "USD" }],"lowestOfferProvider": "Super.com","lowestOfferPrice": 300,"offerProviderCount": 2,"pricesFrom": 279,"reviews": [{ "source": "Tripadvisor", "rating": 4.5, "reviewer": "Tony", "relativeDate": "2 weeks ago", "text": "Great location, attentive front desk…" }],"thumbnail": "https://lh3.googleusercontent.com/…","images": ["https://lh3.googleusercontent.com/…"],"searchQuery": "hotels in Austin","searchCheckIn": "2026-08-15","searchCheckOut": "2026-08-17","scrapedAt": "2026-07-02T12:00:00.000Z"}
Monitor mode — price-drop alerts
Turn on monitorMode and give each saved search a monitorKey (e.g. austin-4star). The actor remembers every hotel and its price between runs and outputs only new hotels and ones whose price changed — each price-changed record carries previousPrice and monitorStatus. Pair it with Schedules to run daily or hourly.
Monitor state is stored in a named key-value store and keyed independently per monitorKey, so it never conflicts with the Apify scheduler or with your other saved searches — schedule as many as you like.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it hourly/daily/weekly to track prices for a city, route, or specific hotels; perfect for price-drop pipelines.
- Webhooks — trigger downstream actions (CRM import, Slack alert, price-drop email) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/google-hotels-scraper').call({searchQueries: ['hotels in Austin'],checkInDate: '2026-08-15',checkOutDate: '2026-08-17',includeDetails: true,maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} hotels with price comparison`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push price drops straight into Sheets, Slack, or your CRM.
- Slack — get notified when a monitored search finds a cheaper price.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find 4-star hotels in Austin for next weekend and tell me which site is cheapest" and let it run this scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete travel & local-market intelligence stack:
- Google Flights Scraper — live fares, routes, layovers and price tracking.
- Booking.com Scraper — hotels, prices and availability.
- Agoda Scraper — hotels, amenities, category scores and full guest reviews.
- Trip.com Scraper — hotels, prices and reviews.
- Airbnb Scraper — listings, prices, and market monitoring.
- GetYourGuide Scraper — tours, activities, prices and reviews.
- Google Maps Scraper — places, leads and contacts.
- Website Contact Scraper — emails, phones and socials for any hotel website.
Tips
- Breadth: Google shows ~20 hotels per search. To cover a big city, add several narrower queries — by neighborhood ("hotels in Downtown Austin"), brand ("Marriott Austin"), or star level ("5-star hotels Austin"). The actor de-duplicates across them.
- Currency: Google sets the price currency from the proxy IP's country. The default (fast datacenter) proxy returns USD. For prices in a specific local currency (e.g. GBP, EUR), set
countryCodeand switchproxyConfigurationto a RESIDENTIAL proxy pinned to that country. The per-OTA comparison (which site is cheapest) is meaningful in any currency. - Consistent prices: provide
checkInDate/checkOutDate(or let the actor default them) so the headline price and the per-OTA comparison are for the same dates. - Cost control: keep
includeDetails/includeReviewsoff for a fast, cheap price sweep; turn them on only when you need address, phone, per-OTA comparison, or reviews. - Reliability: for heavy or high-frequency runs, switch
proxyConfigurationto RESIDENTIAL.
FAQ
How do I compare booking prices? Turn on includeDetails. Each hotel then includes featuredOffers — the rates Google features on the property page (the official site and a top partner, each with pricePerNight and taxes-included totalPrice) — plus pricesFrom (Google's lowest advertised price across every provider) and lowestOfferProvider / lowestOfferPrice. Google only renders these featured rates in the page itself; the full 20+ provider list sits behind an in-page click that isn't part of the public HTML.
Does it work without the Google Hotels API? Yes — Google Hotels has no public API. This actor reads the same public results pages a visitor sees, no key or login needed.
Can I track price drops? Yes — turn on monitorMode, set a monitorKey, and schedule the run. You'll get only new hotels and ones whose price changed, with previousPrice on each change.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
A field is null — why? Some properties genuinely don't publish everything: vacation rentals hide the exact street address and phone (privacy), and not every hotel has an editorial description or a star class. Fields are null only when Google doesn't expose the data, never because the scraper skipped them.
Is scraping Google Hotels legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws and Google's terms.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.