> ## Documentation Index
> Fetch the complete documentation index at: https://docs.masker.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /agents — list all Masker agents in your account

> Retrieve a cursor-paginated list of every agent in your account, including proxy URLs, webhook URLs, tokenization scheme, and 24-hour session counts.

Returns all agents associated with your account, ordered by creation time (newest first). Use this endpoint to enumerate agents, check their status, or retrieve the proxy and webhook URLs you need to configure your voice platform. Supports cursor-based pagination for accounts with many agents.

## Endpoint

```
GET /api/v1/agents
```

Requires `masker_session` authentication.

## Query parameters

<ParamField query="limit" type="number" default="25">
  Maximum number of agents to return. Accepted range: 1–100.
</ParamField>

<ParamField query="cursor" type="string">
  Pagination cursor from a previous response's `next_cursor` field. Omit to start from the first page.
</ParamField>

<ParamField query="name_contains" type="string">
  Case-insensitive substring filter on agent name. Returns only agents whose name includes the given string.
</ParamField>

## Response fields

<ResponseField name="data" type="object[]" required>
  Array of agent objects.

  <Expandable title="agent object fields">
    <ResponseField name="id" type="string" required>
      Agent ID in `agt_*` ULID format, e.g. `agt_01HYZ...`.
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Display name, unique per account.
    </ResponseField>

    <ResponseField name="upstream" type="string" required>
      Configured upstream LLM provider and model, e.g. `openai:gpt-4o-mini`.
    </ResponseField>

    <ResponseField name="tokenization" type="string" required>
      Tokenization scheme: `vault-deterministic` or `reversible-aead`.
    </ResponseField>

    <ResponseField name="policy_name" type="string" required>
      Name of the active masking policy, e.g. `healthcare-default`.
    </ResponseField>

    <ResponseField name="policy_version" type="number" required>
      Version number of the active policy.
    </ResponseField>

    <ResponseField name="proxy_url" type="string" required>
      Full URL of the agent's OpenAI-compatible proxy endpoint. Put this in your voice platform's custom LLM URL field.
    </ResponseField>

    <ResponseField name="webhook_url" type="string" required>
      Full URL of the agent's Vapi assistant-request webhook endpoint.
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      ISO 8601 UTC timestamp of when the agent was created.
    </ResponseField>

    <ResponseField name="session_count_24h" type="number" required>
      Number of sessions processed by this agent in the last 24 hours.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="next_cursor" type="string | null" required>
  Cursor for the next page of results. Pass this as the `cursor` query parameter on the next request. `null` when you have reached the last page.
</ResponseField>

## Example

<CodeGroup>
  ```bash curl theme={null}
  curl -H "Cookie: masker_session=ey..." \
    "https://masker-voice.fly.dev/api/v1/agents?limit=50"
  ```
</CodeGroup>

```json Response theme={null}
{
  "data": [
    {
      "id": "agt_01HYZ...",
      "name": "appointment-bot-prod",
      "upstream": "openai:gpt-4o-mini",
      "tokenization": "vault-deterministic",
      "policy_name": "healthcare-default",
      "policy_version": 1,
      "proxy_url": "https://masker-voice.fly.dev/proxy/agt_01HYZ.../v1/chat/completions",
      "webhook_url": "https://masker-voice.fly.dev/vapi/webhook/agt_01HYZ...",
      "created_at": "2026-04-15T10:22:11Z",
      "session_count_24h": 247
    }
  ],
  "next_cursor": null
}
```

## Errors

| Status | Code                | Meaning                                    |
| ------ | ------------------- | ------------------------------------------ |
| `401`  | `unauthenticated`   | Missing or invalid `masker_session` cookie |
| `422`  | `validation_failed` | Bad query parameter value                  |
