Google Hotels Scraper - Nightly Prices, Stars & Booking Sites
Pricing
from $4.00 / 1,000 hotels
Google Hotels Scraper - Nightly Prices, Stars & Booking Sites
List the hotels Google Hotels shows for any city or area, priced for your dates and guests: per-night rate, stay total with taxes, hotel class, guest score, reviews, amenities, deals, map position and photos, plus each booking site's rate on request. $4 per 1,000 hotels; failed pages are free.
Pricing
from $4.00 / 1,000 hotels
Rating
0.0
(0)
Developer
Tenfold Fleet
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 hours ago
Last modified
Categories
Share
What does Google Hotels Scraper do?
Google Hotels Scraper lists every hotel in a destination that Google Hotels shows for your check-in date, check-out date and guests, with the nightly price, what the whole stay costs (taxes and fees broken out), star class, guest rating, review count, amenities, deal badges, coordinates, photos and the hotel's website. Switch on one option and it also opens each hotel's rate list for the price from each booking site (Booking.com, Expedia, Agoda, Hotels.com, the direct rate on the hotel's website and others), plus the cheapest seller, the street address and the phone.
Type a city, region, neighborhood or landmark (Lisbon, Austin, TX, Shinjuku, Tokyo), pick your dates, and get a clean table to export, or use the Actor as a Google Hotels API in scripts, n8n, Make or Zapier workflows and AI agents. It reads Google's pages over plain HTTP, without a browser, so 100 hotels take seconds.
Not affiliated with Google. Google Hotels is a Google LLC trademark, named here only to say where the data comes from.
How it differs from our Google Travel Hotel Rate Tracker: this Actor starts from a place and finds the hotels there, one row per hotel with one price for one stay. The rate tracker starts from hotels you already know and follows each one's booking-site rates across many stay dates.
Why use this Google Hotels scraper?
- 🏨 Whole-destination coverage: it walks through Google's result pages and drops the properties repeated between them, so 100 hotels per city take about 7 pages, and big cities reach several hundred.
- 📅 Prices you can trust: Google quietly switches to other dates (or another currency) when it cannot price yours. This Actor checks the dates, nights, currency, adults and child ages behind every page against your input. A mismatch is reported as a free error row and is never charged.
- 📈 Rate monitoring: schedule it daily with Check-in days from today (for example always 30 days ahead) and track how a market's prices move.
- 💼 Revenue management: compare your hotel with every competitor in the area by stars, rating and nightly rate for the same stay.
- 🧭 Travel comparison and agency tools: feed hotel lists, photos, amenities and booking-site prices into your own site or app.
- ✅ Measured reliability: in our cloud tests on 23-24 Oct 2026, 441 of 441 Google pages (search pages and price lists for 66 destinations, up to 20 at a time) loaded on the first try from Apify servers, and every destination returned hotels. A blocked page is retried once through Apify's datacenter proxy; a page that still fails comes back as a free error row.
- 💸 Pay only for real hotels: filtered properties, repeats, blocked pages and unrecognised destinations cost nothing.
What data can it extract?
| Field | Example |
|---|---|
name, propertyType | Czar Lisbon Hotel, hotel (or vacation rental) |
position | 2 (rank in Google's list for the destination) |
starClass, rating, reviewCount | 4, 4.1, 1468 |
nightlyPrice, totalPrice | 106.05, 212.09 (for the whole stay) |
priceBeforeTaxes, taxesAndFees | 183.17, 28.92 |
currency, checkIn, checkOut, nights, adults, children, childAges | USD, 2026-11-12, 2026-11-14, 2, 2, 0, [] |
dealBadge, dealText | DEAL, 19% less than usual |
amenities | ["Breakfast", "Free Wi-Fi", "Parking", "Air conditioning", "Bar", ...] |
latitude, longitude, countryCode | 38.7293, -9.1348, PT |
website, hotelUrl, googleMapsUrl | hotel site, Google Hotels page for your dates, Google Maps link |
description, checkInTime, checkOutTime, imageUrls | short description, 3:00 PM, 12:00 PM, up to 10 photos |
entityId, googlePlaceId | Google's hotel id and place id, stable for joins between runs |
otaOffers (option) | [{"provider": "Agoda", "nightlyPrice": 106.05, "totalPrice": 212.09, "isOfficialSite": false, ...}] |
lowestPriceProvider, lowestOfferPrice, address, phone (option) | Agoda, 106.05, Av. Alm. Reis 103, 1150-020 Lisboa, Portugal, +351 21 111 5200 |
How to scrape Google Hotels prices
- Open the Actor in Apify Console with Try for free.
- In Destinations, add one or more places, e.g.
Lisbon,Austin, TX. - Set the check-in and check-out dates (or Nights), the adults, and the children with their ages.
- Choose the currency, Max hotels per destination, and any filters (minimum stars, hotels only, skip hotels without a price).
- Optional: turn on Add booking-site prices for each site's rate.
- Press Start. When the run ends, export the table as JSON, CSV, Excel or HTML, or fetch it through the Apify API.
How much does it cost?
Pay-per-event pricing, the same on every Apify plan:
| Event | Price |
|---|---|
| Hotel (one property with its details and price for your stay) | $4 per 1,000 hotels ($0.004 per hotel) |
| Booking-site prices (only with that option on, per hotel whose price list was read) | $5 per 1,000 hotels ($0.005 each) |
| Run start | $0.00005 per run |
Free of charge: properties removed by your filters, repeats across result pages, blocked or failed pages, destinations Google does not recognise, and any page where Google priced other dates, guests or currency than you asked for. When a price list fails, or a sold-out hotel's list has no booking site in it, the hotel is charged as a hotel only.
Examples: 10 cities with 100 hotels each cost about $4. The same with booking-site prices cost about $9. On the Apify free plan, the $5 monthly credit covers about 1,200 hotels, or about 550 with booking-site prices. Put a cap in Max cost per run; the Actor ends cleanly once the cap is used up.
Input
{"destinations": ["Lisbon", "Austin, TX"],"checkIn": "2026-12-04","checkOut": "2026-12-07","adults": 2,"children": 1,"childAges": [8],"currency": "EUR","country": "us","maxHotelsPerDestination": 100,"minStars": 3,"excludeVacationRentals": true,"includeOtaPrices": true}
For schedules, leave checkIn empty and set "checkInDaysFromToday": 30 with "nights": 2.
Output
One row per hotel. Export it as JSON, CSV, Excel, XML or HTML.
{"destination": "Lisbon","resolvedDestination": "Lisbon","position": 2,"name": "Czar Lisbon Hotel","propertyType": "hotel","starClass": 4,"rating": 4.1,"reviewCount": 1468,"nightlyPrice": 106.05,"totalPrice": 212.09,"priceBeforeTaxes": 183.17,"taxesAndFees": 28.92,"currency": "USD","checkIn": "2026-11-12","checkOut": "2026-11-14","nights": 2,"adults": 2,"children": 0,"childAges": [],"dealBadge": "DEAL","dealText": "19% less than usual","lowestPriceProvider": "Agoda","lowestOfferPrice": 106.05,"otaOffers": [{ "provider": "Agoda", "nightlyPrice": 106.05, "totalPrice": 212.09, "isOfficialSite": false, "isSponsored": false, "bookingLink": "https://www.google.com/travel/lodging/clk?..." },{ "provider": "Booking.com", "nightlyPrice": 156.4, "totalPrice": 312.8, "isOfficialSite": false, "isSponsored": false, "bookingLink": "https://www.google.com/travel/lodging/clk?..." }],"address": "Av. Alm. Reis 103, 1150-020 Lisboa, Portugal","phone": "+351 21 111 5200","latitude": 38.7293279,"longitude": -9.1348492,"countryCode": "PT","website": "http://www.czarlisbonhotel.com/","amenities": ["Breakfast", "Free Wi-Fi", "Parking", "Air conditioning", "Bar", "Restaurant", "Room service", "Airport shuttle", "Full-service laundry", "Accessible", "Business center", "Kid-friendly", "Smoke-free property"],"description": "Understated rooms in a polished lodging featuring an elegant restaurant, a bar & breakfast.","checkInTime": "3:00 PM","checkOutTime": "12:00 PM","imageUrls": ["https://lh3.googleusercontent.com/..."],"hotelUrl": "https://www.google.com/travel/hotels/entity/ChcI0e_Z0vHt2vYxGgsvZy8xdGd0Z3MwdhAB?hl=en-US&gl=us&ts=...","entityId": "ChcI0e_Z0vHt2vYxGgsvZy8xdGd0Z3MwdhAB","googlePlaceId": "0xd193399ff4fa2a3:0x31ed6b6f1a5677d1","googleMapsUrl": "https://maps.google.com/?cid=3597649802266310609","scrapedAt": "2026-10-23T11:43:28.210Z"}
A destination that is blocked, unknown or priced for other dates adds one free row with an error field, so you know what to run again.
Tips
- Name the place precisely:
Springfield, IL,Shinjuku, TokyoorEiffel Towerwork best, andresolvedDestinationshows what Google matched. When Google can't place the text, it answers with hotels from all over your search region; the Actor detects this and returns one free error row. - Children and bigger groups: each child is priced by age, and some booking sites have no rate for three or more guests in one room, so expect fewer offers there.
- Booking links in
otaOffersare Google's redirect links, copied as they appear. The Actor never follows them. - Sold out? A listed property with no rate for your stay has an empty
nightlyPrice. Turn on Skip hotels without a price to keep priced rows only. - Money and region:
currencyis the money every price is shown in; if Google can't price in it you get a freecurrency mismatchrow.countryis the Google region you search from and mostly affects the booking partners listed.
AI agents and MCP
Any assistant that speaks MCP can use this Actor via Apify's MCP server. Point the client at https://mcp.apify.com?tools=tenfoldfleet/google-hotels-scraper; it asks you to log in to Apify once. The agent then writes the input, starts the run and reads the hotels, at the same per-event price as any run.
FAQ
Does Google block it?
Not in our tests: 441 of 441 pages loaded on the first try from Apify servers, at up to 20 destinations in parallel, with no proxy. If Google starts refusing pages, the Actor switches the rest of the run to Apify's datacenter proxy by itself, and you are never charged for a page that failed.
Does it need a Google login, API key or cookies?
No login, key or cookie is involved: the Actor loads the same public pages your browser shows when you are signed out.
How many hotels does one destination return?
As many as Google lists, up to 500. Each results page holds roughly 20 properties and neighbouring pages overlap; the Actor skips the repeats and stops when a page adds nothing new.
How do you make sure the price is for my dates?
Every Google page states the dates, nights, guests and currency it was priced for. The Actor compares them with your input on every page and every price list. If Google answered for something else (for example a date in the past), you get a free date mismatch, occupancy mismatch or currency mismatch row instead of wrong prices.
Does it include vacation rentals?
Yes: Google's hotel list also contains apartments and other rentals, and propertyType tells them apart. Turn on Hotels only to drop them, or set Minimum hotel class.
Can I scrape one hotel over many dates?
This Actor reads a whole destination for one stay. For one hotel across a date range, use our Google Travel Hotel Rate Tracker.
Is it legal to scrape Google Hotels?
It reads only what Google Hotels shows to every visitor: business listings and their prices, no personal data. Whether your particular use is allowed depends on where you are and what you do with it, so get legal advice if in doubt.