Google Hotels Price Scraper avatar

Google Hotels Price Scraper

Pricing

from $2.00 / 1,000 hotel results

Go to Apify Store
Google Hotels Price Scraper

Google Hotels Price Scraper

Reliable Google Hotels price scraper for price monitoring. Get nightly and total prices, booking-site prices (Booking.com, Expedia, official site...), ratings, reviews, hotel class, amenities and location for any city and dates.

Pricing

from $2.00 / 1,000 hotel results

Rating

0.0

(0)

Developer

Damian Boni

Damian Boni

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Reliable Google Hotels price scraper for hotel price monitoring. Enter a city (or paste a Google Hotels URL), pick your dates and guests, and get every hotel's nightly price, total stay price, taxes, deal label, rating, reviews, star class, amenities, photos and coordinates, straight from Google Hotels. Turn on booking-site prices to compare Booking.com, Expedia, Hotels.com, Agoda, Trip.com, the hotel's official site and more, with direct booking links and free-cancellation flags.

Built for recurring runs: relative dates ("14 days from today"), stable hotel IDs for joining runs, fast plain-HTTP requests (no browser), automatic retries with fresh residential IPs, and clear errors instead of silent empty datasets.

What you can do with it

  • Hotel price monitoring: schedule a daily run and track how prices move for the same dates, hotels and cities.
  • Revenue management and rate shopping: see your hotel's price next to competitors and every OTA, per night and per stay.
  • Travel apps and dashboards: feed live hotel prices, ratings and photos into your product or spreadsheet.
  • Market research: compare price levels across cities, dates, star classes and neighbourhoods.
  • Deal alerts: filter by "lowest price" or Google's "X% less than usual" deal labels.

What data you get

For every hotel on Google Hotels for your destination and stay:

FieldExample
Hotel name, position in Google's listPullman Paris Tour Eiffel, #1
Price per night and total stay price (taxes and fees included)$502.09 / $1,004.18
Price before taxes, taxes and fees, currency$877.01, $127.17, USD
Google deal label"18% less than usual"
Rating, review count, rating histogram4.6, 17,213 reviews
Hotel class4 ("4-star tourist hotel")
AmenitiesFree Wi-Fi, Air conditioning, Restaurant, ...
Latitude, longitude, country, website, check-in/out times48.8556, 2.2929, FR
Photos (thumbnail + up to 10 images)googleusercontent.com URLs
IDs: Google hotel ID, entity ID, Knowledge Graph ID, Maps CIDstable keys for monitoring
Google Hotels URL (same dates) and Google Maps URL
Booking-site prices (optional): site, nightly and total price, official-site flag, free cancellation (and until when), direct booking linkBooking.com $682/night
Address, neighbourhood, phone (with booking-site prices on)18 Avenue De Suffren, 75015 Paris

How to use it

  1. Add one or more destinations: a city, area or landmark ("Paris", "Shibuya, Tokyo", "hotels near Times Square"), or paste a Google Hotels URL (search page, google.com/travel/hotels/<city> or a single hotel google.com/travel/hotels/entity/...).
  2. Set the check-in date (a date or a relative value like 14 days) and nights (or a check-out date).
  3. Choose adults, children, currency, language and country.
  4. Optionally add filters: sort order, minimum rating, hotel class, price range, free cancellation.
  5. Optionally switch on Include booking-site prices.
  6. Run it, then download the dataset as JSON, CSV, Excel or via API, or connect it to Google Sheets, Make, Zapier or a webhook.

Price monitoring tips

  • Use a relative check-in date (7 days, 2 weeks, 1 month) in a schedule so every run looks at future dates.
  • Join runs on entityId (or hotelId) plus checkInDate/checkOutDate to build a price history.
  • Paste single-hotel URLs to track specific properties (with all booking-site prices).
  • Keep the same currency and country between runs: Google can show different prices to visitors from different countries.

Input example

