Scraper API

Google Hotels API

with rates, ratings, and review breakdowns

Search Google Hotels and get every property as clean JSON. One request returns nightly and total rates, ratings, a review sentiment breakdown, and nearby places, for any destination and dates, with proxies handled for you.

SUCCESS
99.9%

of requests succeed

P50
2.3s

median response

P95
3.6s

95% finish faster

PRICE
$0.75

per 1k hotel searches at volume

Stop maintaining scrapers

Google reshuffles Hotels constantly. Your parser shouldn't care.

  • Rates split into nightly and total, before and after fees
  • Review sentiment buried in the layout
  • Filters and property types shifting
  • Proxies and captchas per search
  • Re-parse the results after each redesign
One integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: markup changed, nulls in rate
fix: taxes double-counted in total rate
fix: review breakdown lost its counts
chore: rotate proxies for hotel runs again
fix: property token changed shape
hotfix: captcha loop on date changes
fix: vacation rentals mixed into hotels
chore: refresh residential IPs by region
fix: pagination token stopped working
fix: retry storm on rate limits
hotfix: markup changed, nulls in rate
fix: taxes double-counted in total rate
fix: review breakdown lost its counts
chore: rotate proxies for hotel runs again
fix: property token changed shape
hotfix: captcha loop on date changes
fix: vacation rentals mixed into hotels
chore: refresh residential IPs by region
fix: pagination token stopped working
fix: retry storm on rate limits
hotfix: markup changed, nulls in rate
fix: taxes double-counted in total rate
fix: review breakdown lost its counts
chore: rotate proxies for hotel runs again
fix: property token changed shape
hotfix: captcha loop on date changes
fix: vacation rentals mixed into hotels
chore: refresh residential IPs by region
fix: pagination token stopped working
fix: retry storm on rate limits
hotfix: markup changed, nulls in rate
fix: taxes double-counted in total rate
fix: review breakdown lost its counts
chore: rotate proxies for hotel runs again
fix: property token changed shape
hotfix: captcha loop on date changes
fix: vacation rentals mixed into hotels
chore: refresh residential IPs by region
fix: pagination token stopped working
fix: retry storm on rate limits
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
curl -G 'https://api.hasdata.com/scrape/google/hotels' \
	--data-urlencode 'q=Hotels in New York' \
	--data-urlencode 'checkInDate=2026-08-15' \
	--data-urlencode 'checkOutDate=2026-08-20' \
	--header 'x-api-key: <YOUR_API_KEY>' \
	--header 'Content-Type: application/json'
q * Search Query
The search query for Google Hotels (e.g., a city, neighborhood, or hotel name).
checkInDate * Check-in Date
The check-in date in 'yyyy-MM-dd' format.
checkOutDate * Check-out Date
The check-out date in 'yyyy-MM-dd' format.
gl Country
The two-letter country code for the country you want to limit the search to.
hl Language
The two-letter language code for the language you want to use for the search.
currency Currency
Parameter defines the currency of the returned prices
adults Adults
Number of adult guests (1-6).
children Children
Number of child guests (1-5). Total guests (adults + children) cannot exceed 6.
childrenAges Children Ages
Comma-separated list of children ages (e.g., `5,8,12`). Must match the number of children.
sortBy Sort By
Sort hotel results. Options: - `lowestPrice` — lowest price - `highestRating` — highest rating - `mostReviewed` — most reviewed
minPrice Minimum Price
Minimum price per night, in the selected currency.
maxPrice Maximum Price
Maximum price per night, in the selected currency.
propertyType[] Property Type
List of property types to filter by (e.g., `hotelResort,hotelMotel`). Values prefixed `hotel*` apply when searching hotels (the default mode). Values prefixed `rental*` apply when `vacationRentals=true`. The two sets are disjoint because Google Hotels exposes different property-type catalogs for each mode — pass values matching the mode you're querying.
amenity[] Amenity
List of amenities to filter by (e.g., `hotelFreeWifi,hotelPool`). Values prefixed `hotel*` apply when searching hotels (the default mode). Values prefixed `rental*` apply when `vacationRentals=true`. The two sets are disjoint because Google Hotels exposes different amenity catalogs for each mode — pass values matching the mode you're querying.
rating Minimum Rating
Filter by minimum overall guest rating. Options: - `threePointFivePlus` — 3.5 stars or higher - `fourPlus` — 4.0 stars or higher - `fourPointFivePlus` — 4.5 stars or higher
brands Brands
Comma-separated list of brand IDs to filter by. Brand IDs are returned in the response under `brands` for the same query.
hotelClass Hotel Class
Comma-separated list of hotel star classes to include (e.g., `2,3,4,5`).
freeCancellation Free Cancellation
Show only properties offering free cancellation.
specialOffers Special Offers
Show only properties with special offers.
ecoCertified Eco-certified
Show only eco-certified properties.
vacationRentals Vacation Rentals
Search vacation rentals instead of hotels.
bedrooms Bedrooms
Minimum number of bedrooms (vacation rentals only).
bathrooms Bathrooms
Minimum number of bathrooms (vacation rentals only).
nextPageToken Next Page Token
Token to fetch the next page of hotel results. Returned in the `pagination` field of a previous response.
propertyToken Property Token
Token used to retrieve details for a specific property. Returned in each property in the results.
TRY ALL 25 PARAMETERS FREE
Response

