Get Customer Reviews
Retrieve a paginated list of product reviews submitted by the authenticated customer. This is a read-only, customer-scoped resource — customers can only see their own reviews.
Endpoint
GET /api/shop/customer-reviewsRequest Headers
| Header | Required | Description |
|---|---|---|
Content-Type | Yes | application/json |
X-STOREFRONT-KEY | Yes | Your storefront API key |
Authorization | Yes | Bearer token (customer login required) |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
status | string | - | Filter by review status (pending, approved, disapproved) |
rating | integer | - | Filter by star rating (1–5) |
Response
A bare JSON array of the customer's own reviews, newest first. The product and customer are path references, not nested objects.
| Field | Type | Description |
|---|---|---|
id | integer | Review ID. |
name | string | Display name submitted with the review. |
title / comment | string | Review text. |
rating | integer | Star rating, 1 to 5. |
status | string | pending, approved, or disapproved. |
product | string | Path of the reviewed product, e.g. /api/shop/products/127. |
customer | string | Path of the author — always the authenticated customer. |
createdAt / updatedAt | string | ISO 8601 timestamps. |
Pagination is reported in headers: X-Total-Count, X-Page, X-Per-Page, X-Total-Pages. The page size is fixed at 10 — per_page and page are accepted by the URL but do not change the result. Walk a longer history over GraphQL, where the same rows are a cursor connection.
Status Values
| Status | Description |
|---|---|
pending | Submitted and awaiting moderation. Not visible on the product page. |
approved | Published on the storefront. |
disapproved | Reviewed by an admin and not published. |
Unlike the product-review listing, this endpoint applies no default status filter — a customer sees all of their own reviews, pending ones included.
Filters
| Parameter | Description |
|---|---|
status | One status value per request. |
rating | One rating from 1 to 5. |
Supplying both narrows the result: ?status=approved&rating=5 returns only published five-star reviews.
Use Cases
- "My reviews" in the account area — call with no parameters; unapproved reviews are included, which is what lets the shopper see their own submission before it goes live.
- "Awaiting approval" section —
?status=pendingisolates the reviews the shopper cannot yet see on the product page. - Link back to the product — take the numeric ID from the end of the
productpath and fetch the product for its name and image; they are not in this payload.
Best Practices
- Do not expect product names here — the row carries a path only, so a review history that shows product titles needs a second fetch per product.
- Read
X-Total-Countfor the count — the body is one fixed page of 10. - Use
disapproved, notrejected— an unrecognised status value silently matches nothing and returns an empty array.
Related Resources
- Get Single Customer Review — one of the customer's own reviews
- Get Product Reviews — a product's reviews, approved only by default
- Create Product Review — submit a review; it starts as pending
- Get Customer Profile — read the authenticated customer's account details

