---
title: "Get the review thread and rating aggregate of a component"
method: GET
path: "/api/components/{id}/reviews"
tags: ["catalog"]
---

# Get the review thread and rating aggregate of a component

`GET /api/components/{id}/reviews`

## Request

- Base URL: `https://voltplan.app`
- URL: `https://voltplan.app/api/components/{id}/reviews`
- Auth: one of:
  - none
  - HTTP bearer

Read-only. The bearer token is optional and only personalises `mine` and `helpfulByMe`; a missing, invalid or expired token is treated as anonymous and never answered with 401. An unknown or unpublished component id yields empty `nodes` and a zero aggregate.

## Response `200`

Threaded reviews and aggregate, relative to the caller.

- ComponentReviewsResponse: Review thread of a component with its rating aggregate.
  - `success` unknown, required
  - `nodes` ComponentReviewNode[], required: Top-level reviews, newest first.
    - `id` string, required: Id of the `component_reviews` record.
    - `author_name` string, required: Display name captured when it was written.
    - `rating` integer, required: Stars 1–5; 0 for a reply.
    - `body` string, required: Text; may be ''.
    - `created` string, required: PocketBase creation timestamp, e.g. `2026-08-20 14:56:29.009Z`.
    - `helpful` integer, required: Number of "helpful" votes.
    - `helpfulByMe` boolean, required: The caller voted; false without a valid token.
    - `mine` boolean, required: The caller wrote it; false without a valid token.
    - `replies` ComponentReviewNode[], required: Replies, oldest first.
  - `aggregate` ComponentReviewAggregate, required: Rating summary over top-level reviews; replies never count.
    - `count` integer, required: Number of ratings.
    - `avg` number, required: Average rating rounded to one decimal; 0 without ratings.
    - `dist` ComponentReviewDistribution, required: Number of top-level ratings per star value.
      - `1` integer, required
      - `2` integer, required
      - `3` integer, required
      - `4` integer, required
      - `5` integer, required

## Other responses

- `500`: Unexpected failure while loading the reviews.

---

[API](https://skmtc.dev/voltplan/apis/voltplan-api.md) · [All operations](https://skmtc.dev/voltplan/apis/voltplan-api/llms.txt) · [OpenAPI document](https://skmtc.dev/voltplan/apis/voltplan-api/revisions/575b86a7af92?raw)
