Google Hotels Scraper: Prices, Ratings and Amenities
Pricing
from $3.88 / 1,000 hotels
Google Hotels Scraper: Prices, Ratings and Amenities
Scrape Google Hotels for any city and dates. Get hotel name, nightly price, star class, rating, review count, amenities and the Google Hotels link, up to 200 hotels per destination. No login, no browser, no API key. Pay only for hotels delivered, about $4 per 1,000.
Pricing
from $3.88 / 1,000 hotels
Rating
0.0
(0)
Developer
Oski
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google Hotels Prices Scraper
Hotel names, nightly "from" prices, ratings, review counts, star class and amenities from Google Hotels for any destination and any dates. Pay only for hotels delivered. No login, no browser, no API key.
Tired of hotel scrapers that fail more than half the time? This one reads Google's own results page over a plain connection, so it does not break when a booking site changes its layout, and every run ends with a status line that says exactly what came back and why.
What you get
One row per hotel:
| Field | Example |
|---|---|
destination | London |
name | Premier Inn London Tolworth hotel |
price, price_text, currency | 44, "$44", USD |
rating, reviews | 4.1, 1292 |
stars | 3 |
amenities | ["Free Wi-Fi", "Free parking"] |
hotel_id, url | Google Hotels entity id and link |
check_in, check_out, nights | 2026-11-10, 2026-11-11, 1 |
found_via | the search wording that found it |
scraped_at | run time |
Plus one free SUMMARY row per destination (hotels delivered, requested, available, searches used, and a reason when nothing came back).
Use cases
- Rate monitoring: schedule a daily run for your own hotel and its competitors and chart the "from" price.
- Market scans: 200 hotels per city with ratings and star class for a destination study.
- Deal finding: run the same dates across ten cities and sort by price.
- Lead lists for hotel suppliers: names, star class and review counts of every hotel in a town.
- Travel content: "best 4 star hotels in Lisbon" tables with live prices.
How to use it
- Type your destinations, one per line (cities, areas, landmarks or a pasted Google Hotels link).
- Pick check-in and check-out, or leave them empty for the coming weekend. Relative values such as "7 days" mean that far ahead. A pasted link keeps its own dates, so those rows carry no date fields.
- Set how many hotels you want per destination (up to 200).
- Start the run. Download the dataset as JSON, CSV or Excel, or read it through the API.
How many hotels and what it costs
Google shows 18 hotels per search page. To get more, the scraper runs several differently worded searches for the same destination (star classes, budget, luxury, areas, airports) and merges the results. In testing, ten wordings for London returned 136 unique hotels.
| Hotels delivered | Cost |
|---|---|
| 100 | about $0.40 |
| 1,000 | about $4.00 |
| 10,000 | about $40 |
Price: a small fee per run plus a fee per hotel delivered. Hotels are counted once per destination even when several searches find them. Destinations that return nothing are free.
Tips for bigger runs
- Keep "Hotels per destination" at 40 to 60 for a quick price check; raise it to 200 for a full market scan.
- Run many destinations in one go: they are fetched in parallel.
- For a monthly price series, schedule the actor and pass fixed dates so runs compare like with like.
Scheduling and API
Schedule it in the Apify console (Schedules > Create) or call it:
curl -X POST "https://api.apify.com/v2/acts/oski~google-hotels-prices-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"destinations": ["London", "Paris"], "checkIn": "2026-11-10", "checkOut": "2026-11-11", "maxHotelsPerDestination": 40}'
If something looks wrong
| Status line says | What it means | What to do |
|---|---|---|
| Input problem: Add at least one destination | The destinations field was empty | Add a city or paste a Google Hotels link |
| Input problem: Check-out must be after check-in | Dates were reversed | Swap them |
| Google showed a consent page instead of results | Google asked for cookie consent on that exit | Run again; if it repeats, choose the RESIDENTIAL proxy group |
| Google refused the request with a captcha | Too many requests from one exit | Run again later or choose the RESIDENTIAL proxy group |
| Fewer hotels than asked because the extra search wordings stopped finding new hotels | Our 20 search wordings found all they could for that destination | Nothing to do; the SUMMARY row shows how many were available |
| Fewer hotels than asked because Google refused the later searches | Google blocked part way through a destination | Run again later for the rest, or choose the RESIDENTIAL proxy group |
| A pasted link gave one page only | Links are fetched exactly as pasted, no fan-out | Type the destination name instead to get more than 18 |
| Prices are in USD, I wanted GBP | Google prices in the currency it picks for the request | Convert with the currency field; the raw text is kept in price_text |
Frequently asked questions
Does it return the total stay price or the nightly price? The nightly "from" price Google shows on the results card, for the dates you gave.
Can I get room types or the booking site behind each price? Not in this version. The row carries the Google Hotels link where those are listed.
Does it work for vacation rentals? Google mixes some rentals into hotel results; they appear when Google shows them.
Is it legal? It reads publicly visible search results without logging in, and it stores no personal data.
Related actors by the same developer
- Google Jobs Scraper
- Google Ads Transparency Center Scraper
- App Store Reviews Scraper and Google Play Reviews Scraper