Google Hotels Scraper: Prices, Reviews & Amenities avatar

Google Hotels Scraper: Prices, Reviews & Amenities

Pricing

from $0.70 / 1,000 hotels

Go to Apify Store
Google Hotels Scraper: Prices, Reviews & Amenities

Google Hotels Scraper: Prices, Reviews & Amenities

Google Hotels prices for your places and dates: hundreds of hotels and rentals per search, with ratings. $1 per 1,000 hotels. Taxes, deals, amenities, review topics, location scores and photos.

Pricing

from $0.70 / 1,000 hotels

Rating

0.0

(0)

Developer

Luzi

Luzi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Search Google Hotels for your places and dates and get the hotels and vacation rentals it lists, hundreds per search, one row each: nightly and total prices with taxes, deals, star class, rating and reviews, review topics, location scores, amenities, nearby places and photos. No account, login or cookies needed.

Tested daily. Latest checks: 30 hotels in Lisbon in 8 seconds; and 6 searches (three cities, two dates each, up to 1,000 hotels a search) saved 4,812 hotels in 6 minutes.

What does this Actor do?

You give it searches and check-in dates. Each search and date is run as Google Hotels runs it for your nights, guests, currency, country and language. The Actor saves one row per hotel or vacation rental Google lists, in Google's order, page after page, until your limit or the end of the list.

Each row comes with:

  • the name, whether it is a hotel or a vacation rental, its star class and description, and Google's highlight lines
  • the price per night and for the whole stay, taxes and fees, the total with them, the currency, and the deal Google shows ("20% less than usual")
  • the rating, the number of reviews, the share and count of each star, and the topics guests mention (service, location, breakfast…) with how many mentions are positive and negative
  • location scores (overall, things to do, restaurants, transit, airport access) and nearby places with the time to reach them on foot, by taxi or by public transport
  • the amenities (free Wi-Fi, pool, parking…), check-in and check-out times, the website, coordinates and country
  • for a vacation rental: how many it sleeps, bedrooms, bathrooms, its essential info, the amenities it has and lacks, and the sites it is listed on with their prices
  • the photos, and links to the property on Google Hotels and Google Maps
  • the search itself (search words, the place Google matched, dates, nights, guests)

Why use it?

  • Hundreds of hotels per search. The Actor keeps reading Google's pages until your limit (up to 1,000 a search), not just the first page.
  • Many dates in one run. List check-in dates, or write "30 days" to search 30 days from the run's day: built for daily schedules and price tracking.
  • Prices you can compare. Every row has the nightly price, the total for the stay, the taxes and fees and the total with them, as numbers.
  • More than prices. Ratings, the star breakdown, review topics, location scores, amenities and nearby places come in the same row, at no extra cost.
  • Use the data anywhere. Download as JSON, CSV or Excel, or send it to your own tools through Apify's API and integrations.

How to use it

  1. Type one or more Searches, as you would on Google Hotels ("hotels in Lisbon").
  2. Add one or more Check-in dates and the number of Nights.
  3. Optionally set the guests, currency, country, language or Max hotels per search.
  4. Click Start. When the run ends, open the Output tab to view the hotels or download them.

Run it with no input to see a sample: up to 30 hotels in Lisbon, 30 days from today, charged as usual.

Input

FieldWhat it doesDefault
Searches (queries)What to search, e.g. "hotels in Lisbon", or a search link—
Check-in dates (checkInDates)YYYY-MM-DD or days from the run's day ("30 days")—
Nights (nights)Length of each stay, 1 to 301
Adults (adults)1 to 62
Children's ages (childrenAges)One age (0 to 17) per child, up to 6none
Currency (currency)3-letter codeUSD
Country (country)2-letter code of the country searched fromus
Language (language)Language of names, descriptions and review topicsen
Max hotels per search (maxHotelsPerSearch)Stop each search after this many hotels, 1 to 1,000100

Every search is run on every check-in date, up to 100 searches in one run.

Example input:

{
"queries": ["hotels in Lisbon", "resorts in Cancun"],
"checkInDates": ["2026-12-04", "2026-12-11"],
"nights": 3,
"adults": 2,
"childrenAges": ["8"],
"currency": "EUR",
"maxHotelsPerSearch": 200
}

