Google Hotels Scraper avatar

Google Hotels Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Google Hotels Scraper

Google Hotels Scraper

[💰 $1.0 / 1K] Extract hotel and vacation rental listings from Google Hotels — prices, ratings, amenities, images, GPS, and contact info. Filter by price, stars, amenities, property type, and guest rating across 190+ countries.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extract complete hotel and vacation rental data from Google Hotels at scale. Get property names, rates, star ratings, guest reviews, amenities, GPS coordinates, images, check-in/out times, phone numbers, and 25+ data fields for any destination worldwide — with full support for dates, guest counts, filters, localization, and property-level detail lookups.

Why This Scraper?

  • Two modes in one actor — Search by location (e.g., "hotels in Paris") for browsable results, or pass property tokens to pull full details for specific hotels you already care about
  • 25+ data fields per property — Name, rate per night, total stay cost, star class, overall rating, review count, amenity list, full address, GPS coordinates, contact phone, check-in/out times, image gallery, deals, eco-certification, and more
  • Human-readable filters — Pick amenities (Free Wi-Fi, Pool, Pet-friendly, EV charger…) and property types (Resorts, Boutique hotels, Hostels…) from a dropdown — no hunting down numeric IDs in Google's internal documentation
  • Vacation rentals mode — Flip one toggle to search houses, villas, cabins, cottages, and apartments instead of hotels, with dedicated rental-type filters
  • Full localization — 40+ countries, 19 languages, and 21 currencies so prices and property text match the market you're targeting
  • Batch input — Feed an array of search queries or an array of property tokens and run them all in a single job
  • Clean numeric pricingratePerNight and totalRate come back as { extracted: number, currency: "USD" } objects, ready to sort, compare, and load into a spreadsheet
  • Transparent, pay-per-page pricing — $0.02 per search page with no per-result surprises

Use Cases

Travel & Hospitality Market Research

  • Track nightly rates across a city, season, or competitive set
  • Monitor availability and pricing trends for a destination over time
  • Benchmark star class, guest ratings, and amenity mix against competitors

Lead Generation & Sales

  • Build prospect lists of boutique hotels, resorts, or bed & breakfasts in any region
  • Extract phone numbers and addresses for direct outreach campaigns
  • Target independent properties by filtering out major chains on star class and property type

Travel Content & Affiliate Sites

  • Populate "Best hotels in…" or "Top vacation rentals in…" directories with fresh data
  • Keep rate cards, review counts, and amenity lists current on destination guides
  • Enrich your own travel app with Google's curated property metadata

Revenue Management & Compset Analysis

  • Pull competitor rates for the same check-in/out window and guest count
  • Detect deal flags and discount badges across a market
  • Compare your property's amenity coverage against neighbors

Vacation Rental Intelligence

  • Survey houses, villas, and cabins by bedrooms, bathrooms, and location
  • Track nightly rates for short-term rental competitors
  • Build destination-specific rental inventories

Getting Started

Just enter a location query — defaults handle the rest (2 adults, next-available dates, US/English/USD):

{
"searchQueries": ["hotels in Paris"]
}

Search with Dates & Guests

Target a specific stay window and party size:

{
"searchQueries": ["hotels in Tokyo", "ryokan in Kyoto"],
"checkInDate": "2026-05-12",
"checkOutDate": "2026-05-18",
"adults": 2,
"children": 1,
"childrenAges": "7",
"language": "en",
"currency": "JPY",
"country": "jp"
}

Narrow by star rating, required amenities, and property type:

{
"searchQueries": ["hotels in Barcelona"],
"checkInDate": "2026-06-10",
"checkOutDate": "2026-06-14",
"stars": ["4", "5"],
"amenities": ["free_wifi", "pool", "air_conditioned"],
"propertyTypes": ["boutique_hotels", "resorts"],
"maxPages": 3
}

Vacation Rentals

Search houses, villas, and apartments instead of hotels:

{
"searchQueries": ["vacation rentals in Malibu"],
"vacationRentals": true,
"rentalTypes": ["villas", "houses"],
"checkInDate": "2026-07-15",
"checkOutDate": "2026-07-22",
"adults": 4
}

