Google Hotels Scraper - Hotel Prices & Ratings
Pricing
from $2.00 / 1,000 hotel with a prices
Google Hotels Scraper - Hotel Prices & Ratings
Scrape Google Hotels for any city and dates: nightly and total hotel prices, guest rating, reviews, stars, GPS and website. Extract up to 1,000 hotels per city, build a price calendar over 60 check-in dates, filter out vacation rentals. No browser, fast, pay per hotel.
Pricing
from $2.00 / 1,000 hotel with a prices
Rating
0.0
(0)
Developer
Tom Awake
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
What does Google Hotels Scraper do?
Google Hotels Scraper extracts every hotel that Google Hotels shows for a city and your dates: the nightly and total price, guest rating, review count, hotel class, GPS coordinates, website, check-in times and photos. Think of it as a Google Hotels API: give it cities and dates, get one clean row per hotel.
- Your dates, verified. Each row says whether Google priced it for the
dates you asked (
datesApplied). Measured: 180 of 180 rows. - Up to 1,000 hotels per city. The actor follows Google's pages, 20 hotels each. Measured: 134 unique hotels over 7 pages in Lyon, with no duplicate.
- Hotel price calendar. Give up to 60 check-in dates and a stay length, and get every hotel's rate for each date in a single run. Revenue managers use it to compare rates week over week.
- Fast, no browser. The actor reads Google's own data feed. It fetched 50 hotels for two Paris stays in 27 seconds.
- Hotels only if you want. Google mixes vacation rentals into hotel
results. Every row carries
isVacationRental, and one switch removes them.
What data can you extract from Google Hotels?
| Data | Fields |
|---|---|
| Price | pricePerNight, pricePerNightExact, totalPrice, display strings, nativeCurrency |
| Price in your currency | pricePerNightConverted, totalPriceConverted, currency |
| Reputation | overallRating, reviewCount, hotelClass, hotelType |
| Location | latitude, longitude, countryCode, nearbyPlaces |
| Contact and details | website, checkInTime, checkOutTime, imageUrls |
| Identifiers | googleHotelId, propertyToken, googleHotelsUrl, position (rank on Google) |
| Quality flags | datesApplied, available, isVacationRental |
How to scrape Google Hotels
- Enter one or more locations:
Lyon,Shinjuku, Tokyo,near the Louvre, Paris. - Pick a check-in and check-out date, or several check-in dates for a price calendar.
- Optionally set filters: minimum rating, minimum stars, maximum price per night, hotels only.
- Click Start, then download the results as JSON, CSV or Excel, or read them through the API.
How much does it cost to scrape Google Hotels?
You pay per hotel returned with a price. Sold-out hotels, which have no price, are delivered for free. At the listed price:
| Job | Hotels | Cost |
|---|---|---|
| One city, one stay | 100 | about $0.30 |
| One city, 4-week price calendar | 4 × 100 | about $1.20 |
| 10 cities, one stay | 1,000 | about $3 |
Subscription plans pay less per hotel. If a run reaches the spending limit you set, the output stops at that limit and never goes past it.
Input example
{"locations": ["Lyon", "Barcelona"],"checkInDates": ["2026-10-15", "2026-10-22", "2026-10-29", "2026-11-05"],"nights": 2,"maxResultsPerLocation": 100,"currency": "EUR","includeVacationRentals": false}
Output example
{"position": 4,"locationQuery": "Lyon","hotelName": "TRIBE Lyon Croix Rousse","hotelClass": 4,"overallRating": 4.7,"reviewCount": 848,"checkInDate": "2026-10-15","checkOutDate": "2026-10-17","nights": 2,"datesApplied": true,"pricePerNight": 108,"pricePerNightExact": 107.57,"totalPrice": 215,"nativeCurrency": "EUR","pricePerNightConverted": 123.47,"currency": "USD","latitude": 45.7829,"longitude": 4.8343,"website": "https://all.accor.com/...","isVacationRental": false,"googleHotelsUrl": "https://www.google.com/travel/hotels/entity/..."}
Use the Google Hotels API in Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("DataIO/google-hotels-scraper").call(run_input={"locations": ["Lyon"], "checkInDate": "2026-10-15", "checkOutDate": "2026-10-17",})for hotel in client.dataset(run["defaultDatasetId"]).iterate_items():print(hotel["hotelName"], hotel["pricePerNightConverted"], hotel["overallRating"])
The same works from JavaScript, Make, Zapier, n8n, or AI agents through the Apify MCP server.
Other actors you might like
- Google Trends Scraper & API: search interest for up to 100 keywords on one scale.
- Kalshi Weather Prediction Markets: temperature market odds joined with live weather station data.
- Steam Regional Pricing: the same product priced in 50 markets at once.
FAQ
Is it legal to scrape Google Hotels?
The actor reads prices and hotel details that Google shows publicly, without logging in. It collects no personal data about individuals. How you use the data (terms of service, local law) is your responsibility. When in doubt, ask a lawyer.
Why is the price in a different currency?
Google ignores every currency setting and shows the currency of the visitor's country. Every row keeps the original price and currency, and adds a conversion at today's rate (open.er-api.com). The conversion is an estimate, not what the booking site will charge.
Can I choose the number of guests?
No. Google ignores a guest count written into the search, so we don't offer a setting we can't honour. Prices are for the occupancy Google shows by default.
Can I track hotel prices every day?
Yes. Schedule the actor and leave the dates empty: the default stay is always 14 days ahead, so a daily schedule gives you a rolling two-week-out rate for every hotel.
What if Google refuses some requests?
The actor switches to a new proxy session and retries. If a location still fails, it delivers what it has collected and names the incomplete locations in the status message. Residential proxies work best.
Source
Public Google Hotels search results. This actor is not affiliated with or endorsed by Google. Exchange rates: open.er-api.com.