Google Hotels Scraper - Prices, Booking Sites & Hotel Data avatar

Google Hotels Scraper - Prices, Booking Sites & Hotel Data

Pricing

from $0.72 / 1,000 hotel results

Go to Apify Store
Google Hotels Scraper - Prices, Booking Sites & Hotel Data

Google Hotels Scraper - Prices, Booking Sites & Hotel Data

Scrape Google Hotels for any destination and dates: hotels with price per night, deals, rating, class and GPS. Optionally every booking site's price (Booking.com, Expedia, Agoda, official site) on one fixed tax basis, with rooms, address, phone and amenities. 84 currencies. No API keys.

Pricing

from $0.72 / 1,000 hotel results

Rating

0.0

(0)

Developer

Santhej Kallada

Santhej Kallada

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Google Hotels Scraper — Hotels, Prices & Booking Sites

Scrape Google Hotels for any destination and dates and get every hotel as a clean row — name, price per night, deal note, guest rating, star class, GPS coordinates and photos — for $0.90 per 1,000 hotels. Turn on booking options to add the price on every booking site, on one fixed tax basis, with rooms, address, phone and amenities.

Google Hotels compares the rates of every booking site it knows for a hotel and a stay. This Actor reads that comparison for the destinations, dates, guests and currency you choose, with no browser to manage, no proxies and no API keys — and it only charges for searches that worked.

What does Google Hotels Scraper do?

For each search you give it — hotels in Paris, Tokyo, 5 star hotels in Bangkok, resorts in Bali or a hotel's name — the Actor runs that search on Google Hotels for your stay and returns one row per hotel, in Google's order. The destination is read from the text exactly as Google reads it, so hotels in Paris is Paris, France whichever country you search from.

It works at two levels, and you choose per run:

  • The hotel list (default). One row per hotel with the price Google shows in its result list. Fast and cheap: the right choice for finding hotels, comparing them inside one search, building hotel lists and reading ratings, classes and locations.
  • Booking options and hotel details (one switch). The Actor also opens each hotel's own Google Hotels page and adds every booking site Google lists for it — Booking.com, Expedia, Agoda, Hotels.com, Trip.com, the hotel's own site and more — with its price, free-cancellation date and link, plus address, phone, website, amenities, check-in and check-out times and the rating breakdown. price_per_night is then taken from that page, which quotes one fixed basis: before taxes and fees when you search from the US or Canada, taxes and fees included from other countries. Use this level whenever you compare prices between runs.

Why the difference matters: Google quotes the prices in its result list sometimes before and sometimes after taxes and fees, and does not say which. For the same hotel and stay we measured $80 and $96 from the list within minutes; the hotel's own page gave $80 every time when searched from the US and $96 every time from France or the UK. Each row says where its price came from (price_source) and, when it is known, whether it includes taxes (price_includes_taxes).

What you get per hotel

