Skip to content

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-reviews

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
X-STOREFRONT-KEYYesYour storefront API key
AuthorizationYesBearer token (customer login required)

Query Parameters

ParameterTypeDefaultDescription
statusstring-Filter by review status (pending, approved, disapproved)
ratinginteger-Filter by star rating (15)

Response

A bare JSON array of the customer's own reviews, newest first. The product and customer are path references, not nested objects.

FieldTypeDescription
idintegerReview ID.
namestringDisplay name submitted with the review.
title / commentstringReview text.
ratingintegerStar rating, 1 to 5.
statusstringpending, approved, or disapproved.
productstringPath of the reviewed product, e.g. /api/shop/products/127.
customerstringPath of the author — always the authenticated customer.
createdAt / updatedAtstringISO 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

StatusDescription
pendingSubmitted and awaiting moderation. Not visible on the product page.
approvedPublished on the storefront.
disapprovedReviewed 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

ParameterDescription
statusOne status value per request.
ratingOne 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=pending isolates 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 product path 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-Count for the count — the body is one fixed page of 10.
  • Use disapproved, not rejected — an unrecognised status value silently matches nothing and returns an empty array.

Released under the MIT License.