Google Hotels Scraper avatar

Google Hotels Scraper

Pricing

from $2.00 / 1,000 properties

Go to Apify Store
Google Hotels Scraper

Google Hotels Scraper

Hotels and vacation rentals from Google Hotels for any place and stay: price per night and total, rating, reviews, star class, deal label, location, amenities, photos, and optionally each property's address, phone and prices per booking site. Filters, sorting, any currency. No browser, no login.

Pricing

from $2.00 / 1,000 properties

Rating

0.0

(0)

Developer

Steady Scrape

Steady Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Hotels and vacation rentals for any place and stay, straight from the Google Hotels results page: the price per night and the total with taxes and fees, Google's deal label ("31% less than usual"), star class, guest rating with the review count, star distribution and what guests mention, amenities, location, nearby transit and airports, photos, and a link to the property on Google Hotels. Any currency, any market, Google's own filters and sorting, up to 500 results per search. Optionally the property's own page too: street address, phone, one offer per booking site (Booking.com, Expedia, the hotel's own site…) priced for the stay, the review sources and sample reviews. Every search comes back as rows, and when Google has nothing the row says why (no_results, invalid, blocked) instead of an empty dataset. You pay only for properties.

No browser, no login, no API key: it reads the page Google serves, paces itself the way Google tolerates, and rotates IPs before Google's wall shows up.

What you get

