Google Hotels API: Hotel Prices, Rates & Every Booking Site avatar

Google Hotels API: Hotel Prices, Rates & Every Booking Site

Pricing

from $1.70 / 1,000 hotels

Go to Apify Store
Google Hotels API: Hotel Prices, Rates & Every Booking Site

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

Saulius AutomatesIT

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

19 days ago

Last modified

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

  1. 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 as https://www.google.com/travel/hotels/entity/....
  2. Set the check-in date and nights (or a check-out date) and the number of adults.
  3. Optional: Check-in dates to cover repeats every search for that many consecutive dates, which gives you a rate calendar.
  4. Optional: Add the price on every booking site.
  5. 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.

FieldMeaning
pricePerNightLowest nightly price Google shows, before taxes and fees
pricePerNightWithTaxesThe same with taxes and fees, per night
totalPriceWithTaxesWhole stay with taxes and fees
availablefalse when Google has no price for those dates (often sold out)
positionRank in Google's list for that search
bookingSitesEvery booking site with its nightly and total price (booking sites option)

Pricing

Pay per result, no monthly fee:

EventPrice
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 ApifyClient
client = 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 ApifyClient
client = 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."

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.