Property Details by Token

Already have property tokens from a previous run? Pull full detail records directly:

{
"propertyTokens": ["ChkI9Pbw4oLblKdlGg0vZy8xMXc0NnJoMXg3EAE"],
"checkInDate": "2026-08-01",
"checkOutDate": "2026-08-05"
}

Input Reference

ParameterTypeDefaultDescription
searchQueriesstring[]["hotels in Paris"]Location-based search queries such as "hotels in Paris" or "Bali resorts". Each query produces its own set of results.
propertyTokensstring[][]Google Hotels property tokens (from earlier search results) to fetch full property details for specific properties.

Provide at least one of the two. You can also combine them in a single run.

Dates & Guests

ParameterTypeDefaultDescription
checkInDatestring (YYYY-MM-DD)14 days from todayCheck-in date. Must be today or a future date.
checkOutDatestring (YYYY-MM-DD)day after check-inCheck-out date. Must be after check-in.
adultsinteger2Number of adult guests (1–50).
childreninteger0Number of child guests (0–50).
childrenAgesstring""Comma-separated ages (e.g. "5,8,12"). Required when children > 0. Each age 0–17.

Filters

ParameterTypeDefaultDescription
starsstring[][]Only include hotels with these star ratings. Options: "1""5".
amenitiesstring[][]Only include properties that offer all of these amenities. Options: Free parking, Parking, Indoor pool, Outdoor pool, Pool, Fitness center, Restaurant, Free breakfast, Spa, Beach access, Child-friendly, Bar, Pet-friendly, Room service, Free Wi-Fi, Air-conditioned, All-inclusive available, Wheelchair accessible, EV charger.
propertyTypesstring[][]Only include these hotel property types. Options: Beach hotels, Boutique hotels, Hostels, Inns, Motels, Resorts, Spa hotels, Bed and breakfasts, Apartment hotels, Minshuku, Japanese-style business hotels, Ryokan. Ignored when Vacation Rentals mode is enabled.

Vacation Rentals

ParameterTypeDefaultDescription
vacationRentalsbooleanfalseSearch vacation rentals (houses, villas, apartments) instead of hotels.
rentalTypesstring[][]Rental types to include. Options: Apartments, Bungalows, Cabins, Chalets, Cottages, Gîtes, Holiday villages, Houses, Houseboats, Villas, Apartment hotels.

Localization

ParameterTypeDefaultDescription
countrystring"us"Country code for localizing results (ISO 3166-1 alpha-2). 40+ countries supported.
languagestring"en"Language for result text (ISO 639-1). 19 languages supported.
currencystring"USD"Currency for prices (ISO 4217). 21 currencies supported.

Advanced

ParameterTypeDefaultDescription
maxPagesinteger1Maximum number of result pages to fetch per search query. Set to 0 for all available pages.

Output

Each search produces one metadata record per query plus one property record per result. Here's a typical property row:

{
"query": "hotels in Paris",
"pageNumber": 1,
"type": "Hotel",
"name": "Le Meurice",
"description": "Elegant palace hotel across from the Tuileries with Michelin-starred dining.",
"link": "https://www.google.com/travel/hotels/entity/ChkI...",
"propertyToken": "ChkI9Pbw4oLblKdlGg0vZy8xMXc0NnJoMXg3EAE",
"googlePlaceId": "ChIJyRd3u9Fu5kcRnvqiJqZULNk",
"address": "228 Rue de Rivoli, 75001 Paris, France",
"gpsCoordinates": { "latitude": 48.865074, "longitude": 2.328047 },
"checkInTime": "15:00",
"checkOutTime": "12:00",
"ratePerNight": { "extracted": 1850, "currency": "USD", "formatted": "$1,850" },
"totalRate": { "extracted": 3700, "currency": "USD", "formatted": "$3,700" },
"deal": null,
"dealDescription": null,
"hotelClass": "5-star hotel",
"extractedHotelClass": 5,
"images": [
"https://lh3.googleusercontent.com/...",
"https://lh3.googleusercontent.com/..."
],
"overallRating": 4.7,
"reviews": 3421,
"locationRating": 4.9,
"amenities": [
"Free Wi-Fi",
"Spa",
"Restaurant",
"Bar",
"Air conditioning",
"Room service"
],
"ecoCertified": false,
"phone": "+33 1 44 58 10 10",
"phoneLink": "tel:+33144581010",
"nearbyPlaces": [],
"essentialInfo": []
}