One row per property, in Google's order for the sort you chose:

  • The stay's price: pricePerNight and totalPrice (with taxes and fees) in currency for the exact dates and guests, priceBeforeTaxes, taxesAndFees, the deal label when Google shows one, and bookingUrl.
  • The property: name, type (hotel or vacation rental), category (hotel, hostel, guest_house, bed_and_breakfast…), hotelClass (stars), rating, reviewCount, ratingDistribution, reviewAspects (what guests mention, with positive and negative counts), description, amenities, essentials (vacation rentals: "Entire apartment", "Sleeps 4", "2 bedrooms"…), checkInTime, website.
  • Where it is: latitude, longitude, country, nearby (attractions, transit, airport, restaurants with walking, driving and transit times), and images.
  • With details (includeDetails): address, phone, descriptionLong, offers (provider, per-night and total price, link, whether it is the property's own site) for offersCheckInoffersCheckOut, reviewSources (Tripadvisor, Trip.com… with their scale and counts) and reviews (author, date, rating, text).
  • What was asked: searchIndex, query, place (the place Google resolved), propertyType, checkIn, checkOut, nights, adults, childAges, currency, market, language, rank, url, entityId, featureId, hotelId, scrapedAt.
  • status and reason: ok, no_results, invalid (a stay Google will not price, with the dates it answered instead), or blocked (every IP route was refused; unpaid).

Input

fieldwhat it does
queriesOne search per entry, as typed on Google Hotels: hotels in Lisbon, Paris 11e, near Times Square. A hotel's name gives that hotel first.
checkIn, checkOut or nightsThe stay (1–30 nights, up to a year ahead).
adults, childAgesGuests; one age per child.
propertyTypehotels (Google's default tab, which also lists some rentals) or vacation_rentals.
sortByrelevance, lowest_price, highest_rating, most_reviewed.
minRating, hotelClass, minPrice, maxPrice, freeCancellation, amenitiesGoogle's own filters, applied in the search.
currency, market, languagePrices in this currency for this point of sale; names and labels in this language.
urlsSearches copied from Google Hotels (links with q and ts), searched as they are.
maxResultsPerSearchGoogle pages by twenty; the Actor follows the pages up to this many rows (default 20, max 500).
includeDetailsFetch each property's own page (one extra request per property).
residentialFallbackRetry through residential proxies when Google refuses the datacenter IPs. Default on.
{
"queries": ["hotels in Lisbon"],
"checkIn": "2026-11-10",
"checkOut": "2026-11-13",
"adults": 2,
"hotelClass": [4, 5],
"minRating": "4.0",
"sortBy": "lowest_price",
"currency": "USD",
"maxResultsPerSearch": 40
}

Output example

{
"searchIndex": 1,
"status": "ok",
"reason": null,
"query": "hotels in Lisbon",
"propertyType": "hotels",
"checkIn": "2026-11-10",
"checkOut": "2026-11-13",
"nights": 3,
"adults": 2,
"childAges": [],
"currency": "USD",
"market": "us",
"language": "en",
"place": "Lisbon",
"rank": 1,
"name": "Iberostar Selection Lisboa",
"type": "hotel",
"category": "hotel",
"hotelClass": 5,
"hotelClassLabel": "5-star hotel",
"rating": 4.7,
"reviewCount": 3815,
"ratingDistribution": [{ "stars": 5, "percent": 78, "count": 2976 }, { "stars": 4, "percent": 14, "count": 534 }],
"reviewAspects": [{ "name": "Breakfast", "mentions": 412, "positive": 371, "negative": 27 }],
"pricePerNight": 128.81,
"totalPrice": 386.44,
"priceBeforeTaxes": 338.56,
"taxesAndFees": 47.88,
"deal": { "text": "47% less than usual", "level": "great_deal" },
"bookingUrl": "https://www.google.com/travel/clk/hi?qid=…",
"latitude": 38.7247, "longitude": -9.1509, "country": "PT",
"address": "R. Castilho 64, 1250-071 Lisboa, Portugal",
"phone": "+351 21 585 9000",
"website": "https://www.iberostar.com/…",
"checkInTime": "3:00 PM",
"description": "Polished rooms & suites in a sleek hotel with a rooftop pool, a spa & a restaurant.",
"descriptionLong": ["A 4-minute walk from Marquês de Pombal metro station…"],
"amenities": ["Breakfast ($)", "Free Wi-Fi", "Parking ($)", "Pools", "Hot tub", "Air conditioning", "Fitness center", "Spa"],
"essentials": null,
"nearby": [{ "name": "Marquês de Pombal", "category": "transit", "times": [{ "mode": "walking", "time": "4 min" }] }],
"images": ["https://lh3.googleusercontent.com/…"],
"offers": [{ "provider": "Iberostar Selection Lisboa", "official": true, "perNight": 157.38, "total": 472.14, "url": "https://www.google.com/travel/lodging/clk?…" }],
"offersCheckIn": "2026-11-10",
"offersCheckOut": "2026-11-13",
"reviewSources": [{ "name": "Tripadvisor", "rating": 4.4, "scale": 5, "reviewCount": 943 }],
"reviews": [{ "source": "Tripadvisor", "author": "…", "when": "2 weeks ago", "rating": 3, "scale": 5, "text": "…" }],
"entityId": "ChoIy_fo59Ha34akARoNL2cvMTFmeTVnazZ0YxAB",
"featureId": "0x…:0x…",
"hotelId": "…",
"url": "https://www.google.com/travel/hotels/entity/ChoIy_fo59Ha34akARoNL2cvMTFmeTVnazZ0YxAB?hl=en&gl=us&ts=…",
"scrapedAt": "2026-09-18T12:00:00.000Z"
}

Prices: what to expect

  • pricePerNight is the lowest rate Google found for the stay, as it shows it in the list; totalPrice is the whole stay with taxes and fees. Both are for the exact dates and guests you gave.
  • Google prices by point of sale. Set market to the country you would buy from, or the numbers will not match your own browser.
  • A property with no rate for your dates (sold out, or too far ahead) comes back with its fields and a null price, so you still know it exists.
  • With details, offers lists every booking site Google compares, with the property's own site flagged official.

Use cases

  • Rate monitoring: schedule a run per place and stay; alert when pricePerNight drops or a deal appears.
  • Market research: every hotel of a city with class, rating, review counts and what guests praise or complain about.
  • Hotel leads: with details, the address, phone and website of every property in an area.
  • Travel apps and content: feed live prices and photos into a site, a spreadsheet or an agent, with a deep link per property.

Limits and honesty

  • Google's list has about 20 properties per page; the Actor follows the pages (one request each) up to maxResultsPerSearch. Google itself stops paging at some point for very large places.
  • A query that names one hotel returns that hotel first (unpriced when it has no rate) and its neighbours after it.
  • An unknown place makes Google search the market country instead: check place on the rows.
  • Amenities and labels come in the language you choose; hotels list the highlights Google shows on their card, vacation rentals their full list.

Pricing

Pay per event: one property event per row with status ok, or one property-with-details event when includeDetails is on. Rows with any other status are free, and so is every request that gave nothing. Set a spending limit on the run and the Actor stops at it.

The Actor reads publicly available listings that Google Hotels shows to anyone, without logging in. It stores no personal data beyond the public names on sample reviews. Use the data in line with Google's terms and your local law.