Disclosure: I build the Apify Actor used in this post (TubeText Labs).
Google Hotels shows, for every hotel, what each booking site charges for your dates – Booking.com, Expedia, Hotels.com, the hotel's own site and many smaller agencies. There is no public API for those prices (Google's Hotel Prices API is for partners sending prices in, not for reading them). Here's how to get them as JSON, plus a 90-day price calendar for a single hotel.
1. Every hotel in a city, with prices per booking site
curl -X POST "https://api.apify.com/v2/acts/tubetext~google-hotels-scraper/run-sync-get-dataset-items?timeout=300" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"locations": ["Lisbon"], "checkInDate": "2026-11-20", "checkOutDate": "2026-11-22",
"currency": "USD", "maxHotelsPerLocation": 20, "includeBookingOffers": true}'
Each hotel comes back with its rating, star class, location and the lowest price. With includeBookingOffers it also gets a bookingOffers list – vendor, nightly and total price, room types, whether it's the official site and whether it's an ad – cheapest first, plus cheapestVendor. In our Lisbon test each hotel had between 9 and 28 booking sites, and for one of them the cheapest offer came from a small agency rather than a big OTA.
2. When is this hotel cheapest? A price calendar
Take any hotel's googleHotelsUrl from step 1 and ask for a calendar:
{
"calendarHotelUrls": ["https://www.google.com/travel/hotels/entity/…"],
"checkInDate": "2026-11-20",
"calendarDays": 30,
"calendarNights": 1,
"currency": "USD"
}
You get one row per check-in date with lowestPricePerNight, lowestVendor and all vendor prices. Dates with no rates come back as no_rates and aren't charged.
Things to know
- Prices are what Google shows US visitors, taxes and fees included (
priceIncludesTaxesAndFeestells you per row). Visitors from other countries can see different rates. - Google returns at most about 420 hotels per search. For more, split a city into neighbourhoods.
- Price monitoring is just a schedule: run the same hotels and dates daily and compare
pricePerNight.
Cost
$3 per 1,000 hotels with a price, +$2 per 1,000 for the booking-site breakdown, and $3 per 1,000 priced calendar dates. Sold-out hotels, no-rate dates and failed searches are free. A 30-day calendar for 5 hotels is at most 150 dates, about $0.45.
Top comments (0)