List the conversational coaching agents
const url = 'http://localhost:8000/api/agents/';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:8000/api/agents/ \ --header 'Authorization: Bearer <token>'The conversational coaching agents available to the caller’s team, plus whether the team may use them.
available is false when the surface is disabled for this deployment (reason: "disabled"), the caller has no active team (reason: "no_team"), or the team’s plan does not include agents (reason: "plan"). The roster is listed either way, so an ineligible team can see what it would unlock.
Entries carry the persona key only — the localised name, description and example questions live in the frontend agents locale bundle.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Body of GET /api/agents/.
available is false when the surface is disabled for this deployment or the
team’s plan doesn’t include it; reason says which, so the page can render
the right empty state (disabled / no_team / plan). The roster itself is
always listed, so an ineligible team still sees what it would unlock.
object
One roster entry. Key only — the localised name / description / example
questions live in the frontend agents i18n namespace (I18N.md).
object
Examples
{ "available": true, "reason": null, "agents": [ { "key": "rehab" }, { "key": "performance" } ]}Not included in the team's plan
{ "available": false, "reason": "plan", "agents": [ { "key": "rehab" }, { "key": "performance" } ]}object
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).
Examplegenerated
{ "detail": "example"}object
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).
Examplegenerated
{ "detail": "example"}