Google Hotels API
Hotel and vacation-rental data from Google Hotels across four modes — search, full property details, photos and guest reviews. Filter by price, star class, guest rating, amenities and property type, with autocomplete for resolving a location or property name to a token.
MEDIAN LAGon demand
PARAMETERS19
TOTAL USERS339
MONTHLY ACTIVE92
RUNS SUCCEEDED99.9%
RATING4.97 (5)
Input parameters
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| search_type | enum | no | search | search · autocomplete · photos · reviews — the mode decides which other fields apply |
| q | string | no | — | 'hotels in Paris', 'Bali resorts'. Required for search (unless property_token is given) and for autocomplete. |
| property_token | string | no | — | Identifies one property. Required for photos and reviews; obtained from a prior search or autocomplete. |
| check_in_date | date | no | — | YYYY-MM-DD. Required when searching by query. |
| check_out_date | date | no | — | Must be after check-in |
| adults | integer | no | 2 | Adult guests |
| children | integer | no | 0 | Child guests; children_ages is then required |
| gl | string | no | us | Country code for localization |
| hl | string | no | en | Language code |
| currency | string | no | — | Defaults from the country when unset |
| min_price | string | no | 0.00 | Floor in the chosen currency |
| max_price | string | no | 0.00 | Ceiling; 0.00 means no maximum |
| hotel_class | string | no | — | Comma-separated star classes 2–5. Not compatible with vacation_rentals. |
| guest_rating | string | no | 0.0 | Minimum guest rating, 0.0–5.0 |
| amenities | string | no | — | Comma-separated amenity IDs; see the Actor README for the list |
| vacation_rentals | boolean | no | false | Include rentals alongside hotels |
| bedrooms | integer | no | — | Rentals only |
| reviews_sort_by | enum | no | 1 | Reviews mode: 1 most helpful · 2 most recent · 3 highest · 4 lowest |
| max_pages | integer | no | 1 | 0 = no limit. Applies to search, photos and reviews. — drives your bill |
Worked examples
{
"q": "hotels in Paris",
"check_in_date": "2026-08-27",
"check_out_date": "2026-08-29"
}
{
"q": "hotels in Barcelona",
"check_in_date": "2026-09-10",
"check_out_date": "2026-09-14",
"hotel_class": "4,5",
"guest_rating": "4.5"
}
{
"search_type": "autocomplete",
"q": "hotels in par"
}
{
"search_type": "reviews",
"property_token": "PROPERTY_TOKEN_FROM_SEARCH",
"reviews_sort_by": "2"
}
{
"q": "vacation rentals in Miami",
"check_in_date": "2026-11-01",
"check_out_date": "2026-11-08",
"vacation_rentals": true,
"bedrooms": 3
}
POWER-USER TIP
Autocomplete first, then photos or reviews — Photos and reviews both need a property_token, and there is no way to guess one. Run autocomplete — a single cheap request — to turn a name or partial query into a token, then spend on the mode you actually wanted.
POWER-USER TIP
hotel_class and vacation_rentals are mutually exclusive — Star class does not apply to rentals, and setting both silently narrows results to nothing useful. Pick one axis per run.
Coverage
4
search modes — search · autocomplete · photos · reviews
8
filter axes — price · star class · guest rating · amenities · property type · rental type · bedrooms · bathrooms
4
review sort orders — most helpful · most recent · highest · lowest
Tasks
Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.
Code
curl
curl -X POST "https://api.apify.com/v2/acts/johnvc~google-hotels-search-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"q":"hotels in Paris","check_in_date":"2026-08-27","check_out_date":"2026-08-29"}'
Python
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/google-hotels-search-scraper").call(
run_input={
"q": "hotels in Barcelona",
"check_in_date": "2026-09-10", "check_out_date": "2026-09-14",
"hotel_class": "4,5",
}
)
for h in client.dataset(run.default_dataset_id).iterate_items():
print(h.get("name"), h.get("rate_per_night"))
What people use it for
- Hotel rate monitoring for a compset
- Revenue management benchmarking
- Travel-app inventory and pricing
- Review sentiment tracking for a property
- Market entry research for a new location
- Vacation rental supply analysis