Skip to main content
GET
/
v1
/
personas
List Personas
curl --request GET \
  --url https://api.example.com/v1/personas/
{
  "results": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "<string>",
      "role": "<string>",
      "created_at": 123,
      "updated_at": 123,
      "created_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "description": "<string>",
      "role_description": "<string>",
      "knowledge_level": "intermediate",
      "skill_level": "competent",
      "intent": "benign",
      "language": "en",
      "access_permissions": {
        "privilege_level": "user",
        "allowed_agents": [
          "<string>"
        ],
        "allowed_tools": [
          "<string>"
        ],
        "restricted_actions": [
          "<string>"
        ],
        "data_access_scope": "own"
      },
      "is_preset": false,
      "preset_category": "<string>",
      "tags": [
        "<string>"
      ],
      "icon_filename": "<string>"
    }
  ],
  "total": 123
}

Query Parameters

team_id
string<uuid> | null

Team scope (required); must match a team the user has access to

intents
string[] | null

Filter by intent(s): benign, curious, adversarial, malicious

is_preset
boolean | null

Filter by preset status

search
string | null

Search in name, description, and role

limit
integer
default:10

Maximum number of results (default 10)

Required range: 1 <= x <= 100
offset
integer
default:0

Number of results to skip for paging

Required range: x >= 0

Response

Successful Response

Response model for listing personas with pagination.

  • results: Items in the current page (length may be less than limit on last page).
  • total: Total number of items matching the query, before pagination.
results
Persona · object[]
required
total
integer
required
Last modified on April 21, 2026