FieldWhat it tells you
search / positionThe search this hotel was found for and its place in Google's results (1 = first)
nameHotel name
hotel_id / google_hotels_urlGoogle's identifier for the hotel and the link to its Google Hotels page
price_per_nightLowest nightly rate for your dates and guests. Empty when Google has no rate for those dates
total_priceprice_per_night × nights
price_sourcesearch_results (read from the result list) or hotel_page (read from the hotel's own page, with booking options on)
price_includes_taxestrue or false for a hotel_page price in a market where the basis is known; empty for list prices, whose basis Google does not fix
currencyThe currency you asked for
deal / deal_percentGoogle's deal note as shown ("28% less than usual") and the number in it
starsHotel class, 1–5. Empty for properties Google gives no class (apartments, hostels, guest houses)
rating / reviews_countGoogle guest rating out of 5 and the number of reviews
latitude / longitudeGPS coordinates
image_urlsUp to nine photos
is_sponsoredtrue for a paid placement
check_in / check_out / nights / adults / childrenThe stay that was priced
country / language / checked_atWhere the search was made from, the language, and when — so results stay reproducible

Added by Include booking options and hotel details:

FieldWhat it tells you
booking_optionsOne entry per booking site: source, price, currency, is_official_site, is_sponsored, free_cancellation_until, url, and rooms (room name, price, max guests, cancellation date) where Google lists them
booking_options_countHow many booking sites quote this hotel
cheapest_source / cheapest_priceThe booking site with the lowest rate, and that rate
official_site_priceThe rate on the hotel's own site, when Google lists it — compare it with cheapest_price for a rate-parity check
address / phone / websiteContact details
description / hotel_classGoogle's description of the property and its class label ("4-star hotel")
amenities / amenities_unavailableWhat the hotel has ("Wi-Fi (Free)", "Parking (Extra charge)") and what it does not
check_in_time / check_out_timeAs HH:MM, where the hotel publishes them
rating_breakdownShare of reviews (percent) at 5, 4, 3, 2 and 1 stars
review_topicsWhat guests mention — service, location, breakfast … — with positive and negative counts
other_site_ratingsThe hotel's rating on Tripadvisor, Trip.com and other sites Google quotes
neighborhood / location_scoreWhere it is and Google's location score out of 5
google_maps_url / google_maps_cidThe Maps link and the hotel's Google Maps id, for joining with Maps data

A run summary is saved alongside the data: hotels per search, how many had a price, how widely each search's hotels are spread, and the billing breakdown.

Use cases

  • Hotel price tracking and rate shopping — with booking options on: the price of each hotel on one fixed basis, and what every booking site charges for it, run after run.
  • Rate parity checks — official_site_price next to cheapest_price and the full list of booking sites for your property and your competitors'.
  • Hotel lists and lead data — every hotel in an area with class, rating, coordinates and, with details on, address, phone and website.
  • Market research — hotel supply, class mix, ratings and price levels across destinations.
  • Travel deal finding — sort by lowest price, or keep hotels Google marks as cheaper than usual (deal_percent).
  • Travel apps and comparison sites — fresh hotel data with coordinates, photos and booking links.
  • AI agents — one call answers "which 4-star hotels in Lisbon are available on these dates, and where is each one cheapest?".

How to use

  1. Add one or more Searches, written as you would type them into Google Hotels.
  2. Pick the Check-in and Check-out dates — or leave both empty to price a 2-night stay 30 days from the day the run starts.
  3. Set Adults, Children's ages and the Currency.
  4. Set Hotels per search (10–140) and, if you like, a sort order and filters: hotel class, minimum rating, price range, free cancellation, amenities.
  5. Turn on Include booking options and hotel details when you need each booking site's price, or prices you can compare from one run to the next.
  6. Click Start, then export the dataset as JSON, CSV or Excel, or read it through the Apify API.

Schedule the Actor with empty or relative dates (30 days / 32 days) and it never goes stale: every run prices the same stay length counted from the day it runs, and every row carries checked_at.

Example input

{
"searches": ["hotels in Paris", "hotels in Lisbon"],
"checkIn": "2026-12-05",
"checkOut": "2026-12-08",
"adults": 2,
"currency": "EUR",
"maxHotelsPerSearch": 40,
"sortBy": "lowest_price",
"hotelClass": ["4", "5"],
"minRating": "4.0",
"includeBookingOptions": true
}

Input configuration

FieldTypeDefaultDescription
searchesarray of strings— (required)Searches as typed into Google Hotels: a place, a place with a qualifier, or a hotel name. Up to 100 per run; duplicates are removed.
maxHotelsPerSearchinteger20Hotels to return per search, 10–140.
checkIn / checkOutstring30 days from the run date, 2 nightsYYYY-MM-DD, or relative to the run date: 30 days, 6 weeks, tomorrow. A stay is 1–30 nights.
adultsinteger21–6. Adults plus children can be at most 6 — Google prices one room.
childrenAgesstring—Ages 0–17 separated by commas, for example 5, 9.
currencystringUSD84 currencies: USD, EUR, GBP, JPY, AUD, AED, INR, …
countryCodestringusCountry the search is made from (Google's market), not the destination. It decides which booking sites are listed and the tax basis of hotel-page prices.
languageCodestringenen, fr, de, es, ja, pt-BR, zh-CN, …
sortBystringrelevancerelevance, lowest_price, highest_rating, most_reviewed.
hotelClassarray of stringsanyAny of 2, 3, 4, 5.
minRatingstringany3.5, 4.0 or 4.5.
minPrice / maxPriceintegernoneNightly price range in the selected currency.
freeCancellationbooleanfalseOnly hotels with a free-cancellation rate.
amenitiesarray of stringsnoneHotels that have all of: free_wifi, free_breakfast, pool, indoor_pool, outdoor_pool, spa, fitness_center, restaurant, bar, room_service, free_parking, parking, air_conditioning, kid_friendly, pets_allowed, wheelchair_accessible, beach_access, all_inclusive_available.
onlyWithPricebooleanfalseLeave out hotels Google has no rate for.
includeBookingOptionsbooleanfalseRead each hotel's own page: every booking site's price, hotel details, and price_per_night on a fixed basis.

Example output

A real row from a hotels in Paris run (list level; the photo list is shortened here from nine links to two):

{
"record_type": "hotel",
"search": "hotels in Paris",
"position": 1,
"name": "The Originals Boutique, Hôtel Maison Montmartre, Paris",
"hotel_id": "ChoI_uTZsvz1i6-bARoNL2cvMTFmZHB6eDEwMxAB",
"stars": 4,
"rating": 4,
"reviews_count": 2130,
"price_per_night": 87,
"total_price": 174,
"price_source": "search_results",
"price_includes_taxes": null,
"price_before_discount": null,
"currency": "USD",
"deal": null,
"deal_percent": null,
"is_sponsored": false,
"latitude": 48.900537,
"longitude": 2.3362689999999997,
"image_urls": [
"https://lh3.googleusercontent.com/grass-cs/AABkmLdhyApx3DxYnJ6b6YL7HJWjiSnWEKwm8nMHupyXRaOAfrAt6SQAZ_qAdu7kXCoRRIOoWuNhMPZMOyA5djTOehsXW6fZ5PQZqJI1ysWqq9_eMdGJWh1s00WWYs5y3Xdv7h8ptbOp=s287-w287-h192-n-k-no-v1",
"https://lh3.googleusercontent.com/grass-cs/AABkmLfVIhT3AslelaOYe3bBVwnxICUzF8MmKU0dzkqpGsrgb9qjkB7LdFGoNjBcdUa4alMmX_YzJkeTlpIR5MSr-TQJIfY-_C5VFa99V6nqRLjLLsggyBWMjMyDwCNX7VcxWeBQwz1d=s287-w287-h192-n-k-no-v1"
],
"google_hotels_url": "https://www.google.com/travel/hotels/entity/ChoI_uTZsvz1i6-bARoNL2cvMTFmZHB6eDEwMxAB",
"check_in": "2026-11-11",
"check_out": "2026-11-13",
"nights": 2,
"adults": 2,
"children": 0,
"country": "us",
"language": "en",
"checked_at": "2026-10-12T03:31:25.595Z"
}

With Include booking options and hotel details on, a row also carries these fields. Real values from a hotels in Lisbon run in EUR, searched from the US (lists shortened: 3 of 19 booking sites, 2 of 12 review topics, 6 of 16 amenities):

{
"name": "Lutécia Smart Design Hotel",
"price_per_night": 114,
"total_price": 228,
"price_source": "hotel_page",
"price_includes_taxes": false,
"currency": "EUR",
"address": "Av. Frei Miguel Contreiras 52, 1749-086 Lisboa, Portugal",
"phone": "+351218411300",
"website": "http://www.luteciahotel.com/",
"hotel_class": "4-star hotel",
"check_in_time": "15:00",
"check_out_time": "12:00",
"amenities": ["Wi-Fi (Free)", "Restaurant", "Bar", "Room service", "Breakfast", "Breakfast buffet"],
"amenities_unavailable": ["Pool"],
"rating_breakdown": { "1": 4, "2": 3, "3": 10, "4": 32, "5": 51 },
"review_topics": [
{ "topic": "Transit", "mentions": 59, "positive": 43, "negative": 7 },
{ "topic": "Breakfast", "mentions": 60, "positive": 33, "negative": 21 }
],
"other_site_ratings": [
{ "source": "Tripadvisor", "rating": 3.9, "out_of": 5, "reviews_count": 1400 },
{ "source": "Trip.com", "rating": 3.9, "out_of": 5, "reviews_count": 46 },
{ "source": "Priceline", "rating": 7.7, "out_of": 10, "reviews_count": 40 }
],
"neighborhood": null,
"location_score": 3.5,
"google_maps_cid": "1117521634975496246",
"booking_options_count": 19,
"cheapest_source": "Evendo",
"cheapest_price": 114,
"official_site_price": 127,
"booking_options": [
{
"source": "Expedia.com",
"price": 131,
"currency": "EUR",
"is_official_site": false,
"is_sponsored": true,
"free_cancellation_until": null,
"url": "https://google.com/aclk?sa=l&ai=DChsSEwiIqK6Ex7OXAxXyZ0cBHfJeAHcYACICC...",
"rooms": [
{ "name": "Double or Twin Room, City View", "price": 131, "currency": "EUR", "max_guests": 2, "free_cancellation_until": null },
{ "name": "Double or Twin Room, City View", "price": 136, "currency": "EUR", "max_guests": 2, "free_cancellation_until": "2026-11-08T00:00:00.000Z" }
]
},
{
"source": "Lutécia Smart Design Hotel",
"price": 127,
"currency": "EUR",
"is_official_site": true,
"is_sponsored": false,
"free_cancellation_until": null,
"url": "https://book.omnibees.com/hotelresults?q=1316&NRooms=1&CheckIn=1111202...",
"rooms": []
},
{
"source": "Evendo",
"price": 114,
"currency": "EUR",
"is_official_site": false,
"is_sponsored": false,
"free_cancellation_until": null,
"url": "https://evendo.com/stays/lutecia-smart-design-hotel/93429990?check_in=...",
"rooms": []
}
]
}

How much does it cost to scrape Google Hotels?

Pay per event. No monthly fee, no setup fee, and you never pay for a search that failed.

EventPrice
Actor start$0.005 per run
Hotel result$0.0009 per hotel — $0.90 per 1,000
Hotel booking options and details (only when turned on)$0.005 per hotel — $5.00 per 1,000
  • One search, 20 hotels: $0.005 + 20 × $0.0009 = $0.023.
  • Five cities, 40 hotels each (200 rows): $0.005 + 200 × $0.0009 = $0.185.
  • One search, 20 hotels with every booking site's price and the hotel details: $0.005 + 20 × $0.0009 + 20 × $0.005 = $0.123.

You pay per hotel actually returned. Each search has a small fixed cost of its own, so in a run whose searches return very few hotels — a hotel-name search returns one — up to six units per search can be billed; the run summary shows any such units as minimum_charge_units_added. A run that finds no hotels at all is charged the start fee only, and booking options that could not be fetched for a hotel are not charged.

FAQ

Do I need an API key, a proxy or a Google account? No. Add your searches and run — everything else is handled for you.

Why did a search return fewer hotels than I asked for? Google lists what it has for that place, those dates and your filters. A small town may have four hotels, a hotel-name search returns that hotel, and narrow filters (5-star with a pool under a price) cut the list further. onlyWithPrice also removes hotels without a rate. You are charged only for the hotels returned.

Are the prices before or after taxes? It depends on where the price was read. With booking options on, price_per_night and every booking site's price come from the hotel's own Google Hotels page, which is consistent: before taxes and fees when you search from the US or Canada, taxes and fees included from the other countries we checked (UK, Ireland, Germany, France, Spain, Italy, Netherlands, Switzerland, Sweden, Australia, New Zealand, Japan, India, Singapore, UAE, South Africa, Mexico, Brazil). price_includes_taxes says which. Without booking options the price is the one in Google's result list, which Google quotes on either basis from one request to the next — good for comparing hotels inside one search, not for tracking a price over time.

Is the price per night or for the whole stay? price_per_night is the nightly rate for your dates and guests. total_price is that rate multiplied by the number of nights.

How does it know which Paris I mean? The search goes to Google Hotels as you typed it, so Google decides, as it would for you: hotels in Paris is Paris, France. When a name is shared, add the country — hotels in Valencia, Venezuela. If Google does not recognise a place at all it answers with popular hotels from a wide area. Whenever a search's hotels are spread over more than 75 km, the run summary marks that search wide_area and the log and status message say so, so a typo is unlikely to pass unnoticed.

A search I know has hotels came back empty. Why? Google occasionally answers a search with a page that carries no hotel list; in our tests that happened with one landmark search (hotels near Times Square) and never with a city search. The Actor checks an empty answer a second time before reporting it. If it stays empty, name the city in the search — hotels near Times Square New York returned hotels every time. Hotel-name searches work when made from us and most other countries, but returned nothing from gb in our tests.

Why is price_per_night empty for some hotels? Google has no rate for them on those dates — the hotel is sold out, is not bookable online, or cannot take your party in one room. In our test runs with two adults that was about 1 hotel in 30; with children in the room it can be most of them. Turn on Leave out hotels without a price to skip them.

What does "Searching from (country)" change? It is the Google market the search is made from, not the destination. It changes which booking sites Google lists for a hotel and the tax basis of hotel-page prices.

How many booking sites do I get per hotel? As many as Google lists: in our test runs between 4 and 41 per hotel, including the hotel's own site when Google has it. Room-level rates are included where Google shows them.

Do the booking links keep working? They are the links Google shows. Some point straight at the booking site, others are Google redirect links that are not meant to be permanent — use them soon after the run.

Does it return review texts? No. It returns the rating, the review count and — with booking options on — the rating breakdown, the topics guests mention and the hotel's ratings on other sites.

Can I run it from my own code or an automation tool? Yes. Call it through the Apify API, or use the Apify integrations for n8n, Make and Zapier.

More travel and local data tools


Tags: google hotels scraper, google hotels api, hotel prices scraper, hotel price tracker, hotel price monitoring, google hotels prices, hotel rates api, rate parity, rate shopping, booking.com prices, expedia prices, ota price comparison, hotel data, travel data, hotel price comparison api