DEV Community

Cover image for Google Hotels API: Scrape Live Hotel Prices and Ratings in 2026 (Python + MCP)
Truffle Pig Data
Truffle Pig Data

Posted on

Google Hotels API: Scrape Live Hotel Prices and Ratings in 2026 (Python + MCP)

Every LLM can recommend a hotel; none of them know what tonight's room costs. The prices sit on Google Hotels, rendered by JavaScript, tangled in date pickers, and unavailable through any official endpoint. I built my workflow around the Google Hotels Search Scraper on Apify instead: a destination and dates in, structured JSON out, with nightly rates, ratings, and amenities per property.

Disclosure: the Apify links in this post are affiliate links. If you run the Actor, I may earn a referral commission at no extra cost to you.

Does Google Hotels have an API?

No. Google offers no public hotels API, and the search that answers "hotels in Lisbon under $180" exists only as a web page. That is why "google hotels api" leads to hosted scrapers, and the practical definition is a scraper you call like an API: it reads the public results for your query and returns each property as a JSON record.

What the Google Hotels API returns

The Google Hotels API returns one record per property for a destination and date range: name, nightly and total price, guest rating, star class, amenities, coordinates, and images.

Field Example Notes
name Memmo Alfama Hotel Property name
rate_per_night { "lowest": "$174" } With total_rate for the stay
overall_rating 4.5 Plus the review count
hotel_class 4-star hotel With extracted_hotel_class as a number
amenities ["Free Wi-Fi", "Pool"] Filterable at query time
property_token ChkI... Key for follow-up detail, photos, and reviews lookups

Search results also include ads and the active filters, and three sibling modes reuse the same Actor: autocomplete for destination suggestions, photos for a property's image set, and reviews for per-review rows with subratings.

Who this is for

Hotel revenue managers rate-shopping their comp set, travel app builders who need live prices behind their UI, and analysts doing hotel market research across cities without buying a hospitality data subscription.

The manual way, and where it breaks

Scraping Google Hotels yourself means driving a headless browser through a JavaScript app: inject dates, wait for prices to settle, scroll for more properties, and parse a DOM that changes with every experiment Google runs. Currency and language shift results silently, vacation rentals mix into hotel results, and pagination is gesture-based. Each of those is a special case in your code, forever.

The faster way: run the Google Hotels Search Scraper

Apify Console

  1. Open the Google Hotels Search Scraper and click Try for free.
  2. Set q to a destination search, add check_in_date and check_out_date, and any filters like hotel_class or max_price.
  3. Run it and export the properties as JSON, CSV, or Excel.

REST

curl -X POST "https://api.apify.com/v2/acts/johnvc~google-hotels-search-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "search_type": "search", "q": "hotels in Austin", "check_in_date": "2026-09-10", "check_out_date": "2026-09-12", "max_pages": 1 }'
Enter fullscreen mode Exit fullscreen mode

Endpoint reference: the Apify API docs.

Scrape hotel prices in Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("johnvc/google-hotels-search-scraper").call(
    run_input={
        "search_type": "search",
        "q": "hotels in Lisbon",
        "check_in_date": "2026-10-02",
        "check_out_date": "2026-10-04",
        "adults": 2,
        "currency": "USD",
    }
)

for page in client.dataset(run["defaultDatasetId"]).iterate_items():
    for hotel in page.get("properties", []):
        print(hotel["name"], hotel.get("rate_per_night"), hotel.get("overall_rating"))
Enter fullscreen mode Exit fullscreen mode

Localization is three parameters: gl for country, hl for language, currency for the money, so "Tokyo hotels priced in yen" is a value change.

Rate-shop your competitor set

The revenue-management staple. Run competitor rate shopping for your hotel pulls your comp set's live rates for the dates you care about.

Track Las Vegas prices for CES week

Event pricing is its own sport: Track Las Vegas hotel prices for CES week watches a compressed market around a fixed date.

Build review and photo datasets

The other modes earn their keep in data work: Extract guest reviews for any hotel feeds a sentiment dataset, and Download all photos for any hotel yields real property imagery keyed by property_token.

Quote live rates from Claude via MCP

Through Apify's MCP server, Claude, Claude Code, and Cursor can call the scraper as a tool: ask for "a 4-star in Lisbon under $180 for the first weekend of October" and the agent answers with live properties and prices. The task Search Google Hotels from Claude via MCP is the working config, and you can read more about Claude at claude.ai.

FAQ about scraping Google Hotels

How much does the Google Hotels scraper cost to run?

Billing is pay per event, and it works out to pennies per page of search results; max_pages caps a run before it starts. New Apify accounts include free platform credit, so early rate checks generally cost nothing out of pocket.

Can this hotel scraper book rooms?

No. It is read-only data extraction: prices, ratings, amenities, reviews, and photos. Reservations stay with the booking sites, and anything promising otherwise from scraped data deserves your skepticism.

Does the scraper cover vacation rentals?

Yes. A vacation-rentals toggle brings them in with bedroom and bathroom filters, so short-term rental inventory can sit in the same dataset as hotels.

Can Claude quote live rates through this scraper via MCP?

Yes, that is the MCP task above: connect the Apify MCP server and the scraper becomes a tool your agent calls mid-conversation with real prices in the reply.

Can I schedule the scraper for nightly rate checks?

Yes, and rate shopping only really works on a schedule. Save your comp-set search as a task, attach a nightly cron, and diff rate_per_night between runs. Start from the Google Hotels Search Scraper page.

More from Truffle Pig Data

Deeper dives on the same Actor: Google Hotels Scraper for AI Agents on Medium, the LinkedIn version, and the Peerlist article on live hotel prices.

Wrapping up

If your travel tool quotes prices from training data, it is guessing. Give it the Google Hotels Search Scraper and quote tonight's rates instead.

Top comments (0)