---
title: "Get an Agent"
description: "Read one Agent's complete setup: instructions, first message, language, time zone, settings, integration tools (each with its connection and effect), Knowledge document ids, procedures (trigger plus free-form instructions or structured steps) and connection procedures, and channels. `ready` says whether it can hold conversations; for a voice Agent, `synced` says whether its phone line already runs this version, and `syncErrorCode` why not. Read it before `update_agent` and send its `version` as `expectedVersion`.\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 get` · **MCP tool:** `raiz_agents_get`"
---

> 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/{agentId}`

Read one Agent's complete setup: instructions, first message, language, time zone, settings, integration tools (each with its connection and effect), Knowledge document ids, procedures (trigger plus free-form instructions or structured steps) and connection procedures, and channels. `ready` says whether it can hold conversations; for a voice Agent, `synced` says whether its phone line already runs this version, and `syncErrorCode` why not. Read it before `update_agent` and send its `version` as `expectedVersion`.

- **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 get` · **MCP tool:** `raiz_agents_get`

## 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`

## Path parameters

- `agentId` (`raiz.agents.get.path.agentId`; 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}))$`

## Code samples

### cURL

```bash
curl https://api.getarbol.com/v1/raiz/agents/agt_01m45h8q2rf3t9w6y7z0b1c2d3 \
  --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.get({
  agentId: "agt_01m45h8q2rf3t9w6y7z0b1c2d3",
});
```

### 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()
    .get(&types::RaizAgentsGetInput {
        agent_id: "agt_01m45h8q2rf3t9w6y7z0b1c2d3".into(),
    })
    .await?;
```

### CLI

```bash
arbol raiz agents get agt_01m45h8q2rf3t9w6y7z0b1c2d3
```

### MCP

```json
{
  "name": "raiz_agents_get",
  "arguments": {
    "agentId": "agt_01m45h8q2rf3t9w6y7z0b1c2d3"
  }
}
```

## Responses

### 200

Successful operation.

#### Example

