Skip to content

New Official SDKs for TypeScript, Python and Go

SerpKite
Get API key
Docs menu / Google Reviews

Google Reviews

Reviews for a place (by place_id, cid or fid), 10 per credit, sortable by newest or rating. Page with next_page_token.

POST https://api.serpkite.com/v1/reviews Credits: 1 per 10 reviews Try in playground
View as Markdown

Reviews for one place, identified by place_id, cid or fid (all three come back from /v1/maps and /v1/places). Each call returns up to num reviews in results and a next_page_token for the next page.

Request body

Send a JSON object with Content-Type: application/json. The same parameters also work as a query string on GET /v1/reviews. JSON arrays are rejected: to run many queries at once, use POST /v1/batches at half price. Unknown parameters return 400 invalid_request with a message that names the replacement; see strict validation.

ParameterTypeDefaultDescription
place_idstringGoogle place ID. One of place_id, cid or fid is required.
cidstringReviews: Google customer ID of the place.
fidstringReviews: Google feature ID of the place.
sortstringmost_relevantReviews: sort order. One of: most_relevant, newest, highest_rating, lowest_rating.
page_tokenstringReviews: next_page_token from the previous page, unchanged (bound to the place and sort). Paging reaches the first 100 reviews per sort order.
numinteger10Reviews per call, up to 50. Billed 1 credit per 10.
countrystringusCountry to search from, as a two-letter ISO code (us, gb, de, in…).
languagestringenInterface language, as a language code (en, de, fr, pt-BR…).
formatstringjsonResponse format. markdown is LLM-ready prose; compact is JSON with only the fields agents need. One of: json, compact, markdown.
fieldsstringComma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens.
max_ageintegerAccept a cached result up to this many seconds old. Cache hits cost 50% of the credits.

Example request

Authenticate with Authorization: Bearer $SERPKITE_API_KEY (GET requests may pass ?api_key= instead). The official SDKs read SERPKITE_API_KEY for you. See Authentication.

curl https://api.serpkite.com/v1/reviews \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"place_id":"ChIJLU7jZClu5kcR4PcOOO6p3I0","sort":"newest"}'

Response fields

FieldTypeDescription
requestobjectThe normalised request, with defaults filled in: endpoint, engine, q, country, language, location, num, page, device, autocorrect…
results[]arrayrating, date, iso_date, snippet, likes, user (name, thumbnail, reviews), response (snippet, date) for owner replies.
next_page_tokenstringPass back as page_token (with the same place and sort) to get the next page. Absent on the last page and once the first 100 reviews are reached.
metaobjectrequest_id, credits_used, cached, cached_at, engine (the provider that answered), route (provider attempts, see Search providers), latency_ms, parse_quality (ok, partial, empty), resolved_urls.

Every billed response also carries credit and latency headers (X-Credits-Used, X-Credits-Remaining, X-Request-Id…).

Example response

200 OK · illustrative
{
  "request": {
    "endpoint": "reviews",
    "engine": "google",
    "place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
    "sort": "newest",
    "num": 10,
    "language": "en"
  },
  "results": [
    {
      "rating": 5,
      "date": "2 weeks ago",
      "iso_date": "2026-09-14T10:21:00Z",
      "snippet": "Great view from the top, book tickets online to skip the queue.",
      "likes": 3,
      "user": {
        "name": "Alex",
        "reviews": 41
      }
    }
  ],
  "next_page_token": "CAESBkVnSUlDZw",
  "meta": {
    "request_id": "req_01J8ZK4M6Q2V7",
    "credits_used": 1,
    "cached": false,
    "engine": "google",
    "latency_ms": 1034,
    "parse_quality": "ok",
    "resolved_urls": true
  }
}

Errors

Errors use one shape: {"error":{"code","message","request_id"}}. Errors are never billed. Full list in Errors.

StatusCodeMeaning
400invalid_requestA parameter is missing or invalid.
401unauthorizedThe API key is missing, invalid or revoked.
402insufficient_creditsYour balance is too low. Buy a pack or wait for the monthly free grant.
429rate_limitedToo many requests per second for your plan. Retry after the Retry-After header.
503upstream_errorGoogle could not be fetched or parsed. Not billed; retry after Retry-After.

Notes

  • Use sort: "newest" with max_age to monitor new reviews cheaply.