Google Hotels Extractor Fast & affordable
Pricing
from $1.99 / 1,000 results
Google Hotels Extractor Fast & affordable
Google Hotels scraper that pulls live prices, guest ratings, review counts, and locations for any city and date range. No login or API key needed. It walks the full result list and exports clean JSON or CSV for price tracking, travel research, and SEO work.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Kawsar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Google Hotels Extractor: Scrape Hotel Prices, Ratings, and Reviews
Google Hotels Extractor pulls live hotel listings straight from Google Hotels search results. Give it a city and your travel dates, and it returns hotel names, nightly prices, star ratings, review counts, map coordinates, descriptions, and photos as structured data you can download in JSON, CSV, or Excel, or send to another app.
It runs on plain HTTP requests, not a browser. That makes it fast, cheap to run, and free of logins, cookies, or API keys. A typical search finishes in seconds, and one run can collect hundreds of unique hotels per location.
What data does this actor extract?
For every hotel in the search results you get:
- Hotel name and star class (for example, 4-star hotel)
- Nightly price for your dates, as displayed and as a plain number, in your chosen currency
- A reference rate when Google shows one, so you can spot deals
- Guest rating out of 5 and the total review count
- Latitude, longitude, and the Google place id
- A short description and the main photo URL
- A Google Maps link and a Google Hotels link for the exact property
- The search location, your check-in and check-out dates, and a scrape timestamp
Use cases
- Hotel price tracking: watch how nightly rates for a city move across different check-in and check-out dates
- Travel market research: compare hotel prices, ratings, and star classes across several cities in one run
- Revenue management: benchmark your property against nearby competitors on price and guest rating
- SEO and content work: pull real hotel data for travel guides, comparison pages, and destination articles
- Lead generation: build lists of hotels with locations and ratings for a target market
- Data science: feed clean, structured hotel data into pricing models and dashboards
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
locations | array | ["New York"] | One or more places to search, one per line. Cities work best; neighborhoods work too. |
checkInDate | string | 2026-08-01 | Check-in date in YYYY-MM-DD format. Prices are returned for this stay. |
checkOutDate | string | 2026-08-03 | Check-out date in YYYY-MM-DD format. Must be after check-in. |
adults | integer | 2 | Number of adult guests. |
currency | string | USD | Three-letter currency code for prices: USD, EUR, GBP, JPY, BDT, and any other code Google supports. |
languageCode | string | en | Interface language for results, for example en, fr, de, es. |
countryCode | string | us | Two-letter search region, for example us, gb, fr, bd. |
maxResults | integer | 20 | Upper limit on hotels stored per location. Raise it up to 1000 for large extractions. |
requestTimeoutSecs | integer | 30 | Timeout for each request to Google. |
proxyConfiguration | object | Datacenter (Anywhere) | Proxy type and location for requests. Supports Datacenter, Residential, Special, and custom proxies. Optional; the actor falls back to a direct connection if the proxy fails. |
Example input
{"locations": ["New York", "Paris"],"checkInDate": "2026-08-01","checkOutDate": "2026-08-03","adults": 2,"currency": "USD","languageCode": "en","countryCode": "us","maxResults": 100,"proxyConfiguration": { "useApifyProxy": true }}
Output
The actor stores results in a dataset. Each hotel is one record:
{"name": "The Manhattan at Times Square Hotel","price": "$196","priceValue": 196.22,"currency": "USD","compareRate": 350,"rating": 3.0,"reviewCount": 10116,"hotelClass": "4-star hotel","starRating": 4,"latitude": 40.7622856,"longitude": -73.9826404,"placeId": "0x89c258f88254f2c3:0xe0e14597c5400022","hotelDescription": "Polished hotel offering streamlined rooms & suites, plus a marble-clad lobby lounge & a gym.","imageUrl": "https://lh5.googleusercontent.com/proxy/...","googleMapsUrl": "https://www.google.com/maps?cid=16204681299999999999","googleHotelsUrl": "https://www.google.com/travel/search?q=The+Manhattan+at+Times+Square+Hotel+New+York","location": "New York","checkInDate": "2026-08-01","checkOutDate": "2026-08-03","scrapedAt": "2026-07-11T10:34:32+00:00"}
| Field | Type | Description |
|---|---|---|
name | string | Hotel name. |
price | string | Nightly price with currency symbol. |
priceValue | number | Nightly price as a plain number, ready for spreadsheets and models. |
currency | string | Currency the price is quoted in. |
compareRate | number | Reference rate Google compares the deal against, when shown. |
rating | number | Average guest rating out of 5, computed from the review breakdown. |
reviewCount | integer | Total number of guest reviews. |
hotelClass | string | Star class label, for example 4-star hotel. |
starRating | integer | Numeric star class from 1 to 5, when published. |
latitude | number | Hotel latitude. |
longitude | number | Hotel longitude. |
placeId | string | Google place identifier, useful for joining with other Google data. |
hotelDescription | string | Short description of the hotel. |
imageUrl | string | Main hotel photo URL. |
googleMapsUrl | string | Google Maps link to the exact property. |
googleHotelsUrl | string | Google Hotels search link for the property, to compare rates and book. |
location | string | Search location the hotel was returned for. |
checkInDate | string | Check-in date used for the price. |
checkOutDate | string | Check-out date used for the price. |
scrapedAt | string | UTC time the record was collected. |
How it works
- For each location, the actor loads Google's hotel search page once and reads the current search configuration from it, so nothing is hardcoded and the actor keeps working when Google changes internal identifiers.
- It then calls the same data endpoint the Google Hotels page itself uses, with your dates, guests, currency, language, and region.
- It follows Google's own next-page tokens to walk through the full result list, about 20 hotels per page.
- If the list ends before your
maxResults, it runs extra passes with different serving orders. Each order surfaces hotels the previous pass never showed. - Every record is deduplicated by place id, cleaned, and stored in your dataset.
How to use
- Open the actor on Apify and press Try for free.
- Enter one or more locations, your dates, and the number of hotels you want.
- Press Start. A run for the default 20 hotels takes well under a minute.
- Download the results from the Dataset tab as JSON, CSV, Excel, or HTML, or fetch them through the Apify API.
You can also schedule the actor to run daily or weekly to track prices over time, and connect a webhook to get notified when results are ready.
Tips for better results
- Ask for what you need.
maxResults: 20answers most questions in seconds;maxResults: 500is there when you need depth. - Prices depend on dates. Weekend and holiday stays often price higher, so keep dates consistent when comparing runs.
- Set
currencyandcountryCodetogether for the cleanest localized results, for example EUR with fr, or BDT with bd. - Several small areas can beat one big one. Searching "Manhattan", "Brooklyn", and "Queens" separately gives finer control than "New York" alone.
- The default Datacenter proxy is fine for most runs. If you see request failures, switch to Residential in the proxy section.
FAQ
Do I need a Google account or API key? No. The actor works without any login, cookies, or key.
How many hotels can it return per location?
As many as Google serves for that search, up to your maxResults. The actor walks the full paginated list and then widens coverage with extra passes, so even a single neighborhood search can produce 500+ unique hotels. If a small town only has 40 hotels, you get all 40.
Are the prices real? Prices come from the same data Google shows on its own Hotels page for your exact dates, guests, and currency. They include the nightly display price and a numeric value. Availability and rates change constantly, so treat each run as a snapshot in time.
Can I search more than one city at once?
Yes. Add several entries to locations and the actor searches each one in turn, tagging every record with its search location.
Which currencies and languages work?
Any currency code Google Hotels supports (USD, EUR, GBP, JPY, BDT, INR, and more) and any interface language through languageCode.
Does it use a browser? No. It uses direct HTTP requests, which keeps runs fast and compute costs low compared to browser-based scrapers.
What happens if my proxy fails? The actor retries with a fresh proxy, then falls back to a direct connection, so a bad proxy does not produce an empty run.
Is scraping Google Hotels legal? The actor collects publicly available data only: prices, ratings, and facts that anyone can see without logging in. It stores no personal data. Still, you are responsible for how you use the results, so check the rules that apply to your project and jurisdiction.
Integrations
Connect Google Hotels Extractor with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever results are available, for example a Slack alert when a competitor drops prices.
Start pulling Google Hotels prices, ratings, and reviews in one run. No browser, no account, no API key required.