Google Travel Hotels Scraper
Pricing
from $3.60 / 1,000 property results
Google Travel Hotels Scraper
Scrape Google Travel hotel listings with prices, star ratings, the full 1-5 star review breakdown and what guests praised or complained about. Export to CSV, JSON, Excel or XML.
Pricing
from $3.60 / 1,000 property results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share

๐จ Google Travel Hotels Scraper
๐ Export Google Travel hotel data in seconds. 43 fields per property, including the full 1-5 star review breakdown and the exact number of guests who praised or complained about each amenity.
This Actor turns a Google Travel search into a clean dataset. Give it a destination and a pair of stay dates, and it returns the properties Google shows, each with its live price for that stay, its star class, its guest rating, its street address and phone, its official website, its photos, and the review intelligence Google buries behind hover states.
Data comes straight from google.com/travel, the same surface a traveller sees when they compare hotels. The Actor reads Google's own embedded data payload rather than scraping styled HTML, so field names stay stable through Google's redesigns and every one of the 27 supported languages returns the same 43 columns.
| ๐ฏ Target Audience | ๐ก Primary Use Cases |
|---|---|
| Revenue managers and hotel owners | Track competitor rates for specific stay dates |
| OTAs and travel startups | Seed a property catalogue with ratings, GPS and contact details |
| Market researchers and consultants | Benchmark guest sentiment across a city or a district |
| Travel agencies and DMCs | Build client-ready shortlists with real prices and reviews |
| Data teams and AI builders | Feed grounded hotel context into a travel assistant |
๐ What the Google Travel Hotels Scraper does
- Searches google.com/travel by destination, neighbourhood, landmark or hotel name.
- Prices a real trip. Set a check-in and check-out date and every price returned is the rate for that stay, with the night count on the row.
- Returns 43 fields per property: identity, price, location, contact, content and review intelligence.
- Reports
totalResultsEstimateon every row, so you always know how many properties Google matched against how many it published. - Opens each property's own Google Travel page to add street address, phone, official website, check-in and check-out times, nearby places and guest review excerpts. Switch it off for a faster listing-only run.
- Accepts pasted Google Travel URLs, both search pages and single property pages.
- Answers in 27 languages, translating property class, descriptions and review text.
๐ก Why it matters: every Google Hotels scraper returns a rating and a review count. This one returns the shape of that rating. A 4.1 built on 47% five-star and 17% one-star reviews is a completely different property from a 4.1 built on a smooth curve, and only one of those two is a problem you can sell a solution to.
๐ฌ Full Demo (๐ง Coming soon)
๐ Output
Every run produces one row per property. Arrays and objects come through intact in JSON and XML, and flatten into columns in CSV and Excel.
| Field | Type | Description |
|---|---|---|
๐ผ imageUrl | string | Primary property photo |
๐จ name | string | Property name as Google publishes it |
๐ hotelUrl | string | Google Travel page for the property |
๐ entityKey | string | Google Travel entity id, stable across runs |
๐ placeId | string | Google Maps place id, for joining to Maps data |
๐งญ featureId | string | Google feature id (hex pair) |
๐บ googleMapsUrl | string | Direct Google Maps link |
โญ hotelClass | string | Official class, for example "3-star hotel" |
๐ starRating | number | Class as a number |
๐ท propertyType | string | hotel, vacation_rental and similar |
๐ฐ price | string | Formatted price for the requested stay |
๐ต priceValue | number | Same price as a number |
๐ฑ currency | string | ISO currency of the quote |
๐
checkInDate | string | Stay start, ISO date |
๐
checkOutDate | string | Stay end, ISO date |
๐ nights | number | Nights in the quoted stay |
๐ rating | number | Google guest rating out of 5 |
๐ฃ reviewCount | number | Number of Google reviews |
๐ address | string | Street address |
๐บ area | string | Narrowest area Google assigns, usually the neighbourhood |
๐ countryCode | string | ISO country code |
๐ latitude / longitude | number | GPS coordinates |
โ๏ธ phone | string | Public phone number |
๐ officialSiteUrl | string | The hotel's own booking link |
๐ checkInTime / checkOutTime | string | Published desk times |
๐ description | string | Google's one-line summary |
๐ editorialSummary | string | Google's full editorial write-up |
๐ neighborhoodDescription | string | What the surrounding area is like |
๐ searchQuery | string | The query that produced the row |
๐ totalResultsEstimate | number | Properties Google matched for that query |
๐ผ photoCount | number | Photos Google publishes |
๐ ratingBreakdown | object | Percentage and count for each of 1-5 stars |
๐ฌ amenityHighlights | array | Per category: mentions, positive, negative, sentiment |
๐ reviewSources | array | Each review platform with its own rating and count |
๐จ reviewExcerpts | array | Guest review texts with author, date and source |
๐งญ locationHierarchy | array | Region, city and district, broadest first |
๐ nearbyPlaces | array | Named nearby places with type and place id |
๐ nearbyTravelTimes | array | Landmarks, stations and airports with travel times |
๐ผ photos | array | Photo URLs |
๐ scrapedAt | string | ISO timestamp of collection |
โ error | string | Populated only on a failed row |
Real sample records
{"imageUrl": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWnfqYIEjYimXF24poOhrWAFqXBvRkjCdoD7ugTVYSbqJ9G1Gqn_6OWQAzrvdApKLkqwNZYlclpmZqF2UuB4CBHpi95ltsZys9AebmLOkUsdM_NDcemhJcFGhwvOSTEJ89k6aR2P=s150-w92-h150-n-k-no","name": "Bruc & Bruc","hotelUrl": "https://www.google.com/travel/entity/key/ChkI44_nu6ir1IVxGg0vZy8xMWJ0djY2ZmdrEAE","placeId": "ChIJu5ChX-iipBIR48d5h1pRC3E","hotelClass": "3-star hotel","starRating": 3,"propertyType": "hotel","price": "$85","priceValue": 84.802086,"currency": "USD","checkInDate": "2026-11-10","checkOutDate": "2026-11-13","nights": 3,"rating": 3.7,"reviewCount": 148,"address": "Carrer de Mallorca, 290","area": "Dreta de l'Eixample","countryCode": "ES","latitude": 41.3964619,"longitude": 2.1663277,"phone": "+34 605 93 21 31","officialSiteUrl": "https://www.brucandbruc.es/","description": "Breezy rooms, some with balconies, in a casual hotel offering complimentary Wi-Fi.","searchQuery": "Barcelona","totalResultsEstimate": 1472,"photoCount": 9,"ratingBreakdown": {"oneStar": { "percent": 17, "count": 26 },"twoStar": { "percent": 4, "count": 6 },"threeStar": { "percent": 11, "count": 17 },"fourStar": { "percent": 21, "count": 32 },"fiveStar": { "percent": 47, "count": 67 }},"amenityHighlights": [{ "category": "Cleanliness", "mentions": 15, "positiveMentions": 11, "negativeMentions": 3, "sentiment": 0.588 },{ "category": "Sleep", "mentions": 10, "positiveMentions": 5, "negativeMentions": 5, "sentiment": 0 },{ "category": "Bathroom and toiletries", "mentions": 9, "positiveMentions": 4, "negativeMentions": 4, "sentiment": 0 }],"reviewSources": [{ "source": "Trip.com", "rating": 4.3, "ratingScale": 5, "reviewCount": 34 }],"reviewExcerpts": [{"source": "Trip.com","author": "Trip.com Member","relativeDate": "a month ago","rating": 3,"ratingScale": 5,"text": "The location is excellent, it is near all the major tourist spots. However, amenities were limited."}],"locationHierarchy": ["Catalonia", "Barcelona", "Barcelona", "Dreta de l'Eixample"],"nearbyTravelTimes": [{ "name": "Basรญlica de la Sagrada Famรญlia", "type": "N/A", "travelTimes": ["8 min", "14 min"] },{ "name": "Casa Batllรณ", "type": "N/A", "travelTimes": ["10 min", "10 min"] }],"scrapedAt": "2026-09-01T15:43:57.901Z","error": null}
{"name": "Hotel Riu Plaza Manhattan Times Square","hotelClass": "4-star hotel","propertyType": "hotel","checkInDate": "2026-11-10","checkOutDate": "2026-11-13","nights": 3,"rating": 4.7,"reviewCount": 2352,"area": "Theater District","countryCode": "US","checkInTime": "3:00 PM","checkOutTime": "12:00 PM","searchQuery": "Times Square, New York","totalResultsEstimate": 108,"scrapedAt": "2026-09-01T15:39:54.334Z","error": null}
{"name": "ใคใใน ใใช ใใฅใผใซ ใจใใใงใซ ใซใณใใญใณใ 15ๅบ","hotelClass": "3 ใคๆใฎ่ฆณๅ ๅฎขๅใใใใซ","starRating": 3,"placeId": "ChIJH-R_1yJw5kcR5vQPk8C3W0Y","rating": 3.8,"reviewCount": 6627,"countryCode": "FR","latitude": 48.8470547,"longitude": 2.3013411,"ratingBreakdown": {"oneStar": { "percent": 10, "count": 671 },"twoStar": { "percent": 7, "count": 477 },"threeStar": { "percent": 15, "count": 1039 },"fourStar": { "percent": 29, "count": 1943 },"fiveStar": { "percent": 39, "count": 2497 }},"error": null}
โจ Why choose this Actor
- The review breakdown, not just the average. Percentage and count for each of the five star buckets, on every property, in one column.
- Amenity sentiment with real counts. Google tracks how many reviewers mentioned Cleanliness, Sleep, Location, Bathroom, Service and more, and how many were positive or negative. That is a ready-made competitive gap analysis.
- Prices for a real stay. Set your dates and every quote is for those exact nights, with the night count on the row so you can normalise to a nightly rate.
- Joinable identifiers.
placeIdlinks straight to Google Maps data,entityKeyis stable across runs,featureIdcovers legacy Maps joins. - Honest coverage reporting.
totalResultsEstimatetells you how many properties Google matched, so you know exactly what share of a market a run covers. - Built on Google's own data payload, not on styled markup with rotating class names.
- 27 languages, one schema. Field names never change; only the values are translated.
- No proxy required. Google Travel answers this Actor directly, so proxy is off by default and available when you need volume.
๐ How it compares to alternatives
| This Actor | Typical Google Hotels scrapers | Google Hotels by hand | |
|---|---|---|---|
| Fields per property | 43 | Name, price, rating, address | Whatever you copy |
| 1-5 star review breakdown | โ percent and count | โ | โ hover only |
| Amenity sentiment counts | โ per category | โ | โ |
| Guest review excerpts | โ with author and source | Rarely | Manual |
| Nearby places and travel times | โ | โ | Manual |
| Stay-date pricing | โ | Sometimes | โ |
Google Maps placeId | โ | Rarely | โ |
| Coverage reported per run | โ
totalResultsEstimate | โ | โ |
| Languages | 27 | Usually English only | Any |
| Properties per search query | ~20, matching Google's public page | ~20, same public page | ~20 per scroll |
About that last row. Google publishes roughly 20 properties per search query to a logged-out visitor, no matter who is asking. That is a property of the source, not of this Actor, and any tool claiming otherwise is either paginating a different surface or repeating queries. This Actor is explicit about it: run several narrow destinations ("Le Marais, Paris", "Montmartre, Paris", "hotels near Gare du Nord") instead of one broad one, and read totalResultsEstimate to see how much of the market you have.
๐ How to use
- Create a free Apify account. New accounts get $5 in free credit, no card needed: console.apify.com/sign-up.
- Open the Actor and click Try for free.
- Add your destinations. One per line: a city, a district, a landmark or a hotel name. Narrow beats broad.
- Set your stay dates if you want prices for a specific trip. Leave them empty for Google's default one-night rate.
- Pick a language if you need something other than English.
- Set Max Items to cap the run.
- Click Start and watch the log name each property as it lands.
- Download the dataset as CSV, Excel, JSON or XML, or pull it from the API.
Prefer to paste URLs? Drop any google.com/travel/search?q=... or google.com/travel/entity/key/... link into the URLs field and skip the search terms entirely.
๐ผ Business use cases
Competitive rate monitoring for hoteliers
Run your own property plus the six hotels you actually compete with, for the dates that matter: the conference week, the long weekend, the shoulder season. Each row carries price, nights, checkInDate and checkOutDate, so a daily schedule builds a rate history without any manual entry. Add ratingBreakdown and you can see whether a rival's premium is backed by guest satisfaction or is just optimistic pricing.
Guest sentiment gap analysis
amenityHighlights gives you, per property, how many reviewers mentioned Cleanliness or Sleep and how many were negative. Pull twenty hotels in a district and you can rank the whole market on the dimension you are about to invest in. If every competitor is bleeding negative mentions on Sleep and you are not, that is your next campaign line, sourced from their reviews rather than your assumptions.
Building a travel product catalogue
placeId, latitude, longitude, address, phone, officialSiteUrl and photos are enough to stand up a property database, and entityKey gives you a stable primary key to refresh against. locationHierarchy lets you group by region, city and district without geocoding anything yourself.
Grounding a travel AI assistant
An assistant that recommends hotels needs facts, not vibes. Feed it description, editorialSummary, neighborhoodDescription, ratingBreakdown, amenityHighlights and nearbyTravelTimes, and it can answer "quiet 4-star near the Sagrada Famรญlia where nobody complains about the beds" with citations instead of hallucinations.
๐ Automating Google Travel Hotels Scraper
- Make and Zapier: trigger on a finished run and push new rows into Sheets, Airtable, Notion or a CRM.
- Slack: post a daily digest when a tracked competitor's price moves.
- Airbyte: sync the dataset into Snowflake, BigQuery or Postgres on a schedule.
- GitHub Actions: call the Actor from a workflow and commit the CSV to a repo for versioned rate history.
- Google Drive: drop each run's export into a shared folder for the revenue team.
- Apify Scheduler: run every morning before rates move, with no code at all.
๐ Beyond business use cases
- Research. Tourism economists can measure how published rates and guest sentiment vary by district, season and property class, across cities, using one consistent schema.
- Personal. Planning a trip? Run your shortlist with your real dates and compare the review breakdown side by side instead of trusting five different averages.
- Non-profit. Event and conference organisers can build an honest accommodation guide for attendees, with prices for the event dates and accessibility-relevant contact details.
- Experimentation. The
amenityHighlightsandratingBreakdowncolumns are an unusually clean dataset for teaching sentiment analysis or building a rating-distribution model.
๐ค Ask an AI assistant about this scraper
Point ChatGPT, Claude or Gemini at this page and ask questions like:
- "Using the Google Travel Hotels Scraper output, which of these hotels has the most polarised reviews?"
- "Write a Python script that turns
ratingBreakdowninto a stacked bar chart per property." - "From
amenityHighlights, which amenity is the biggest weakness across this district?" - "Convert this dataset into a Postgres schema keyed on
entityKey."
โ Frequently Asked Questions
โ How many properties do I get per search?
Around 20, which is what Google publishes to a logged-out visitor for any one query. totalResultsEstimate tells you how many Google matched in total. To cover more of a market, run several narrower destinations rather than one city name.
โ Can I get prices for specific dates? Yes. Set Check-in date and Check-out date and every price is the rate for that exact stay. The row carries the dates and the night count so you can normalise to a nightly figure.
โ Which currency are prices in? Google chooses the currency from the location of the request, and it ignores any currency parameter in the URL. Prices come back in US dollars by default. To force another currency, switch on the proxy and pick the matching country.
โ Do I need a proxy? No. Google Travel answers this Actor directly, so proxy is off by default. Switch it on for large runs or to control the price currency.
โ Why is Spanish missing from the language list?
Google serves a page with no embedded data for es, so no scraper can read Spanish results from that surface. Rather than ship a language that silently returns nothing, it is left out. The 27 languages offered all return the full 43 fields.
โ What is the difference between hotelClass and rating?
hotelClass is the official star classification of the property ("3-star hotel"). rating is the guest score out of 5 from Google reviews. A 2-star hotel can carry a 4.6 guest rating, and often does.
โ Why do some fields say "Not Disclosed"? Because Google does not publish that value for that property. An independent hotel often has no listed check-in time, and a hostel has no star class. The field stays in the schema with a sentinel rather than disappearing, so your columns are the same on every row.
โ How do I join this to Google Maps data?
Use placeId. It is the standard Google Maps place identifier and works directly with the Places API and with Maps datasets. featureId covers older Maps joins, and entityKey is the stable key inside Google Travel itself.
โ Can I scrape a single hotel I already have the link for?
Yes. Paste the google.com/travel/entity/key/... URL into the URLs field. You get the full detail record for that property with no search step.
โ Does it collect vacation rentals too?
Google mixes apartments and rentals into hotel results, and they come through with propertyType set accordingly, so you can keep or filter them.
โ Is the data live? Yes. Every run fetches Google Travel at that moment. Prices and ratings change, so schedule the Actor if you need a time series.
โ Is any of this behind a login? No. The Actor only reads what Google publishes to a logged-out visitor. No accounts, no cookies, no personal data.
๐ Integrate with any app
Everything the Actor produces is available through the Apify API, so you can start runs, poll status and pull the dataset from any language. Official clients exist for JavaScript and Python, and the dataset endpoint serves CSV, Excel, JSON and XML directly, which means a spreadsheet or a BI tool can point at a URL and refresh itself.
๐ Recommended Actors
- Booking.com Hotels Scraper - the same properties priced by a different channel, for rate parity checks.
- Kayak Hotel Price Scraper - direct hotel website rates alongside the aggregators.
- TripAdvisor Reviews Scraper - deeper review volume once Google's excerpts point you at a property.
- Airbnb Listings Scraper - the short-term rental side of the same market.
- Google Maps Shared List Scraper - join on
placeIdto enrich with Maps detail.
๐ก Pro Tip: browse the complete ParseForge collection.
๐ Need Help? Open our contact form
โ ๏ธ Disclaimer: This is an independent tool and is not affiliated with, endorsed by, or connected to Google. It collects only publicly available data from google.com/travel.