---
title: "Create a product review"
method: POST
path: "/reviews"
tags: ["Customer Review"]
---

# Create a product review

`POST /reviews`

## Request

- Base URL: `http://localhost:8000/api/shop`
- URL: `http://localhost:8000/api/shop/reviews`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bagisto/apis/bagisto-shop-api/docs/reviews/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a review for a product on behalf of the authenticated customer. Review starts in `pending` status until approved by admin.

## Headers

- `X-STOREFRONT-KEY` string, required
- `X-Locale` string
- `X-Channel` string
- `X-Currency` string

## Request body

- object
  - `product_id` integer, required: ID of the product being reviewed
  - `title` string, required: Short review title
  - `comment` string, required: Full review body
  - `rating` integer, required: Star rating (1-5)
  - `name` string, required: Reviewer display name
  - `email` string, email: Optional: reviewer email (for guests)
  - `attachments` string: Optional: JSON-encoded attachment metadata

## Response `201`

Review created. Starts in `pending` status until an admin approves it.

## Other responses

- `400`: Invalid input
- `422`: Validation failed (missing product_id/rating, invalid rating, etc.).

---

[API](https://skmtc.dev/bagisto/apis/bagisto-shop-api.md) - [All operations](https://skmtc.dev/bagisto/apis/bagisto-shop-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bagisto/apis/bagisto-shop-api/revisions/f619df36bf29?raw)
