GET

Google Reviews API

Get Google Maps reviews for any business using their data_id with token-based pagination.

Overview

Token-Based Pagination

Each response includes a next_page_token for fetching additional reviews. Continue requesting until has_more is false.

The Google Reviews endpoint provides access to customer reviews from Google Maps. Each request returns ~8-10 reviews along with a pagination token for fetching more. Use the data_id parameter (Google's internal identifier) to specify which business to get reviews for.

Endpoint URL

GET https://api.stayapi.com/v1/google_reviews/reviews

Finding data_id

Use the /search-and-review endpoint to find the data_id for any business. It searches by name and returns the data_id you can use for subsequent requests.

Parameters

Parameter Type Required Description
data_id string Required Google Maps data_id for the place (e.g., 0x80c8c430cb5147bd:0x82f2c7c5d9d10d84)
next_page_token string Optional Token for fetching the next page of reviews. Obtained from the previous response's next_page_token field.
sort_by string Optional Sort order for reviews. Options: most_relevant (default), newest, highest_rating, lowest_rating
hl string Optional Language code for reviews (e.g., en, es, fr). Default: en

Response Structure

Success Response (200 OK)

{
  "success": true,
  "data_id": "0x80c8c430cb5147bd:0x82f2c7c5d9d10d84",
  "place_name": "Bellagio Hotel & Casino",
  "place_address": "3600 Las Vegas Blvd S, Las Vegas, NV 89109",
  "total_reviews": 139601,
  "average_rating": 4.7,
  "reviews": [
    {
      "review_id": "ChdDSUhNMG9nS0VJQ0FnSURiOTlySm1RRRAB",
      "rating": 5,
      "text": "Amazing hotel with fantastic fountains and excellent service...",
      "date": "a week ago",
      "iso_date": "2025-12-03T14:30:00Z",
      "photos": [],
      "reviewer": {
        "name": "John Smith",
        "profile_picture": "https://lh3.googleusercontent.com/...",
        "reviews_count": 25,
        "local_guide": false
      },
      "likes": 3,
      "owner_response": "Thank you for your wonderful review...",
      "owner_response_date": "3 days ago"
    }
    // ... ~8-10 reviews per page
  ],
  "next_page_token": "CAESBkVnSUlDZw==",
  "has_more": true,
  "search_metadata": {
    "datetime": "2025-12-10T10:30:00Z"
  }
}

Response Fields

  • data_id: Google Maps data_id for the place
  • place_name: Name of the business
  • place_address: Address of the business
  • total_reviews: Total number of reviews for the place on Google
  • average_rating: Overall rating of the business (1-5)
  • reviews: Array of review objects (~8-10 per page)
  • next_page_token: Pagination token - Use this to fetch the next page of reviews
  • has_more: Whether more reviews are available (continue pagination if true)

Pagination

Each request returns ~8-10 reviews along with a next_page_token. To get more reviews, include this token in your next request. Continue until has_more is false or next_page_token is null.

# Fetch all reviews using pagination
import requests

data_id = '0x80c8c430cb5147bd:0x82f2c7c5d9d10d84'
all_reviews = []
next_token = None

while True:
    params = {'data_id': data_id, 'sort_by': 'newest'}
    if next_token:
        params['next_page_token'] = next_token

    response = requests.get(
        'https://api.stayapi.com/v1/google_reviews/reviews',
        params=params,
        headers={'X-API-Key': 'YOUR_API_KEY'}
    )

    data = response.json()
    all_reviews.extend(data['reviews'])

    if not data.get('has_more') or not data.get('next_page_token'):
        break

    next_token = data['next_page_token']

print(f"Fetched {len(all_reviews)} total reviews")

Pagination Tips:

  • โ€ข Each page returns ~8-10 reviews
  • โ€ข Sort order is applied once at the start, not per-page
  • โ€ข Tokens are valid for a limited time - don't store them long-term

Common Use Cases

๐Ÿ“Š Reputation Management

Monitor and analyze customer feedback across your hotel portfolio. Track sentiment trends, identify common complaints, and respond to reviews promptly.

# Get recent reviews to monitor feedback
reviews = get_google_reviews(data_id, sort='newest')
negative_reviews = [r for r in reviews if r['rating'] <= 2]
# Alert management about negative reviews requiring response

๐Ÿ” Competitive Analysis

Compare review ratings and feedback between competing hotels. Identify strengths and weaknesses to improve your service offering.

๐Ÿ’ฌ Content Enhancement

Display authentic Google Reviews on your website to build trust with potential customers and improve conversion rates.

Error Handling

Code Type Description
400 INVALID_PARAMETERS Missing or invalid data_id parameter
404 NO_RESULTS No reviews found for the provided data_id
429 RATE_LIMITED Too many requests. Please retry after the specified time
500 INTERNAL_ERROR Server error. Please try again later
502 UPSTREAM_ERROR Error fetching data from Google Reviews

Rate Limits

This endpoint is subject to the standard API rate limits based on your subscription tier.

  • โœ“ Free tier: 10 requests/day
  • โœ“ Basic: 1,000 requests/day
  • โœ“ Pro: 10,000 requests/day
  • โœ“ Enterprise: Custom limits

Related Endpoints

Request
curl -X GET "https://api.stayapi.com/v1/google_reviews/reviews?data_id=0x80c8c430cb5147bd:0x82f2c7c5d9d10d84&sort_by=newest" \
  -H "X-API-Key: YOUR_API_KEY"

# To get the next page, use the next_page_token:
curl -X GET "https://api.stayapi.com/v1/google_reviews/reviews?data_id=0x80c8c430cb5147bd:0x82f2c7c5d9d10d84&next_page_token=CAESBkVnSUlDZw==" \
  -H "X-API-Key: YOUR_API_KEY"
Response
{
  "success": true,
  "data_id": "0x80c8c430cb5147bd:0x82f2c7c5d9d10d84",
  "place_name": "Bellagio Hotel & Casino",
  "place_address": "3600 Las Vegas Blvd S, Las Vegas, NV 89109",
  "total_reviews": 139601,
  "average_rating": 4.7,
  "reviews": [
    {
      "review_id": "ChdDSUhNMG9nS0VJQ0FnSURiOTlySm1RRRAB",
      "rating": 5,
      "text": "Amazing hotel with fantastic fountains. The rooms are beautiful and the staff is incredibly friendly...",
      "date": "a week ago",
      "iso_date": "2025-12-03T14:30:00Z",
      "photos": [],
      "reviewer": {
        "name": "John Smith",
        "profile_picture": "https://lh3.googleusercontent.com/...",
        "reviews_count": 25,
        "local_guide": false
      },
      "likes": 3,
      "owner_response": "Thank you for your wonderful review!",
      "owner_response_date": "3 days ago"
    }
  ],
  "next_page_token": "CAESBkVnSUlDZw==",
  "has_more": true,
  "search_metadata": {
    "datetime": "2025-12-10T10:30:00Z"
  }
}