Disclosure: I built the tool used in this article (Google Hotels Scraper & API on Apify).
If you have tried to build anything with hotel prices — a price tracker, a travel agent bot, a rate-parity check for a hotel — you have met the same wall: Google Hotels shows every booking site's price for a hotel on one page, but there is no public API for it. The Hotel Ads and Travel Partner APIs are for partners who send prices to Google, not for reading them.
What does exist is the page itself. This article shows how to turn a Google Hotels search into JSON with one HTTP call, and what you get back.
One call
curl -X POST "https://api.apify.com/v2/acts/surefeed~google-hotels-scraper/run-sync-get-dataset-items" \ -H "Authorization: Bearer YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "queries": ["hotels in Rome"], "checkIn": "2027-02-12", "checkOut": "2027-02-15", "adults": 2, "currency": "EUR", "country": "IT", "maxResultsPerQuery": 20 }' The response is a JSON array, one object per hotel: name, price per night and for the stay, whether taxes are included, rating, number of reviews, stars, coordinates and a link to the hotel on Google Hotels.
The same in Python (pip install apify-client, version 3 or later):
from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("surefeed/google-hotels-scraper").call(run_input={ "queries": ["Hotel Artemide Rome"], "checkIn": "2027-02-12", "checkOut": "2027-02-15", "adults": 2, "currency": "EUR", "country": "IT", "maxResultsPerQuery": 1, "includeDetails": True, }) for hotel in client.dataset(run.default_dataset_id).iterate_items(): d = hotel["details"] print(hotel["name"], "from", d["lowestPricePerNight"], "via", d["lowestPriceProvider"]) for offer in d["offers"]: print(" ", offer["provider"], offer["pricePerNight"], offer["bookingUrl"]) What includeDetails adds
With details on, each hotel also carries what Google shows on the hotel's own page:
- Every booking partner's price (Booking.com, Expedia, Agoda, the official site…), each with a booking link, and which one is cheapest. Google's highlighted price is not always the lowest.
- Room rates of the featured partners: room name, bed type, free cancellation, breakfast.
- Google's typical price range for the hotel and its verdict on the current price (low / typical / high).
- The hotel's website, description, check-in and check-out times, popular amenities.
- A review summary: the topics guests mention (Breakfast, Location, Cleanliness…) with counts, and the rating on other sites such as Tripadvisor.
A real result, searched on November 12, 2026 (Hotel Artemide, Rome, February 12–15, 2027, 2 adults):
{ "name": "Hotel Artemide", "pricePerNight": 290, "totalPrice": 869, "currency": "EUR", "pricesIncludeTaxes": true, "rating": 4.8, "stars": 4, "details": { "lowestPricePerNight": 270, "lowestPriceProvider": "Priceline", "offers": [ { "provider": "Priceline", "pricePerNight": 270, "totalPrice": 809, "bookingUrl": "https://www.google.com/travel/lodging/clk?…" } ], "roomRates": [ { "provider": "Priceline", "room": "Comfort Double Room", "conditions": "1 double bed · Free cancellation until Feb 10 · breakfast", "freeCancellation": true, "breakfastIncluded": true, "pricePerNight": 372, "totalPrice": 1117 } ], "website": "https://www.hotelartemide.it/it", "checkInTime": "2:00 PM", "reviewTopics": [{ "topic": "Breakfast", "mentions": 294 }], "otherSiteRatings": [{ "site": "Tripadvisor", "rating": 4.8, "scale": 5, "reviewCount": 9593 }] } } Two things that matter when you compare prices
The country you search from. Google Hotels shows different partners and displays taxes differently depending on where the traveler is. The country field sets the market (62 countries); currency sets the currency (44). A price read "from the US" and one read "from Italy" for the same room are not the same number.
Taxes. Check pricesIncludeTaxes before you compare two hotels or two runs. The tool reports what Google shows and says which kind of price it is, rather than guessing.
Three things people build with it
- Competitor rate check for a hotel: your hotel and five competitors every morning, with who sells each one cheapest. There is a ready n8n workflow for this (schedule → HTTP request → email).
- Rate parity: is an online agency selling your rooms below your own site?
details.offersanswers that per date. - Travel agents and bots: hotels near an address (
"near": "Colosseum, Rome","maxDistanceKm": 1), sorted by distance, with prices — a tool call an AI agent can make through Apify's MCP server.
Cost
Pay per result, no subscription: $3 per 1,000 hotels, plus $7 per 1,000 for the details. One hotel with every partner's offer is $0.01. Apify's free plan includes monthly credit, enough to try it.
Limits
Prices are what Google Hotels shows at the moment of the search; they move during the day. Individual guest reviews are not collected, only the summary. The tool is not affiliated with Google.
