Skip to content

List the team's client groups

GET
/api/client-groups/
curl --request GET \
--url http://localhost:8000/api/client-groups/ \
--header 'Authorization: Bearer <token>'

Every ClientGroup owned by the active team, sorted by name. Each carries its member_ids (the roster) + member_count. Team-scoped.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Media typeapplication/json
object
count
required
integer
next
string format: uri
nullable
previous
string format: uri
nullable
results
required
Array<object>

A team-scoped client group (#545). name / description / colour are writable on create + PATCH; the roster (member_ids) is read-only here — mutate it via the /members/ endpoints. member_count powers the board column header without a second round-trip.

object
id
required
string format: uuid
name
required

Group name. Required; unique within the team.

string
<= 120 characters
description

Optional free-text description of the group.

string
<= 500 characters
colour

Optional UI tint — a design-token key (e.g. tone-recovery) or empty. Cosmetic; the board falls back to a deterministic colour.

string
<= 32 characters
member_ids
required

UUIDs of the clients in this group (many-to-many).

Array<string>
member_count
required

Number of clients in the group.

integer
created_at
required
string format: date-time
updated_at
required
string format: date-time
Examples
ExampleSprintSquad

Sprint squad

{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": "b3f1c0a2-0000-4000-8000-000000000001",
"name": "Sprint squad",
"description": "100–400 m specialists",
"colour": "tone-recovery",
"member_ids": [
"a1f1c0a2-0000-4000-8000-0000000000aa"
],
"member_count": 1,
"created_at": "2026-06-10T12:00:00Z",
"updated_at": "2026-06-10T12:00:00Z"
}
]
}
Media typeapplication/json
object
detail
required

Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).

string
Examplegenerated
{
"detail": "example"
}