How to Scrape Google Hotels Prices & Reviews (2026 Guide)
Google Hotels is where most travellers now compare rates - it aggregates prices from every major OTA into one view. But there's no public API to get that data out. This guide covers what you can extract from Google Hotels (the full price ladder, per-room rates, multi-date windows, and reviews), how to point the scraper at a destination or specific hotels, and the fastest way to turn it all into clean, structured data.
Why scrape Google Hotels?
For revenue managers, OTAs, and travel analysts, Google Hotels is uniquely high-signal because it consolidates the whole market in one place:
- Rate shopping & parity: see every booking source's price for a hotel side by side, and spot where a channel is undercutting or out of parity.
- Revenue management: monitor your own and your competitive set's rates across dates and sources over time.
- Market & travel research: discover every hotel in a destination with star class, guest ratings and price bands.
- AI & RAG pipelines: feed structured, LLM-ready price and review data straight into a model with no reshaping.
Does Google Hotels have an API?
No. Google Hotels exposes no public API for its prices, the OTA rate ladder, or its reviews - the data is only rendered in the Google Travel interface. That's why a purpose-built scraper is the practical route: it collects the same publicly visible prices, sources and reviews and hands them back as structured JSON or CSV, effectively giving you API-style access to Google Hotels data without an official endpoint.
Two ways to point it: search or specific hotels
The scraper takes either entry point, or both together:
- Destination search - e.g.
hotels in New York City. The actor paginates the search and returns every hotel it finds, each priced with its full source ladder for your dates. - Specific hotels - add them by name (e.g.
The Manhattan at Times Square), a Google Hotels/Maps link, amaps.app.goo.glshort link, aChIJplace-id, or aChkIentity token. This is the mode to use for rate-shopping a fixed competitive set, and it unlocks the multi-date price window.
What data can you get?
You get one row per hotel, with prices and rooms nested on the row (and an optional second dataset of reviews):
- The priced offers table (
offers[]) - one self-contained row per booking source × stay-date × room (when the source exposes rooms): source, dates, room, per-night, total, currency, a booking link, and anofficialflag. The hotel's own direct-booking row is labelled Official site. Every source Google shows is here. - A booking-source directory (
vendors[]) - one entry per source with its booking link and official flag (prices live inoffers[]). - Lead price -
leadPrice/leadPriceTotalandvendorCountfor at-a-glance comparison. - Multi-date price window - set Track prices until and each check-in day up to 60 days ahead is repriced and appended to
offers[]with its own dates. - Property fields - name, star class, guest rating, review count, property type, coordinates, entity token, Maps CID, and the Google Hotels deep link.
- Reviews (optional) - reviewer, rating, review text, exact publish date, and the hotel's owner response.
- An LLM-ready markdown block on every hotel and review row.
The price ladder, on one row
The point of Google Hotels is that it shows every source at once - so a good scraper should hand you the whole ladder without exploding a hotel into dozens of rows. Real sample output from hotels in New York City:
| Hotel | Lead / night | # sources | Ladder (per night) |
|---|---|---|---|
| New York Hilton Midtown | $235 | 24 | Super.com $235 · Pilot $268 · TUI $281 · Hotels.com $302 · Expedia $302 · Trip.com $302 · Booking.com $308 · Agoda $308 · Priceline $308… |
| The Manhattan at Times Square | $195 | 17 | Super.com $195 · müv AI $274 · Evendo $283 · Booking.com $290 · Agoda $290 · Priceline $290 · Expedia $292 · Hotels.com $292… |
Every source is nested on the one hotel row, with the official-site rate flagged - so rate parity and the true cheapest channel are a single lookup.
See the data first. Grab a free sample of real Google Hotels price data - two Manhattan hotels with their complete OTA ladders (37 source-price rows) - before you run anything.
Why building your own breaks
- Undocumented endpoints: the prices, ladder and reviews come from internal Google Travel endpoints that change without notice.
- Nested, positional data: prices, sources, rooms and booking links live in deeply nested arrays that need careful, resilient parsing.
- Date & occupancy handling: prices are specific to a stay; getting a multi-date window right without a cost explosion takes care.
- Pagination & scale: a destination can have hundreds of hotels, with per-query ceilings that need query fan-out.
The fast way: the FactDen Google Hotels Scraper
The FactDen Google Hotels Scraper on the Apify platform returns discovery, prices, the full OTA ladder and reviews, with no login, no cookies, and no Google API key.
Step 1: Open the actor
Go to the Google Hotels Scraper on Apify and click Try for free (a free Apify account is all you need).
Step 2: Set your search or hotels
Enter a destination search (e.g. hotels in New York City), and/or add specific hotels by name or link. Set your check-in and check-out dates and occupancy (leave both dates empty and, with prices on, it prices tomorrow for a one-night stay). For a fixed set of hotels, set Track prices until to reprice every check-in day up to that date.
Step 3: Choose prices and reviews
Toggle Include prices and Include reviews to control what you pull and what you pay for, and set a Max results limit for search mode.
Step 4: Run and export
Click Start. Download results as JSON, CSV, Excel, or HTML, or pull them from the Apify API on a schedule. Switch dataset views - Overview, Prices (a flat row per offer - source, dates, room, price), or AI ingest - or open the separate reviews dataset, without changing your run.
What does it cost?
Pricing is pay-per-event with no start fee: Hotel $0.004 (each hotel returned), Prices $0.005 (each hotel priced, per date - the full OTA ladder plus rooms), and Review $0.001 (each review). A fully-priced hotel is $0.009; discovery-only is $0.004. New accounts get a $5 free credit (~555 fully-priced hotels or ~1,250 discovery-only). To rate-shop cheaply, run a fixed set of hotels with just the dates you care about rather than a broad city search - each priced date is a separate Prices charge per hotel.
Frequently asked questions
- Does Google Hotels have an API?
- No public API exists for its prices, ladder or reviews. This scraper is the practical alternative, returning the same public data as structured JSON or CSV.
- Can I get every booking source, not just the cheapest?
- Yes - each hotel row carries the full OTA ladder (typically 15–25 sources: Booking.com, Agoda, Expedia, Hotels.com, Priceline, Trip.com, KAYAK…), each with its price and a booking link where available.
- Can I rate-shop across multiple dates?
- Yes - add specific hotels and set Track prices until; every check-in day up to that date (max 60) is repriced and appended to
offers[]with its own dates. - Does it scrape reviews too?
- Yes - turn on Include reviews for reviewer, rating, text, exact publish date and owner response, billed at $0.001 per review.
- Do I need a login or API key?
- No. No Google login, no cookies, no API key - just a destination or hotel URLs/IDs.
- Can I export to CSV or Excel?
- Yes - JSON, CSV, Excel, or HTML, or via the Apify API.
Also see: How to scrape Hotels.com reviews → · How to scrape Expedia reviews →
Product page: Google Hotels Scraper - fields, pricing & FAQ →