Documentation Blog Free tools [email protected]Log in

Google Hotels API

The Google Hotels API takes a destination and your dates and returns the properties as rows: nightly price, total for the stay, currency, rating and review count, property type and amenity chips. Rates are read live for those exact dates — $0.002 per delivered property.

$0.002 per delivered property · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/hotels/run
$ curl $QD/hotels/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{ "location": "Rome, Italy",
          "check_in_date": "2026-09-18",
          "check_out_date": "2026-09-20",
          "adults": 2, "currency": "EUR" }'
{ "status": "done", "count": 20,
  "results": [
    { "name": "Hotel Artemide", "price": "€245",
      "price_value": 245, "total_price": "€490",
      "rating": 4.7, "reviews": 5120,
      "property_type": "Hotel",
      "amenities": ["Free Wi-Fi", "Spa"] } ],
  "cost": 0.04 }
# 20 properties × $0.002 · nothing delivered, nothing charged
$0.002 / property1,000 properties on the free $2 every month
City + datesrates priced for the exact stay you asked for
Up to 50 propertiesper run, with amenities and totals
Multi-OTA viewGoogle aggregates rates instead of one booking site

What the Google Hotels API returns

Hotel prices do not exist without dates: a rate is a function of the stay. This collector takes a destination, a check-in and a check-out date and the number of adults, and returns the property cards Google shows for that exact stay — nightly price, total, rating, property type and amenities, as typed rows.

Most hotel scrapers on the market target one booking site. Google Hotels is an aggregator across OTAs and direct rates, so one call gives you the market view for a destination rather than one channel’s view of it — the difference between "what does this OTA charge" and "what is this city priced at this weekend".

Dates are validated before any work starts: a check-out on or before check-in, or a date in the past, comes back as a 400 rather than as an empty run you paid for. Rates are read live at request time, so a run tells you what is bookable now, not what was cached last week.

What comes back for every property

Fifteen published fields, versioned. The request dates are echoed on every row, so a stored row still means something a month later.

FieldTypeWhat it holds
namestringProperty name.
price · price_valuestring · numberNightly price as shown and parsed.
total_pricestringTotal for the whole stay as shown.
currencystringCurrency of the quoted rates.
rating · reviewsnumber · integerRating and review count.
property_typestringHotel, Apartment, Vacation rental…
amenitiesstring[]Amenity chips shown on the card.
datesstringStay dates as displayed on the card.
check_in_date · check_out_datestringEcho of your request — the row is self-describing.
link · thumbnailstringProperty link and photo.

Inputs: destination and dates are required

Cross-field rules are checked before the run: check-out must be after check-in, and check-in cannot be in the past.

InputTypeRequiredWhat it does
locationstringyesCity or area — "Rome, Italy", "Austin, TX".
check_in_datedateyesYYYY-MM-DD, today or later.
check_out_datedateyesYYYY-MM-DD, after check-in.
adultsintegerno1–8, default 2 — occupancy changes the rate.
currencystringnoUSD, EUR, GBP… quotes come back in it.
country · langstringnoExit geo and interface language — rates can differ by point of sale.
max_resultsintegerno1–50, default 20. Billed on delivered properties.

Pricing

What live hotel rates cost

Each delivered property is $0.002. A rate-shopping job over 10 destinations, 20 properties each, for 7 stay dates is 1,400 rows — under $3 at list price. Runs that come back empty, or that a date rule rejects, cost nothing.

$0.002per delivered property$2 per 1,000 delivered properties
1,000 propertieson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/hotels/run.

# Rome, two nights, two adults, prices in EUR
curl https://api.quanticdata.io/v1/scraper/collectors/hotels/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "location": "Rome, Italy",
        "check_in_date": "2026-09-18",
        "check_out_date": "2026-09-20",
        "adults": 2, "currency": "EUR", "max_results": 30 }'

What people run it for

Rate data is perishable — these four uses all depend on reading it for real dates.

Rate shopping

A hotel checks its own position against the comp set for the same stay: nightly rate, total, rating and property type, on the dates that actually matter for the pitch.

Revenue management inputs

Run one destination across a rolling calendar of stay dates and you have a demand curve — which weekends are priced up, where the market softens.

Travel content and tools

