Google Travel Hotel Rate Tracker - OTA Prices for Every Night
Pricing
from $1.00 / 1,000 offers
Google Travel Hotel Rate Tracker - OTA Prices for Every Night
Track Google Travel hotel prices for many stay dates: give hotel URLs or names and check-in dates, get every booking site's offer per date with nightly price, stay total, cheapest-offer flag and gap vs the hotel's own site for rate shopping and parity checks. $1 per 1,000 offers; errors are free.
Pricing
from $1.00 / 1,000 offers
Rating
0.0
(0)
Developer
Tenfold Fleet
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
What does Google Travel Hotel Rate Tracker do?
Google Travel Hotel Rate Tracker follows one hotel, or a short list of hotels, across many stay dates and returns every booking site's price for each night. Give it a hotel's Google Travel link (or its name) and a date range, and you get one row per offer: the booking site (Booking.com, Expedia, Agoda, Trip.com, the hotel's own website and many smaller OTAs), the nightly price, the stay total, a flag on the cheapest offer of the date, a flag on the hotel's own website, and how far each offer sits above or below the hotel's own rate.
It reads the public price list that Google Travel shows for a hotel, over plain HTTP with no browser, no login and no cookies. A two-week rate calendar for one hotel takes a few seconds. Use it in the Apify Console, on a schedule, or as a Google Travel hotel prices API from your code, Make, Zapier, n8n or an AI agent.
Not affiliated with, endorsed by or sponsored by Google. Google Travel is a trademark of Google LLC. Hotel business data only: hotel names, addresses and public room prices.
How it differs from a Google Hotels search scraper: a search scraper takes a city and returns a list of hotels with one price each. This Actor takes hotels you already know and returns the full offer list for every stay date, which is what rate shopping, rate-parity checks and revenue reports need.
Why use this hotel rate tracker?
- 📅 Rate calendars: price a hotel for every check-in date of the next 14, 30 or 180 days in one run, or for an exact list of dates (every Friday, a trade-fair week, New Year's Eve).
- ⚖️ Rate parity checks:
isOfficialSite,officialSiteNightlyPriceanddiffVsOfficialPctshow at a glance which booking sites undercut the hotel's own website, and by how much. - 🏨 Competitor rate shopping: put your hotel and 5-10 competitors in one run and compare the lowest rate per night (
isLowestForDate,priceRank). - 📈 Price history: schedule the same input daily and append the rows to a sheet or database to see how prices move as the stay date gets closer.
- 💸 Pay only for real offers: sold-out dates, unresolved names, dates Google won't price and blocked pages are returned as free rows with an
errorfield.
What data can it extract?
| Field | Example |
|---|---|
hotelName, entityId, hotelUrl | Hotel Adlon Kempinski Berlin, ChUI2f3tmL_9t_IZGgkvbS8wOG1mdzIQAQ, Google Travel link |
checkIn, checkOut, nights, adults | 2026-12-03, 2026-12-04, 1, 2 |
provider | Booking.com, Expedia, Hotel Adlon Kempinski Berlin (the hotel's own site) |
isOfficialSite | true for the hotel's or chain's own website |
nightlyPrice, totalPrice, currency | 350.89, 350.89, USD (total = the whole stay) |
isLowestForDate, priceRank | true, 1 (1 = cheapest offer for that hotel and date) |
offerRank | position in Google's own list (featured offers and the hotel's own site come first) |
officialSiteNightlyPrice, diffVsOfficialPct | 403.08, -13 (13% below the hotel's own rate) |
offersForDate | how many booking sites priced this date |
bookingLink | Google's click-through link to the offer |
hotelStars, hotelRating, hotelReviewCount, hotelAddress | 5, 4.6, 2383, Unter den Linden 77, 10117 Berlin, Germany |
hotelInput, scrapedAt | what you typed, and when the price was read |
How to track hotel prices on Google Travel
- Open the hotel on Google Travel (google.com/travel/hotels) and copy the address bar. It looks like
https://www.google.com/travel/hotels/entity/ChUI.... (A hotel name also works, see Tips.) - Click Try for free (or Start) on this page and paste one or more hotels into Hotels.
- Set the first check-in date and the number of check-in dates, or fill in Exact check-in dates.
- Choose nights per stay and the currency.
- Optional: set Max offers per date to keep only the cheapest few booking sites per date and cap the cost.
- Click Start. Download the offers as JSON, CSV, Excel or HTML, or read them through the Apify API. To track prices over time, save the input as a task and add a daily schedule.
How much does it cost?
This Actor uses pay-per-event pricing, the same on every Apify plan:
| Event | Price |
|---|---|
| Offer (one booking site's price for one hotel and one stay date) | $1 per 1,000 offers ($0.001 each) |
| Run start | $0.00005 per run |
A hotel shows about 15-30 offers per date. Examples: one hotel for 14 dates is about 280 offers, about $0.28. Ten hotels for 30 dates is about 6,000 offers, about $6. With Max offers per date set to 5, the same ten hotels for 30 dates cost at most $1.50. On the Apify free plan, the $5 monthly credit covers about 4,900 offers.
Free of charge: hotel names that can't be matched, duplicate hotels, sold-out dates, dates in the past or too far ahead, and pages Google blocks. Set a maximum cost per run and the Actor stops when it reaches it.
Input
{"hotels": ["https://www.google.com/travel/hotels/entity/ChUI2f3tmL_9t_IZGgkvbS8wOG1mdzIQAQ","Park Hyatt Tokyo"],"startDate": "2026-12-01","days": 14,"nights": 1,"currency": "USD","maxOffersPerDate": 0}
Or price exact dates instead of a range:
{"hotels": ["ChUI2f3tmL_9t_IZGgkvbS8wOG1mdzIQAQ"],"dates": ["2026-12-04", "2026-12-11", "2026-12-18", "2026-12-31"],"nights": 2,"currency": "EUR"}
Output
Each booking-site offer for each hotel and date is one row. You can download the dataset as JSON, CSV, Excel, XML or HTML.
{"hotelName": "Hotel Adlon Kempinski Berlin","entityId": "ChUI2f3tmL_9t_IZGgkvbS8wOG1mdzIQAQ","hotelUrl": "https://www.google.com/travel/hotels/entity/ChUI2f3tmL_9t_IZGgkvbS8wOG1mdzIQAQ","checkIn": "2026-12-03","checkOut": "2026-12-04","nights": 1,"adults": 2,"provider": "Traveluro","isOfficialSite": false,"nightlyPrice": 350.89,"totalPrice": 350.89,"currency": "USD","offerRank": 2,"priceRank": 1,"isLowestForDate": true,"officialSiteNightlyPrice": 403.08,"diffVsOfficialPct": -13,"offersForDate": 28,"bookingLink": "https://www.google.com/travel/lodging/clk?pc=...","hotelStars": 5,"hotelRating": 4.6,"hotelReviewCount": 2383,"hotelAddress": "Unter den Linden 77, 10117 Berlin, Germany","hotelInput": "Hotel Adlon Kempinski Berlin","scrapedAt": "2026-10-23T11:40:58.007Z"}
A date with no offers, a name that can't be matched or a blocked page adds one free row such as {"hotel": "...", "checkIn": "2026-12-03", "error": "No booking-site offers for this stay (sold out, or a minimum stay longer than 1 night)."}, so you can see what to retry.
Tips
- Hotel URLs are the reliable input. A name is looked up on Google Travel and then checked against the hotel Google picked (word order and the city in the address are allowed for). If it looks like a different hotel, a city ("Paris", "Paris hotels") or a bare chain name ("Marriott"), you get a free error row with the hotel Google suggested, and nothing is charged. Paste the URL instead.
- Any Google Travel hotel link works, with or without a city in the path (
/travel/hotels/London/entity/...). The same hotel given twice (as a URL and a name) is priced and charged once. - Booking sites depend on where the request comes from. By default the Actor runs on Apify servers in the USA, so you see the offers a US traveller sees. To check another market, pick a proxy country under Proxy.
- Prices are for 2 adults, Google's default room occupancy.
totalPriceis the price for the whole stay as Google shows it (for 1 night it equals the nightly price). Whether taxes and fees are included depends on the country Google prices for.- Booking links expire.
bookingLinkis Google's click-through link for that search; open it soon after the run, or openhotelUrllater. - Minimum stays: some hotels sell only 2-3 night stays on busy dates. A 1-night search then returns a free "no offers" row; try
nights: 2or3. - Google prices stays up to about 11 months ahead. A date in the past or beyond that window returns a free error row, never another date's prices.
- If Apify reports a concurrent-run limit when you start many runs at once, wait 60 seconds and start the run again.
Use it with AI agents (MCP)
Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through Apify's MCP server: add https://mcp.apify.com?tools=tenfoldfleet/google-travel-hotel-rate-tracker as a remote MCP server and sign in with your Apify account. The agent fills in the input, runs the Actor and reads the results itself; you pay the same per-event price as a normal run.
FAQ
Do I need a Google account, an API key or cookies?
No. The Actor reads the public prices Google Travel shows to any visitor. It needs no login, no cookies and no API key.
How many booking sites does it return?
Everything Google lists for that hotel and date, usually 15-30 for a well-known city hotel and fewer for small or sold-out properties. A low count is real data (for example, most sites sold out), not an error.
Can I track several hotels in one run?
Yes. Add as many hotels as you like; every hotel is priced for every date. Duplicate dates are removed.
Can I choose the number of guests or rooms?
Not yet. Google's price list is read for 2 adults in one room. Use nights for the stay length.
How do I build a price history?
Save your input as a task and schedule it daily. Each run adds rows with scrapedAt, so you can chart how a date's price changes as it gets closer.
Is the cheapest price always the one to book?
isLowestForDate marks the lowest price in the list. Small OTAs sometimes win by a few cents; compare priceRank with isOfficialSite and the provider before you decide.
Disclaimer
This Actor collects public hotel prices that Google Travel shows without a login. It does not collect personal data. Prices change often and can differ from what a booking site shows at checkout. Check the provider's terms before you republish their prices.