> ## Documentation Index
> Fetch the complete documentation index at: https://docs.salesive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a review

> Re-fetch one product review by id, with the reviewer and product populated. Requires the READ_REVIEWS scope.

This is the app re-fetch for the `reviews/created` webhook: `resourceId` on the
event is the review id, and this endpoint returns the review scoped to the
store bound to your app token — never send a shop id.

The reviewer (`user`) and the reviewed `product` are populated, and the
response also carries `customer`, the store's own customer profile for the
reviewer. A soft-deleted review or a review from another store returns `404`.

```json theme={null}
{
  "status": 200,
  "success": true,
  "data": {
    "_id": "672a...",
    "rating": 5,
    "title": "Comfortable and true to size",
    "comment": "Second pair I've bought.",
    "user": { "_id": "66b1...", "name": "Amara", "avatar": "https://..." },
    "customer": { "_id": "672b...", "name": "Amara", "avatar": "https://..." },
    "product": { "_id": "64e1...", "name": "Leather sandal", "slug": "leather-sandal", "images": ["https://..."] },
    "createdAt": "2026-11-01T10:00:00.000Z",
    "updatedAt": "2026-11-01T10:00:00.000Z"
  }
}
```

| Field | Description |
| - | - |
| `rating` | Whole number, 1 to 5. |
| `title` / `comment` | The shopper's words; either may be empty. |
| `user` | The shopper's account, populated with `name` and `avatar`. |
| `customer` | The store's customer profile for that shopper, with `name` and `avatar`. |
| `product` | The reviewed item, populated with `name`, `slug` and `images`. |

## Errors

| Status | Meaning |
| - | - |
| `404` | No review with that id in this store. |
| `403` | The install does not hold `READ_REVIEWS`. |


## OpenAPI

````yaml apps-api/specs/catalog.json GET /reviews/{id}
openapi: 3.1.0
info:
  title: Salesive Apps API — Catalog
  description: >-
    Catalog data endpoints (products, foods and services) callable by an
    installed third-party app using its app access token. The target store is
    bound to the token server-side by the OAuth install flow.
  version: 1.0.0
servers:
  - url: https://api.salesive.com/api/v1
    description: Production
security:
  - AppToken: []
paths:
  /reviews/{id}:
    get:
      tags:
        - Reviews
      summary: Re-fetch one review
      description: >-
        The app re-fetch for the reviews/created webhook. Scoped to the store
        bound to the token, with the reviewer and product populated. App tokens
        need READ_REVIEWS; staff tokens pass through with no scope.
      parameters:
        - name: id
          in: path
          required: true
          description: The review id from the webhook's resourceId.
          schema:
            type: string
      responses:
        '200':
          description: The review
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Review'
        '404':
          description: No review with that id in this store.
      security:
        - bearerAuth: []
components:
  schemas:
    Review:
      type: object
      properties:
        _id:
          type: string
          description: The review id.
        rating:
          type: integer
          minimum: 1
          maximum: 5
        title:
          type: string
          nullable: true
        comment:
          type: string
          nullable: true
        user:
          type: object
          nullable: true
          description: The shopper who wrote it, populated with name and avatar.
          properties:
            _id:
              type: string
            name:
              type: string
            avatar:
              type: string
              nullable: true
        customer:
          type: object
          nullable: true
          description: The store's customer profile for the reviewer, with name and avatar.
          properties:
            _id:
              type: string
            name:
              type: string
            avatar:
              type: string
              nullable: true
        product:
          type: object
          nullable: true
          description: The reviewed product, populated with name, images and slug.
          properties:
            _id:
              type: string
            name:
              type: string
            slug:
              type: string
              nullable: true
            images:
              type: array
              items:
                type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
  securitySchemes:
    AppToken:
      type: http
      scheme: bearer
      description: >-
        Installed-app access token (prefix app_), issued by the OAuth install
        flow. The store is bound to the token server-side — never send a shop
        id.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.