And a metadata row (one per query, on the first page):

{
"query": "hotels in Paris",
"totalResults": 1427,
"pagesProcessed": 1,
"searchTimestamp": "2026-04-21T14:08:52Z",
"filters": [],
"refineBy": []
}

All Available Fields

Property result fields

FieldTypeDescription
querystringThe search query this result came from
pageNumberinteger1-indexed page number
typestring"Hotel" or "Vacation rental"
namestringProperty name
descriptionstringShort property description
linkstringGoogle Hotels URL for the property
propertyTokenstringToken usable with propertyTokens to fetch detailed info
googlePlaceIdstringGoogle Place ID for cross-referencing
addressstringFull formatted address
gpsCoordinatesobject{ latitude, longitude }
checkInTimestringLocal check-in time (e.g. "15:00")
checkOutTimestringLocal check-out time
ratePerNightobject{ extracted, currency, formatted }
totalRateobject{ extracted, currency, formatted } for the full stay
dealstringDeal badge name, if any
dealDescriptionstringDeal details
hotelClassstringHuman-readable class label (e.g. "4-star hotel", "Entire villa")
extractedHotelClassintegerNumeric star class 1–5
imagesstring[]Image URLs
overallRatingnumberOverall guest rating 0.0–5.0
reviewsintegerTotal review count
locationRatingnumberLocation-specific rating 0.0–5.0
amenitiesstring[]Amenity labels the property offers
ecoCertifiedbooleanEco-certification flag
phonestringContact phone number
phoneLinkstringtel: link
nearbyPlacesarrayNearby attractions and landmarks
essentialInfoarrayHighlighted info from Google (policies, features)

Extra fields when using propertyTokens

FieldTypeDescription
excludedAmenitiesstring[]Amenities the property explicitly does not offer
detailedReviewsarrayReview score breakdown by category

Search metadata fields

FieldTypeDescription
querystringThe search query
totalResultsintegerTotal results available on Google
pagesProcessedintegerHow many pages this run fetched
searchTimestampstringISO 8601 timestamp of when the search ran
filtersarrayAvailable filter options returned by Google
refineByarraySuggested refinements for narrowing the query

Tips for Best Results

  • Be specific in queries — "hotels in Paris 1st arrondissement" returns tighter, more relevant results than "hotels in Paris"
  • Always set dates — Rates and availability only appear when check-in and check-out are provided, and they drive Google's price sorting
  • Match currency to destination — Prices in the native currency are cleaner (no FX rounding artifacts). Use currency: "EUR" for European hotels, "JPY" for Japan, etc.
  • Stack filters thoughtfully — Combining stars, amenities, and property type can over-constrain a market. Start broad, then filter
  • First page is richest — Page 1 returns the fullest property cards. If you need deep coverage, set maxPages higher, but expect lighter detail on subsequent pages — then pass propertyToken back in a second run for complete detail
  • Vacation rentals are separate — Hotels and vacation rentals come from two different modes on Google. If you need both, run two jobs
  • Children require ages — If children > 0, childrenAges must list exactly that many comma-separated integers (0–17), or Google rejects the request

Pricing

$0.02 per search page — transparent, predictable, pay only for what you fetch.

PagesEstimated Cost
10$0.20
100$2.00
1,000$20.00
10,000$200.00

Each search query fetches maxPages pages (default 1). Each page typically returns ~18–20 properties. Property-token detail lookups count as one page each. Platform fees (compute, proxy, storage) depend on your Apify plan and are additional.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Custom API integrations
  • Apify API — Full programmatic access to runs and datasets

This actor is designed for legitimate travel market research, competitive intelligence, rate tracking, and content enrichment. Users are responsible for complying with applicable laws and Google's Terms of Service. Do not use extracted data for spam, harassment, misrepresentation, or any illegal purpose. The actor collects only publicly visible property information — no personal user data.