Output

One row per hotel or vacation rental Google lists for a search and stay. An example, with made-up values:

{
"hotel_key": "ChkIexample…|hotels in lisbon|2026-12-04|2026-12-07|2a|USD|en|us",
"rank": 1,
"name": "Example Riverside Hotel",
"property_type": "hotel",
"hotel_class": 4,
"hotel_class_text": "4-star hotel",
"description": "Modern hotel with a rooftop bar, a pool and free Wi-Fi.",
"highlights": ["... in a historic neighborhood ..."],
"price_per_night": 142.35,
"price_per_night_text": "$142",
"price_per_night_with_taxes_text": "$163",
"total_price": 427.05,
"total_taxes_and_fees": 63.9,
"total_price_with_taxes": 490.95,
"total_price_text": "$427",
"total_price_with_taxes_text": "$491",
"currency": "USD",
"deal": "18% less than usual",
"rental_offers": [],
"rating": 4.5,
"reviews_count": 1830,
"rating_histogram": [
{ "stars": 5, "percent": 64, "count": 1171 },
{ "stars": 4, "percent": 22, "count": 403 },
{ "stars": 3, "percent": 8, "count": 146 },
{ "stars": 2, "percent": 3, "count": 55 },
{ "stars": 1, "percent": 3, "count": 55 }
],
"review_topics": [
{
"topic": "Service",
"score": 0.82,
"mentions": 210,
"positive_mentions": 196,
"negative_mentions": 9
}
],
"location_scores": {
"overall": 4.4,
"things_to_do": 4.7,
"restaurants": 4.1,
"transit": 4.9,
"airport_access": 4.2
},
"amenities": ["Free Wi-Fi", "Air conditioning", "Outdoor pool", "Bar", "Restaurant"],
"amenities_not_available": [],
"other_amenity_codes": [],
"essential_info": [],
"sleeps": null,
"bedrooms": null,
"bathrooms": null,
"listed_on": [],
"check_in_time": "15:00",
"check_out_time": "12:00",
"latitude": 38.7106,
"longitude": -9.1394,
"address": null,
"phone": null,
"website": "https://example-riverside.example/",
"country_code": "PT",
"nearby_places": [
{
"category": "airport",
"name": "Example International Airport",
"travel": [
{ "mode": "taxi", "duration": "23 min" },
{ "mode": "public_transport", "duration": "38 min" }
],
"transit_type": null
}
],
"thumbnail": "https://lh3.googleusercontent.com/…",
"photos": ["https://lh3.googleusercontent.com/…"],
"property_token": "ChkIexample…",
"google_maps_feature_id": "0x1:0x2",
"google_maps_url": "https://www.google.com/maps?cid=2",
"google_hotels_url": "https://www.google.com/travel/hotels/entity/ChkIexample…?hl=en&gl=us&curr=USD",
"search_query": "hotels in Lisbon",
"search_place": "Lisbon",
"check_in_date": "2026-12-04",
"check_out_date": "2026-12-07",
"nights": 3,
"adults": 2,
"children_ages": [],
"language": "en",
"country": "us"
}

A field Google does not show is null (or an empty list). A vacation rental also fills sleeps, bedrooms, bathrooms, essential_info, amenities_not_available, listed_on and rental_offers.

How much does it cost?

No surcharges and no paid options; an item that fails is not charged.

This Actor is priced per hotel saved:

  • $1 per 1,000 hotels ($0.001 a hotel). A hotel is one hotel or vacation rental for one search and stay. Each is charged once per search in a run.
  • No start fee, and nothing per search.

So 1,000 hotels cost $1. If you set a maximum cost for a run, the Actor stops when it reaches it and keeps every hotel saved so far.

How long does a run take?

About 10 seconds for one search of 30 hotels. A deep search takes longer: 6 searches of up to 1,000 hotels each saved 4,812 hotels in 6 minutes 22 seconds, four searches read at a time.

