curl --request GET \
--url https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "3f0c6a52-8d7e-4b8a-9a43-0f2b5c1e9d11",
"name": "Billing assistant",
"project_id": "7b1d2e44-51c0-4f3a-8e5b-2a9c0d6f1e33",
"created_at": 1760000000000,
"updated_at": 1760086400000,
"agent_type": "chained",
"agent_engine": "livekit",
"preferred_language": "English (US)",
"allow_language_switch": false,
"greeting_message": "Hi, thanks for calling Acme billing. How can I help?",
"goodbye_message": "Thanks for calling. Goodbye!",
"agent_model_config": {
"asr_provider": "deepgram",
"asr_model": "nova-3",
"llm_provider": "openai",
"llm_model": "gpt-6-luna",
"tts_provider": "elevenlabs"
},
"max_call_duration_sec": 900,
"summary_enabled": true,
"livekit_region": null,
"builtin_tools": [
"lk_endCall"
],
"demo": null
}{
"error": "Invalid or revoked token"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Agent not found"
}Get an agent
Returns the agent’s current configuration. When the agent has an unpublished draft, this is the draft (what the next publish will make live); otherwise it is the published version. Use the versions endpoints to read a specific version.
curl --request GET \
--url https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "3f0c6a52-8d7e-4b8a-9a43-0f2b5c1e9d11",
"name": "Billing assistant",
"project_id": "7b1d2e44-51c0-4f3a-8e5b-2a9c0d6f1e33",
"created_at": 1760000000000,
"updated_at": 1760086400000,
"agent_type": "chained",
"agent_engine": "livekit",
"preferred_language": "English (US)",
"allow_language_switch": false,
"greeting_message": "Hi, thanks for calling Acme billing. How can I help?",
"goodbye_message": "Thanks for calling. Goodbye!",
"agent_model_config": {
"asr_provider": "deepgram",
"asr_model": "nova-3",
"llm_provider": "openai",
"llm_model": "gpt-6-luna",
"tts_provider": "elevenlabs"
},
"max_call_duration_sec": 900,
"summary_enabled": true,
"livekit_region": null,
"builtin_tools": [
"lk_endCall"
],
"demo": null
}{
"error": "Invalid or revoked token"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Agent not found"
}Authorizations
Your organization API key (it starts with anek_org_). The same key works on the Voice API and the Support API. See Authentication.
Response
The agent.
An agent and its configuration. Fields not listed here may also be present. See GET /v1/agents/config-schema for the full format.
Creation time, epoch milliseconds.
Last edit or publish, epoch milliseconds.
Always livekit for current agents.
The live version's id. Present on list items.
The live version's number. Present on list items.
An unpublished draft exists. Present on list items.
The draft exists only because a shared tool, dictionary or hold-phrase set used by this agent was edited elsewhere, not because the agent itself was edited. Present on list items.
The language models the agent runs on (live version, else the draft), with fallbacks. Present on list items.
Show child attributes
Show child attributes
chained (default): speech recognition, a language model and a voice in sequence. realtime: a speech-to-speech model. assist: a Voice Assist agent, which listens to a call handled by a person and suggests answers to them; it never speaks and needs the Voice Assist product. The type cannot change between assist and a voice type after creation.
The conversation language, as a label from GET .../agents/chained-options (for example "English (US)", "Arabic (Najdi)"). It decides which speech providers and voices are available. For a bilingual agent it names the primary language.
Let the agent switch language when the caller does.
What the agent says when the call connects.
What the agent says before it hangs up. Empty means "Goodbye."
500What the agent says when it hangs up because the caller went silent. Empty means goodbye_message.
Delivery notes for the voice: tone, pace, accent.
4000Vocabulary and register guidance for the agent's dialect, added to its instructions.
The organization dialect-notes template the notes follow while unedited; null means the notes are the agent's own text.
Organization prompt templates appended to the instructions, in order.
The agent's instructions (rich-text document).
Extra instructions on when to use the attached tools.
Voice activity detection tuning. See GET /v1/agents/config-schema for the full format.
Check in with the caller after a long silence.
Speech recognition, language model and voice settings (asr_*, llm_*, tts_* keys and turn-taking settings). Replaced as a whole on update. Omitted on create: the platform defaults. See GET /v1/agents/config-schema for the full format. Available providers, models and voices: GET /v1/projects/{projectId}/agents/chained-options.
Voice activity detection tuning while the greeting plays.
Whether the caller can interrupt the greeting.
Filter background noise from the caller's audio.
Give the agent a digest of the caller's recent support tickets at the start of the call.
How far back (days, 1–365) to look for the caller's tickets; 0 uses the caller's name and attributes only.
At most this many recent tickets (1–10).
Write a summary of each call when it ends.
In-call warnings raised to supervisors while a call is in progress. See GET /v1/agents/config-schema for the full format.
Live caller-sentiment tracking. See GET /v1/agents/config-schema for the full format.
Background ambience and typing sounds while the agent thinks. See GET /v1/agents/config-schema for the full format.
Show child attributes
Show child attributes
Tools run when the call starts, before the greeting. See GET /v1/agents/config-schema for the full format.
Show child attributes
Show child attributes
Language-switching policy and custom instruction texts. null means platform defaults.
How the agent speaks numbers, dates, amounts, links and acronyms. {"enabled": true} uses the defaults; null turns it off.
On outbound calls, navigate phone menus with keypad tones. Requires amd_enabled.
On outbound calls, detect an answering machine and end the call without the script.
Pin calls to a media region: me, eu or us. null picks the region nearest the caller.
Hard limit on a call's length, in seconds (30–3600, default 3600).
End the call once the conversation model has used this many tokens (1,000–5,000,000). null means no limit.
Structured tasks (workflows) the agent can run.
Show child attributes
Show child attributes
Built-in tools to enable, for example lk_endCall (hang up).
What to do when the caller goes silent: max_nudges (0–10), timeout_s (0.5–60) and the nudge note.
A second conversation language and the speech settings for it. null means a single-language agent.
The demo page settings, without the password. null when off.
Google Sheet ids shared with every code tool of the agent, by argument name (for example BOOKINGS_SHEET_ID). Send {} to clear.
Show child attributes
Show child attributes
The call-context fields (caller number, custom fields passed when a call starts) the instructions may reference. null allows any.
Fields to extract from the conversation when the call ends, by name, each with type, description, required, enum_values. null turns extraction off.
Rules the agent may apply at any point in the call (global_rules).
Voice Assist settings. Only for agent_type: assist; ignored for other types.
Show child attributes
Show child attributes