Google Hotels Prices Scraper
Pricing
from $0.63 / 1,000 hotel rows
Google Hotels Prices Scraper
Hotel prices from Google Hotels for any city or hotel, any dates and guests. Optional prices from every booking site and a price-change monitor. Fast, no browser, low cost.
Pricing
from $0.63 / 1,000 hotel rows
Rating
0.0
(0)
Developer
Silent Superpower
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get hotel prices from Google Hotels for any city, area or named hotel, for any dates and any number of guests. One run can cover many places, a whole range of check-in dates, and (if you ask) the price on every booking site Google lists: Booking.com, Expedia, Hotels.com, Agoda, the hotel's own site and more. A built-in price monitor returns only the hotels that are new or whose price changed since your last run.
No browser and no login. The Actor talks to the same data service Google Hotels uses on its own pages, so a page of about 20 hotels costs one small request instead of a full page load. That makes it fast, cheap and steady.
What you get
For every hotel and stay:
- Price per night and for the whole stay, with and without taxes and fees, in the currency you choose
- Hotel name, star class, Google guest rating, review count and the 1 to 5 star split
- Location (latitude, longitude, country), check-in and check-out times, description and photo
- Address, phone and website (when the hotel page is loaded)
- A link that opens the hotel in Google Hotels for the same dates and guests
- Optional: the price on every booking site, which one is cheapest, the price on the hotel's own site, free-cancellation flags, and the typical price range for the dates
- Optional price monitor fields:
changeType(new, increase, decrease), previous price, change in money and percent
Use cases
- Rate monitoring for hotels and revenue managers. Watch your competitors' prices every day and get only the changes.
- Deal and travel sites. Feed a "cheapest hotels in Lisbon next month" page, or a price-drop alert.
- Trip planners and agencies. Compare a city across several weekends in one run.
- Parity checks. See whether a hotel sells cheaper on Booking.com than on its own site.
- Market research. Price levels by city, star class and season.
How to use it
- Put one or more places in Places to search (
Paris,Hotels in Times Square, New York), or hotels in Hotels by name. - Set the dates (a check-in date and nights, or leave the date empty to always look 14 days ahead) and the guests.
- Press Start. Download the table as JSON, CSV or Excel, or read it through the API.
Input example
{"searchQueries": ["Paris", "Lisbon, Portugal"],"checkInDate": "2026-11-14","nights": 2,"adults": 2,"currency": "EUR","maxHotelsPerSearch": 100,"minStars": 3}
A date range (one stay per Friday for eight weeks):
{"searchQueries": ["Austin Texas"],"checkInDate": "2026-11-06","lastCheckInDate": "2026-12-25","checkInStepDays": 7,"nights": 2,"maxHotelsPerSearch": 50}
One hotel with the price on every booking site:
{"hotelNames": ["Fairmont Austin Texas"],"checkInDate": "2026-11-14","nights": 2,"currency": "EUR"}
A daily price-drop feed (schedule the run every day):
{"searchQueries": ["Rome"],"checkInInDays": 30,"nights": 3,"maxHotelsPerSearch": 200,"onlyPriceChanges": true,"monitorName": "rome-30-days-out","monitorBy": "hotel","minPriceChangePercent": 3}
Output example
{"searchQuery": "Austin Texas","position": 2,"hotelName": "Fairmont Austin","entityToken": "ChgIkYfI0qG8ttiwARoLL20vMDExMTB6NnMQAQ","propertyType": "hotel","starClass": 4,"rating": 4.6,"reviewCount": 7426,"checkInDate": "2026-11-14","checkOutDate": "2026-11-16","nights": 2,"adults": 2,"currency": "USD","pricePerNight": 240.51,"pricePerNightWithTaxes": 287.89,"totalPrice": 481.02,"totalPriceWithTaxes": 575.78,"googleHotelsUrl": "https://www.google.com/travel/hotels/entity/ChgIkYfI0qG8ttiwARoLL20vMDExMTB6NnMQAQ?...","scrapedAt": "2026-10-10T16:00:00.000Z"}
With booking-site prices on, each row also has providerCount, cheapestProvider, cheapestPricePerNight, officialSitePricePerNight, typicalPricePerNight and a providers list:
{ "provider": "Traveluro", "isOfficial": false, "pricePerNight": 240.51, "pricePerNightWithTaxes": 287.89, "totalPrice": 481.02, "totalPriceWithTaxes": 575.78, "freeCancellation": null, "freeCancellationUntil": null }
How the price monitor works
Turn on Price monitor and the Actor remembers the last price of every hotel in a named storage on your account. On the next run with the same Monitor name:
- a hotel it has not seen before comes back as
new - a hotel whose price moved comes back as
increaseordecrease, with the previous price, the change and the percent - an unchanged hotel is skipped and not charged
Good to know:
- Use one monitor name per schedule. Two schedules with the same name would overwrite each other's baseline.
- Stay mode compares only the same check-in date and nights. Hotel mode compares with the last price whatever the dates, which fits "30 days from today" schedules.
- Google reshuffles its ranking between calls, so a hotel can drop out of the top results one day and return later as
new. The monitor never reports a hotel as "removed". - A hotel joins the history only after its row was saved, so a run that stops early never loses a change.
- "Remember prices, return nothing" sets a baseline without charging any hotel rows (the run start fee still applies).
Pricing (pay per event)
You pay for hotel rows. Apify also charges its standard start event for every run ($0.00005 at 256 MB, the default memory of this Actor). Price per event by Apify plan:
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
hotel (one hotel row) | $0.00081 | $0.00081 | $0.00072 | $0.00063 | $0.00063 | $0.00063 |
provider-prices (add-on: the price on every booking site, per hotel) | $0.01358 | $0.01358 | $0.01358 | $0.01198 | $0.01198 | $0.01198 |
Whole-job cost for the hotel rows alone, next to what the other Google Hotels Actors charge (taken from their public Store listings on 2026-10-10; the start event is included in our figures):
| Job | Tier | This Actor | zerobreak | vittuhy | johnvc (see note) | kestrel |
|---|---|---|---|---|---|---|
| 100 hotels | FREE | $0.081 | $0.50 | $0.105 | $0.120 | $0.40 |
| 100 hotels | GOLD | $0.063 | $0.30 | $0.105 | $0.090 | $0.40 |
| 1,000 hotels | FREE | $0.81 | $4.99 | $1.005 | $1.02 | $4.00 |
| 1,000 hotels | BRONZE | $0.81 | $4.32 | $1.005 | $0.92 | $4.00 |
| 1,000 hotels | SILVER | $0.72 | $3.66 | $1.005 | $0.82 | $4.00 |
| 1,000 hotels | GOLD | $0.63 | $2.99 | $1.005 | $0.72 | $4.00 |
| 10,000 hotels | FREE | $8.10 | $49.90 | $10.005 | $10.03 | $40.00 |
| 10,000 hotels | GOLD | $6.30 | $29.90 | $10.005 | $7.03 | $40.00 |
Hotels with the price on 16 booking sites each (the add-on), same sources:
| Job | Tier | This Actor | vittuhy | johnvc | kestrel |
|---|---|---|---|---|---|
| 100 hotels | FREE | $1.44 | $1.60 | $2.02 | $3.60 |
| 100 hotels | GOLD | $1.26 | $1.60 | $1.42 | $3.60 |
| 1,000 hotels | FREE | $14.39 | $16.00 | $20.03 | $36.00 |
| 1,000 hotels | GOLD | $12.61 | $16.00 | $14.03 | $36.00 |
Our price is at most 90% of the cheapest of the four at every job size (checked at all six plan tiers and at 100, 1,000 and 10,000 hotels). One place and date returns at most about 500 hotels (see Speed and limits), so a 10,000-hotel job means about 20 places or dates in one run. johnvc bills a setup fee and a fee per page of results; the table assumes 20 hotels per page, which was measured on one page. vittuhy bills $0.005 per run and $0.001 per result row, one hotel per run, and bills each booking site as its own row; the tables use its most generous reading. kestrel bills $0.004 per hotel and $0.002 per booking site.
Set a Maximum cost per run in the run options and the Actor stops cleanly when it is reached. Rows are saved before they are charged, a row the cost limit refused is never counted or charged, and a hotel that could not be loaded is never charged.
Compared with other Google Hotels scrapers
| This Actor | zerobreak | vittuhy | johnvc | kestrel | |
|---|---|---|---|---|---|
| City or area search | yes | yes | no (one hotel per run) | yes | yes |
| Named hotels | yes | yes | yes | yes | yes |
| Prices on every booking site | yes, for city search too | no | yes, one hotel at a time, billed per booking site | yes, one property at a time | yes, billed per booking site |
| Price monitor (only new and changed) | yes | no | no | no | no |
| Several places in one run | yes | yes | no | no | yes |
| Date range in one run | yes | no | yes | no | yes |
| Children, currency, country, language | yes | currency, country, language | currency | yes | yes |
| Filters (stars, rating, price band, property type) | yes | no | no | yes | yes (no property type) |
| Reviews, photos | not included | no | no | extra paid events | partly |
| Start fee | Apify's default start event ($0.00005) | none listed | $0.005 per run | $0.02 setup plus start event | none listed |
"No" means the feature is not in that Actor's current input fields, pricing events or run output on 2026-10-10. It may exist in a form we could not see.
Country, currency and language
Google shows the price a visitor from a country sees. Set Country of the buyer (us, de, jp) and Currency. The Actor starts with a direct connection, and only if Google blocks it does it switch to the Apify datacenter proxy and then to the residential proxy. Datacenter addresses are mostly in the US, so for a non-US point of sale choose a residential proxy in the same country under Advanced.
Speed and limits
- About 19 new hotels per request, one request every two seconds on a direct connection (faster behind a proxy). 500 hotels take about 45 requests, which measured 3 to 4 minutes.
- With booking-site prices on, each hotel costs one more request, so 500 hotels take about 550 requests.
- A named hotel takes two requests (name lookup, then prices); a hotel token takes one.
- A date range repeats the search for every date, so ten dates cost ten times the requests.
- Up to 500 hotels per place and date. Google lists about 490 to 550 hotels per place and date, so asking for more could not return more, and a very large city can return slightly fewer than 500. When a search ends short because Google's list ended, the run log and the final status message say so (for example how many hotels Google listed and how many had no price). The status starts with "PARTIAL" only when something went wrong: an error, a blocked request, a name that matched no hotel or several, or the maximum cost reached.
- Up to 200 places and hotels per run, up to 62 dates.
- The run status shows these limits when the run starts and the reason for any shortfall when it ends, together with a link to the Actor's Issues tab.
- Memory: 256 MB is enough. The Actor never opens a browser.
FAQ
Where does the data come from? From Google Hotels, the same data service its own pages use. Nothing is estimated: the prices are the ones Google shows for your dates and guests.
Is the price the real price I would pay?
It is what Google lists at the time of the run. Hotels change prices all day, and the final price at checkout can differ. pricePerNight is the lowest price Google shows before taxes (it includes property fees). pricePerNightWithTaxes and totalPriceWithTaxes include taxes and fees when Google shows them.
Why do some hotels not appear? Hotels with no price for your dates (sold out or not bookable) are skipped and not charged. The run summary counts them.
A hotel name returned nothing. Why?
A name that matches more than one hotel is skipped, and the run status says "more than one hotel matched". A name that matches no hotel says "no hotel matched" and asks you to check the spelling. Add the city (Fairmont Austin Texas) or paste the entityToken from an earlier result into Hotel tokens.
Why are there fewer hotels than "total" says?
Google reports a large total for a city but stops paging after about 490 to 550 hotels per place and date. Ask for what you need with Max hotels per place (up to 500). When Google's list ends first, the run status says how many hotels it listed and how many had a price. To cover more of a big city, search its districts (for example Hotels in Montmartre, Paris) as separate places.
A place returned no hotels. Why?
The run still succeeds and the status says "No hotels found for" your search. Check the spelling, add the country, or write it the way you would type it into Google Hotels, for example Hotels in Times Square, New York.
Can I get reviews, photos or room-by-room rates? Not in this version. You get the rating, the review count and the star split, the main photo, and the price on each booking site.
Will it break when Google changes something? The Actor checks every reply: it must be for the dates, guests and currency you asked, and the hotels must have the expected shape. If Google changes its format the run fails with a clear message instead of returning wrong numbers, and no rows are charged.
Can I use it through the API or on a schedule? Yes. Start it from the Apify API, a schedule, Make, Zapier or n8n, and read the dataset when it finishes.
What happens when Google blocks the connection? The Actor slows down, switches proxy address, and moves to the next proxy tier. It never tries to solve a CAPTCHA or get around a challenge. The proxy advice appears in the status only when Google really blocked requests during the run.
Notes on accuracy
- Results depend on the point of sale (country of the visiting IP) and on the day.
- The list price can be for a different room type than a booking site's own page.
- Free-cancellation flags are best effort:
nullmeans Google did not say. - Sorting is done by Google's own ranking (the
positionfield). Sorting and filtering by price are on your side or through the filters above.
This Actor reads publicly visible prices. You are responsible for using the data in line with the law and Google's terms in your country.