{
"destinations": ["Paris", "London", "https://www.google.com/travel/hotels/entity/ChgIxfW9593Qkbu3ARoLL2cvMXRnczA3ZHQQAQ"],
"checkInDate": "14 days",
"nights": 2,
"adults": 2,
"children": 1,
"childrenAges": [7],
"currency": "EUR",
"language": "en",
"country": "gb",
"maxHotelsPerDestination": 100,
"sortBy": "lowest_price",
"minRating": "4.0",
"hotelClass": ["4", "5"],
"maxPrice": 300,
"freeCancellationOnly": true,
"includeBookingPrices": true,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
InputDescriptionDefault
destinationsCities/areas/landmarks or Google Hotels URLs. Dates, guests, currency and filters inside a pasted URL are used for that URL.required
checkInDateYYYY-MM-DD or relative (14 days, 2 weeks, 1 month)14 days
nights / checkOutDateLength of stay, or an explicit check-out date (overrides nights)1 night
adults, children, childrenAgesGuests. Google Hotels prices the whole party; it has no separate room count.2 adults
currencyAny currency Google Hotels offers (72)USD
language, countryGoogle hl and gl valuesen, us
maxHotelsPerDestinationHotels to save per destination (Google pages 20 at a time)20
sortByrelevance, lowest_price, highest_rating, most_reviewedrelevance
minRatingany, 3.5, 4.0, 4.5any
hotelClassAny of 2, 3, 4, 5any
minPrice, maxPriceNightly price range in your currencynone
freeCancellationOnlyOnly hotels with a free-cancellation ratefalse
includeBookingPricesPer-booking-site prices, links, address and phone (one extra request per hotel)false
proxyConfigurationApify Proxy settings. Residential is recommended; the proxy country follows country unless you set one.Residential

Output example

One dataset item per hotel (shortened):

{
"destination": "Paris",
"destinationResolved": "Paris",
"position": 2,
"name": "Pullman Paris Tour Eiffel",
"propertyType": "hotel",
"hotelId": "5592324419017481846",
"entityId": "ChgIxfW9593Qkbu3ARoLL2cvMXRnczA3ZHQQAQ",
"knowledgeGraphId": "/g/1tgs07dt",
"googleMapsCid": "13219831296943946437",
"url": "https://www.google.com/travel/hotels/entity/ChgIxfW9593Qkbu3ARoLL2cvMXRnczA3ZHQQAQ?ts=...&hl=en&gl=us",
"googleMapsUrl": "https://www.google.com/maps?cid=13219831296943946437",
"hotelClass": 4,
"hotelClassText": "4-star tourist hotel",
"rating": 4.6,
"reviewCount": 17213,
"ratingHistogram": { "1": 625, "2": 301, "3": 613, "4": 1926, "5": 13748 },
"pricePerNight": 561.81,
"totalPrice": 1123.63,
"priceBeforeTaxes": 990.38,
"taxesAndFees": 133.25,
"priceText": "$562",
"currency": "USD",
"priceAvailable": true,
"dealLabel": null,
"bookingPrices": [
{
"source": "Pilot",
"isOfficialSite": false,
"pricePerNight": 581,
"totalPrice": 1162,
"priceText": "581 US$",
"totalPriceText": "1.162 US$",
"freeCancellation": false,
"freeCancellationUntil": null,
"link": "https://pilotplans.com/stays/pullman-paris-tour-lp27e2f?checkInDate=2026-10-16&checkOutDate=202...",
"googleRedirectUrl": "https://www.google.com/travel/lodging/clk?pc=...",
"logo": "https://www.gstatic.com/travel-hotels/branding/1471863362130829129.png"
}
],
"cheapestBookingTotalPrice": 1124,
"cheapestBookingSite": "goseek.com",
"description": "Polished quarters in a sleek hotel offering Eiffel Tower views, chic dining & 23 meeting rooms.",
"address": "18 Avenue De Suffren, 22 Rue Jean Rey Entrée Au, 75015 Paris, France",
"area": "Beaugrenelle",
"phone": "+33 1 44 38 56 00",
"website": "https://all.accor.com/...",
"countryCode": "FR",
"latitude": 48.8556488,
"longitude": 2.2928584,
"checkInTime": "4:00 PM",
"checkOutTime": "11:00 AM",
"amenities": ["Paid breakfast", "Free Wi-Fi", "Paid parking", "Air conditioning", "Pet-friendly", "Fitness center", "Bar", "Restaurant"],
"thumbnail": "https://lh3.googleusercontent.com/...",
"images": ["https://lh3.googleusercontent.com/..."],
"checkInDate": "2026-10-16",
"checkOutDate": "2026-10-18",
"nights": 2,
"adults": 2,
"children": 0,
"scrapedAt": "2026-09-25T20:03:49.387Z"
}

The Output tab has three views: Hotels and prices, Booking-site prices (one row per hotel and site) and Hotel details. A run summary (hotels per destination, errors, requests, traffic) is saved to the key-value store as SUMMARY.

Pricing

This Actor uses pay-per-event pricing. You pay only for hotels saved to your dataset; Apify platform usage and proxy traffic are included.

EventPriceWhen it is charged
hotel-result$0.0035 per hotel ($3.50 per 1,000 hotels)Once for each hotel saved to the dataset, with or without booking-site prices. Lower prices may apply on higher Apify plans (tiered discounts).
apify-actor-start$0.00005 per run (Apify's standard start event, per GB of memory)Once when a run starts.

Nothing is charged for retries, blocked requests, destinations with no results or booking-site lookups. Examples: 20 hotels ≈ $0.07; monitoring 100 hotels every day for 30 days (3,000 results) ≈ $10.50.

Set Max total charge on a run to cap spending: the Actor stops as soon as the next hotel would exceed it and never saves hotels it has not charged for.

FAQ

Is it legal to scrape Google Hotels? The Actor collects publicly available business information (hotel names, public prices, ratings, business addresses and phone numbers) that anyone can see without logging in. It does not collect personal data about individuals and does not log in to any account. You are responsible for how you use the data; check the terms that apply to your use case and jurisdiction, and consult a lawyer if unsure.

Why are the prices different from what I see in my browser? Google personalises hotel prices by the visitor's country, currency, dates, guest count and sometimes membership or sign-in status. Match currency, country (and the proxy country) to your browser, and remember prices change during the day.

Is the price per night or for the whole stay? Both: pricePerNight and totalPrice include taxes and fees; priceBeforeTaxes and taxesAndFees split the total.

How many hotels can I get per destination? Google returns 20 hotels per page and the Actor pages through them up to maxHotelsPerDestination (max 2,000). Very large cities have thousands of properties; small towns may have only a few dozen.

What if Google blocks a request? The Actor detects rate limits, "unusual traffic" and consent pages, switches to a new residential IP and retries with exponential backoff. If Google changes its data format so that no hotels can be read, the run fails with a clear message instead of finishing with an empty dataset.

Can I track one specific hotel? Yes. Paste its Google Hotels URL (https://www.google.com/travel/hotels/entity/...) as a destination; you get its price and all booking-site prices for your dates.

Can I use it through the API, Python, JavaScript, Make or Zapier? Yes. Like every Apify Actor it can be started via the Apify API and clients, scheduled, and connected to integrations and webhooks. The dataset schema describes every field for AI agents and MCP clients.

Limitations

  • Prices are what Google shows to an anonymous visitor from the proxy's country; member and signed-in prices are not included.
  • Booking-site prices need one extra request per hotel, so those runs take longer.
  • Amenities are returned as English names for the most common amenities. For single-hotel URLs amenities may be empty.
  • Google Hotels has no room-count selector; prices are for the whole party in the cheapest option Google shows.
  • Stays can be up to 30 nights and up to about 500 days ahead.
  • Vacation rentals appear when Google mixes them into hotel results (propertyType: "vacation_rental").

Changelog

See ./CHANGELOG.md.

  • 1.0 (2026-09-25): first release: hotel prices with pagination, filters, booking-site prices, hotel URLs, relative dates, pay-per-event budget handling.