← API Catalog
Apify·Async
Google Hotels Scraper - Prices, OTA Rates, Room Rates & Reviews
Travel$0.0037 / Hotel
What it does
Scrape Google Hotels for any destination and dates: live per-night prices, the full OTA price ladder (Booking.com, Agoda, Expedia, Hotels.com and more) with booking links, per-room rates, star class, guest ratings and reviews. Structured JSON/CSV - no code, no login, no Google API key.
Returns: Scrape Google Hotels for any destination and dates: live per-night prices, the full OTA price ladder (Booking.com, Agoda, Expedia, Hotels.com and more) with booking links, per-room rates, star class, guest ratings and reviews. Structured JSON/CSV - no code, no login, no Google API key.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
rooms | number | No | Number of rooms. |
adults | number | No | Number of adult guests. |
children | number | No | Number of children. |
currency | select | No | Currency for all prices. |
maxPrice | number | No | Only keep hotels whose lead price per night is at or below this. Leave empty for no upper bound. |
minPrice | number | No | Only keep hotels whose lead price per night is at or above this (in the selected currency). Leave empty for no lower bound. |
minStars | number | No | Refines the search toward this hotel-class star rating (1–5); Google narrows the results server-side. 0 = no refinement. |
hotelUrls | array | No | Add specific hotels, one per line — you get exactly those, one row each (ideal for a fixed competitor set you re-run on a schedule). Each line can be: - A hotel name — e.g. The Manhattan at Times Square (use the full name + city so it matches the right property) - A Google Maps or Google Hotels link — e.g. a maps.app.goo.gl share link or a /travel/hotels/... URL - Advanced: a ChIJ… Maps place-id or a ChkI… entity token See the README for the full list of accepted formats. |
maxResults | number | No | Stop after this many unique hotels (across all queries and links). 0 = no cap. A small number keeps a first run fast and cheap; raise it for a full-market sweep. |
maxReviews | number | No | Cap on reviews pulled per hotel (paginated). Google caps at roughly 5,000 per sort order. Note: high values across many hotels make runs much slower — keep it modest for whole-city searches. |
checkInDate | text | No | Check-in day (YYYY-MM-DD). Prices are date-scoped — change the dates to reprice. If you leave both dates empty and prices are on, the actor auto-uses tomorrow (run date + 1 day) for a 1-night stay, computed at run time. For hotel info + reviews only (no prices), turn off Include prices. |
countryCode | select | No | Google country code — a global setting that shifts the whole market: which hotels appear, the pricing market and OTA mix. |
reviewsSort | select | No | Order reviews are fetched in. |
checkOutDate | text | No | Check-out day (YYYY-MM-DD). Must be after check-in. The gap sets the length of stay used for every priced date. Leave both dates empty → the actor defaults to a 1-night stay (check-out = tomorrow + 1 day). |
languageCode | select | No | Google interface language for names, review text and labels. |
includePrices | boolean | No | Fetch the lead price plus the full per-source booking ladder (Booking.com, Agoda, Expedia, Hotels.com…) and the per-room rates — each with its booking link. Needs check-in/out dates below. |
propertyTypes | select | No | Refines the search toward these property types (Google narrows the results). Includes vacation rentals. |
searchQueries | array | No | One destination per line — e.g. hotels in New York City, Paris 5 star hotels, resorts in Bali. Each is paginated and de-duplicated. Provide this or hotel links below (at least one required). If you provide both, the results are combined and de-duplicated (a hotel found by both a search and a link appears once). |
includeReviews | boolean | No | Fetch guest reviews for each hotel into the separate reviews dataset (reviewer, rating, text, date, and the hotel's reply when present). |
minGuestRating | number | No | Only keep hotels with a guest review score at or above this (0–5 scale). 0 = no filter. |
priceWindowEnd | text | No | Track prices across a date range: we reprice the same-length stay for every check-in day from Check-in up to this date (up to 60 days), appended to the offers table (each row carries its own check-in/check-out). Leave empty to price just the single stay above. Cost/time note: each extra date is a separate prices charge per hotel — a wide window across a whole-city search multiplies fast (e.g. 200 hotels × 30 dates = 6,000 charges). Best paired with a short list of specific hotels. |
proxyConfiguration | json | No | Proxy settings. Leave on the default (Datacenter) for most runs. If Google blocks datacenter IPs, the actor automatically retries a few of the critical requests on residential to keep the run going (see 'Residential fallback' below); you can also switch this to Residential yourself. |
useResidentialFallback | boolean | No | If datacenter proxies get blocked mid-run, automatically retry the few run-critical requests on residential proxies so the run still returns results. Only used when datacenter fails (a healthy run stays 100% datacenter), and only if your account has residential access. Turn off to stay strictly on datacenter. |
Endpoints
GET
/v1/agents/resources/inspect/apify.factden.google-hotels-scraperPublicPOST
/v1/agents/resources/estimate/apify.factden.google-hotels-scraperPublicPOST
/v1/agents/resources/run/apify.factden.google-hotels-scraperAgent keyGET
/v1/agents/resources/runs/{run_id}Agent keyQuick start
Run it with one Agent One Key over the OpenAI-compatible resource rail.
curl -X POST https://api.deva.me/v1/agents/resources/run/apify.factden.google-hotels-scraper \
-H "Authorization: Bearer deva_i1_your_key_here" \
-H "Content-Type: application/json" \
--data '{
"params": {}
}'Related in Travel
Google Maps Scraper
Extract data from thousands of Google Maps locations and businesses, including reviews, reviewer details, images, contact info, including full name, email, and job title, opening hours, prices & more. Export data, run via API, schedule and monitor runs, or integrate with other tools.
Google Maps Extractor
Extract data from hundreds of places fast. Scrape Google Maps by keyword, category, location, URLs & other filters. Get addresses, contact info, opening hours, popular times, prices, menus & more. Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.
Airbnb Scraper
Scrape Airbnb rentals in your chosen destinations. Extract descriptions, locations, prices per night, ratings, reviews count, host details, amenities and more. Download scraped data in various formats including HTML, JSON and Excel.
Airbnb Rooms URLs Scraper
Scrape direct Airbnb rooms URLs and get all available details about the accommodation.
Airbnb Scraper
Scrape airbnb properties listings from search results and extract complete details for each property including availability calendar.
💰 Cost: $0.2 per 1000 results
Expedia Reviews Scraper ✈️ Hotel Ratings, Text & Sentiment
Scrape Expedia hotel reviews at scale - guest ratings, full review text, sub-ratings, stay dates, traveler type, language & owner responses, plus LLM-ready markdown. Also accepts Hotels.com, Travelocity, Orbitz, Wotif, CheapTickets & ebookers URLs. Filter by date/rating; export JSON/CSV.