Google Search and Review API
Look up any place on Google Maps by name and get its first page of Google reviews, plus the data_id you need to paginate, in one request.
Overview
No data_id needed
Pass a place name. The endpoint resolves it on Google Maps, returns the first page of reviews, and hands back the data_id so you can paginate with the Google Reviews endpoint.
The Google Search and Review endpoint is the entry point to Google Maps reviews when all you have is a name. It resolves the best-matching place for your query, fetches its first page of reviews (about 8 to 10), and returns the place identity: name, address, total review count, average rating and data_id. It works for any place type on Google Maps, not only hotels. Further pages come from the Google Reviews endpoint using that data_id.
Endpoint URL
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Required | Place name, ideally with the city (e.g. "Bellagio Las Vegas", "Grand Yavuz Hotel Istanbul", "Joe's Pizza Broadway") |
| location | string | Optional | Latitude,longitude to bias the lookup when the name is ambiguous (e.g. "36.1069,-115.1728") |
| sort_by | string | Optional | Sort order for the returned reviews: most_relevant (default), newest, highest_rating, lowest_rating |
| hl | string | Optional | Language code for review text and relative dates. Default: en |
Response Structure
Success Response (200 OK)
{
"success": true,
"search_query": "Bellagio Las Vegas",
"search_location": null,
"data_id": "0x80c8c430cb5147bd:0x82f2c7c5d9d10d84",
"place_id": "ChIJvUdRyzDEyIARhA3R2cXH8oI",
"place_name": "Bellagio Hotel & Casino",
"place_address": "3600 S Las Vegas Blvd, Las Vegas, NV 89109, United States",
"total_reviews": 143717,
"average_rating": 4.7,
"reviews": [
{
"review_id": "Ci9DQUlRQUNvZENodHljRjlvT25OelJFeEdaMlJ5ZEhWS2NsbExhMGRSYXpSdGNsRRAB",
"rating": 5.0,
"text": "I came prepared to explain myself twice. I barely needed to explain myself once.",
"date": "4 hours ago",
"iso_date": "2026-09-17T02:46:38Z",
"photos": [],
"reviewer": {
"name": "Ellie Montoya",
"profile_picture": "https://lh3.googleusercontent.com/a-/...",
"reviews_count": 13,
"local_guide": true
},
"likes": 0,
"owner_response": null,
"owner_response_date": null
}
],
"next_page_token": "CjEIARIpCgoAP7_LADXn____EhA4jslEyt_rOYahKTQAAAAAGgn92QACYJiwtg4YACIA",
"has_more": true,
"search_metadata": {
"search_url": null,
"datetime": "2026-09-16T17:56:21.765446",
"total_time_taken": null,
"provider": null
}
}
Response Fields
- data_id: Google Maps data_id of the resolved place. Pass it to the Google Reviews endpoint to fetch further pages.
- place_id: Google Place ID (ChIJ...) for cross-referencing with other Google products. Not accepted as an input here; use data_id.
- place_name / place_address: Identity of the place that was matched. Check these to confirm the right place was resolved.
- total_reviews / average_rating: Review count and star rating for the whole place, not only the returned page.
- reviews: First page of reviews. Each has rating, text (null for star-only reviews), date and iso_date, reviewer, likes, owner_response and reviewer-attached photos.
- next_page_token / has_more: Cursor for the next page. Send it with data_id to the Google Reviews endpoint; pagination is not available on this endpoint.
Common Use Cases
๐ Reviews From Just a Name
Start from the names you already have in your CRM or spreadsheet. No Google Maps IDs to collect first.
# One call per property name
data = search_and_review(query="Bellagio Las Vegas")
print(data["place_name"], data["average_rating"], data["total_reviews"])
for review in data["reviews"]:
print(review["rating"], review["text"])
๐ Reputation Monitoring
Resolve each place once, store its data_id, then poll the Google Reviews endpoint sorted by newest to catch new feedback.
// Day 0: resolve and cache
const first = await searchAndReview({ query: "Bellagio Las Vegas" });
db.save({ name: first.place_name, data_id: first.data_id });
// Every day after: newest reviews by data_id
const latest = await googleReviews({ data_id: first.data_id, sort_by: "newest" });
๐ฝ๏ธ Any Place Type
Hotels, restaurants, bars, attractions, spas: anything with a Google Maps listing. Combine with Booking.com and TripAdvisor reviews for a cross-channel view.
for name in ["Bellagio Las Vegas", "Joe's Pizza Broadway", "Louvre Museum Paris"]:
data = search_and_review(query=name, sort_by="newest")
store(name, data["data_id"], data["reviews"])
How It Works
-
1
Resolve the place
Your query (and optional location bias) is matched against Google Maps and the best-matching place is selected.
-
2
Fetch the first page of reviews
Reviews for that place are fetched in the requested sort order and language.
-
3
Return identity and reviews
You get place_name, place_address, total_reviews, average_rating, data_id and the first page of reviews in one response.
-
4
Paginate by data_id
Send data_id and next_page_token to the Google Reviews endpoint for the following pages, or fetch up to 10 pages at once with reviews-paginated.
Error Handling
| Code | Type | Description |
|---|---|---|
| 422 | VALIDATION_ERROR | query is missing, or sort_by is not one of the allowed values |
| 404 | NO_RESULTS | No place on Google Maps matched the query |
| 404 | NO_REVIEWS | The place was found but has no reviews yet |
| 502 | EXTRACTION_FAILED | A place matched but no usable data_id could be read from it |
| 502 | UPSTREAM_ERROR | Error fetching data from Google |
| 504 | UPSTREAM_TIMEOUT | Google did not answer in time. Retry the request |
Pro Tips
-
๐ก
Include the city: "Bellagio Las Vegas" resolves reliably; "Bellagio" alone may match a different place. Check place_name and place_address in the response.
-
๐ก
Bias with coordinates: For chains and common names, pass location as latitude,longitude to pick the branch you mean.
-
๐ก
Cache the data_id: Resolve once, then paginate and re-poll through the Google Reviews endpoint. Do not call this endpoint on every page.
-
๐ก
Need a photo of the place? This endpoint returns no property image; the photos array on each review holds reviewer-attached pictures only. For a hotel image use Google Hotels Info or Google Travel Photos.