Google Maps API

Google Maps Reviews API

Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response.

POST/v1/run/maps.reviews
Uptime
100.00%
30d · 713 calls
Requests
713
30d · weekly, last 12 wks
Response
7.6s
median · 30d

Try it

Make your first request

requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `isLocalGuide` or `placeId`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a review that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
  "data": {
    "items": [
      {
        "author": "Alex Rivera",
        "createdUtc": 12.5,
        "isLocalGuide": true,
        "likes": 12500,
        "origin": "example",
        "ownerResponse": "Alex Rivera",
        "ownerResponseAt": "Alex Rivera",
        "placeId": "a1b2c3d4",
        "publishedAgo": "2024-01-15T09:30:00Z",
        "rating": 4.6,
        "reviewId": "A short example description of this item.",
        "reviewerId": "A short example description of this item.",
        "reviewerReviewsCount": 12500,
        "text": "A short example description of this item.",
        "url": "https://example.com/page"
      }
    ]
  },
  "found": true
}
Response interface
interface MapsReviewsResponse {
  data: {
    items: {
      author?: string;
      createdUtc?: number;
      isLocalGuide?: boolean;
      likes?: number;
      origin?: string;
      ownerResponse?: string;
      ownerResponseAt?: string;
      placeId?: string;
      publishedAgo?: string;
      rating?: number;
      reviewId: string;
      reviewerId?: string;
      reviewerReviewsCount?: number;
      text?: string;
      url?: string;
    }[];
  } | null;
  found: boolean;
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

Request, response, and price

Last verified 2026-09-16 · uptime and latency measured over 30d
POST /v1/run/maps.reviews
curl -X POST https://api.getanyapi.com/v1/run/maps.reviews \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":3,"placeId":"ChIJN1t_tDeuEmsRUsoyG83frY4"}'
FieldTypeExample value
Request body
placeIdstring"ChIJN1t_tDeuEmsRUsoyG83frY4"The Google Maps place ID to fetch reviews for (e.g. ChIJj61dQgK6j4AR4GeTYWZsKWw).
languagestringTwo-letter language code for the review details (e.g. en).
limitinteger3Maximum number of results to return (1-100, default 100).
postedLimitenumOnly return reviews posted within this window: 24h (past 24 hours), week (past 7 days), month (past month), or year (past year). Omit for no recency filter.
requireFieldsarrayOptional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `isLocalGuide` or `placeId`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a review that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
reviewsFilterStringstringOnly return reviews whose text contains this keyword or phrase (case-insensitive). Omit to return all reviews (e.g. parking).
sortenumOrder in which reviews are returned (e.g. newest).
Response
dataobjectThe reviews result, or null when not found.
data.itemsobject[]Review records: reviewer, star rating, review text (empty when the reviewer left only a rating), publish date, likes, and owner response where present. Populated whenever the provider has data for the entity.
data.items[].authorstringReviewer display name. Populated whenever the provider has data for the entity.
data.items[].createdUtcnumberUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.
data.items[].isLocalGuidecan requirebooleanWhether the reviewer is a Google Local Guide.
data.items[].likescan requireintegerNumber of likes on the review.
data.items[].origincan requirestringSource of the review (e.g. Google).
data.items[].ownerResponsecan requirestringOwner's reply text; empty when there is none.
data.items[].ownerResponseAtcan requirestringISO 8601 timestamp of the owner's reply; empty when there is none.
data.items[].placeIdcan requirestringGoogle Maps place id the review belongs to. Echoes the requested placeId; a lane that does not repeat it per review omits it.
data.items[].publishedAgocan requirestringHuman-relative publish time (e.g. '7 hours ago').
data.items[].ratingcan requirenumberStar rating the reviewer gave (1-5).
data.items[].reviewIdstringStable Google review id. Populated whenever the provider has data for the entity.
data.items[].reviewerIdcan requirestringStable Google id of the reviewer.
data.items[].reviewerReviewsCountcan requireintegerTotal number of reviews the reviewer has written.
data.items[].textcan requirestringReview text; empty string when the reviewer left only a star rating.
data.items[].urlstringDirect URL to the review on Google Maps. Populated whenever the provider has data for the entity.
foundbooleanWhether reviews were found.
Price
Price per requestUSD$0.0035
Price /1k reqUSD$3.50

FAQ

About the Google Maps Reviews API

The AnyAPI Google Maps Reviews API returns Google Maps reviews data as normalized JSON from one POST call to /v1/run/maps.reviews. Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response. AnyAPI routes each request across 3 sources and falls back automatically when one fails. It costs from $3.50 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Google Maps reviews calls through AnyAPI succeeded, with a median response time of 7.6 seconds across 713 measured calls.

It costs from $3.50 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.

Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 100.0% of Google Maps reviews calls through AnyAPI succeeded, with a median response time of 7.6 seconds across 713 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.