DEV Community

LMSlay
LMSlay

Posted on

Google Hotels prices per booking site (and a 90-day price calendar) as JSON

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}'
Enter fullscreen mode Exit fullscreen mode

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"
}
Enter fullscreen mode Exit fullscreen mode

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 (priceIncludesTaxesAndFees tells 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.

Actor: https://apify.com/tubetext/google-hotels-scraper

Top comments (0)