---
title: "Reviews of a place (by `place_id`, `cid` or `fid`); 1 credit per 10 reviews"
method: POST
path: "/v1/reviews"
---

# Reviews of a place (by \`place_id\`, \`cid\` or \`fid\`); 1 credit per 10 reviews

`POST /v1/reviews`

## Request

- Base URL: `https://api.serpkite.com`
- URL: `https://api.serpkite.com/v1/reviews`
- Auth: HTTP bearer

## Request body

- ReviewsRequest: One of place_id, cid or fid is required
  - `place_id` string
  - `cid` string
  - `fid` string
  - `country` string
  - `language` string
  - `sort` 'most_relevant' | 'newest' | 'highest_rating' | 'lowest_rating': Only `most_relevant` is served: Google Maps shows other review orders only to signed-in visitors, so `newest`, `highest_rating` and `lowest_rating` return 400 (not charged).
  - `page_token` string: `next_page_token` from the previous page, unchanged. Opaque and bound to the place and `sort` it was issued for (anything else is a 400). Paging reaches the first 10 reviews of a place, all Google Maps shows a logged-out visitor.
  - `num` integer: Reviews per page; a page holds at most 10 (the first 10 reviews of a place). A page can be shorter when Google stops loading early; `next_page_token` then resumes after it
  - `format` 'json' | 'markdown' | 'compact'
  - `fields` string
  - `max_age` integer

## Response `200`

OK (text/markdown when format=markdown)

- ReviewsResponse
  - `request` RequestEcho, required: The normalised request that produced this response (defaults filled in)
    - `endpoint` string, required
    - `engine` union, required: The engine policy as asked (google, auto, one provider or a list)
      - string
      - string[]
    - `q` string
    - `url` string
    - `country` string
    - `language` string
    - `location` string
    - `num` integer
    - `page` integer
    - `device` string
    - `autocorrect` boolean
    - `tbs` string
    - `start_date` string, date
    - `end_date` string, date
    - `safe` string
    - `place_id` string
    - `cid` string
    - `fid` string
    - `sort` string
    - `include_content` integer
    - `format` string
    - `include_domains` string[]
    - `exclude_domains` string[]
    - `boost_domains` string[]
    - `highlights` boolean
  - `results` ReviewResult[], required
    - `rating` number
    - `date` string
    - `iso_date` string
    - `snippet` string
    - `likes` integer
    - `user` object
      - `name` string
      - `thumbnail` string
      - `reviews` integer
    - `response` object
      - `snippet` string
      - `date` string
  - `next_page_token` string: Pass as `page_token` for the next page. Absent on the last page and at the 100-review depth limit
  - `meta` Meta, required
    - `request_id` string, required
    - `credits_used` number, required
    - `engine` string: The provider that produced the result (`consensus` for a merged engine=consensus answer)
    - `route` RouteStep[]: Provider attempts in order (fresh results only; absent on cache hits). With engine=consensus, every provider started; ones stopped early are `canceled`, ones cut off by the deadline `timeout`
      - `provider` string, required
      - `outcome` 'ok' | 'partial' | 'empty' | 'soft_empty' | 'blocked' | 'timeout' | 'error' | 'unsupported' | 'bad_param' | 'bad_target' | 'canceled', required
      - `ms` integer, required: Duration of the attempt in milliseconds
    - `cached` boolean, required
    - `cached_at` string, date-time
    - `resolved_urls` boolean
    - `parse_quality` 'ok' | 'partial' | 'empty'
    - `latency_ms` integer

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `429`: Error
- `503`: Temporarily unavailable, not billed, safe to retry after `Retry-After`. Codes: `upstream_error` (the upstream page couldn't be fetched or parsed), `upstream_blocked` (the upstream is rate limiting us), `upstream_timeout` (the search took too long), `unavailable` (endpoint or dependency down). The API never sends 502 or 504.

---

[API](https://skmtc.dev/serpkite/apis/serpkite-serp-api.md) · [All operations](https://skmtc.dev/serpkite/apis/serpkite-serp-api/llms.txt) · [OpenAPI document](https://skmtc.dev/serpkite/apis/serpkite-serp-api/revisions/f2c6dd05cfc5?raw)
