---
title: "List Agents"
method: GET
path: "/api/v1/agents"
---

# List Agents

`GET /api/v1/agents`

Return a flat list of agent sessions for the web GUI grid.

When ``TaskStore.agents`` is empty (e.g. only mock adapters spawned and
they never heartbeat) we fall back to synthesising one entry per
claimed/in-progress task, marked with ``"synthetic": true``. That keeps
the GUI grid populated during demos and avoids the dreaded "0 sessions"
empty state when work is obviously in flight.

Both branches render the id and title of the task a session is on, so
both narrow to the caller's tenant scope: the live sessions carry no
tenant of their own and are placed by the task they name, while the
synthesised entries are built from a scoped read in the first place.

## Response `200`

Successful Response

- object[]

---

[API](https://skmtc.net/sipyourdrink-ltd/apis/bernstein-task-server.md) · [All operations](https://skmtc.net/sipyourdrink-ltd/apis/bernstein-task-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sipyourdrink-ltd/bernstein-task-server/revisions/c731d9228f03/schema)
