Retrieve an agent

View as Markdown
Returns one agent of the workspace with every stored column (except the provider's internal voice agent id) plus the fields the API derives (`channels`, `objective`, `analysis`, `safety`, `privacy`, `mcpEnabled`, `toolkitAccessEnforced` and the counters). This is the only endpoint that returns `workflow`, `high_risk`, pause details and `action_limits`. **Consistency.** The agent is cached for up to 120 seconds. `PATCH` and `DELETE` through this API clear it immediately; background changes (provisioning finishing, a tool-surface sync, a pause) can take up to 120 seconds to appear. **Access** - **Required scope:** `read`. Any workspace role can call it. - **Rate limit:** General API — 120 (Starter), 200 (Growth), 300 (Business) or 600 (Enterprise) requests/min per workspace. See [Rate limits](/rate-limits). - **Plan:** Available on every plan.

Authentication

AuthorizationBearer
Workspace API key: `jl_` followed by 64 lowercase hex characters, created by the workspace owner in the dashboard (**Settings → API Keys**) and sent as `Authorization: Bearer jl_...`. The plaintext is shown once, at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys. | Scope | GET / HEAD | POST / PUT / PATCH / DELETE | Admin-only routes | | --- | --- | --- | --- | | `read` | Yes | No | No | | `write` | Yes | Yes | No | | `full` | Yes | Yes | Yes | Operations restricted to admins or owners reject keys without the `full` scope with `403`, and say so in their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret — that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds. See [Authentication](/authentication).

Path parameters

agentIdstringRequiredformat: "uuid"

UUID of the agent (id from GET /api/agents). An id from another workspace answers 404, like an unknown one; a value that is not a UUID answers 400.

Response

The agent.
dataobject

An agent as returned by GET /api/agents, GET /api/agents/{agentId} and POST /api/agents. Stored columns are snake_case (see AgentRowBase); the fields the API adds on top of them (channels, objective, analysis, safety, privacy, mcpEnabled, toolkitAccessEnforced, total_calls, conversion_rate, calls_today, avg_sentiment) are listed below, and the raw JSON columns they come from (supported_channels, analysis_config, safety_config, privacy_config) are not returned. analysis, safety and privacy are omitted when nothing is stored. GET /api/agents returns a projection (see that operation). The provider’s internal voice agent id is never returned.

A newly created agent is provisioned with the voice provider in the background for about 30-45 seconds; operations that need it answer 409 AGENT_PROVISIONING meanwhile.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error