---
title: "List Agents"
description: "Find the organization's Agents (the Dashboard calls them Workers), newest first, to get the `agentId` you need before reading or changing one. Filter by `status` (`active`, `paused`), `modality` (`voice` for calls, `text` for WhatsApp and web chat) or `q` (name). Each item shows whether it is `ready` to hold conversations and, for voice Agents, `synced`. Next: `get_agent` for its full setup, or `list_conversations` with `agentId` for what it talked about.\n\n- **Scopes:** any one of `raiz:agents:read`, `raiz:agents:write`\n- **Credentials:** an API key, a client-credentials token or a person's access token\n- **Effect:** read-only; safe to retry\n- **Limits:** response up to 1 MB\n- **CLI:** `arbol raiz agents list` · **MCP tool:** `raiz_agents_list`"
---

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

Path: Raíz API › Agents

`GET /v1/raiz/agents`

Find the organization's Agents (the Dashboard calls them Workers), newest first, to get the `agentId` you need before reading or changing one. Filter by `status` (`active`, `paused`), `modality` (`voice` for calls, `text` for WhatsApp and web chat) or `q` (name). Each item shows whether it is `ready` to hold conversations and, for voice Agents, `synced`. Next: `get_agent` for its full setup, or `list_conversations` with `agentId` for what it talked about.

- **Scopes:** any one of `raiz:agents:read`, `raiz:agents:write`
- **Credentials:** an API key, a client-credentials token or a person's access token
- **Effect:** read-only; safe to retry
- **Limits:** response up to 1 MB
- **CLI:** `arbol raiz agents list` · **MCP tool:** `raiz_agents_list`

## Authentication

Requires one of the following:

- `arbolHuman`, oauth2, scopes: `raiz:agents:read`
- `arbolHuman`, oauth2, scopes: `raiz:agents:write`
- `arbolMachine`, oauth2, scopes: `raiz:agents:read`
- `arbolMachine`, oauth2, scopes: `raiz:agents:write`
- `arbolApiKey`, http, header `Authorization`

## Query parameters

- `cursor` (`raiz.agents.list.query.cursor`; string, optional) — Opaque cursor returned by pageInfo; omit it to request the first page.
- `direction` (`raiz.agents.list.query.direction`; string, optional) — Direction to traverse the stable keyset ordering from the supplied cursor.
  - one of `"forward"`, `"backward"`; default `"forward"`
- `limit` (`raiz.agents.list.query.limit`; integer, optional) — Maximum items returned in one page. Defaults to 25; larger reads require another cursor.
  - min 1; max 100; default `25`
- `modality` (`raiz.agents.list.query.modality`; string, optional) — `voice`: phone calls. `text`: WhatsApp and web chat.
  - one of `"voice"`, `"text"`
- `q` (`raiz.agents.list.query.q`; string, optional) — Matches the name, ignoring accents and case.
  - minLength 1; maxLength 200
- `status` (`raiz.agents.list.query.status`; string, optional) — A paused Agent answers nothing and places no calls.
  - one of `"active"`, `"paused"`

## Code samples

### cURL

```bash
curl https://api.getarbol.com/v1/raiz/agents \
  --header "Authorization: Bearer $ARBOL_API_KEY"
```

### TypeScript

```typescript
import { createClient } from "@arbol-ai/sdk";

const arbol = createClient({
  baseUrl: "https://api.getarbol.com",
  token: process.env.ARBOL_API_KEY!,
});

const { data } = await arbol.raiz.agents.list();
```

### Rust

```rust
use arbol_sdk::{types, Client, Credential};

let arbol = Client::new(Credential::ApiKey(std::env::var("ARBOL_API_KEY")?))?;

let data = arbol
    .raiz()
    .agents()
    .list(&types::RaizAgentsListInput::default())
    .await?;
```

### CLI

```bash
arbol raiz agents list
```

### MCP

```json
{
  "name": "raiz_agents_list",
  "arguments": {}
}
```

## Responses

### 200

Successful operation.

#### Example