Every property, one predictable schema

Each hotel comes back with the same keys, nightly and total rates, a review breakdown, and nearby places. Map the fields once and forget about it.

properties.json
[
  {
    "name": "The Manhattan at Times Square Hotel",
    "type": "hotel",
    "link": "https://www.ihg.com/spnd/hotels/us/en/new-york/nycat/",
    "gpsCoordinates": { "latitude": 40.7622856, "longitude": -73.9826404 },
    "checkInTime": "4:00 PM",
    "checkOutTime": "12:00 PM",
    "ratePerNight": { "lowest": "$168", "extractedLowest": 168, "beforeTaxesFees": "$144", "extractedBeforeTaxesFees": 144 },
    "totalRate": { "lowest": "$839", "extractedLowest": 839 },
    "overallRating": 4.1,
    "reviews": 10163,
    "locationRating": "4.9",
    "reviewsBreakdown": [
      { "name": "Bathroom", "totalMentioned": 1407, "positive": 1180, "negative": 160, "neutral": 67 }
    ]
  }
]
Fields in properties
name / type string

Property name and hotel | vacation rental

ratePerNight object

Nightly price, before and after taxes and fees

totalRate object

Full-stay price, display and numeric

overallRating / reviews number

Star rating and total review count

locationRating string

How guests rate the location

reviewsBreakdown[] object[]

Per-topic sentiment: positive, negative, neutral counts

gpsCoordinates / checkInTime / checkOutTime object / string

Location and stay times

What We Offer

An all-in-one scraping service

Every feature you need to collect data from thousands to millions of requests.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Trustpilot Trustpilot ★★★★★

HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★★

Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.

Arnold Foster
Arnold Foster
Trustpilot Trustpilot ★★★★★

I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.

Hussein Ali
Hussein Ali
Clutch Clutch ★★★★★

We were particularly impressed with how easily we could integrate HasData into our existing workflow.

TB
Taras Bazyshyn
CEO at BAZTDL Sp. z o.o
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
One-time free trial
100 hotel searches to start
1 concurrent request
Team seats
Community support
Start free
Startup
$41 /mo
$2.04 / 1k hotel searches
20K hotel searches / month
15 concurrent requests
Team seats
Email support
Get started
Business
Recommended
$83 /mo
$0.82 / 1k hotel searches
100K hotel searches / month
30 concurrent requests
Team seats
Priority email support
Get started
Enterprise
$208 /mo
$0.69 / 1k hotel searches
50 concurrent requests
Team seats
Dedicated account manager
Get started
Monthly hotel search volume
Free 100K 500K 2M 6M 10M
Best fit
Business
hotel searches / mo
100K
Concurrency
30
$ / 1k hotel searches
$0.82
$83 /mo
Get Started

Start with 100 free hotel searches. No credit card required.

FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first hotel search
is minutes away

100 hotel searches free · no credit card