```json
{
  "success": true,
  "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": [
          {
            "instruction": "string",
            "type": "ask"
          }
        ],
        "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"
      }
    }
  },
  "error": null,
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`raiz.agents.get.response.200.success`; boolean, required)
- `data` (`raiz.agents.get.response.200.data`; object, required)
  - `channelCount` (`raiz.agents.get.response.200.data.channelCount`; integer, required)
    - min 0
  - `createdAt` (`raiz.agents.get.response.200.data.createdAt`; string, required) — An instant in RFC 3339 format, in UTC.
    - format `date-time`
  - `description` (`raiz.agents.get.response.200.data.description`; string | null, required)
  - `firstMessage` (`raiz.agents.get.response.200.data.firstMessage`; string | null, required)
  - `id` (`raiz.agents.get.response.200.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.get.response.200.data.language`; string, required) — BCP 47 language tag.
  - `modality` (`raiz.agents.get.response.200.data.modality`; string, required) — `voice`: phone calls. `text`: WhatsApp and web chat.
    - one of `"voice"`, `"text"`
  - `name` (`raiz.agents.get.response.200.data.name`; string, required)
  - `ready` (`raiz.agents.get.response.200.data.ready`; boolean, required) — Whether the Agent can hold conversations: active, with instructions and, for voice, published for calls.
  - `status` (`raiz.agents.get.response.200.data.status`; string, required) — A paused Agent answers nothing and places no calls.
    - one of `"active"`, `"paused"`
  - `syncErrorCode` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.data.timeZone`; string | null, required) — IANA time zone.
  - `toolCount` (`raiz.agents.get.response.200.data.toolCount`; integer, required)
    - min 0
  - `updatedAt` (`raiz.agents.get.response.200.data.updatedAt`; string, required) — An instant in RFC 3339 format, in UTC.
    - format `date-time`
  - `version` (`raiz.agents.get.response.200.data.version`; integer, required)
    - min 1
  - `channels` (`raiz.agents.get.response.200.data.channels`; array<object>, required) — Channels assigned to the Agent. Assign one with `updateChannel`.
    - `address` (`raiz.agents.get.response.200.data.channels.address`; string | null, required) — Phone number or web address of the channel.
    - `channelType` (`raiz.agents.get.response.200.data.channels.channelType`; string, required)
      - one of `"voice"`, `"whatsapp"`, `"web"`
    - `id` (`raiz.agents.get.response.200.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.get.response.200.data.channels.name`; string | null, required)
    - `status` (`raiz.agents.get.response.200.data.channels.status`; string, required)
      - one of `"pending"`, `"active"`, `"degraded"`
    - `lastBusinessAppGreetingAt` (`raiz.agents.get.response.200.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.get.response.200.data.instructions`; string | null, required)
  - `integrationProcedures` (`raiz.agents.get.response.200.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.get.response.200.data.integrationProcedures.connectionId`; string, required) — A connection's id in Account (`con_…`).
      - minLength 1; maxLength 255; pattern `^[A-Za-z0-9_-]+$`
    - `digest` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.data.integrationTools.connectionId`; string, required) — A connection's id in Account (`con_…`).
      - minLength 1; maxLength 255; pattern `^[A-Za-z0-9_-]+$`
    - `digest` (`raiz.agents.get.response.200.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.get.response.200.data.integrationTools.effect`; string, required) — `read` only looks; `write` may change data.
      - one of `"read"`, `"write"`
    - `tool` (`raiz.agents.get.response.200.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.get.response.200.data.integrationTools.toolsVersion`; string, required) — The connection's tool-list version when the Agent was saved.
  - `knowledgeDocumentIds` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.data.procedures.name`; string, required) — A short label for people. The model never reads it.
      - minLength 1; maxLength 120
    - `status` (`raiz.agents.get.response.200.data.procedures.status`; string, required) — A paused procedure runs on no channel.
      - one of `"active"`, `"paused"`
    - `steps` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.data.settings`; object, required)
    - `humanEscalation` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.data.settings.recoveryManager.enabled`; boolean, required)
      - `model` (`raiz.agents.get.response.200.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.get.response.200.data.settings.recoveryManager.maxAttempts`; number, required)
      - `timeoutMs` (`raiz.agents.get.response.200.data.settings.recoveryManager.timeoutMs`; integer, required)
        - min 100; max 15000
      - `maxInputTokens` (`raiz.agents.get.response.200.data.settings.recoveryManager.maxInputTokens`; integer, required)
        - min 4096; max 131072
      - `maxOutputTokens` (`raiz.agents.get.response.200.data.settings.recoveryManager.maxOutputTokens`; integer, required)
        - min 128; max 1024
      - `maxCostUsd` (`raiz.agents.get.response.200.data.settings.recoveryManager.maxCostUsd`; number, required)
        - max 1
      - `inputUsdPerMillion` (`raiz.agents.get.response.200.data.settings.recoveryManager.inputUsdPerMillion`; number, required)
        - max 1000
      - `outputUsdPerMillion` (`raiz.agents.get.response.200.data.settings.recoveryManager.outputUsdPerMillion`; number, required)
        - max 1000
      - `instructions` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.data.settings.greeting`; any of, required)
      - any of: `RaizAgentGreeting`, `null`
    - `handoffMessage` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.data.settings.modelTrial`; any of, required)
      - any of: `RaizAgentModelTrial`, `null`
    - `monthlyTokenBudget` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.data.settings.policy`; any of, required)
      - any of: `RaizAgentTurnPolicy`, `null`
    - `pollPendingOperations` (`raiz.agents.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.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.get.response.200.data.settings.voice`; any of, required)
      - any of: `RaizAgentVoiceSettings`, `null`
- `error` (`raiz.agents.get.response.200.error`; null, required)
- `metadata` (`raiz.agents.get.response.200.metadata`; object, required)
  - `requestId` (`raiz.agents.get.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.

#### Example

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

- `error` (`raiz.agents.get.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.get.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.get.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.
- `RESOURCE_NOT_FOUND`: The requested resource does not exist in this organization.

#### Example

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

- `error` (`raiz.agents.get.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.get.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.get.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.get.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.get.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.get.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.get.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.get.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.get.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/get/index.md