Good to know

  • Prices are for the guests you set, in your currency, as Google Hotels shows them. They change often; a price can differ by the time you book. price_per_night and the totals are numbers; the _text fields are the prices exactly as Google shows them, rounded.
  • Some properties have no price for your dates (sold out, or no site offers them): their price fields are empty.
  • Google's order moves between pages. Google reorders its list as it is read, so a hotel can show up on two pages and another can be missed; each hotel is saved once per search and stay, and a hotel two of your searches both list is saved in each. rank is the hotel's place when it was read.
  • The list is Google's list. A city usually lists hundreds of properties; the Actor stops when your limit is reached or when three pages in a row bring no hotel it has not seen.
  • Hotel amenity names are in English, whatever the language; a vacation rental's amenities and essential info come in the language you pick. A hotel amenity Google shows only as an unnamed code is kept in other_amenity_codes.
  • Check-in and check-out times are 24-hour (15:00).
  • The Google Hotels link opens the hotel's page, where you can pick the dates again; it does not carry your dates. A Google Hotels search link in Searches gives its search words only: the dates, guests and currency come from the other fields.
  • Dates are counted in UTC. "30 days" is 30 days from the run's day in UTC, and a check-in date that is already over in UTC is refused.
  • One search that cannot be read does not stop the run. The others carry on, and the run's status lists the searches that could not be read. A search with no hotels is not an error: it saves nothing.
  • Not supported yet: each hotel's prices on every booking site (Booking, Expedia and the others), its reviews' text, rooms, and filters by price, class, rating or amenity.

More Actors from us

Use it from an AI agent or the API

One call starts a run and returns its items (Apify waits up to 300 seconds; for a longer run, start it with POST /v2/acts/…/runs and read its dataset):

POST https://api.apify.com/v2/acts/luzivanlt~google-hotels-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>

With the sample input as its JSON body:

{
"queries": ["hotels in Lisbon"],
"checkInDates": ["30 days"],
"nights": 1,
"adults": 2,
"currency": "USD",
"country": "us",
"language": "en",
"maxHotelsPerSearch": 30
}

Its inputs, in the order of the input form:

InputWhat it takesDefault
queries (Searches)What to search on Google Hotels, one per line, as you would type it there: a place ("hotels in Lisbon", "resorts in Cancun"), an area or a hotel name.—
checkInDates (Check-in dates)The days to check in, one per line: a date as YYYY-MM-DD, or a number of days from the day the run starts, such as "30 days" (handy for a daily schedule).—
nights (Nights)How many nights each stay lasts, from 1 to 30; check-out is check-in plus this many nights.1
adults (Adults)Adult guests, from 1 to 6 (2 by default).2
childrenAges (Children's ages)One line per child travelling, with the child's age from 0 to 17, at most 6 children.—
currency (Currency)The currency every price is shown in, as a 3-letter code such as USD, EUR, GBP or JPY."USD"
country (Country)The country Google Hotels is used from, as a 2-letter code such as us, gb, de or jp, as for a traveller searching from that country. us by default."us"
language (Language)The language of names, descriptions, deals, review topics and a rental's amenities, as a language code such as en, de, fr or ja."en"
maxHotelsPerSearch (Max hotels per search)Stop each search after this many hotels and vacation rentals, in Google's order, from 1 to 1,000 (100 by default).100

Apify's MCP server, https://mcp.apify.com, lists it as luzivanlt/google-hotels-scraper. To give an AI agent this Actor as a tool, add the server to the agent's MCP config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=luzivanlt/google-hotels-scraper"
}
}
}

The client signs in with OAuth, or add "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }.

Charged per hotel delivered; the sample input above costs at most $0.06.

FAQ

Do I need an account or cookies? No. The Actor reads what anyone can see on Google Hotels.

Can I track hotel prices over time? Yes. Write check-in dates as days from the run's day ("30 days") and run the Actor on a schedule: each run prices the same stay ahead.

Can I run it from my own code, on a schedule, or with other apps? Yes. Like any Apify Actor, you can start it through the Apify API, run it on a schedule, and connect it to other apps with Apify's integrations and webhooks.

This Actor reads only what anyone can see on Google Hotels without logging in. Check Google's terms and the laws that apply to you before you use the data. If you are unsure, ask a lawyer.

Support

Found a problem or missing a feature? Open an issue on the Issues tab and include the run's link.


This Actor is not affiliated with, endorsed by or sponsored by Google.