Google Hotels Scraper — Prices, Ratings & Booking Sites
Pricing
from $1.50 / 1,000 hotels
Google Hotels Scraper — Prices, Ratings & Booking Sites
Google Hotels for any city and dates: up to 500 hotels per search with nightly price, stay total with taxes, deals, stars, rating, amenities, location. Optional: every booking site's price and link (Booking.com, Expedia, hotel site). Pay per hotel; failed searches are free.
Pricing
from $1.50 / 1,000 hotels
Rating
0.0
(0)
Developer
Data Fabrik
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Google Hotels Scraper — prices, ratings and every booking site
Scrape Google Hotels for any city, neighbourhood or landmark and any dates. For each property you get the nightly price and the stay total with taxes, Google's deal label ("35% less than usual"), star class, guest rating and review breakdown, amenities, coordinates, nearby places (airport, transit, sights with walking or driving time), photos, check-in/check-out times and the Google Hotels link.
Turn on one option and you also get every booking site's offer for each hotel — Booking.com, Expedia, Hotels.com, Agoda, Trip.com, the hotel's own website and dozens more — with the nightly price, the stay total with and without taxes, and the booking link.
- Not just the first 20. Google shows 20 properties per page; this Actor reads the following pages and returns up to 500 hotels per search, without duplicates.
- Price monitoring built in. Give several check-in dates and the Actor runs one search per location × date — ideal for tracking prices over weeks or comparing weekends.
- Filters from Google itself: sort order, minimum rating, star class, price range, amenities.
- Fast and light. Pure HTTP, no browser. A 100-hotel search takes a few seconds.
- Fair billing. You pay per hotel with a price. Unpriced hotels, failed or empty searches are never charged.
What can you do with it?
- Revenue management & rate shopping: compare your hotel's price with the competition in your area for every night of the season.
- Rate parity: check whether Booking.com, Expedia or the hotel's own site is cheapest for the same stay.
- Travel apps and AI agents: feed real hotel availability, prices and ratings into your product.
- Market research: average price per night by city, star class or date; which amenities 5-star hotels offer; how prices move before a big event.
- Lead lists for hospitality suppliers: hotels of a city with their class, rating, website and location.
Input
| Field | What it does | Default |
|---|---|---|
locations | One search per line, as you would type it in Google Hotels: Lisbon, Shinjuku, Tokyo, hotels near the Eiffel Tower, boutique hotels in Rome. A plain place name is searched as "hotels in …". | required |
checkIn | Check-in date, YYYY-MM-DD. Empty = a stay 30 days from today (handy for schedules). | today + 30 |
checkOut | Check-out date, YYYY-MM-DD. Empty = checkIn + nights. | — |
nights | Length of stay when there is no check-out date (1–30). Also used with checkInDates. | 1 |
checkInDates | More check-in dates for price monitoring; each location × date is one search. | — |
adults | Number of adult guests (1–12). | 2 |
maxResultsPerSearch | How many hotels to return per search (1–500). | 100 |
currency | Currency of every price: USD, EUR, GBP, JPY… | USD |
sortBy | relevance, lowest_price, highest_rating, most_reviewed. | relevance |
minRating | any, 3.5, 4.0, 4.5. | any |
hotelClass | Keep only these star classes, e.g. ["4","5"]. | all |
minPrice / maxPrice | Price per night range, in the chosen currency. | — |
amenities | Required amenities: free_parking, pool, indoor_pool, fitness_center, free_breakfast, spa, beach_access, pet_friendly. | — |
includeOffers | Also return every booking site's offer for each hotel (opens each hotel's page). | false |
maxOfferLookupsPerSearch | With includeOffers, how many hotels per search get booking-site prices (first N). | 20 |
language | Language of names, descriptions and labels (en, fr, de…). | en |
country | Country Google prices for (us, gb, fr…). Sellers and prices can differ by country. | us |
maxConcurrency | Searches running in parallel (1–20). | 5 |
maxRetries | Retries per page, each from a new IP. | 6 |
proxy | Proxy settings. The default Apify Proxy is enough. | Apify Proxy |
Example input
{"locations": ["Lisbon", "hotels near Sagrada Familia"],"checkIn": "2026-11-13","nights": 2,"checkInDates": ["2026-11-20", "2026-11-27"],"adults": 2,"currency": "EUR","minRating": "4.0","hotelClass": ["4", "5"],"maxResultsPerSearch": 100,"includeOffers": true,"maxOfferLookupsPerSearch": 10}
Output
One row per hotel (view Hotels), for example:
{"type": "hotel","location": "Lisbon","checkIn": "2026-11-10","checkOut": "2026-11-12","nights": 2,"adults": 2,"currency": "USD","rank": 1,"name": "Brown's | Avenue Hotel","hotelClass": 5,"hotelClassLabel": "5-star hotel","rating": 4.6,"reviewCount": 281,"reviewsBreakdown": { "5star": 222, "4star": 30, "3star": 14, "2star": 7, "1star": 8 },"pricePerNight": 222.94,"pricePerNightWithTaxes": 245.41,"totalPrice": 445.88,"totalPriceWithTaxes": 490.83,"taxesAndFees": 44.95,"dealLabel": null,"latitude": 38.7220236,"longitude": -9.1456424,"amenities": ["Breakfast", "Free Wi-Fi", "Parking ($)", "Outdoor pool", "Air conditioning", "Restaurant", "Airport shuttle"],"nearbyPlaces": [{ "name": "Avenida", "kind": "transit", "walk": "5 min" },{ "name": "Humberto Delgado Airport", "kind": "airport", "drive": "24 min", "transit": "27 min" }],"website": "https://www.brownshotelgroup.com/browns-avenue/","countryCode": "PT","googleHotelsUrl": "https://www.google.com/travel/hotels/entity/ChkIhLCQwvjO2IYWGg0vZy8xMXE0bTZieDkyEAE","googleMapsUrl": "https://maps.google.com/?cid=4896003618326261334"}
Other fields: searchedPlace (the place Google understood — check it for unusual queries), entityId, propertyType (hotel or vacation rental), phone (on hotel pages), description, checkInTime, checkOutTime, thumbnail, photos, priceDates, scrapedAt.
With includeOffers, each hotel also has offersCount, cheapestOffer and offers (view Booking-site prices):
{"provider": "Booking.com","taxesIncluded": true,"isOfficialSite": false,"pricePerNight": 275.23,"pricePerNightWithTaxes": 300.83,"totalPrice": 550.46,"totalPriceWithTaxes": 601.66,"link": "https://www.google.com/travel/lodging/clk?…"}
The hotel's own website comes first (isOfficialSite: true), then the other sites from cheapest to most expensive (stay total with taxes). A few sites give Google no price with taxes (taxesIncluded: false); they come last and cheapestOffer only uses them when nothing else is available.
The key-value store also holds SEARCHES — one line per search with the number of hotels, the cheapest and average price per night — and OUTPUT, the run summary.
Pricing
Pay per event — price per 1,000 hotels on the paid plans:
| Event | When | Free plan | Bronze | Silver | Gold+ |
|---|---|---|---|---|---|
hotel | One hotel with a price returned | $2.50 | $2.00 | $1.80 | $1.50 |
hotel-offers | One hotel with every booking site's price (only with includeOffers) | $4.00 | $3.50 | $3.00 | $2.50 |
- Hotels without a price for your dates (sold out, no availability) are returned for free.
- Searches that fail or return nothing are free and still appear in the dataset with their status, so you always know what happened.
- A search of 100 hotels costs about $0.20 on the Bronze plan. The Actor stops cleanly when your maximum cost per run is reached.
Tips
- Prices are for the whole room for the number of adults you set, in the currency you choose.
- A property with no price for your dates (sold out) still appears, with empty price fields — and is not charged.
countrymatters: booking sites and taxes shown by Google depend on it.- Booking links go through Google's redirect, as on the website; open them soon after the run.
Is it legal?
The Actor reads public pages of Google Hotels, the way a visitor does, without logging in. It collects hotel information (businesses), not personal data. You are responsible for using the data in line with the laws and terms that apply to you.
Support
Something missing or not working? Open an issue on the Actor's page — issues are answered quickly.