---
title: "List reviews for a published skill"
method: GET
path: "/api/v1/catalog/skills/{owner}/{name}/reviews"
tags: ["Catalog"]
---

# List reviews for a published skill

`GET /api/v1/catalog/skills/{owner}/{name}/reviews`

## Request

- Base URL: `https://skillrepo.dev`
- URL: `https://skillrepo.dev/api/v1/catalog/skills/{owner}/{name}/reviews`
- Auth: HTTP bearer

Returns all reviews for a single published skill, ordered newest first. A skill with no reviews still returns 200 with an empty array — only a missing/unpublished skill returns 404.

## Path parameters

- `owner` string, required
- `name` string, required

## Response `200`

Reviews for the skill (possibly empty).

- CatalogReviewsResponse: Response envelope for the catalog reviews endpoint.
  - `reviews` CatalogReview[], required: Reviews ordered newest first. Empty array if the skill has no reviews; the route still returns 200, not 404.
    - `rating` integer, required
    - `title` string, required
    - `body` string, required
    - `author` string, required: Display name of the review author (maps from `users.name`).
    - `createdAt` string, date-time, required
  - `count` integer, required: Convenience field equal to `reviews.length`.

## Other responses

- `401`: Missing or invalid authentication. For routes that require `bearerAccessKey` or `bearerCatalogKey`.
- `404`: Resource does not exist, OR exists but the caller has no permission to see it. Private resources return 404 (never 403) to avoid leaking existence.
- `429`: Rate limit exceeded on the route's bucket. Includes `X-RateLimit-*` headers indicating the limit, remaining, and reset time.

---

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