# Reviews · Content Delivery API

> Content Delivery API reference for reviews: GET /reviews, GET /reviews/summary.

> Markdown version of https://kanorio.com/en/developers/delivery-api/reviews. Append `.md` to any developer docs URL for this format. Index: https://kanorio.com/llms.txt · MCP: https://app.kanorio.com/api/mcp

Base URL: `https://{site}/api/v1` · [Errors](https://kanorio.com/en/developers/basics/errors) · [Pagination](https://kanorio.com/en/developers/basics/pagination)

### Approved reviews for a product

`GET /reviews`

- Stability: beta
- Authentication: none

Newest first, cursor-paginated. Only approved and published reviews are returned; 404 when the target does not exist, is not published, or has reviews turned off. verified is true only for reviews tied to a paid order (imported reviews are never verified).

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `target` | query | string | yes | product:<id> |
| `cursor` | query | string | no | Opaque cursor from the previous page's nextCursor. Omit for the first page. |
| `limit` | query | integer | no | Maximum number of items to return, 1-100. Defaults to 20. |

**Response** (200)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object[] | yes | — |
| `data[].id` | string | yes | — |
| `data[].authorName` | string | yes | — |
| `data[].rating` | integer | yes | — |
| `data[].content` | string | yes | — |
| `data[].publishedAt` | string | yes | — |
| `data[].verified` | boolean | yes | True when the review is tied to a paid order; imported reviews are never verified. |
| `data[].reply` | object | yes | The store's public reply, if any. |
| `data[].reply.body` | string | yes | — |
| `data[].reply.repliedAt` | string | yes | — |
| `hasMore` | boolean | yes | — |
| `nextCursor` | string \| null | yes | — |
| `hasHistoricalRating` | boolean | yes | True when the overall rating blends in reviews carried over from another platform. |

**Errors**

| Code | Status | When |
| --- | --- | --- |
| `VALIDATION` | 400 | — |
| `INVALID_CURSOR` | 400 | — |

```bash
curl -X GET "https://{site}/api/v1/reviews"
```

### Rating summary for a product

`GET /reviews/summary`

- Stability: beta
- Authentication: none

The blended average rating and the number of reviews, after the store's visibility rule (for example “show once there are 10 reviews”). When visible is false, render nothing.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `target` | query | string | yes | product:<id> |

**Response** (200)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `target` | string | yes | product:<id> |
| `rating` | number | yes | Blended average, 1–5; null when hidden. |
| `count` | integer | yes | Reviews counted toward the rating; 0 when hidden. |
| `visible` | boolean | yes | False when the store hides the rating (disabled or below its threshold). |
| `hasHistoricalRating` | boolean | yes | — |

**Errors**

| Code | Status | When |
| --- | --- | --- |
| `VALIDATION` | 400 | — |

```bash
curl -X GET "https://{site}/api/v1/reviews/summary"
```
