Is there a Google Hotels API? Hotel prices as JSON, without writing a scraper
Google has no public Google Hotels API for reading prices. Its Travel Partner tools are meant for hotels and advertisers that feed Google their own rates, not for getting prices back out. If you want to know what Google Hotels shows for a destination and dates, you have three options: copy prices by hand, build and maintain your own scraper, or call a ready-made one.
This page is about the third option: the Google Hotels Scraper, an unofficial Google Hotels API that runs on Apify. You give it a destination (or a list of hotels to track) and stay dates, and it returns one JSON record per hotel.
What you get
For each hotel and stay date:
- the price per night and the total, with the amount before taxes and the taxes and fees;
- rating, number of reviews, star class and property type;
- the price on every booking site Google lists (Booking.com, Expedia, Agoda, the hotel’s own website and others), with the cheapest site;
- a rate-parity figure: how much more the official website costs than the cheapest booking site;
- a deal label when Google shows one.
A real example
{
"type": "hotel",
"searchType": "tracked",
"query": "https://www.google.com/travel/hotels/entity/ChkI1N6v0cC4pfmpARoML2cvMTJxNHhyNHh0EAE",
"position": null,
"name": "Novotel Suites Paris Stade de France",
"hotelId": "ChkI1N6v0cC4pfmpARoML2cvMTJxNHhyNHh0EAE",
"checkIn": "2026-10-21",
"checkOut": "2026-10-23",
"nights": 2,
"adults": 2,
"childrenAges": [],
"currency": "EUR",
"pricePerNight": 149.23,
"priceTotal": 298.47,
"priceBeforeTaxes": 244.23,
"taxesAndFees": 54.24,
"dealLabel": null,
"bookingSitesCount": 23,
"cheapestSite": "Kiwi.com",
"cheapestSitePricePerNight": 149.23,
"officialSitePricePerNight": 181.8,
"officialVsCheapestPct": 21.8,
"bookingSites": [
{
"site": "Kiwi.com",
"isOfficialSite": false,
"pricePerNight": 149.23,
"priceTotal": 298.47
},
{
"site": "Super.com",
"isOfficialSite": false,
"pricePerNight": 160.93,
"priceTotal": 321.86
}
],
"rating": 4.3,
"reviewsCount": 1431,
"hotelClass": 4,
"propertyType": "4-star tourist hotel",
"ratingDistribution": {
"1": 4,
"2": 3,
"3": 9,
"4": 25,
"5": 59
},
"reviewAspects": [
{
"aspect": "Property",
"mentions": 81,
"positive": 63,
"negative": 15
},
{
"aspect": "Service",
"mentions": 70,
"positive": 53,
"negative": 14
},
{
"aspect": "Location",
"mentions": 57,
"positive": 41,
"negative": 8
},
{
"aspect": "Cleanliness",
"mentions": 44,
"positive": 28,
"negative": 13
},
{
"aspect": "Family friendly",
"mentions": 18,
"positive": 13,
"negative": 3
}
],
"ratingsBySource": [
{
"source": "all.accor.com",
"rating": 4.2,
"scale": 5,
"reviews": 1403
},
{
"source": "Tripadvisor",
"rating": 4.2,
"scale": 5,
"reviews": 546
},
{
"source": "Trip.com",
"rating": 4.3,
"scale": 5,
"reviews": 109
}
],
"address": "31 Avenue Jules Rimet St Denis, 93210 Saint-Denis, France",
"latitude": 48.923648199999995,
"longitude": 2.3629501000000004,
"phone": "+33 1 49 46 54 54",
"website": "https://all.accor.com/lien_externe.svlt?goto=fiche_hotel&code_hotel=3325&merchantid=seo-maps-FR-3325&sourceid=aw-cen&utm_medium=seo%20maps&utm_source=google%20Maps&utm_campaign=seo%20maps",
"countryCode": "FR",
"placeId": "ChIJr8IYIqVu5kcRVO8rCsSV8qk",
"featureId": "0x47e66ea52218c2af:0xa9f295c40a2bef54",
"checkInTime": "4:00 PM",
"checkOutTime": "12:00 PM",
"amenities": null,
"description": "Contemporary all-suite lodging with Wi-Fi, a bar & a 24/7 pantry, plus parking.",
"photos": [
"https://lh3.googleusercontent.com/gps-cs-s/ANWiy9S8BfRV3r7rplVug2QGN8bj2Asl3YjgI6o03_HybUy2x9cn_SaQ0GlpFox4q6fXfu1NT_bsdTjjY1teJqi0e3GQCFLBv67RwGyB1ip50rkPyPdzcmit193Q0ljxTa-snTEaJVHD=w1024",
"https://lh3.googleusercontent.com/gps-cs-s/ANWiy9Q7thif0Vv55ACpfKxSPB1YbbbUHcGxlokueXVJAWBJTLUX96dRnNDl4aLX3P4QBvjmgWc2hRpdFWTgvj5S_bJlq52h55TBXzeeag_dVdsqxm8hkf-utpLmp3BQAabp14VSbQ2ItA=w1024",
"https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QFyzpg-__6eOzePt6OWE3WlcEA8DKaKErmSJL9e9QAGcmUKGw9js3_EVgN_hShhHHu7C20dw6tm1BNS-6k1Dx0Y5H0P2xoyZtwHEBP1tcmpKv5o6DAwsUkZIJAxkBRJPsrg3h_=w1024",
"https://lh3.googleusercontent.com/gps-cs-s/ANWiy9R8VVhaqUwtRQ9K7SyOUHFnjNVvD0rP0_ilvU2t6v0v1T0Ohgs1XDAd9K3lqmGYbdzLwB_rOYdL9hyHHxx_dhjmOoWtZODELvSyyEAOAjWwhM_kN4Y5TycEfBtRt-_J7gJ5UTS-=w1024",
"https://lh3.googleusercontent.com/gps-cs-s/ANWiy9R8zJ4xemt5FOMXXoc_mBH_BJof8iYGyG7kp0Aq8Ma-nuH9lesTjwpDtAsp9PXLPrjKzAwDOSVig3ZH3WrqliS0qdiMTv5jX_EHyJV0E1w5JosT5X1fuexJ9TPEPpjly33oox0-=w1024"
],
"nearby": [
{
"place": "Basilique du Sacré-Cœur de Montmartre",
"kind": "place",
"travelTime": "20 min"
},
{
"place": "Montmartre",
"kind": "place",
"travelTime": "23 min"
},
{
"place": "Louvre Museum",
"kind": "place",
"travelTime": "29 min"
},
{
"place": "Arc de Triomphe",
"kind": "place",
"travelTime": "22 min"
},
{
"place": "Notre-Dame Cathedral of Paris",
"kind": "place",
"travelTime": "25 min"
}
],
"googleHotelsUrl": "https://www.google.com/travel/hotels/entity/ChkI1N6v0cC4pfmpARoML2cvMTJxNHhyNHh0EAE?hl=en&gl=us&curr=EUR&ts=CAESCgoCCAMKAggDEAAaIAoCGgASGhIUCgcI6g8QChgVEgcI6g8QChgXGAIyAhAA",
"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJr8IYIqVu5kcRVO8rCsSV8qk",
"matchConfidence": "exact",
"changeType": null,
"previousPricePerNight": null,
"priceChangePct": null,
"scrapedAt": "2026-09-30T18:58:00.703Z"
}
Excerpt of the sample record from October 2026 (booking-site list shortened to two entries, links removed).
From a sample run kept in our example files (a two-night stay, 21 to 23 October 2026, two adults, in euros): the Novotel Suites Paris Stade de France came back at 149.23 € per night, 298.47 € in total, with 23 booking sites listed. The cheapest was Kiwi.com at 149.23 € per night, while the hotel’s official site showed 181.80 €, that is 21.8 % more. Prices change daily; the full record is in the sample output.
How to use it in three steps
- Pick the question: hotels in a city for given dates (
locations,nights), or a fixed list of hotels you track over time. - Run it from Apify Console, on a schedule, or from your own code with one HTTP call (below). A first test of 20 hotels costs a few cents.
- Read the JSON or export it as CSV or Excel. For price monitoring, schedule the same input every day and compare the runs.
curl -X POST "https://api.apify.com/v2/acts/euroscrape~google-hotels-prices/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"locations": ["Lisbon"], "nights": 2, "maxHotelsPerLocation": 20}'
AI agents can use it too, through the Apify MCP server: https://mcp.apify.com?tools=euroscrape/google-hotels-prices.
What it costs
Pay per result, no subscription: $0.003 per run, $0.002 per hotel price, and $0.003 more per hotel when you want the price on every booking site. A 20-hotel city check with all booking sites is about $0.10. Apify subscribers get 10 to 30 % off depending on their plan.
Who uses this kind of data
Hotels and revenue managers checking rate parity (is our own website the cheapest place to book?), travel startups comparing prices across cities, and analysts who want a price history for a destination. It is also a way to monitor competitor rates around an event.
Frequently asked questions
Is this an official Google API? No. It reads the public Google Hotels pages. Google offers no public API for hotel prices, which is why such a tool exists.
Can I get prices for several dates? Yes: run the same input for each stay, or schedule it. Each stay date is one result.
Does it return the price on Booking.com and Expedia? Yes, with the booking-sites option: every site Google lists for that hotel and date, with the price per night and the total.
Can I track the same hotels every day? Yes. Give the hotel links to track and schedule the run; compare the daily outputs for price drops.
Is there a free trial? New Apify accounts get free monthly credit, enough to try a few lookups.
Run the Google Hotels Scraper on Apify
More: all guides · articles · EuroScrape Actors
Run these numbers yourself. Every EuroScrape Actor runs on Apify, pay per result, first results free. Open the Store page →
EuroScrape Data Letter
Five numbers a week from official registers and public prices, each one reproducible with an Actor. Free, one e-mail on Thursdays.
Archive and unsubscribe: buttondown.com/Euroscrape.