Retrieve an agent
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.
- Plan: Available on every plan.
Authentication
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.
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.
Path parameters
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
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.

