Google Hotels Scraper - Prices, Rates & Availability
Pricing
from $2.39 / 1,000 hotel results
Google Hotels Scraper - Prices, Rates & Availability
Scrape Google Hotels prices, rates and availability for any city or hotel and dates: nightly price, taxes, every booking site's rate (Booking.com, Expedia, official site…), rating, reviews, stars, amenities. Rate-parity and price-change monitoring built in.
Pricing
from $2.39 / 1,000 hotel results
Rating
0.0
(0)
Developer
Quelli di Carne Genuina
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, neighborhood or list of hotels and any dates: nightly rate, total stay price, taxes and fees, the price on every booking site (official hotel website, Booking.com, Expedia, Hotels.com, Agoda, Trip.com and more), guest rating, reviews, star class, amenities and coordinates. Built-in rate parity check and price-change monitoring. No Google account, no browser, no cookies to manage.
Independent tool, not affiliated with Google LLC. It reads the public prices shown on google.com/travel/hotels.
What you get
One row per hotel and stay, with every booking site's price (real result, shortened):
{"hotelName": "River Palace Hotel","pricePerNight": 136.02,"totalRate": 272.04,"currency": "EUR","lowestPriceVendor": "Super.com","officialSitePrice": 202.73,"cheaperThanOfficialSite": ["Hotelsnest.com", "Super.com", "Amimir.com", "trivago DEALS"],"bookingSources": [{ "vendorName": "Super.com", "ratePerNight": 136.02, "totalRate": 272.05, "bookingUrl": "https://www.google.com/travel/lodging/clk?pc=…" }],"starRating": 4,"overallRating": 4.4,"reviewCount": 767,"checkInDate": "2026-11-20","checkOutDate": "2026-11-22"}
Try it in 1 click: the prefilled example runs in under a minute. Press Start with the prefilled input ("hotels in Rome", check-in in 30 days, 2 nights): in our test today it finished in 22 seconds at 512 MB and returns up to 20 hotels, so it costs at most $0.08 on the Apify Free plan (less on paid plans).
Price: from $3.99 per 1,000 hotels on the Apify Free plan down to $2.39 on Gold and above, booking-site prices included, no start fee.
Why this Google Hotels scraper
- 20% cheaper on every Apify plan than the most used Google Hotels actor (e.g. $3.99 vs $4.99 per 1,000 hotels on Free, $2.39 vs $2.99 on Gold and above; see the price table below), and every booking site's price is included in the per-hotel price.
- Built for reliability: each request is retried on a fresh IP, one failing city or hotel never fails the run, and a
RUN_SUMMARYrecord tells you what happened for each target. You always get the hotels that were collected. - Drop-in compatible:
locations,checkInDate,checkOutDate,adults,currency,languageCode,countryCode,maxResults,requestTimeoutSecswork exactly as in the popular Google Hotels actors (aliasessearchQuery,maxItems,language,countryaccepted too). - Rate parity out of the box: official-site price, cheapest site, and which sites undercut the official rate.
- Monitoring: relative dates (
"30 days") for schedules, previous price and % change on every row, optional output of changes only.
Who uses it
- Hotel revenue managers: track your property and your competitive set every day, across every channel Google shows.
- Rate parity / distribution teams: catch OTAs selling below the official website.
- Travel agencies, tour operators, travel startups: hotel inventory and prices for any destination, by date and occupancy.
- Market research and AI agents: "What does a 4-star hotel in Lisbon cost in December?" answered with fresh data.
Input
{"locations": ["hotels in Rome"],"hotels": ["Hotel Artemide Rome"],"checkInDate": "30 days","checkOutDate": "32 days","adults": 2,"childrenAges": [7],"currency": "EUR","countryCode": "it","maxResults": 50,"hotelClass": ["4", "5"],"minRating": "4.0","includeBookingSources": true}
| Field | What it does |
|---|---|
locations | Searches as typed in Google Hotels: "hotels in Rome", "Paris", "hotels near Times Square". |
hotels | Specific properties: Google Hotels URL, entity ID (entityId from a previous run) or just the hotel name. |
checkInDate / checkOutDate | YYYY-MM-DD or days from today ("30 days"). Defaults: 30 days from today, 1 night. |
adults / childrenAges | Occupancy of one room, e.g. 2 adults and [5, 9]. |
currency, languageCode, countryCode | Any ISO currency, Google language (hl) and market (gl). |
maxResults | Hotels per location (pagination is automatic). |
includeBookingSources | Price of every booking site with links (default on, no extra cost). |
minPrice, maxPrice, minRating, hotelClass | Filters; hotels filtered out are not charged. |
onlyPriceChanges, monitorStoreName | Monitoring mode: output only new hotels or changed prices. |
Output
One item per hotel and stay (real result, shortened):
{"hotelName": "River Palace Hotel","entityId": "ChcItbiE_4Lfs4JqGgsvZy8xdGh2X2RtdBAB","googleHotelsUrl": "https://www.google.com/travel/hotels/entity/ChcItbiE_4Lfs4JqGgsvZy8xdGh2X2RtdBAB","pricePerNight": 136.02,"pricePerNightDisplay": "€136","totalRate": 272.04,"currency": "EUR","lowestPriceVendor": "Super.com","officialSitePrice": 202.73,"cheaperThanOfficialSite": ["Hotelsnest.com","Super.com","Amimir.com","trivago DEALS"],"bookingSources": [{"vendorName": "Hotelsnest.com","isOfficialSite": false,"ratePerNight": 147.88,"totalRate": 295.76,"bookingUrl": "https://www.google.com/travel/lodging/clk?pc=AA80OswF_an21Ni..."},{"vendorName": "Super.com","isOfficialSite": false,"ratePerNight": 136.02,"totalRate": 272.05,"bookingUrl": "https://www.google.com/travel/lodging/clk?pc=AA80OsxGrOpYyAu..."}],"hotelClass": "4-star hotel","starRating": 4,"overallRating": 4.4,"reviewCount": 767,"gpsLatitude": 41.9133381,"gpsLongitude": 12.4749991,"checkInTime": "2:00 PM","checkOutTime": "11:30 AM","website": "https://www.riverpalacehotel.it/?utm_source=gbp&utm_medium=organic","ratingsBreakdown": [{"stars": 5,"percent": 67,"count": 488},{"stars": 4,"percent": 22,"count": 175}],"reviewsBreakdown": [{"name": "Breakfast","sentiment": 0.67,"totalMentioned": 97,"positive": 81,"negative": 9}],"nearbyPlaces": [{"name": "Piazza del Popolo","transportations": [{"type": 2,"duration": "4 min"}]}],"images": ["https://lh3.googleusercontent.com/grass-cs/AABkmLc..."],"location": "hotels in Rome","rank": 2,"checkInDate": "2026-11-20","checkOutDate": "2026-11-22","nights": 2,"adults": 2,"previousPricePerNight": 141.5,"priceChangePct": -3.9,"scrapedAt": "2026-10-16T19:51:17.462Z"}
pricePerNight is the nightly price Google shows for the stay (taxes included where Google includes them); totalRate is the stay total. RUN_SUMMARY in the key-value store lists, for each location or hotel, how many hotels were saved and any error.
Pricing
Pay per result, with every booking site's price included. The price per hotel depends on your Apify plan:
| Apify plan | Per hotel | Per 1,000 hotels |
|---|---|---|
| Free | $0.00399 | $3.99 |
| Bronze | $0.00346 | $3.46 |
| Silver | $0.00293 | $2.93 |
| Gold, Platinum, Diamond | $0.00239 | $2.39 |
No start fee. Hotels removed by your filters, and unchanged hotels in onlyPriceChanges mode, are not charged. Set a maximum charge per run to cap spending: the scraper stops cleanly when it is reached.
Migrating from zerobreak/google-hotels-scraper
All of zerobreak's input fields are accepted with the same names, so an existing input usually works after changing the actor ID to lagenuina_agency/google-hotels-scraper.
| zerobreak input | This actor | Notes |
|---|---|---|
locations | locations | zerobreak searches "Hotels in |
checkInDate / checkOutDate | checkInDate / checkOutDate | Same YYYY-MM-DD; relative dates like "30 days" also work, and both are optional here (default: 30 days from today, 1 night). |
adults | adults | Same. Children: add childrenAges. |
currency | currency | Same. |
languageCode | languageCode | Same (hl). |
countryCode | countryCode | Same (gl). |
maxResults | maxResults | Same meaning; maximum here is 500 per location (zerobreak allows up to 1,000). |
requestTimeoutSecs | requestTimeoutSecs | Same. |
proxyConfiguration | proxyConfiguration | Same; the default Apify Proxy is enough. |
| (not available) | hotels, minPrice, maxPrice, minRating, hotelClass, onlyPriceChanges | Extra: price specific hotels by name, URL or entity ID, filters, price-change monitoring. |
Output: the core fields keep the names shown in zerobreak's README example (hotelName, hotelDescription, gpsLatitude, gpsLongitude, hotelClass, starRating, overallRating, reviewCount, checkInTime, checkOutTime, pricePerNight, pricePerNightDisplay, totalRate, currency, amenityCodes, ratingsBreakdown, reviewsBreakdown, nearbyPlaces, bookingSources, checkInDate, checkOutDate, scrapedAt). Differences: reviewsBreakdown uses totalMentioned instead of total_mentioned; booking sources have isOfficialSite and totalRate instead of isSponsored and numGuests; there is no propertyType or top-level totalRateDisplay. Added here: entityId, googleHotelsUrl, website, images, lowestPriceVendor, officialSitePrice, cheaperThanOfficialSite, rank, nights, previousPricePerNight, priceChangePct.
Price per 1,000 hotels (public Apify Store prices, checked on 17 October 2026; both actors price by Apify plan):
| Apify plan | zerobreak | This actor |
|---|---|---|
| Free | $4.99 | $3.99 (-20%) |
| Bronze | $4.32 | $3.46 (-20%) |
| Silver | $3.66 | $2.93 (-20%) |
| Gold and above | $2.99 | $2.39 (-20%) |
Speed and completeness: we have not benchmarked the two actors side by side. Run the same input on both and compare your own runs.
Limits / not supported
- One room per search:
adults(up to 12) pluschildrenAges. Multi-room bookings are not supported. - Up to 500 hotels per location, and never more than Google itself lists for that search.
- Prices are the ones Google shows for the chosen market (
countryCode) and currency; whether taxes are included follows Google's display for that market. - No room types, rate plans, cancellation policies or review texts: you get the nightly and total price per booking site, ratings and review statistics.
- No Google-side sorting, amenity or free-cancellation filters.
minPrice,maxPrice,minRatingandhotelClassare applied by the actor after reading the results (filtered hotels are not charged). - A hotel given by name is matched to Google's first result for that name: check
matchedHotel, or use the Google Hotels URL / entity ID for an exact property. - If the booking-site prices of one hotel cannot be loaded, the hotel is still returned with
bookingSources: nullandbookingSourcesError.
Monitor hotel prices and rate parity
- Put your hotel and competitors in
hotels(names or Google Hotels URLs). - Use relative dates, e.g.
checkInDate: "14 days", so each scheduled run looks the same distance ahead. - Schedule the actor daily in Apify and connect Slack, email, Google Sheets, Make, n8n or Zapier.
- Alert on
cheaperThanOfficialSite(parity breach) or onpriceChangePct.
Use it from AI agents (MCP)
Any MCP client (Claude, ChatGPT, Cursor, custom agents) can call this scraper through the Apify MCP server:
{"mcpServers": {"apify": { "url": "https://mcp.apify.com/?actors=lagenuina_agency/google-hotels-scraper" }}}
Ask things like "Find 4-star hotels in Lisbon under €150 for 12-14 December" or "Is Booking.com cheaper than the official site of Hotel Artemide next weekend?": the inputs map directly to destination, dates, guests, currency and filters, and results come back as clean JSON.
Integrations and API
Call it from your code with the official Apify clients:
# pip install apify-clientfrom apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lagenuina_agency/google-hotels-scraper").call(run_input={"locations": ["hotels in Rome"], "checkInDate": "30 days", "checkOutDate": "32 days", "maxResults": 20})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
// npm i apify-clientimport { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('lagenuina_agency/google-hotels-scraper').call({"locations": ["hotels in Rome"], "checkInDate": "30 days", "checkOutDate": "32 days", "maxResults": 20});const { items } = await client.dataset(run.defaultDatasetId).listItems();
No-code: use the Apify app in n8n, Make or Zapier (action "Run Actor", pick lagenuina_agency/google-hotels-scraper), or the langchain-apify / CrewAI ApifyActorsTool integrations for AI agents. Results can also be pushed to Google Sheets, Slack, webhooks or any S3 bucket via Apify integrations.
More tools from Quelli di Carne Genuina
Ad intelligence
- Google Ads Transparency Scraper: every ad a brand or domain runs on Google Search, YouTube, Shopping, Maps and Play.
- Meta Ad Library Scraper: Facebook and Instagram ads by page, keyword or Ad Library URL, with creatives and landing pages.
- TikTok Top Ads Scraper: top-performing TikTok ads from the Creative Center with CTR, likes and MP4 video URLs.
- LinkedIn Ad Library Scraper: B2B ads of any company from the public LinkedIn Ad Library, with targeting and impressions.
Competitor & SEO research
- Similarweb Website Traffic Scraper: monthly visits, ranks, traffic sources and top countries for any list of domains.
- Google Trends Scraper: interest over time, by region, related queries and Trending Now.
- Google Play Store Scraper: app search, details, top charts and reviews from Google Play, any country.
Travel prices
- Google Flights Scraper: fares for the same trip, with airlines, stops, price level and price calendar.
Retail prices
- Woolworths AU Product Scraper: Woolworths Australia grocery prices, specials, unit prices and barcodes.
- Coles AU Product Scraper: Coles Australia grocery prices, half-price specials, unit prices and barcodes.
Content & social data
- YouTube Transcript Scraper: transcripts of videos, Shorts, playlists and channels as text, SRT or VTT.
- Medium Scraper: Medium articles by tag, author or search, with full text as Markdown.
- Likee Scraper: Likee videos, profiles and creator engagement analytics.
FAQ
How do I get hotel prices from Google Hotels for specific dates?
Set locations (or hotels), checkInDate and checkOutDate. Each hotel comes back with the nightly and total price for that stay.
Can I see the price on Booking.com, Expedia and the hotel's own website?
Yes, bookingSources lists every booking site Google shows for the stay, with nightly and total price and the booking link. officialSitePrice and cheaperThanOfficialSite summarize rate parity.
Is there a Google Hotels API? Google does not offer a public Google Hotels API (its Hotel APIs are for hotels and partners sending their own prices). This actor gives you the public prices as JSON through the Apify API, from Python, JavaScript, n8n, Make, Zapier or MCP.
Does it include taxes?
pricePerNight is the nightly price as Google displays it for your market, and each booking source has its own nightly and total price.
Which currencies, languages and countries are supported?
Any currency Google Hotels supports (USD, EUR, GBP, JPY, CHF…), any Google language (languageCode) and market (countryCode).
How many hotels can I get per city?
Up to maxResults per location (default 20, up to 500); the scraper pages through Google's results.
How do I track hotel prices over time?
Schedule the actor with relative dates. Each row carries previousPricePerNight and priceChangePct; turn on onlyPriceChanges to receive only changes.
Do I need proxies or a Google account? No account. The default Apify Proxy works; failed requests are retried automatically on a new IP.
Something broke? Open an issue on the Issues tab: we answer within 24 hours.