```json
{
  "success": true,
  "data": {
    "data": [
      {
        "channelCount": 0,
        "createdAt": "2019-08-24T14:15:22Z",
        "description": "string",
        "firstMessage": "string",
        "id": "agt_01m45h8q2rf3t9w6y7z0b1c2d3",
        "language": "string",
        "modality": "voice",
        "name": "string",
        "ready": true,
        "status": "active",
        "syncErrorCode": "string",
        "synced": true,
        "timeZone": "string",
        "toolCount": 0,
        "updatedAt": "2019-08-24T14:15:22Z",
        "version": 1,
        "channels": [
          {
            "address": "string",
            "channelType": "voice",
            "id": "chn_01m45h8q2rf3t9w6y7z0b1c2d3",
            "lastBusinessAppGreetingAt": "2019-08-24T14:15:22Z",
            "name": "string",
            "status": "pending"
          }
        ],
        "instructions": "string",
        "integrationProcedures": [
          {
            "connectionId": "string",
            "digest": "string",
            "procedure": "string"
          }
        ],
        "integrationTools": [
          {
            "connectionId": "string",
            "digest": "string",
            "effect": "read",
            "tool": "string",
            "toolsVersion": "string"
          }
        ],
        "knowledgeDocumentIds": [
          "kdc_01m45h8q2rf3t9w6y7z0b1c2d3"
        ],
        "procedures": [
          {
            "content": "string",
            "id": "prc_01k8f3w2pqv6xs9mhdr0tz7n3b",
            "name": "string",
            "status": "active",
            "steps": [
              {}
            ],
            "trigger": "string",
            "type": "free_form"
          }
        ],
        "settings": {
          "humanEscalation": {
            "instructions": "string"
          },
          "recoveryManager": {
            "enabled": true,
            "instructions": "string",
            "advisorAgentId": "agt_01m45h8q2rf3t9w6y7z0b1c2d3",
            "model": "arbolito/agile",
            "maxAttempts": 1,
            "timeoutMs": 100,
            "maxInputTokens": 4096,
            "maxOutputTokens": 128,
            "maxCostUsd": 1,
            "inputUsdPerMillion": 1,
            "outputUsdPerMillion": 1
          },
          "automaticKnowledge": true,
          "attachmentReader": "vision",
          "budgetExhaustedMessage": "string",
          "closingMessage": "string",
          "evalGate": true,
          "followUpAfterMinutes": 1,
          "followUpMessage": "string",
          "greeting": {
            "always": true,
            "message": "string",
            "type": "message"
          },
          "handoffMessage": "string",
          "humanReplyTimeoutMinutes": 1,
          "investigationsEnabled": true,
          "model": "arbolito/agile",
          "modelTrial": {
            "model": "arbolito/agile",
            "percent": 1,
            "reasoningEffort": "none"
          },
          "monthlyTokenBudget": 10000,
          "pauseOnHumanReply": true,
          "policy": {
            "maxOutputTokens": 256,
            "maxSteps": 2,
            "maxWritesPerStep": 0,
            "repeatedReadLimit": 1,
            "tools": {}
          },
          "pollPendingOperations": true,
          "reasoningEffort": "none",
          "replyChoices": true,
          "sessionCloseAfterMinutes": 5,
          "temperature": 0,
          "toolDiscovery": true,
          "voice": {
            "keywords": [
              "string"
            ],
            "maxDurationSeconds": 30,
            "recordCalls": true,
            "redactKeypadInput": false,
            "reasoningEffort": "none",
            "responseDelayMessages": true,
            "silenceEndCallTimeoutSeconds": 10,
            "similarityBoost": 0,
            "speed": 0.7,
            "stability": 0,
            "toolCallSound": "typing",
            "turnTimeoutSeconds": 1,
            "backupModels": [
              "arbolito/agile"
            ],
            "llm": "arbolito/agile",
            "voiceId": "string"
          }
        }
      }
    ],
    "object": "list",
    "pageInfo": {
      "hasNextPage": true,
      "hasPreviousPage": true,
      "nextCursor": "string",
      "previousCursor": "string"
    }
  },
  "error": null,
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`raiz.agents.list.response.200.success`; boolean, required)
- `data` (`raiz.agents.list.response.200.data`; object, required)
  - `data` (`raiz.agents.list.response.200.data.data`; array<object>, required) — Items admitted by this resource contract within the verified organization.
    - `channelCount` (`raiz.agents.list.response.200.data.data.channelCount`; integer, required)
      - min 0
    - `createdAt` (`raiz.agents.list.response.200.data.data.createdAt`; string, required) — An instant in RFC 3339 format, in UTC.
      - format `date-time`
    - `description` (`raiz.agents.list.response.200.data.data.description`; string | null, required)
    - `firstMessage` (`raiz.agents.list.response.200.data.data.firstMessage`; string | null, required)
    - `id` (`raiz.agents.list.response.200.data.data.id`; string, required) — Agent id.
      - pattern `^agt_(?:[0-7][0-9a-hjkmnp-tv-z]{25}|(?:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|[a-f0-9]{32}))$`
    - `language` (`raiz.agents.list.response.200.data.data.language`; string, required) — BCP 47 language tag.
    - `modality` (`raiz.agents.list.response.200.data.data.modality`; string, required) — `voice`: phone calls. `text`: WhatsApp and web chat.
      - one of `"voice"`, `"text"`
    - `name` (`raiz.agents.list.response.200.data.data.name`; string, required)
    - `ready` (`raiz.agents.list.response.200.data.data.ready`; boolean, required) — Whether the Agent can hold conversations: active, with instructions and, for voice, published for calls.
    - `status` (`raiz.agents.list.response.200.data.data.status`; string, required) — A paused Agent answers nothing and places no calls.
      - one of `"active"`, `"paused"`
    - `syncErrorCode` (`raiz.agents.list.response.200.data.data.syncErrorCode`; string | null, required) — Why calls still use an older version: the error code of the last publication attempt. Null while synced or while a publication is pending. A fix to the Agent (a valid `voiceId`, instructions) publishes again.
    - `synced` (`raiz.agents.list.response.200.data.data.synced`; boolean, required) — Whether calls already use the current version (it is published on the Agent's voice channels). Always true for text Agents.
    - `timeZone` (`raiz.agents.list.response.200.data.data.timeZone`; string | null, required) — IANA time zone.
    - `toolCount` (`raiz.agents.list.response.200.data.data.toolCount`; integer, required)
      - min 0
    - `updatedAt` (`raiz.agents.list.response.200.data.data.updatedAt`; string, required) — An instant in RFC 3339 format, in UTC.
      - format `date-time`
    - `version` (`raiz.agents.list.response.200.data.data.version`; integer, required)
      - min 1
    - `channels` (`raiz.agents.list.response.200.data.data.channels`; array<object>, required) — Channels assigned to the Agent. Assign one with `updateChannel`.
      - `address` (`raiz.agents.list.response.200.data.data.channels.address`; string | null, required) — Phone number or web address of the channel.
      - `channelType` (`raiz.agents.list.response.200.data.data.channels.channelType`; string, required)
        - one of `"voice"`, `"whatsapp"`, `"web"`
      - `id` (`raiz.agents.list.response.200.data.data.channels.id`; string, required) — Channel id.
        - pattern `^(?:chn_(?:[0-7][0-9a-hjkmnp-tv-z]{25}|(?:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|[a-f0-9]{32}))|(?:agc)_(?:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|[a-f0-9]{32}))$`
      - `name` (`raiz.agents.list.response.200.data.data.channels.name`; string | null, required)
      - `status` (`raiz.agents.list.response.200.data.data.channels.status`; string, required)
        - one of `"pending"`, `"active"`, `"degraded"`
      - `lastBusinessAppGreetingAt` (`raiz.agents.list.response.200.data.data.channels.lastBusinessAppGreetingAt`; string | null, optional) — WhatsApp only. Last observed message from the phone app matching the configured greeting. Null when none has been recognized. The phone's current greeting setting is unknown.
        - format `date-time`
    - `instructions` (`raiz.agents.list.response.200.data.data.instructions`; string | null, required)
    - `integrationProcedures` (`raiz.agents.list.response.200.data.data.integrationProcedures`; array<object>, required) — The procedures the Agent takes from its connections, each saved with the text its connection published then. They run as free-form procedures beside `procedures`.
      - `connectionId` (`raiz.agents.list.response.200.data.data.integrationProcedures.connectionId`; string, required) — A connection's id in Account (`con_…`).
        - minLength 1; maxLength 255; pattern `^[A-Za-z0-9_-]+$`
      - `digest` (`raiz.agents.list.response.200.data.data.integrationProcedures.digest`; string, required) — The digest of the procedure the Agent was saved with. When the connection's procedure (`listConnections`) has another digest, it changed: the Agent keeps this text until it is saved again.
        - minLength 1; maxLength 64
      - `procedure` (`raiz.agents.list.response.200.data.data.integrationProcedures.procedure`; string, required) — The procedure's name, as its connection lists it.
        - minLength 1; maxLength 64; pattern `^[a-z0-9]+(-[a-z0-9]+)*$`
    - `integrationTools` (`raiz.agents.list.response.200.data.data.integrationTools`; array<object>, required) — The integrations' tools the Agent may call, each on the connection it runs on, with the definition it was saved with.
      - `connectionId` (`raiz.agents.list.response.200.data.data.integrationTools.connectionId`; string, required) — A connection's id in Account (`con_…`).
        - minLength 1; maxLength 255; pattern `^[A-Za-z0-9_-]+$`
      - `digest` (`raiz.agents.list.response.200.data.data.integrationTools.digest`; string, required) — The digest of the definition the Agent was saved with. When the connection's tool (`listConnections`) has another digest, the tool changed: the Agent keeps this definition until it is saved again.
        - minLength 1; maxLength 64
      - `effect` (`raiz.agents.list.response.200.data.data.integrationTools.effect`; string, required) — `read` only looks; `write` may change data.
        - one of `"read"`, `"write"`
      - `tool` (`raiz.agents.list.response.200.data.data.integrationTools.tool`; string, required) — The tool's name, as its connection lists it.
        - minLength 1; maxLength 128; pattern `^[A-Za-z0-9_.-]+$`
      - `toolsVersion` (`raiz.agents.list.response.200.data.data.integrationTools.toolsVersion`; string, required) — The connection's tool-list version when the Agent was saved.
    - `knowledgeDocumentIds` (`raiz.agents.list.response.200.data.data.knowledgeDocumentIds`; array<string>, required) — The Knowledge documents the Agent consults.
      - pattern `^(?:kdc_(?:[0-7][0-9a-hjkmnp-tv-z]{25}|(?:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|[a-f0-9]{32}))|(?:con)_(?:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|[a-f0-9]{32}))$`
    - `procedures` (`raiz.agents.list.response.200.data.data.procedures`; array<object>, required) — The Agent's procedures. The model reads only the triggers until a conversation matches one, then loads that procedure. In an update, the complete new set.
      - `content` (`raiz.agents.list.response.200.data.data.procedures.content`; string, required) — Free-form procedures: what to do, in Markdown, with inline references such as `[tool id="buscar_citas"]`, `[kb id="kdc_…"]`, `[procedure id="prc_…"]`, `[system_tool id="end_conversation"]` and `{{contact_name}}`. Empty for structured procedures.
        - maxLength 50000
      - `id` (`raiz.agents.list.response.200.data.data.procedures.id`; string, required) — The procedure's id (`prc_…`), stable for the Agent's life.
        - pattern `^prc_[0-7][0-9a-hjkmnp-tv-z]{25}$`
      - `name` (`raiz.agents.list.response.200.data.data.procedures.name`; string, required) — A short label for people. The model never reads it.
        - minLength 1; maxLength 120
      - `status` (`raiz.agents.list.response.200.data.data.procedures.status`; string, required) — A paused procedure runs on no channel.
        - one of `"active"`, `"paused"`
      - `steps` (`raiz.agents.list.response.200.data.data.procedures.steps`; array<any of>, required) — Structured procedures: the steps, in order. Empty for free-form procedures.
        - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`
      - `trigger` (`raiz.agents.list.response.200.data.data.procedures.trigger`; string, required) — When it applies, from the contact's side: When the contact asks to book or move an appointment. Empty makes a sub-procedure, which only runs when another procedure references it.
        - maxLength 1000
      - `type` (`raiz.agents.list.response.200.data.data.procedures.type`; string, required) — `free_form`: instructions the Agent adapts. `structured`: steps that run the same way every time. Fixed once created.
        - one of `"free_form"`, `"structured"`
    - `settings` (`raiz.agents.list.response.200.data.data.settings`; object, required)
      - `humanEscalation` (`raiz.agents.list.response.200.data.data.settings.humanEscalation`; object | null, required) — Per-Agent human escalation policy. Instructions apply to voice and text. Null keeps the default instructions. A WhatsApp handoff stays with the team until a person explicitly resumes AI; no timeout resumes it.
        - `instructions` (`raiz.agents.list.response.200.data.data.settings.humanEscalation.instructions`; string | null, required) — When this Agent should ask the business's team to intervene, using only its available handoff capabilities. Null keeps the default instructions; an explicit request for a person is always respected.
          - maxLength 4000
      - `recoveryManager` (`raiz.agents.list.response.200.data.data.settings.recoveryManager`; object | null, required) — Optional WhatsApp recovery advisor. Null or enabled=false disables it. A journaled evidence check precedes any paid review. One tool-free model call per turn before autonomous escalation or after terminal provider failure; unresolved terminal recovery hands off. Completed handoffs and conservatively recognized human requests bypass generation. Model selects the existing provider route. Prices must be conservative upper bounds including provider overhead; missing or invalid prices disable recovery. The cost bound covers only the advisor. No tools or automatic provider retries.
        - `enabled` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.enabled`; boolean, required)
        - `model` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.model`; string, required) — `arbolito/agile`: quickest and least expensive, for direct conversations. `arbolito/balanced`: more deliberate answers at moderate cost. `arbolito/advanced`: strong reasoning for complex instructions and many tools, with an adjustable `reasoningEffort`. `arbolito/top`: the most capable, for the hardest cases, with an adjustable `reasoningEffort` up to `xhigh`. Every tier reads images and PDF documents.
          - one of `"arbolito/agile"`, `"arbolito/balanced"`, `"arbolito/advanced"`, `"arbolito/top"`
        - `maxAttempts` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.maxAttempts`; number, required)
        - `timeoutMs` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.timeoutMs`; integer, required)
          - min 100; max 15000
        - `maxInputTokens` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.maxInputTokens`; integer, required)
          - min 4096; max 131072
        - `maxOutputTokens` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.maxOutputTokens`; integer, required)
          - min 128; max 1024
        - `maxCostUsd` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.maxCostUsd`; number, required)
          - max 1
        - `inputUsdPerMillion` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.inputUsdPerMillion`; number, required)
          - max 1000
        - `outputUsdPerMillion` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.outputUsdPerMillion`; number, required)
          - max 1000
        - `instructions` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.instructions`; string | null, optional) — Operator criteria for when the recovery advisor should help or leave the case to a person. They never override consent, tool permissions, unknown-write fences or an explicit human request. Null keeps the default criteria.
          - maxLength 4000
        - `advisorAgentId` (`raiz.agents.list.response.200.data.data.settings.recoveryManager.advisorAgentId`; string | null, optional) — Optional active text Agent in the same organization, other than this Agent, whose instructions and procedures provide specialist guidance. The configured recovery model and cost bounds stay unchanged; no specialist tools or conversation history are accessed.
          - pattern `^agt_(?:[0-7][0-9a-hjkmnp-tv-z]{25}|(?:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|[a-f0-9]{32}))$`
      - `automaticKnowledge` (`raiz.agents.list.response.200.data.data.settings.automaticKnowledge`; boolean | null, required) — Text Agents. Retrieve relevant passages from this Agent's active Knowledge before a substantive contact message, without a model tool call. Null or false: on-demand search only. Does not store contact memories or learn unreviewed answers.
      - `attachmentReader` (`raiz.agents.list.response.200.data.data.settings.attachmentReader`; string | null, required) — Text Agents on WhatsApp. Who reads an image or PDF when the Agent calls `read_attachment`: `vision` (a vision model describes and transcribes it, with a stronger one when the first reads nothing) or `ocr` (text recognition, which also answers the `fields` the Agent asks for, each null when absent or unclear; the vision model reads the file when recognition cannot). With `ocr` the Agent sees files as markers and reads them with `read_attachment`; with `vision`, tiers that read files themselves see the original. Null: `vision`.
        - one of `"vision"`, `"ocr"`, `null`
      - `budgetExhaustedMessage` (`raiz.agents.list.response.200.data.data.settings.budgetExhaustedMessage`; string | null, required) — Text Agents on WhatsApp. What the contact reads when the Agent has used its `monthlyTokenBudget`: the conversation then goes to the team, as an escalation does, and the Agent writes nothing until the budget is raised or the month ends. Null: `handoffMessage`, including an empty notice when disabled.
        - minLength 1; maxLength 1000
      - `closingMessage` (`raiz.agents.list.response.200.data.data.settings.closingMessage`; string | null, required) — Text Agents on WhatsApp. After a reply that completed an action (an integration tool that changes data succeeded), explicitly finished the case with end_conversation and left nothing pending (no question, no offered choices, no handoff), a contact message that only thanks or closes («gracias», «ok», «listo», an emoji) gets this text at once, without the model; the Agent still reads both in its next turn. Write it in the Agent's language and ask nothing in it. Null: the Agent answers such messages itself.
        - minLength 1; maxLength 1000
      - `evalGate` (`raiz.agents.list.response.200.data.data.settings.evalGate`; boolean | null, required) — Text and voice Agents. When true, an `updateAgent` that changes what the model reads (instructions, procedures, connection procedures, `model` or `reasoningEffort`) must send `evalRunId`: a completed `createEvalRun` of this Agent with exactly that content, in which every case passed (EVAL_GATE_UNMET otherwise). Null: no requirement.
      - `followUpAfterMinutes` (`raiz.agents.list.response.200.data.data.settings.followUpAfterMinutes`; integer | null, required) — Text Agents. When the Agent spoke last and asked something, send `followUpMessage` once after this many minutes of silence (WhatsApp only, inside its 24-hour window). Null disables follow-ups.
        - min 1; max 1440
      - `followUpMessage` (`raiz.agents.list.response.200.data.data.settings.followUpMessage`; string | null, required) — Text Agents. The follow-up text. Null uses a short default in the Agent's language.
        - minLength 1; maxLength 1000
      - `greeting` (`raiz.agents.list.response.200.data.data.settings.greeting`; any of, required)
        - any of: `RaizAgentGreeting`, `null`
      - `handoffMessage` (`raiz.agents.list.response.200.data.data.settings.handoffMessage`; string | null, required) — Text Agents on WhatsApp. The notice appended after an escalation or a requested human handoff. Null: the current localized review notice or the case-specific notice supplied under the Agent's instructions. An empty string disables the notice; the handoff and pause still happen. The model does not write this notice.
        - maxLength 1000
      - `humanReplyTimeoutMinutes` (`raiz.agents.list.response.200.data.data.settings.humanReplyTimeoutMinutes`; integer | null, required) — Text Agents on WhatsApp. After a manual takeover, resume automatic replies when the contact's newest message waits this many minutes. An Agent handoff always stays with the team until a person explicitly resumes AI. Null: only a person resumes automatic replies.
        - min 1; max 1440
      - `investigationsEnabled` (`raiz.agents.list.response.200.data.data.settings.investigationsEnabled`; boolean | null, required) — Opt this Agent into internal root-cause investigations of tool failures, human escalations, failed outcomes and negative feedback. Incidents are grouped only with participating Agents in the same organization. Null or false: disabled. Turning this off stops new events and pending dispatch when no participating Agent remains; an already active investigation may finish.
      - `model` (`raiz.agents.list.response.200.data.data.settings.model`; string | null, required) — Text Agents. The tier that writes replies. `arbolito/agile`: quickest and least expensive, for direct conversations. `arbolito/balanced`: more deliberate answers at moderate cost. `arbolito/advanced`: strong reasoning for complex instructions and many tools, with an adjustable `reasoningEffort`. `arbolito/top`: the most capable, for the hardest cases, with an adjustable `reasoningEffort` up to `xhigh`. Every tier reads images and PDF documents. Null: the default, as `arbolito/agile`.
        - one of `"arbolito/agile"`, `"arbolito/balanced"`, `"arbolito/advanced"`, `"arbolito/top"`, `null`
      - `modelTrial` (`raiz.agents.list.response.200.data.data.settings.modelTrial`; any of, required)
        - any of: `RaizAgentModelTrial`, `null`
      - `monthlyTokenBudget` (`raiz.agents.list.response.200.data.data.settings.monthlyTokenBudget`; integer | null, required) — Text Agents. Tokens (input, cached input included, plus output) the Agent may use per calendar month (UTC), on every channel. On WhatsApp, a reply that would start past it does not run: the contact reads `budgetExhaustedMessage` and the team continues; at 80 % the API logs an alert once a month. Null: no limit.
        - min 10000; max 1000000000000
      - `pauseOnHumanReply` (`raiz.agents.list.response.200.data.data.settings.pauseOnHumanReply`; boolean | null, required) — Text Agents on WhatsApp: pause automatic replies when a live WhatsApp Business App message that says something (not a reaction, an edit or a deletion) proves a person took over. Null: disabled. The recipient stays paused until resumed or until that conversation closes; their next conversation starts with the AI.
      - `policy` (`raiz.agents.list.response.200.data.data.settings.policy`; any of, required)
        - any of: `RaizAgentTurnPolicy`, `null`
      - `pollPendingOperations` (`raiz.agents.list.response.200.data.data.settings.pollPendingOperations`; boolean | null, required) — Text Agents on WhatsApp: when a reply ends while an integration answered that its work is still pending (`status: pending` with an `operationId`) and the same connection offers `getOperation`, Raíz checks it again on its own and the Agent answers with the result, without waiting for the contact to write. Null: disabled.
      - `reasoningEffort` (`raiz.agents.list.response.200.data.data.settings.reasoningEffort`; string | null, required) — Text Agents whose tier reasons (`arbolito/advanced`, `arbolito/top`, or an Agent already running a model that reasons): `none` answers fastest, `high` deliberates most, and `xhigh`, on `arbolito/advanced` and `arbolito/top`, deliberates past it. Null: the tier's default. A tier that does not reason refuses it (AGENT_SETTINGS_INVALID).
        - one of `"none"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`, `null`
      - `replyChoices` (`raiz.agents.list.response.200.data.data.settings.replyChoices`; boolean | null, required) — Text Agents. Let the Agent offer tap-to-answer options (WhatsApp buttons and lists, web reply options). Null: allowed.
      - `sessionCloseAfterMinutes` (`raiz.agents.list.response.200.data.data.settings.sessionCloseAfterMinutes`; integer | null, required) — Text Agents. Close a conversation after this many minutes without messages. Null: 1440 on WhatsApp, 30 on web.
        - min 5; max 10080
      - `temperature` (`raiz.agents.list.response.200.data.data.settings.temperature`; number | null, required) — Text Agents. Sampling temperature of replies. Null: 0.2 (steady answers). `arbolito/advanced` and `arbolito/top` set their own sampling and ignore it.
        - min 0; max 1
      - `toolDiscovery` (`raiz.agents.list.response.200.data.data.settings.toolDiscovery`; boolean | null, required) — Retired: changes nothing. WhatsApp replies (the WhatsApp Agent Worker) offer the Agent's tools directly. Accepted so existing clients that send it stay valid.
      - `voice` (`raiz.agents.list.response.200.data.data.settings.voice`; any of, required)
        - any of: `RaizAgentVoiceSettings`, `null`
  - `object` (`raiz.agents.list.response.200.data.object`; string, required) — Discriminator for a resource list response.
  - `pageInfo` (`raiz.agents.list.response.200.data.pageInfo`; object, required) — Opaque navigation cursors for this page’s stable keyset order.
    - `hasNextPage` (`raiz.agents.list.response.200.data.pageInfo.hasNextPage`; boolean, required) — Whether a later page exists in the current ordering.
    - `hasPreviousPage` (`raiz.agents.list.response.200.data.pageInfo.hasPreviousPage`; boolean, required) — Whether an earlier page exists in the current ordering.
    - `nextCursor` (`raiz.agents.list.response.200.data.pageInfo.nextCursor`; string | null, required) — Opaque cursor for the next page, or null when there is none.
    - `previousCursor` (`raiz.agents.list.response.200.data.pageInfo.previousCursor`; string | null, required) — Opaque cursor for the previous page, or null when there is none.
