Google Hotels API: Hotel Prices, Rates & Every Booking Site
Pricing
from $1.70 / 1,000 hotels
Google Hotels API: Hotel Prices, Rates & Every Booking Site
Hotel prices and hotel rates from Google Hotels for any dates and guests: hotel price API with nightly and total price with taxes, rating, reviews, class, amenities, plus hotel booking prices from every site (Booking.com, Expedia, hotel's own). Hotel price comparison. $2 per 1,000 hotels.
Pricing
from $1.70 / 1,000 hotels
Rating
0.0
(0)
Developer
Saulius AutomatesIT
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
19 days ago
Last modified
Categories
Share
Get hotel prices from Google Hotels for any dates and number of guests, in bulk. Search a city, an area or a hotel name, or paste a Google Hotels URL. For every hotel you get the nightly price and the total with taxes, rating and review count, star class, amenities, location and photos. Turn on booking sites to also get the price on every site Google compares: Booking.com, Expedia, Hotels.com, Agoda, Trip.com, the hotel's own website and more.
No login, no API key, no browser. $2 per 1,000 hotels, and searches that find nothing cost nothing.
What you can use it for
- Rate shopping for hotels: track your own hotel and your competitive set every day, for the next 30, 60 or 90 check-in dates.
- Revenue management and pricing research: compare prices across a city by star class, date and length of stay.
- Parity checks: see which booking site undercuts the hotel's own website, and by how much.
- Travel apps and AI agents: hotel lists with prices, ratings and coordinates in clean JSON.
- Market research: every hotel in an area with class, rating, reviews and amenities.
Is there an official Google Hotels API?
Not for reading prices. Google's hotel APIs (Hotel Center, the Travel Partner API and the price feeds) are for hotels and booking sites that send their rates to Google and manage their own listings. None of them returns the prices Google Hotels shows for a city, a date or a competitor. To get those as data you read the Google Hotels results page, which is what this Actor does: one call, clean JSON, proxies and retries included.
How to use it
- Put one search per line in Searches or Google Hotels URLs:
hotels in Lisbon,Shibuya Tokyo,hotels near Times Square,Hilton Paris Opera, or a URL such ashttps://www.google.com/travel/hotels/entity/.... - Set the check-in date and nights (or a check-out date) and the number of adults.
- Optional: Check-in dates to cover repeats every search for that many consecutive dates, which gives you a rate calendar.
- Optional: Add the price on every booking site.
- Run it and download the results as JSON, CSV or Excel, or read them through the API.
To track one exact hotel, search its name and set Max hotels per search to 1, or paste its Google Hotels URL.
Input example
{"queries": ["hotels in Lisbon", "Hilton Paris Opera"],"checkInDate": "2026-12-18","nights": 2,"adults": 2,"maxHotelsPerQuery": 20,"includeBookingSites": true}
Output
One item per hotel and check-in date. Prices are in US dollars.
{"type": "hotel","query": "hotels in London","position": 1,"checkInDate": "2026-12-20","checkOutDate": "2026-12-22","nights": 2,"adults": 2,"name": "The Waldorf Hilton, London","hotelClass": 4,"rating": 4.4,"reviewsCount": 4522,"available": true,"currency": "USD","pricePerNight": 321.42,"pricePerNightWithTaxes": 383.22,"totalPrice": 642.84,"totalTaxes": 123.59,"totalPriceWithTaxes": 766.44,"lowestPriceSite": "KAYAK.com","bookingSitesCount": 31,"bookingSites": [{ "site": "The Waldorf Hilton, London", "isOfficialSite": true, "pricePerNight": 370.06, "pricePerNightWithTaxes": 444.08, "totalPriceWithTaxes": 888.15 },{ "site": "Booking.com", "isOfficialSite": false, "pricePerNight": 370.06, "pricePerNightWithTaxes": 444.08, "totalPriceWithTaxes": 888.15 }],"address": "Aldwych, London WC2B 4DD, United Kingdom","latitude": 51.5126985,"longitude": -0.1189512,"phone": "+44 20 7836 2400","website": "https://www.hilton.com/en/hotels/lonwahi-the-waldorf-hilton-london/","checkInTime": "3:00 PM","checkOutTime": "12:00 PM","amenities": ["Paid breakfast", "Paid Wi-Fi", "Air conditioning", "Fitness center", "Bar", "Restaurant"],"nearbyPlaces": [{ "name": "Covent Garden", "travel": [{ "mode": "walking", "time": "7 min" }] }],"hotelId": "ChUI3_-FnbCxhLlLGgkvbS8wNmNna3EQAQ","googleHotelsUrl": "https://www.google.com/travel/hotels/entity/ChUI3_-FnbCxhLlLGgkvbS8wNmNna3EQAQ?...","googleMapsUrl": "https://maps.google.com/?cid=5436548297785491423","scrapedAt": "2026-10-03T14:00:00.000Z"}
Each booking site also comes with its total price and a bookingUrl. The full address and phone come with the booking sites option or a hotel URL; city searches give coordinates, website and description.
| Field | Meaning |
|---|---|
pricePerNight | Lowest nightly price Google shows, before taxes and fees |
pricePerNightWithTaxes | The same with taxes and fees, per night |
totalPriceWithTaxes | Whole stay with taxes and fees |
available | false when Google has no price for those dates (often sold out) |
position | Rank in Google's list for that search |
bookingSites | Every booking site with its nightly and total price (booking sites option) |
Pricing
Pay per result, no monthly fee:
| Event | Price |
|---|---|
| Hotel (one row per hotel and check-in date) | $0.002 ($2 per 1,000) |
| Booking sites for one hotel (optional) | $0.002 |
| Actor start | $0.00005 |
Apify Store discounts apply on paid plans: Bronze 5%, Silver 10%, Gold and above 15%.
Examples: 100 hotels in a city = $0.20. One hotel tracked across the next 30 check-in dates with every booking site = $0.12. A 20-hotel competitive set every day for a 30-day window = $1.20 per run.
Tips
- Google lists about 20 hotels per page; the Actor pages on until Max hotels per search. Google stops after roughly 700 hotels for one search (New York: 693 of 1,187), so split a big city into areas (
hotels in Midtown Manhattan,hotels in Brooklyn). - For a rate calendar of a few exact hotels, use their Google Hotels URLs and Check-in dates to cover: one row per hotel per date.
- Schedule the Actor in Apify (daily or hourly) and connect the dataset to Google Sheets, Make, Zapier or your own API.
- Results are what Google shows a US visitor for those dates and guests, in US dollars.
Google Hotels API in Python, JavaScript and cURL
You need an Apify API token (Apify Console > Settings > API & Integrations). Apify's free plan includes $5 of monthly credit, about 2,500 hotels.
Python: hotel prices in a city
$pip install apify-client
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("sauliusautomatesit/google-hotels-api").call(run_input={"queries": ["hotels in Lisbon"],"checkInDate": "2026-12-18","nights": 2,"maxHotelsPerQuery": 10,})for h in client.dataset(run.default_dataset_id).iterate_items():print(h["name"], h["hotelClass"], "stars", h["rating"], h["pricePerNight"], h["currency"])
Python: rate shopping, one hotel on every booking site for the next 7 nights
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("sauliusautomatesit/google-hotels-api").call(run_input={"queries": ["Hilton Paris Opera"],"maxHotelsPerQuery": 1,"checkInDate": "2026-12-01","checkInDays": 7,"includeBookingSites": True,})for h in client.dataset(run.default_dataset_id).iterate_items():sites = sorted(h.get("bookingSites") or [], key=lambda s: s.get("pricePerNight") or 1e9)print(h["checkInDate"], h["name"], [(s["site"], s["pricePerNight"]) for s in sites[:3]])
run.default_dataset_id is for apify-client 3.x (the current release); on 2.x write run["defaultDatasetId"]. Pass max_total_charge_usd=1 to .call() to cap a run at $1.
JavaScript (Node.js)
$npm install apify-client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('sauliusautomatesit/google-hotels-api').call({queries: ['hotels in Barcelona'],checkInDate: '2026-12-18',nights: 2,maxHotelsPerQuery: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((h) => console.log(h.name, h.rating, h.pricePerNight, h.totalPriceWithTaxes));
cURL: one HTTP call, results in the response
curl -X POST "https://api.apify.com/v2/acts/sauliusautomatesit~google-hotels-api/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "content-type: application/json" \-d '{"queries": ["hotels in Lisbon"], "checkInDate": "2026-12-18", "nights": 2}'
AI agents (MCP)
Add https://mcp.apify.com/?tools=sauliusautomatesit/google-hotels-api as a remote MCP server in Claude, Cursor or any MCP client, then ask: "Find 4-star hotels in Lisbon under $200 a night for 18 to 20 December."
Related Actors
- Google Trends API: search interest for destinations and hotel brands over time.
- Google Ads Transparency API: every Google ad a hotel group or booking site runs.
- Google Flights API: flight prices and cheapest dates for the same trip.
FAQ
Is it legal? It reads public Google Hotels pages that anyone can open without logging in. You are responsible for how you use the data; do not collect personal data you have no lawful basis for.
Why is a hotel's price missing? Google shows no price when the hotel is sold out or has no partner rates for those dates. Those rows have available: false.
Can I get prices in euros or pounds? Not yet: Google returns US dollar prices once dates are set. Convert with your own exchange rate.
How much does a Google Hotels price API cost here? $2 per 1,000 hotels, plus $2 per 1,000 if you add every booking site's price. No monthly fee; Apify's free plan's $5 monthly credit covers about 2,500 hotels.
Can I track a hotel's rates every day? Yes. Save the rate shopping input as a task and schedule it daily; each run gives one row per hotel and check-in date, ready for Google Sheets or your revenue system.
Something broke or you need a field? Open an issue on the Actor's Issues tab and it will be looked at quickly.