---
title: "Get Lists"
method: GET
path: "/api/lists"
tags: ["KOL Lists"]
---

# Get Lists

`GET /api/lists`

## Request

- Base URL: `https://api.kolens.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kolens.ai/api/lists`
- Auth: HTTP bearer

Return KOL lists owned by the calling user (or visible to the
caller's active workspace), each with a compact decision ``rollup``.

With ``X-Kolens-User-Id`` (the normal web-app path), filter to lists
whose api_key resolves to that user via APIKey.user_id. Without it
(CLI / cowork plugin), fall back to per-api-key match. When an
active workspace is supplied, lists owned by the workspace are
also visible (EPIC #114 Phase 3).

GitHub #376 — every list carries a ``rollup``
``{member_count, n_shortlisted, n_untriaged, n_passed, n_red_flag}``
so the portfolio/index view can render "Skincare Q3 · 40 KOL · 8
shortlisted · 12 untriaged · 6 red-flag" without a per-list call.

## Headers

- `x-kolens-user-id` string, nullable
- `x-kolens-workspace-id` string, nullable

## Response `200`

Successful Response

- ListOut[]
  - `id` string, required
  - `name` string, required
  - `description` string, nullable, required
  - `member_count` integer, required
  - `created_at` string, required
  - `updated_at` string, required
  - `enable_daily_monitoring` boolean
  - `rollup` ListIndexRollup: Compact decision rollup carried by each list in ``GET /api/lists`` so the portfolio view can show "Skincare Q3 · 40 KOL · 8 shortlisted · 12 untriaged · 6 red-flag" without a per-list detail call.
    - `member_count` integer
    - `n_shortlisted` integer
    - `n_untriaged` integer
    - `n_passed` integer
    - `n_red_flag` integer

## Other responses

- `422`: Validation Error

---

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