Google Hotels Scraper
Pricing
from $2.50 / 1,000 hotels
Google Hotels Scraper
Hotel prices from Google Hotels for any city and dates: nightly and total price with taxes, deals, rating, reviews, star class, amenities and coordinates. Fast HTTP-only scraper, pay per hotel.
Pricing
from $2.50 / 1,000 hotels
Rating
0.0
(0)
Developer
Ralf IJsbrandij
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Scrape hotel prices from Google Hotels for any city and dates. For every hotel you get the lowest nightly price, the price for the whole stay with taxes and fees, Google's deal note, the guest rating and review count, star class, amenities, check-in times, coordinates and links. Use it for hotel price monitoring, rate shopping, travel apps, market research or AI agents that need live hotel prices.
- Fast and light: plain HTTP, no browser. One request returns about 20 hotels with prices.
- Your dates, guests and currency: check-in and check-out dates (fixed or relative, such as "14 days" from the run), adults, children's ages, and any currency.
- Built for reliability: fresh IPs and retries on every block, a run summary that explains every search, and a run that never fails because of one bad search.
- Pay per hotel: you only pay for hotels you get.
What data do you get?
| Field | Example | Notes |
|---|---|---|
name | Radisson Hotel & Suites Amsterdam South | |
hotelId | ChoIgfeI9cmwttG7ARoNL2cvMTFmMmdzenZrbBAB | Google's id for the property, stable across runs |
position | 1 | Rank in Google's results for your search |
pricePerNight / pricePerNightText | 97.91 / "$98" | Lowest nightly price as Google shows it (see note below) |
totalPrice | 195.82 | Whole stay, including taxes and fees |
totalPriceBeforeTaxes, taxesAndFees | 143.6, 52.23 | When Google shows the split |
currency | USD | |
dealText | 23% less than usual | Google's deal note |
rating, reviewCount | 4.1, 1779 | Guest rating out of 5 |
hotelClass, hotelClassText | 4, "4-star hotel" | Official star class when Google has it |
propertyType | hotel | hotel, hostel, resort hotel, vacation rental, ... |
amenities | Free Wi-Fi, Breakfast ($), Parking ($), Pool | English pages |
checkInTime, checkOutTime | 3:00 PM, 12:00 PM | |
latitude, longitude, countryCode | 52.3215, 4.8815, NL | |
description | Polished hotel with a restaurant & a bar... | Google's one-line summary |
website | https://www.radissonhotels.com/... | utm_* and click-tracking parameters removed |
thumbnailUrl | https://lh3.googleusercontent.com/... | Main photo |
googleHotelsUrl, googleMapsUrl | links | The hotel on Google Hotels (same dates) and on Google Maps |
checkInDate, checkOutDate, nights, adults, children | 2026-11-12, 2026-11-14, 2, 2, 0 | What the price is for |
query, searchLocation, searchUrl, scrapedAt | Where the row came from |
Every result has the same fields in the same order. A value Google does not show is null, never missing. Guest reviews are not included because they contain personal data. You get the rating and review count instead.
Taxes: pricePerNight is the nightly price exactly as Google shows it. Google shows US visitors prices before taxes and fees, and most other markets prices that include them. For an all-in price you can compare across markets, use totalPrice.
How to use it
- Enter one or more searches, such as
hotels in Amsterdam,Parisorhotels near Times Square. - Pick check-in and check-out dates. Relative dates such as
14 daysand16 dayskeep a scheduled run pointing at the future. - Set adults, children's ages and currency if needed, and click Start.
- Download the results as JSON, CSV or Excel, or use the API. The Hotels and prices tab shows them as a table with photos.
Input example
{"queries": ["hotels in Amsterdam", "hotels in Paris"],"checkInDate": "14 days","checkOutDate": "16 days","adults": 2,"childrenAges": ["8"],"currency": "EUR","maxHotelsPerSearch": 20}
| Input | Default | What it does |
|---|---|---|
queries (required) | One search per line. Search for a place; a hotel name on its own opens that hotel's page, which is skipped. | |
checkInDate | 14 days from today | YYYY-MM-DD or relative: 3 days, 2 weeks, 1 month |
checkOutDate | 1 night after check-in | Up to 30 nights |
adults | 2 | 1 to 10 |
childrenAges | none | One age (0-17) per child |
currency | USD | Any three-letter code: EUR, GBP, AUD, JPY, ... |
maxHotelsPerSearch | 20 | Google shows about 20 hotels per search; lower it to spend less |
country | us | Google market (gl). Decides which booking sites Google compares |
language | en | Language of Google's texts. Keep en for amenities |
proxyConfiguration | Residential | Residential IPs from your Google country work best |
Output example
{"query": "hotels in Amsterdam","searchLocation": "Amsterdam","position": 1,"name": "Radisson Hotel & Suites Amsterdam South","hotelId": "ChoIgfeI9cmwttG7ARoNL2cvMTFmMmdzenZrbBAB","propertyType": "hotel","hotelClass": null,"hotelClassText": null,"rating": 4.1,"reviewCount": 1779,"pricePerNight": 97.91,"pricePerNightText": "$98","totalPrice": 195.82,"totalPriceBeforeTaxes": 143.6,"taxesAndFees": 52.23,"currency": "USD","dealText": "23% less than usual","checkInDate": "2026-11-12","checkOutDate": "2026-11-14","nights": 2,"adults": 2,"children": 0,"latitude": 52.3214936,"longitude": 4.881534,"checkInTime": "3:00 PM","checkOutTime": "12:00 PM","amenities": "Breakfast ($), Free Wi-Fi, Parking ($), Air conditioning, Pet-friendly, Fitness center, Bar, Restaurant, Room service","description": "Polished hotel with a restaurant & a bar, plus breakfast, parking & Wi-Fi access.","website": "https://www.radissonhotels.com/en-us/hotels/radisson-hotel-and-suites-amsterdam-south?cid=...","countryCode": "NL","thumbnailUrl": "https://lh3.googleusercontent.com/...","googleHotelsUrl": "https://www.google.com/travel/hotels/entity/ChoIgfeI9cmwttG7ARoNL2cvMTFmMmdzenZrbBAB?hl=en&gl=us&curr=USD&ts=...","googleMapsUrl": "https://maps.google.com/?cid=13520608194939992961","searchUrl": "https://www.google.com/travel/search?q=hotels+in+Amsterdam&...","scrapedAt": "2026-10-10T16:01:40.120Z"}
Each run also saves a run summary (RUN_SUMMARY in the key-value store, linked from the Output tab). It lists every search with its status (ok, no-results, skipped, failed or not-run), the number of hotels, how Google read the search ("Amsterdam", 58 results) and a note on anything that went wrong.
Pricing
This Actor uses pay per event. You pay a fixed price for each hotel in your results, plus a tiny fee when a run starts:
| Event | Price |
|---|---|
| Hotel result | $0.0035 ($3.50 per 1,000 hotels), less on paid Apify plans (down to $2.50) |
| Run start | $0.00005 |
Example: checking 10 cities for one date range returns about 200 hotels and costs about 200 x $0.0035 = $0.70. A daily price check of the same 10 cities costs about $21 a month.
Searches that return no hotels cost nothing beyond the run start. You can set a maximum charge per run; the Actor stops cleanly when it is reached and keeps everything found so far.
Tips
- More hotels for a city: Google shows about 20 hotels per search. Add more specific searches, such as
hotels in Amsterdam Jordaanorhotels near Amsterdam Centraal. Each search is priced separately. - Track prices over time: schedule the Actor with relative dates (
30 daysto31 days) and match rows across runs byhotelId. - Compare markets: run the same search with
countryset tous,gborde. Google compares different booking sites per market, and prices can differ. - Currencies: prices come in the currency you choose.
pricePerNightTextshows them exactly as Google displays them.
Use it as an API, from Python or from AI tools
Every run is also an API call. From Python, with the official Apify client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("ralfij/google-hotels-scraper").call(run_input={"queries": ["hotels in Lisbon"], "checkInDate": "30 days", "checkOutDate": "32 days", "currency": "EUR"})for hotel in client.dataset(run.default_dataset_id).iterate_items():print(hotel["name"], "|", hotel["pricePerNightText"], "|", hotel["rating"])
More Python examples, including comparing cities, finding the cheapest weekend and a daily price tracker, are on GitHub: RalfIJ/google-hotels-api.
To let an AI assistant such as Claude, Cursor or VS Code look up hotel prices for you, add this MCP server URL in its settings: https://mcp.apify.com?tools=ralfij/google-hotels-scraper
FAQ
Is there an official Google Hotels API? Not for reading prices. Google's hotel APIs are for travel partners that send their prices to Google. This actor gives you the hotels and prices Google shows as structured data (JSON, CSV or Excel) through the Apify API.
Is it free to try? Yes. Apify's free plan includes $5 of credit every month, with no credit card needed. That covers more than 1,000 hotel prices at the standard price.
How many hotels does one search return? About 20, the first page of Google Hotels results. The run summary shows how many hotels Google has in total for the search.
Why did a search return no hotels?
For some large cities Google sometimes answers a search with an empty list. The Actor then asks again from other IPs. If the list stays empty, the search is marked no-results in the run summary and costs nothing. Different wording or dates can help.
Do I need a Google account or an API key? No. The Actor reads the public Google Hotels pages, the same ones you see in a browser without logging in.
Are prices live? Yes. They are the prices Google shows at the time of the run for your dates, guests and currency. Hotel prices change often, so schedule runs if you need a history.
Why does a price differ from what I see in my browser?
Google adapts prices to the visitor's country, currency and sometimes membership deals. Use the same country and currency as your browser to compare.
Does it collect personal data? No. It returns hotel (business) data only. Guest reviews and reviewer names are left out on purpose.
Is scraping Google Hotels legal? The Actor reads publicly visible, non-personal business data. You are responsible for how you use the data, including Google's terms of service and the laws that apply to you. If unsure, ask a lawyer.
Can I use it with AI agents? Yes. The flat output with fixed field names works well with LLM tools, the Apify API and the Apify MCP server.
Feedback
Found a search that fails or a field that looks wrong? Open an issue on the Actor page with the search and dates. Fixes ship quickly. Did it save you time? A short review on the Reviews tab helps other people find it.
This actor is not affiliated with, endorsed by or sponsored by Google. Google Hotels is a trademark of Google LLC.