> For the complete documentation index, see [llms.txt](https://docs.spurtcommerce.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.spurtcommerce.com/api-reference/store/product-discovery/product-ratings-and-reviews.md).

# Product Ratings And Reviews

Retrieve product ratings, statistics and customer reviews.

## Get consolidated rating/review count for a SKU.

> Get consolidated rating/review count for a SKU.\
> \
> \*\*Authentication:\*\* Public query.\
> \
> \*\*Feature area:\*\* Ratings and reviews\
> \
> \*\*Implementation source:\*\* \`src/api/store/controllers/StoreRatingController.ts\`\
> \
> \*\*Request example provenance:\*\* Exact response keys/message from handler; numeric values illustrative.\
> \
> \*\*Response example provenance:\*\* Exact response keys/message from handler; numeric values illustrative.\
> \
> \> \*\*Example status: Illustrative.\*\* The example is included to demonstrate request/response shape in the reference UI; verify the owning controller and request DTO before using it as a contract.

```json
{"openapi":"3.0.3","info":{"title":"SpurtCommerce Store API","version":"6.0.0"},"tags":[{"name":"Product ratings and reviews","description":"Retrieve product ratings, statistics and customer reviews."}],"servers":[{"url":"https://api.example.com","description":"Replace with your SpurtCommerce API host. Paths include the /api prefix."}],"paths":{"/api/product-store/rating-count/{skuId}":{"get":{"operationId":"getApiProductStoreRatingCountSkuid","summary":"Get consolidated rating/review count for a SKU.","description":"Get consolidated rating/review count for a SKU.\n\n**Authentication:** Public query.\n\n**Feature area:** Ratings and reviews\n\n**Implementation source:** `src/api/store/controllers/StoreRatingController.ts`\n\n**Request example provenance:** Exact response keys/message from handler; numeric values illustrative.\n\n**Response example provenance:** Exact response keys/message from handler; numeric values illustrative.\n\n> **Example status: Illustrative.** The example is included to demonstrate request/response shape in the reference UI; verify the owning controller and request DTO before using it as a contract.","tags":["Product ratings and reviews"],"parameters":[{"name":"skuId","in":"path","required":true,"schema":{"type":"string"},"description":"Value for skuId."}],"responses":{"200":{"description":"Successful response. Exact response keys/message from handler; numeric values illustrative. Example is illustrative and does not guarantee a stable response contract.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"},"data":{"type":"object","properties":{"ratingCount":{"type":"number"},"reviewCount":{"type":"integer"},"rating":{"type":"number"}},"additionalProperties":true}},"additionalProperties":true}}}},"400":{"description":"Error response example. Exact response keys/message from handler; numeric values illustrative.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"}},"additionalProperties":true}}}}}}}}}
```

## Get rating distribution for a SKU.

> Get rating distribution for a SKU.\
> \
> \*\*Authentication:\*\* Public query.\
> \
> \*\*Feature area:\*\* Ratings and reviews\
> \
> \*\*Implementation source:\*\* \`src/api/store/controllers/StoreRatingController.ts\`\
> \
> \*\*Request example provenance:\*\* Source handler returns 404 on invalid SKU; values shown illustrative.\
> \
> \*\*Response example provenance:\*\* Source handler returns 404 on invalid SKU; values shown illustrative.\
> \
> \> \*\*Example status: Illustrative.\*\* The example is included to demonstrate request/response shape in the reference UI; verify the owning controller and request DTO before using it as a contract.

```json
{"openapi":"3.0.3","info":{"title":"SpurtCommerce Store API","version":"6.0.0"},"tags":[{"name":"Product ratings and reviews","description":"Retrieve product ratings, statistics and customer reviews."}],"servers":[{"url":"https://api.example.com","description":"Replace with your SpurtCommerce API host. Paths include the /api prefix."}],"paths":{"/api/product-store/rating-statistics/{skuId}":{"get":{"operationId":"getApiProductStoreRatingStatisticsSkuid","summary":"Get rating distribution for a SKU.","description":"Get rating distribution for a SKU.\n\n**Authentication:** Public query.\n\n**Feature area:** Ratings and reviews\n\n**Implementation source:** `src/api/store/controllers/StoreRatingController.ts`\n\n**Request example provenance:** Source handler returns 404 on invalid SKU; values shown illustrative.\n\n**Response example provenance:** Source handler returns 404 on invalid SKU; values shown illustrative.\n\n> **Example status: Illustrative.** The example is included to demonstrate request/response shape in the reference UI; verify the owning controller and request DTO before using it as a contract.","tags":["Product ratings and reviews"],"parameters":[{"name":"skuId","in":"path","required":true,"schema":{"type":"string"},"description":"Value for skuId."}],"responses":{"200":{"description":"Successful response. Source handler returns 404 on invalid SKU; values shown illustrative. Example is illustrative and does not guarantee a stable response contract.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"starsCount":{"type":"object","properties":{"oneStar":{"type":"integer"},"twoStar":{"type":"integer"},"threeStar":{"type":"integer"},"fourStar":{"type":"integer"},"fiveStar":{"type":"integer"}},"additionalProperties":true},"totalRatingReview":{"type":"integer"}},"additionalProperties":true}},"status":{"type":"string"}},"additionalProperties":true}}}},"400":{"description":"Error response example. Source handler returns 404 on invalid SKU; values shown illustrative.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"}},"additionalProperties":true}}}}}}}}}
```

## List reviews for a SKU.

> List reviews for a SKU.\
> \
> \*\*Authentication:\*\* Public query; supports optional customerId, limit, offset and count query params.\
> \
> \*\*Feature area:\*\* Ratings and reviews\
> \
> \*\*Implementation source:\*\* \`src/api/store/controllers/StoreRatingController.ts\`\
> \
> \*\*Request example provenance:\*\* Response keys from source @api example.\
> \
> \*\*Response example provenance:\*\* Response keys from source @api example.\
> \
> \> Example is based on the linked repository source. Replace example identifiers and credentials with values from your tenant.

```json
{"openapi":"3.0.3","info":{"title":"SpurtCommerce Store API","version":"6.0.0"},"tags":[{"name":"Product ratings and reviews","description":"Retrieve product ratings, statistics and customer reviews."}],"servers":[{"url":"https://api.example.com","description":"Replace with your SpurtCommerce API host. Paths include the /api prefix."}],"paths":{"/api/product-store/rating/{skuId}":{"get":{"operationId":"getApiProductStoreRatingSkuid","summary":"List reviews for a SKU.","description":"List reviews for a SKU.\n\n**Authentication:** Public query; supports optional customerId, limit, offset and count query params.\n\n**Feature area:** Ratings and reviews\n\n**Implementation source:** `src/api/store/controllers/StoreRatingController.ts`\n\n**Request example provenance:** Response keys from source @api example.\n\n**Response example provenance:** Response keys from source @api example.\n\n> Example is based on the linked repository source. Replace example identifiers and credentials with values from your tenant.","tags":["Product ratings and reviews"],"parameters":[{"name":"skuId","in":"path","required":true,"schema":{"type":"string"},"description":"Value for skuId."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Query parameter limit."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Query parameter offset."},{"name":"count","in":"query","required":false,"schema":{"type":"boolean"},"description":"Query parameter count."}],"responses":{"200":{"description":"Successful response. Response keys from source @api example.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"review":{"type":"string"},"rating":{"type":"integer"},"createdDate":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"productId":{"type":"integer"},"customerId":{"type":"integer"},"isActive":{"type":"integer"}},"additionalProperties":true}},"status":{"type":"string"}},"additionalProperties":true}}}}}}}}}
```
