---
title: "List content types"
method: GET
path: "/api/v3/content-types"
tags: ["Facets"]
---

# List content types

`GET /api/v3/content-types`

List your classification trees: the content types you've adopted
from the starter templates or created from scratch. This is where you see
what's available to classify your documents with.

**Content types are tree-based.** Each tree is an independent classification
hierarchy (e.g., `legal` → `contract` → `nda`). You can have multiple trees
side by side (`legal`, `finance`, `compliance`), and a single document can be
classified under **multiple trees** simultaneously. For instance, a contract
can be both `legal:contract:nda` and `finance:investment:term-sheet`.

Each node in the tree can carry **custom attributes** (metadata fields like
`jurisdiction`, `effective_date`, `contract_value`). Attributes are inherited
down the tree: a document at `legal:contract:nda` gets attributes from all
three levels.

**New here?** Start by browsing available templates at
`GET /api/v3/content-types/templates`, then adopt the ones you need
via `POST /api/v3/content-types {"action": "adopt"}`.

**Query params:**
- `?query=5G antennas`: filter to content types relevant to a search query
  (uses a first-pass retrieval). Without this param, the full catalog is returned.
- `?path=legal`: filter to a specific subtree
- `?path=legal,finance`: multiple subtrees (comma-separated)
- `?depth=0`: roots only. `?depth=N`: N levels of children.
- `?include_attributes=true` (default): include attribute definitions per node
- `?include_attributes=false`: omit attribute definitions for a lighter response

`query` and `path` can be combined: returns the intersection (only matched
content types under the requested paths).

Returns an empty list if no content types have been set up yet.

## Query parameters

- `depth` integer
- `include_attributes` boolean
- `path` string
- `query` string

## Response `200`

Company content type tree with optional attribute definitions.

- ContentTypesListResponse
  - `content_types` ContentTypeNodeResponse[], required
    - `path` string, required
    - `code` string, required
    - `label` string, required
    - `description` string
    - `source` string, required
    - `inherit_attributes` boolean
    - `attributes` AttributeDefResponse[]
      - `name` string, required
      - `label` string, required
      - `type` string, required
      - `required` boolean, required
      - `description` string
      - `choices` string[]
    - `children` ContentTypeNodeResponse[]
  - `can_edit` boolean, nullable

## Other responses

- `401` — Authentication credentials were not provided or are invalid

---

[API](https://skmtc.dev/lighton/apis/lighton-api.md) · [All operations](https://skmtc.dev/lighton/apis/lighton-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lighton/lighton-api/revisions/86c57e94ef15/schema)
