---
title: "Read Rosters"
method: GET
path: "/agents/rosters"
tags: ["authenticated", "agents"]
---

# Read Rosters

`GET /agents/rosters`

## Request

- Base URL: `https://api-docs.upsmith.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.upsmith.com/agents/rosters`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

The canonical persona roster with its presentation config.

Global reference data, ~20 rows. The frontend renders persona cards, orders
them, and resolves a persona name out of an agent title from this, so adding
a persona is a row insert rather than a matching TypeScript edit.

## Query parameters

- `public_only` boolean

## Headers

- `organization-id` string, nullable
- `x-user-id` string, nullable
- `timezone` string
- `x-actor-email` string, nullable
- `x-request-source` string, nullable
- `x-operation-id` string, nullable
- `x-commit-message` string, nullable
- `x-confirmation-id` string, nullable
- `x-chat-id` string, nullable

## Response `200`

Successful Response

- RosterPublic[]
  - `id` string, required
  - `key` string, required
  - `display_name` string, required
  - `sort_order` integer, required
  - `display_role` string, nullable
  - `display_icon` string, nullable
  - `display_color` string, nullable
  - `description` string, nullable
  - `is_campaign_persona` boolean
  - `is_visible_in_dashboard` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/upsmith/apis/upsmith-api.md) - [All operations](https://skmtc.dev/upsmith/apis/upsmith-api/llms.txt) - [OpenAPI document](https://skmtc.dev/upsmith/apis/upsmith-api/revisions/86e2c2bd93af?raw)
