Google Hotels Scraper – Prices, Ratings & Every Booking Site
Pricing
from $1.28 / 1,000 hotels
Google Hotels Scraper – Prices, Ratings & Every Booking Site
Scrape Google Hotels for any city and dates: hundreds of hotels with nightly and total price, star class, rating, reviews, amenities, address, phone, website and photos. Optional: every booking site's price (Booking.com, Expedia, Hotels.com, Agoda, official site) with links. Filters, any currency.
Pricing
from $1.28 / 1,000 hotels
Rating
0.0
(0)
Developer
ecclesiasteslabs
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
What does Google Hotels Scraper do?
Google Hotels compares prices for almost every hotel in the world across Booking.com, Expedia, Hotels.com, Agoda, Trip.com, Priceline, the hotel's own website and dozens of other booking sites. This actor runs a Google Hotels search for any city and dates and gives you every hotel as one clean row: name, star class, guest rating, review count, nightly and total price (with and without taxes), amenities, address, phone, website, coordinates and photos. Turn on one switch and you also get each booking site's price for every hotel, with free-cancellation info and direct links.
Why use it?
- Hundreds of hotels per city, not 20. One Google page shows about 20 hotels. The actor automatically runs variations of your search (star classes, amenities, property types, nearby towns) and removes duplicates by Google's hotel id. Tested: Paris 501 hotels, New York 300+, Amsterdam 266, Bruges 179.
- Every booking site's price (optional). Usually 5–20 sites per hotel: Booking.com, Expedia, Hotels.com, Agoda, Trip.com, Priceline, Vio, the official hotel site and more. Cheapest first, with taxes, stay totals, free-cancellation deadlines and the booking link.
- Your dates, guests and currency. Any check-in/check-out (up to 30 nights), adults and children's ages, and any currency (USD, EUR, GBP, JPY, INR, THB, ILS ...). Prices are exactly what Google shows for that stay.
- Real filters. Price range per night, hotel class (2–5 stars), minimum guest rating and 17 amenities (pool, free breakfast, free parking, pet-friendly, spa ...). Google applies them to its search, and the actor double-checks every hotel.
- Reliable and fast. No browser, no login, no cookies, automatic retries. In our tests every Google request succeeded. 300 hotels with all booking-site prices take about 2 minutes; 500 hotels without them take about 1 minute.
- Pay only for hotels you get. No start fee, no monthly rent.
What data do you get?
One row per hotel:
| Field | Example |
|---|---|
name | DoubleTree by Hilton Hotel New York Times Square West |
hotelClass / hotelClassText | 4 / 4-star hotel |
rating / reviewCount | 3.5 / 6925 |
pricePerNight / pricePerNightWithTaxes | 127.67 / 150 |
totalPrice / totalPriceWithTaxes | 383.01 / 450 (3 nights) |
currency | USD |
dealLabel | 17% less than usual |
checkInDate / checkOutDate / nights / adults / children | 2027-01-15 / 2027-01-18 / 3 / 2 / 0 |
address / fullAddress | 350 W 40th St / 350 W 40th St, New York, NY 10018 |
latitude / longitude | 40.7566 / -73.9931 |
phone / website | (212) 607-8888 / https://www.hilton.com/... |
description | Contemporary, upscale property offering terrace dining & a gym... |
checkInTime / checkOutTime | 3:00 PM / 12:00 PM |
amenities | Free Wi-Fi, Parking ($), Fitness center, Bar, Restaurant, Pet-friendly ... |
ratingBreakdown | {"5": 2231, "4": 1794, "3": 1043, "2": 672, "1": 1185} |
nearbyPlaces | Times Square (8 min by public transport), 42 St-Port Authority (5 min walk) ... |
photos / thumbnail | up to 10 image URLs |
bookingPrices | [{"source": "Traveluro", "pricePerNight": 127.67, "pricePerNightWithTaxes": 150, "totalPriceWithTaxes": 450, "freeCancellationUntil": null, "isOfficialSite": false, "url": "https://www.traveluro.com/hotels/..."}, {"source": "Hotels.com", ...}, ...] |
lowestPriceSource | Traveluro |
typicalPriceLow / typicalPriceHigh | e.g. $71 / $111 (Google's "usually costs" range, when shown) |
hotelId | Google's unique hotel id: use it to track a hotel over time |
googleHotelsUrl / googleMapsUrl / googleMapsCid | links and ids to join with Google Maps data |
How to use it
- Enter one or more destinations (e.g.
Paris,New York, NY,Shibuya, Tokyo,Times Square). - Pick check-in and check-out dates, the number of adults (and children's ages if any) and your currency.
- Set the maximum number of hotels. Optionally add filters and turn on Include every booking site's price.
- Click Start. Download the results as JSON, CSV or Excel, or get them through the API.
Example input:
{"destinations": ["Lisbon", "Porto"],"checkIn": "2027-05-14","checkOut": "2027-05-17","adults": 2,"currency": "EUR","maxItems": 200,"hotelClass": ["4", "5"],"amenities": ["pool"],"includeBookingPrices": true}
How much does it cost?
$1.50 per 1,000 hotels ($0.0015 per hotel). With every booking site's price turned on, add $1.00 per 1,000 hotels ($0.001 per hotel that has prices), so $2.50 per 1,000 in total. No start fee, no monthly rent. 100 hotels with all booking-site prices cost $0.25. Apify's free plan ($5/month credit) covers about 2,000 hotels a month with booking-site prices, or 3,300 without. You can set a maximum cost per run, and the actor stops cleanly when it's reached.
Run it from your code
Get your API token in Apify Console → Settings → API & Integrations.
Python (pip install apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("ecclesiasteslabs/google-hotels-scraper").call(run_input={"destinations": ["Barcelona"], "checkIn": "2027-06-10", "checkOut": "2027-06-13","currency": "EUR", "maxItems": 100, "includeBookingPrices": True,})for hotel in client.dataset(run["defaultDatasetId"]).iterate_items():print(hotel["name"], hotel["pricePerNight"], hotel["lowestPriceSource"])
JavaScript / Node.js (npm install apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('ecclesiasteslabs/google-hotels-scraper').call({destinations: ['Barcelona'], checkIn: '2027-06-10', checkOut: '2027-06-13',currency: 'EUR', maxItems: 100, includeBookingPrices: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
HTTP (one call, returns the results)
curl -X POST "https://api.apify.com/v2/acts/ecclesiasteslabs~google-hotels-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"destinations": ["Barcelona"], "checkIn": "2027-06-10", "checkOut": "2027-06-13", "currency": "EUR", "maxItems": 100}'
Integrations
- AI agents (MCP): connect Claude, ChatGPT, Cursor or any MCP client to Apify's MCP server and the agent can search hotels with this actor directly.
- No-code: use the Apify modules in Make, Zapier or n8n to send results to Google Sheets, Airtable, Slack or a database.
- Schedules: run it daily in Apify Console → Schedules to track prices over time. Join days by
hotelId.
Use cases
- Hotel revenue managers: track competitors' prices and rate parity across booking sites for your dates.
- Travel startups and agencies: fill your search or trip planner with live hotel prices and booking links.
- Price monitoring and analytics: build price indexes by city, season, star class or event dates.
- Lead generation: hotel names, phones, websites and addresses for any city, filtered by class and rating.
- AI travel agents: give your agent real prices for real dates.
Tips
- City names give the most hotels. Landmarks and neighbourhoods work too (
near Eiffel Tower,Shibuya, Tokyo). If Google doesn't recognize a destination, the run says so and skips it, so you aren't charged for unrelated hotels. - Each run uses one set of dates. To compare dates, run once per date range (or schedule daily runs).
countryis where the traveler searches from (defaultus), not where the hotel is. It can change which booking sites appear.- Big cities give 250–500 hotels. Turn off Include nearby towns to stay strictly inside the main destination's results.
- Some hotels have no price for your dates (sold out or not bookable online). They still appear, with empty price fields, unless you set a price filter.
- Prices before taxes are what Google shows first in the US;
...WithTaxesfields include taxes and fees.
FAQ
Is it legal? The actor reads publicly available hotel listings and prices from Google Hotels. It doesn't log in or collect personal data. Check the rules that apply to your use case and jurisdiction.
Is this an official Google API? No. It's an independent tool that reads the public Google Hotels pages.
Why do I get fewer hotels than I asked for? Google only has so many hotels for some destinations and filters. Try a bigger area, loosen the filters, or turn on nearby towns.
Something broke? Open an issue on the Issues tab. We usually fix layout changes within 24 hours.