- `error` (`raiz.agents.list.response.200.error`; null, required)
- `metadata` (`raiz.agents.list.response.200.metadata`; object, required)
  - `requestId` (`raiz.agents.list.response.200.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 400

- `INVALID_INPUT`: The request does not match the published schema.
- `INVALID_CURSOR`: The cursor is malformed or belongs to a different list.

#### Example

```json
{
  "error": {
    "code": "INVALID_INPUT"
  }
}
```

- `error` (`raiz.agents.list.response.400.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 401

`UNAUTHORIZED`: A valid access token is required.

#### Example

```json
{
  "error": {
    "code": "UNAUTHORIZED"
  }
}
```

- `error` (`raiz.agents.list.response.401.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 403

`FORBIDDEN`: The token does not authorize this operation.

#### Example

```json
{
  "error": {
    "code": "FORBIDDEN"
  }
}
```

- `error` (`raiz.agents.list.response.403.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 404

`NOT_FOUND`: The requested operation does not exist.

#### Example

```json
{
  "error": {
    "code": "NOT_FOUND"
  }
}
```

- `error` (`raiz.agents.list.response.404.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 405

`HTTP_METHOD_NOT_ALLOWED`: The HTTP method is not supported for this resource.

#### Example

```json
{
  "error": {
    "code": "HTTP_METHOD_NOT_ALLOWED"
  }
}
```

- `error` (`raiz.agents.list.response.405.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 413

`REQUEST_TOO_LARGE`: The request exceeds the allowed size.

#### Example

```json
{
  "error": {
    "code": "REQUEST_TOO_LARGE"
  }
}
```

- `error` (`raiz.agents.list.response.413.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 415

`UNSUPPORTED_MEDIA_TYPE`: The request content type is not supported.

#### Example

```json
{
  "error": {
    "code": "UNSUPPORTED_MEDIA_TYPE"
  }
}
```

- `error` (`raiz.agents.list.response.415.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 429

`RATE_LIMITED`: The request rate limit was exceeded. Try again later.

#### Example

```json
{
  "error": {
    "code": "RATE_LIMITED"
  }
}
```

- `error` (`raiz.agents.list.response.429.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 500

`INTERNAL_ERROR`: The service could not complete the operation.

#### Example

```json
{
  "error": {
    "code": "INTERNAL_ERROR"
  }
}
```

- `error` (`raiz.agents.list.response.500.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 502

`OUTCOME_UNKNOWN`: The operation may have been applied; check its result before repeating it.

#### Example

```json
{
  "error": {
    "code": "OUTCOME_UNKNOWN"
  }
}
```

- `error` (`raiz.agents.list.response.502.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 503

- `UPSTREAM_UNAVAILABLE`: The upstream service could not complete the request.
- `VOICE_UNAVAILABLE`: Calls are unavailable right now. Try again in a few minutes.
- `INTEGRATIONS_UNAVAILABLE`: The organization's integrations cannot be read right now. Try again shortly.

#### Example

```json
{
  "error": {
    "code": "UPSTREAM_UNAVAILABLE"
  }
}
```

- `error` (`raiz.agents.list.response.503.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 504

`UPSTREAM_TIMEOUT`: The upstream service did not respond before its deadline.

#### Example

```json
{
  "error": {
    "code": "UPSTREAM_TIMEOUT"
  }
}
```

- `error` (`raiz.agents.list.response.504.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`


Source: https://docs.getarbol.com/api/raiz/agents/list/index.md
