Google API: Get hotel reviews from Google Hotels
Finds a hotel on Google Hotels by name and city and returns its guest reviews in the chosen order, its Google rating and review count, and topic ratings averaged from the returned reviews that rate each topic.
Unofficial. Not affiliated with or endorsed by Google.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- City, required
city City where the hotel is located, for example New York.
New York
- Sort optional
sort Review order, for example newest.
most_relevant (default)
One of
most_relevant,newest.- Hotel Name, required
hotel_name Hotel name, for example The Plaza.
The Plaza
- Max Reviews optional
max_reviews Maximum reviews to return, for example 20.
20 (default)
Whole number from 1 to 100.
Input as JSON
{ "city": "New York", "hotel_name": "The Plaza"}Output
{ "address": "768 5th Ave, New York, NY 10019", "reviews": [ { "site": "TrustYou", "stars": 4, "page_link": "https://go.trustyou.com/book/5a449bb1-9b2e-4e7b-a904-779c0675673e?review_id=1b2c03a7-e5d0-46cc-9811-3df63ccec9df&checkin_day=11&checkin_month=10&checkin_year=2026&checkout_day=12&checkout_month=10&checkout_year=2026&user_language=en&user_country=US&user_device=unknown&user_currency=USD&google_site=u…" , "review_date": "2026-09-14", "review_text": "We had a lovely stay overall, Patrick at front desk and Hatsumi at concierge were particularly helpful durning our stay. We loved the Lacoste activation in the lobby but felt that otherwise the lobby wasn’t particularly welcoming because all the seating was reserved for the restaurants so it felt a …", "reviewer_name": "Michael K." }, { "site": "Tripadvisor", "stars": 5, "page_link": "https://www.tripadvisor.com/ShowUserReviews-g60763-d675616-r1076843119?m=68573&staydates=2026_10_11_2026_10_12&uguests=1_2_0&supdv=unknown&supuc=US&supul=en" , "review_date": "2026-09-14", "review_text": "Everyone was very nice at the hotel. Because I made it to the front door. They had staff offering help with our luggage. Check in was easy. The room was lovely with character. Favorite thing was the bathroom. The food and drinks were great", "reviewer_name": "kevinvJ7150NG" }, { "site": "Tripadvisor", "stars": 5, "page_link": "https://www.tripadvisor.com/ShowUserReviews-g60763-d675616-r1076355275?m=68573&staydates=2026_10_11_2026_10_12&uguests=1_2_0&supdv=unknown&supuc=US&supul=en" , "review_date": "2026-09-07", "review_text": "An amazing stay at The Plaza! Our room was beautiful, and the whole experience felt really special. Everything was just perfect from start to finish—we honestly couldn’t fault a thing. Such a memorable stay in New York, and we’d love to return. Highly recommend!", "reviewer_name": "PaulC4745" } ], "page_link": "https://www.google.com/travel/hotels/entity/ChUIneeg3YDGqvthGgkvbS8wNDJ5N2oQAQ?hl=en&gl=us" , "hotel_name": "The Plaza", "total_reviews": 6759, "overall_rating": 4.5, "ratings_by_topic": [ { "topic": "Location", "rating": 5, "review_count": 5 }, { "topic": "Service", "rating": 4, "review_count": 5 }, { "topic": "Rooms", "rating": 4.5, "review_count": 2 } ], "google_property_token": "ChUIneeg3YDGqvthGgkvbS8wNDJ5N2oQAQ"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"google.com/get_hotel_reviews","input":{"city":"New York","hotel_name":"The Plaza"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "google.com/get_hotel_reviews" , "input": { "city": "New York", "hotel_name": "The Plaza" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "google.com/get_hotel_reviews" , "input": { "city": "New York", "hotel_name": "The Plaza" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run google.com/get_hotel_reviews# with {"city":"New York","hotel_name":"The Plaza"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "hotel_name", "city" ], "properties": { "city": { "type": "string", "description": "City where the hotel is located, for example New York." }, "sort": { "enum": [ "most_relevant", "newest" ], "type": "string", "default": "most_relevant", "description": "Review order, for example newest." }, "hotel_name": { "type": "string", "description": "Hotel name, for example The Plaza." }, "max_reviews": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum reviews to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "hotel_name", "address", "overall_rating", "total_reviews", "ratings_by_topic", "reviews", "page_link", "google_property_token" ], "properties": { "address": { "type": [ "string", "null" ], "description": "Street address of the matched hotel." }, "reviews": { "type": "array", "items": { "type": "object", "required": [ "reviewer_name", "stars", "review_date", "review_text", "site", "page_link" ], "properties": { "site": { "type": [ "string", "null" ] }, "stars": { "type": [ "integer", "null" ] }, "page_link": { "type": "string" }, "review_date": { "type": [ "string", "null" ], "description": "Estimated date for relative dates, YYYY-MM-DD." }, "review_text": { "type": [ "string", "null" ] }, "reviewer_name": { "type": [ "string", "null" ] } } }, "description": "Guest reviews in the chosen order." }, "page_link": { "type": "string", "description": "Hotel page on Google Hotels." }, "hotel_name": { "type": "string", "description": "Matched hotel name." }, "total_reviews": { "type": [ "integer", "null" ], "description": "Number of Google reviews shown for this hotel." }, "overall_rating": { "type": [ "number", "null" ], "description": "Google review rating out of 5." }, "ratings_by_topic": { "type": "array", "items": { "type": "object", "required": [ "topic", "rating", "review_count" ], "properties": { "topic": { "type": "string" }, "rating": { "type": "number" }, "review_count": { "type": "integer" } } }, "description": "Ratings out of 5 averaged only from the returned reviews that rate each topic; not the whole-hotel rating." }, "google_property_token": { "type": "string", "description": "Google Hotels property token." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
google.com/get_hotel_reviews- Returns
- hotel name, address, overall rating, total reviews, topic ratings, reviews (reviewer, stars, date, text, site, link), page link, property token
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method google.com/get_hotel_reviews with the inputs above.
Ask your agent
- Pull the latest 30 guest reviews for the Fairmont Royal York in Toronto from Google Hotels, sorted newest first.
- What are people saying about the Hotel Arts Barcelona? I'd like its overall star rating, how many reviews it has, and how guests rate things like cleanliness and location.
- Grab the most relevant reviews for The Langham in Chicago, around 15 of them, with reviewer names, star ratings, and dates.
- Check Google for reviews of the Shangri-La Hotel in Singapore. Give me the 50 newest, plus the address and total review count.
- I'm thinking of booking the Ace Hotel in New Orleans. Show me 10 recent guest reviews and the topic ratings so I can see whether noise or service comes up as a complaint.
See more
All Google methodsFinds places to stay in a city or area for given dates on Google Hotels, with nightly and total prices, hotel class, guest ratings, amenities, address and cheapest booking site. Optional filters for price, stars and rating; vacation rentals are left out. Prices and availability can change.
google.com/search_hotelsFinds a place on Google Maps by name and location and returns its public reviews in the chosen order.
google.com/get_place_reviewsGets public user reviews for an Android app on Google Play. The app can be given by name, Play Store link, or app ID.
play.google.com/get_app_reviewsLooks up a public Google Maps place by name and location and returns its profile: address, rating, hours, phone, website and photos.
google.com/get_placeFinds businesses and places near a location on Google Maps, in Google Maps order, with rating, hours, contact details and links when shown.
google.com/search_placesFinds Google Flights options for a route and date with prices, local times, stops and emissions. Round-trip searches list outbound choices with their displayed round-trip fares.
google.com/search_flightsSearches Google Books by words, author, subject or ISBN, with language, free-ebook and newest-first options. Ratings counts are not shown by the public book feed; newest sorts the available matches by publication date.
books.google.com/search_booksFinds a verified advertiser in the Google Ads Transparency Center by company name or website domain and returns its Google ads with dates, regions, previews and ad pages. Counts may be approximate; regions and media previews are read for the first 40 ads.
adstransparency.google.com/get_company_ads