---
title: "List Categories"
method: GET
path: "/v1/categories"
tags: ["v1"]
---

# List Categories

`GET /v1/categories`

Paginated list of all categories.

## Query parameters

- `roots_only` boolean — If true, return only top-level (root) categories.
- `page` integer — 1-indexed page number.
- `page_size` integer — Items per page.

## Response `200`

Successful Response

- PaginatedListCategoriesResponse
  - `items` CategorySummary[], required — Categories in this page
    - `slug` string, required — URL-friendly slug (e.g. 'sofas')
    - `title` string, required — Human-readable category title
    - `path` CategoryRef[] — Hierarchical path as a structured list, root first; the last entry is this category itself
      - `slug` string, required — URL-friendly slug (e.g. 'sofas')
      - `title` string, required — Human-readable category title
    - `has_children` boolean, required — Whether this category has subcategories
  - `page` integer, required — 1-indexed page number returned
  - `page_size` integer, required — Number of items per page
  - `total` integer, required — Total number of categories matching the query

## Other responses

- `401` — Unauthorized - Invalid or missing authentication
- `402` — Payment required
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/channel3-ai/apis/fastapi.md) · [All operations](https://skmtc.net/channel3-ai/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/channel3-ai/fastapi/revisions/981d371bd83e/schema)
