Google Hotels Scraper & API - Prices, OTA Rates & Room Rates
Pricing
from $2.00 / 1,000 hotels
Google Hotels Scraper & API - Prices, OTA Rates & Room Rates
Scrape Google Hotels by destination, dates and guest country: nightly and total prices, ratings and coordinates. Optional details add every OTA rate with its booking link, room rates with cancellation and breakfast, price insights and review summary. CSV, JSON or API.
Pricing
from $2.00 / 1,000 hotels
Rating
5.0
(1)
Developer
gianluca de dominicis
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
a day ago
Last modified
Categories
Features
Share
Google Hotels Scraper & API - Prices, OTA Rates & Room Rates
Compare Google Hotels rates for a city, hotel or address, with nightly and total-stay prices, ratings and locations. Export results to CSV, Excel or JSON, or access them through the API. Optional details add every booking partner's rate (OTA rates) with its booking link, room rates with cancellation and breakfast, Google's price insights, the hotel's website, check-in times, amenities and a review summary. Taxes and fees follow the source data: check pricesIncludeTaxes before treating a price as tax-inclusive.
⭐ Found this Actor useful? Leave a review — it takes 30 seconds and helps other people find it.
🛠️ Something not working? Open an issue with the run link, expected behavior and observed result. We review reported issues; resolution time depends on the cause.
What you get for each hotel
- 🌍 62 countries and 44 currencies — search as a visitor from any supported market across Europe, the Americas, the Middle East, Africa and Asia-Pacific, with prices in the local currency (EUR, USD, GBP, SEK, NOK, DKK, PLN, HUF, KRW, MYR, ZAR and more).
- 💶 Nightly and total-stay prices in your chosen currency and market. Check
pricesIncludeTaxes; an unknown tax basis is not confirmed tax inclusion. - 🏷️ Available booking partner prices (OTA rates) — Booking.com, Expedia, Agoda, the official site… — each with its booking link, the cheapest one, the typical price range and Google's low / typical / high verdict (optional)
- 🛏️ Room rates of the featured partners: room name, bed type, free cancellation and breakfast included, each with its price (optional)
- 🏨 Hotel facts: official website, description, check-in and check-out times, popular amenities (optional)
- 💬 Review summary: what guests mention most (Breakfast, Location, Cleanliness…) with the number of mentions, and ratings on other sites such as Tripadvisor (optional)
- ⭐ Guest rating, number of reviews, hotel class (stars), amenities, coordinates and the Google Hotels link
- 📍 Or the hotels closest to any address or landmark, sorted by distance
First run: open Input, paste the basic example below, update its dates if needed, then click Start. It requests up to 20 hotels in Rome, for 2 adults, in EUR, with optional details switched off. If 20 hotels are returned, the Actor charge is $0.06 at the base rate, before plan discounts. Open the completed run's dataset and export CSV, Excel or JSON. No Google account, login or cookies are needed.
Real results — hotels close to Madison Square Garden, 2 adults, Oct 22–24, 2026:
| Rank | Hotel | Distance | Per night (incl. taxes) | Total stay | Rating | Stars |
|---|---|---|---|---|---|---|
| 1 | Fairfield by Marriott Inn & Suites Midtown Manhattan/Penn Station | 0.23 km | $582 | $1,164 | 4.2 | 4 |
| 2 | Renaissance New York Midtown Hotel | 0.25 km | $641 | $1,282 | 4.4 | 4 |
| 3 | The New Yorker Hotel | 0.25 km | $694 | $1,387 | 3.9 | 4 |
Why this Google Hotels scraper?
| Capability / common requirement | This Actor |
|---|---|
| Frequent failed runs, unverified data | Historical validation: we checked 156 prices by hand against Google Hotels in a browser — 153 identical; the other 3 were a price that changed between checks and two offers personalized by the booking site. Incomplete pages are retried automatically from a new IP |
| One price per hotel, often before taxes | Nightly and total-stay prices as reported by Google, plus before-tax prices when available. Check pricesIncludeTaxes before comparing tax-inclusive rates |
| Only the price Google highlights | Available booking partner offers and the lowest observed offer (Google's highlighted price is not always the lowest) |
| Prices from a random server location | Choose the visitor's country: partners, taxes and prices are requested for the selected market; results can differ by session |
| Just the first page, or "thousands" that are mostly duplicates | Expanded destination coverage: deep pagination plus related searches (B&Bs, hostels, apartments, 5-star, city center…), merged without duplicates |
| Only "hotels in a city" | Hotels near any address or landmark ("Colosseum", "Via Nazionale 22, Rome", "Madison Square Garden"), sorted by distance, within the radius you choose |
| A specific hotel name returns a different hotel | Single-hotel searches — inspect the returned entity ID and name to confirm the match |
| No context on whether a price is good | Typical price range for your dates and Google's price insight (low / typical / high) |
Google Hotels API vs this scraper
Google does not offer a public Google Hotels API. This Actor works as one: send a destination and dates (via the Apify API, MCP or x402) and get structured JSON back — prices, available booking partners, ratings and more.
Coverage depends on source availability, filters and accessible pages; complete coverage is not guaranteed. Any validation figures below or above describe historical samples, not a guarantee of future accuracy or uptime.
Use cases
- AI travel agents: find and compare hotels for a user's exact dates and party size, with booking links.
- Price monitoring: track rates for a city or a list of hotels and get alerted when they drop.
- Trips around an event or a place: hotels within walking distance of a venue, a conference center, a hospital or an office.
- Hotel revenue management: compare observed rates for your hotel and competitors; room and cancellation terms may differ.
- Market research: average prices, availability and ratings by destination and season.
How to use
- Enter one or more destinations or hotels (e.g.
hotels in Rome,Hotel Artemide Rome) — or an address or landmark in Near an address or landmark (e.g.Colosseum, Rome) plus a Max distance (km). - Set check-in / check-out dates, adults, currency and the country to search from.
- Optional: turn on Include all booking offers, room rates & price insights for partner-by-partner prices.
- Click Start and export the results as JSON, CSV or Excel, or fetch them via API.
Input
Start with this basic configuration. The example uses a three-night stay; replace both fixed dates with future dates appropriate for your run. includeDetails: false keeps the first test to the base hotel charge.
{"queries": ["hotels in Rome"],"checkIn": "2026-11-20","checkOut": "2026-11-23","adults": 2,"currency": "EUR","country": "IT","language": "en","maxResultsPerQuery": 20,"includeDetails": false}
Hotels near a place
{"near": "Colosseum, Rome","maxDistanceKm": 1,"onlyAvailable": true,"currency": "EUR","country": "IT","maxResultsPerQuery": 20}
The place is located with OpenStreetMap (coordinates like 41.8902, 12.4922 also work). Results come sorted by straight-line distance, each with distanceKm, and nearResolvedTo shows the exact place that was matched. In our tests the 20 hotels returned around the Colosseum were all within 240 m, and hotel coordinates matched Google Maps exactly.
Output
Basic output: what to look for
This excerpt shows the base fields for the same destination, stay dates, party size and currency as the input above. It is taken from the existing historical example below, with optional detail fields omitted—not a newly executed run or a current price quote. Actual hotel availability and prices change.
{"query": "hotels in Rome","name": "Caravel Hotel - 4 stars","checkIn": "2026-11-20","checkOut": "2026-11-23","adults": 2,"country": "IT","currency": "EUR","nights": 3,"pricePerNight": 78,"totalPrice": 234,"pricesIncludeTaxes": true}
Optional details: extended historical example
Set includeDetails to true to request booking-partner offers with booking links, room rates, price insights, hotel facts and the review summary. This adds a separate hotel-details charge. At base rates, 20 hotel events plus 20 hotel-details events cost $0.16: $0.06 + $0.10. The extended historical item below illustrates the additional fields; it is not a current offer or a promise that every field will be available.
{"query": "Hotel Artemide Rome","position": 1,"name": "Hotel Artemide","type": "hotel","available": true,"pricePerNight": 290,"totalPrice": 869,"currency": "EUR","nights": 3,"pricesIncludeTaxes": true,"rating": 4.8,"reviewCount": 2000,"reviewCountIsRounded": true,"stars": 4,"checkIn": "2027-02-12","checkOut": "2027-02-15","adults": 2,"country": "IT","googleHotelsUrl": "https://www.google.com/travel/hotels/entity/...","details": {"address": "Via Nazionale, 22, 00184 Roma RM","phone": "06 489911","lowestPricePerNight": 270,"lowestTotalPrice": 809,"lowestPriceProvider": "Priceline","typicalPriceRange": null,"priceInsight": null,"offers": [{"provider": "Priceline", "pricePerNight": 270, "totalPrice": 809, "pricePerNightBeforeTaxes": 246, "bookingUrl": "https://www.google.com/travel/lodging/clk?…", "freeCancellation": false, "perks": []},{"provider": "Super.com", "pricePerNight": 297, "totalPrice": 892, "pricePerNightBeforeTaxes": 272, "bookingUrl": "https://www.google.com/travel/lodging/clk?…", "freeCancellation": false, "perks": []},{"provider": "Expedia.com", "pricePerNight": 314, "totalPrice": 942, "pricePerNightBeforeTaxes": 272, "bookingUrl": "https://www.google.com/travel/lodging/clk?…", "freeCancellation": false, "perks": ["Free Wi-Fi"]}],"roomRates": [{"provider": "Priceline", "room": "Basic Double Room", "conditions": "1 double bed", "freeCancellation": false, "breakfastIncluded": false, "pricePerNight": 270, "totalPrice": 809, "pricePerNightBeforeTaxes": 246},{"provider": "Priceline", "room": "Comfort Double Room", "conditions": "1 double bed · Free cancellation until Feb 10 · breakfast", "freeCancellation": true, "breakfastIncluded": true, "pricePerNight": 372, "totalPrice": 1117, "pricePerNightBeforeTaxes": 325}],"website": "https://www.hotelartemide.it/it","description": "A 10-minute walk from Termini Station, this upscale hotel in a 19th-century building is also a 15-minute walk from the Spanish Steps and 2 km from the Colosseum Roman amphitheater.","checkInTime": "2:00 PM","checkOutTime": "12:00 PM","popularAmenities": ["Spa", "Hot tub", "Airport shuttle", "Wi-Fi (free)"],"reviewTopics": [{"topic": "Wellness", "mentions": 94},{"topic": "Bar", "mentions": 186},{"topic": "Breakfast", "mentions": 294},{"topic": "Service", "mentions": 505}],"otherSiteRatings": [{"site": "Priceline", "rating": 9.2, "scale": 10, "reviewCount": 32},{"site": "Tripadvisor", "rating": 4.8, "scale": 5, "reviewCount": 9593}]}}
| Field | Meaning |
|---|---|
pricePerNight / totalPrice | Price per night and for the whole stay, taxes and fees as reported; inspect pricesIncludeTaxes and do not assume an unknown tax basis is comparable |
pricePerNightIsDerived | true when Google showed a before-tax nightly price and we derived the after-tax one from the total (±1 rounding) |
available | false when no priced availability was observed in the returned source data; this does not prove the hotel is sold out (turn on Only hotels with rooms available to skip them) |
latitude / longitude | Hotel location as on Google Maps; address and phone when Google lists them on the results page |
distanceKm | Only with Near: straight-line distance from the place, in km |
type | hotel or vacation_rental (apartments and houses listed on Google Hotels) |
stars | Official hotel class (1–5 stars); rating is the guest review score out of 5 |
reviewCountIsRounded | Google abbreviates large counts (e.g. "2K") |
details.lowestPriceProvider | Booking site with the lowest observed offer among returned partners |
details.priceInsight | Google's verdict on the current price for your dates (e.g. low, typical, high) |
details.offers[].bookingUrl | Link to that partner's offer for your dates, through Google's redirect. Only free booking links are returned: an offer that Google shows only as a paid ad has null |
details.offers[].perks / freeCancellation | What the partner includes, as shown by Google (Free Wi-Fi, Free breakfast, Free cancellation) |
details.roomRates | Room-level rates of the featured partners: room, conditions (bed type, cancellation deadline, breakfast), freeCancellation, breakfastIncluded and prices |
details.website, description, checkInTime, checkOutTime, popularAmenities | The hotel's own facts as listed on Google Hotels |
details.reviewTopics | Topics guests mention in Google reviews, with the number of mentions |
details.otherSiteRatings | Rating, scale (5 or 10) and review count on other travel sites |
How much does it cost?
Prices and examples below use base rates before plan discounts. The Store’s “from” price may reflect a higher-plan discount; check the Pricing tab for your current plan’s rate.
Pay per event — no monthly rental, no start fee, no proxy or compute surcharge:
- Hotel — each hotel in the results: $3.00 per 1,000 (volume discounts on higher Apify plans).
- Hotel details — only if you enable Include all booking offers, room rates & price insights: $5.00 per 1,000 hotels, additional to the base hotel event.
For the first example:
| Configuration | Base-rate calculation | Actor charge (USD) |
|---|---|---|
| 20 hotels, details off | 20 × $3 / 1,000 | $0.06 |
| 20 hotels + 20 hotel-details events | $0.06 + (20 × $5 / 1,000) | $0.16 |
These are Actor charges before plan discounts, not accommodation prices. The final charge follows the events actually billed. Set Max cost per run to limit spending.
Automate & integrate
Scheduling, notifications and external destinations require configuration in Apify or the relevant integration.
Schedule daily runs to monitor prices, trigger webhooks, or send results to Google Sheets, Slack, Make, Zapier or n8n. Call it from any language through the Apify API.
Use with AI assistants (MCP)
Add this Actor as a tool to Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server (https://mcp.apify.com). Your assistant can then search hotels and compare booking offers on demand.
Agent-ready: autonomous payments (x402 & Skyfire)
Where supported by Apify, agents can use platform payment integrations such as x402 or Skyfire. Availability, authentication and payment setup depend on Apify’s current integration requirements.
FAQ
Why do prices depend on the "Search from country" setting? Google Hotels shows different booking partners and displays taxes differently depending on where the traveler is. This Actor fetches results from a residential IP in the country you choose, to approximate the selected market (for the United States, plain result lists are read from US datacenter IPs, which returned the same prices as residential ones for 216 of 217 hotels in our check; hotel details and "near" searches always use residential IPs); personalization, sampling and timing can still produce different prices.
Can I include children? Not yet: Google Hotels ignores children passed through search links. Use the number of adults for now.
How many hotels can I get? Google says "15,000 results" for a city like Rome, but a single search only shows ~700–750 different hotels — deeper pages repeat the same ones. With Find more hotels with related searches on (default), the Actor adds related searches and merges them without duplicates: in our test, Rome reached 1,131 unique hotels in one run (the run's spending cap stopped it there). For large runs, raise Max cost per run in the run options: 1,000 hotels cost about $3.
Tested in October 2026 with a cap of 1,000 per city — every run succeeded on the first try:
| Destination | Unique hotels | With price for the dates |
|---|---|---|
| Milan, Florence, Naples | 1,000 each | 83–87% |
| Berlin | 1,000 | 85% |
| New York | 1,000 | 87% |
| Tokyo | 1,000 | 74% |
| Dublin | 686 observed in that test | 61% |
Why do I sometimes get fewer hotels than requested? The destination may have fewer hotels with offers for your dates, or your Max cost per run was reached. The run's status message tells you which.
How does "Near an address or landmark" work?
The Actor finds the place on OpenStreetMap, searches Google Hotels around it, measures the straight-line distance to every hotel (from the hotel's own coordinates) and returns the closest ones first, up to Max distance (km). Distance is "as the crow flies", not walking time: walking routes, barriers and entrances can make the actual journey substantially longer. Check nearResolvedTo if the place name is ambiguous, or pass coordinates instead.
Is the price "live"? Each run requests prices from Google Hotels; source caching and partner updates can cause differences from checkout. Hotel prices can change within minutes, so compare runs made at the same time.
Something looks wrong? Open an issue on the Issues tab with the run link. Include the expected behavior and observed result. Resolution time depends on the cause.
More tools from us
- Kleinanzeigen Scraper & API — available listings on Kleinanzeigen.de, with search partitioning for larger result sets, with price drops and only-new monitoring.
- Google Flights Scraper & API — fares, stops, layovers and CO2 emissions for any route, flexible dates.
- Google Trends Scraper & API — interest over time, by region, related queries and trending searches.
- Google Play Scraper & API — Android app data, star histograms and reviews.
- App Store Scraper & API — iPhone app data, star histograms, top charts and reviews in 150+ countries.
- Workday Jobs Scraper & API — available jobs from supported Workday careers sites, with exact posting date, salary range and remote status.
- Eventbrite Scraper & API — available events by city or online, with ticket prices, sold out and organizer details.
Legal
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC. It only collects publicly available information from Google Hotels. All trademarks belong to their respective owners.