Build "hotels in X from €Y" pages or a deal bot on rows you can cite, with the property link and the exact dates on every record.

Event pricing analysis

Conference and festival weekends show up as price spikes. Compare an event stay against a control weekend in the same city to size the effect.

Collector vs OTA scrapers vs booking APIs

Why "hotel price scraper api" and "google hotels api" end up on the same shortlist.

Single-OTA scrapersBooking/affiliate APIsThis collector
View of the marketone booking sitethe inventory of that partnerGoogle’s aggregated view for the stay
Accessanti-bot fights per sitepartner approval and contractsan API key
Dates & occupancyyours to encode per sitesupportedfirst-class inputs, validated before the run
Totals for the staysometimesusuallytotal_price when shown, plus nightly
Billingproxy and compute burncommission or contract$0.002 per delivered property

Supply-side feeds and the GDS route

Google's hotel products — Hotel Center, the Hotel Prices feed — exist so hotels and OTAs can submit rates into Google. Nothing there reads what others are charging, and there is no public Google API returning hotel search results.

The professional demand-side route is a GDS or OTA API: Amadeus, Sabre, Travelport, or an OTA affiliate programme. They give you bookable inventory and contracted rates, and they require commercial agreements, certification and usually demonstrated booking volume. Building a booking product: use those. Building a rate-shopping dataset: you need what the market is publicly quoting, which is a search surface.

Limits, the date grid and the legal bit

Up to 50 properties per run for one destination-and-dates combination. The cost driver is never the property cap — it is the grid: destinations × dates × occupancies grows multiplicatively, and ten destinations across ninety days is nine hundred runs. Decide the date resolution deliberately; weekly sampling usually answers the question that daily sampling answers ten times more expensively. Throughput is your plan's rate limit rather than anything about the collector: 60 requests/minute on pay-as-you-go, up to 1,200 on the top tier.

Set currency explicitly on every call. Rates are quoted in whatever currency the visitor appears to want, so an unpinned series records exchange-rate movement as rate movement.

Collecting publicly visible data is generally lawful in most jurisdictions, and courts have repeatedly declined to treat reading a public page as unauthorised access. Google's terms restrict automated access and travel operators defend rate data energetically. Prices are not personal data. Using competitor rates to coordinate pricing rather than to compete on it is a competition-law question independent of collection. None of this is legal advice — get some for your actual use case.

FAQ

What people ask before scraping hotel prices — dates, coverage and what a run really costs.

Something else? Ask us →

Is there a Google Hotels API?

Not a public one from Google. Hotel results are shown to users but not exposed as a general API, so reading them means scraping the public results — which is what this collector does, returning properties with nightly price, total, rating and amenities.

Do I have to give dates?

Yes, and that is the point: a hotel rate only exists for a stay. Check-in and check-out are required, occupancy defaults to two adults, and the pair is validated before any work starts — check-out after check-in, check-in not in the past.

How much does hotel price scraping cost?

$0.002 per delivered property. The $2 free monthly allowance covers about 1,000 properties, and volume tiers take up to 30% off the unit price. Empty or rejected runs are never billed.

Does it cover vacation rentals?

The collector reads Google’s hotel results for the destination and dates you ask for; the property_type field tells you what each row is — Hotel, Apartment, Vacation rental — so you can filter after the fact rather than guessing from the name.

Are prices in my currency?

Set currency and quotes come back in it, with price_value parsed as a number. Bear in mind the point of sale matters too: country sets the exit geo, and rates can legitimately differ between markets.

Can I build a rate calendar with it?

Yes — loop the same destination over a series of stay dates, one run each, and store the rows with their echoed check_in_date. Each run is billed only on what it delivered, so a thin date returns fewer rows and costs less.

Why are dates required rather than optional?

Because a hotel price only exists for specific dates and occupancy. A dataset of "hotel prices" without them is not a weaker dataset, it is a meaningless one — rates move with season, day of week, demand and length of stay.

Are these rates bookable?

No. They are what Google displays publicly, which is the right input for rate shopping and benchmarking but is not contracted inventory. Selling a room needs a GDS or OTA API with an agreement behind it.

Start with the Google Hotels API

$0.002 per delivered property, $2 per 1,000 delivered properties. $2 of free credit every month, no card — and a run that delivers nothing is never billed.

Get my free API key
Get my free API key