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.
Your organization API key (it starts with anek_org_). The same key works on the Voice API and the Support API. See Authentication.
Path Parameters
projectId
string
required
Project id
id
string
required
Agent id
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.
id
string
required
name
string
required
project_id
string
required
created_at
integer<int64>
required
Creation time, epoch milliseconds.
updated_at
integer<int64> | null
Last edit or publish, epoch milliseconds.
agent_engine
string
Always livekit for current agents.
published_version_id
string | null
The live version's id. Present on list items.
published_version_number
integer | null
The live version's number. Present on list items.
has_draft
boolean
An unpublished draft exists. Present on list items.
draft_catalog_sync_only
boolean
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.
llm_refs
object[]
The language models the agent runs on (live version, else the draft), with fallbacks. Present on list items.
Show child attributes
card
object
What the agent's card shows of its live version, else its draft. Present on list items.
Show child attributes
agent_type
string
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.
preferred_language
string | null
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.
allow_language_switch
boolean
Let the agent switch language when the caller does.
greeting_message
string
What the agent says when the call connects.
goodbye_message
string | null
What the agent says before it hangs up. Empty means "Goodbye."
Maximum string length: 500
silence_goodbye_message
string | null
What the agent says when it hangs up because the caller went silent. Empty means goodbye_message.
end_call_description
string | null
Replaces the built-in description of the end_call tool (when the agent should hang up). Empty means the built-in text.
Maximum string length: 2000
tts_director_prompt
string | null
Delivery notes for the voice: tone, pace, accent.
Maximum string length: 4000
dialect_notes
string | null
Vocabulary and register guidance for the agent's dialect, added to its instructions.
dialect_notes_ref
string | null
The organization dialect-notes template the notes follow while unedited (or, when dialect_notes_customized is true, were edited from); null means the notes are the agent's own text. On a bilingual agent it names the main language (Arabic when the pair has it, else the first language).
dialect_notes_customized
boolean | null
true when dialect_notes is the author's edit of the dialect_notes_ref template: calls use the author's text and the ref records its origin. Stored only as true together with a ref; false and null are stored as null. A write that carries dialect_notes or dialect_notes_ref without it means "not edited". The second language of a bilingual agent carries the same key in its multi_language.languages[] entry.
prompt_template_selections
object[]
Organization prompt templates appended to the instructions, in order.
dynamic_prompt
boolean
hijri_date
boolean | null
Adds the Umm al-Qura Hijri date to the caller's local time the agent gets at call start ("Caller's local time", system__time_local). null, the default, follows the agent's languages: on when Arabic is the only language or one of two.
task_prompt_json
object | null
The agent's instructions (rich-text document).
language_controls_enabled
boolean
tools_instructions
object | null
Extra instructions on when to use the attached tools.
vad_config
object | null
Voice activity detection tuning. See GET /v1/agents/config-schema for the full format.
enable_engagement_checks
boolean
Check in with the caller after a long silence.
engagement_check_countdown_ms
integer | null
max_engagement_checks
integer | null
agent_model_config
object | null
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. A Voice Assist agent keeps its speech recognition, its suggestion model and, of the voice keys, only tts_provider, tts_model, tts_dialect and tts_voice: the voice that speaks its hold phrases (assist_config.hold_audio). When any of them is set, tts_provider and tts_model are required and the voice must be one offered for the agent's primary language; with none set, the language's default voice speaks.
Show child attributes
sidekick_reminders
any[] | null
post_tool_reminder
string | null
greeting_vad_config
object | null
Voice activity detection tuning while the greeting plays.
greeting_interruptible
boolean
Whether the caller can interrupt the greeting.
noise_reduction_enabled
boolean
Filter background noise from the caller's audio.
memory
boolean
Give the agent a digest of the caller's recent support tickets at the start of the call.
memory_days
integer | null
How far back (days, 1–365) to look for the caller's tickets; 0 uses the caller's name and attributes only.
memory_max_tickets
integer | null
At most this many recent tickets (1–10).
summary_enabled
boolean
Write a summary of each call when it ends.
realtime_warnings
object | null
In-call warnings raised to supervisors while a call is in progress. See GET /v1/agents/config-schema for the full format.
caller_sentiment
object | null
Live caller-sentiment tracking. See GET /v1/agents/config-schema for the full format.
background_audio
object | null
Background ambience and typing sounds while the agent thinks. See GET /v1/agents/config-schema for the full format.
Show child attributes
start_tools
object | null
Tools run when the call starts, before the greeting. See GET /v1/agents/config-schema for the full format.
Show child attributes
language_switching
object | null
Language-switching policy and custom instruction texts. null means platform defaults.
speech_normalization
object | null
How the agent speaks numbers, dates, amounts, links and acronyms. {"enabled": true} uses the defaults; null turns it off.
ivr_navigation_enabled
boolean
On outbound calls, navigate phone menus with keypad tones. Requires amd_enabled.
amd_enabled
boolean
On outbound calls, detect an answering machine and end the call without the script.
livekit_region
string | null
Pin calls to a media region: me, eu or us. null picks the region nearest the caller.
max_call_duration_sec
integer | null
Hard limit on a call's length, in seconds (30–3600, default 3600).
max_llm_tokens_per_call
integer | null
End the call once the conversation model has used this many tokens (1,000–5,000,000). null means no limit.
task_groups
object[] | null
Structured tasks (workflows) the agent can run.
Show child attributes
builtin_tools
string[]
Built-in tools to enable, for example lk_endCall (hang up).
silence_recovery_config
object | null
What to do when the caller goes silent: max_nudges (0–10), timeout_s (0.5–60) and the nudge note.
multi_language
object | null
A second conversation language and the speech settings for it. null means a single-language agent. A bilingual agent is a single-language agent plus a second language: the main language (Arabic when the pair has it, else the first) lives in the agent's own fields — its voice in agent_model_config, greeting, goodbye, dialect notes and director prompt — so its entry carries only label and asr_language; the second language's entry carries its greeting, goodbye, dialect notes (dialect_notes, dialect_notes_ref, dialect_notes_customized) and director prompt, plus its own voice only with per_language_tts. The block itself carries no voice.
demo
object | null
The demo page settings, without the password. null when off.
sheet_refs
object
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
prompt_field_whitelist
object | null
The call-context fields (caller number, custom fields passed when a call starts) the instructions may reference. null allows any.
output_schema
object | null
Fields to extract from the conversation when the call ends, by name, each with type, description, required, enum_values. null turns extraction off.
workflow_config
object | null
Rules the agent may apply at any point in the call (global_rules).
assist_config
object | null
Voice Assist settings. Only for agent_type: assist; ignored for other types.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Clarity Support Docs","description":"Guides, SDKs, and API reference for Clarity's AI support platform: agents, chat, tickets, and the knowledge base.","colors":{"primary":"#0aa68a","light":"#24d8b8","dark":"#0aa68a"},"logo":{"light":"https://mintcdn.com/on-clarity/wANpiWtgQORdXhk3/logo/light.svg?fit=max\u0026auto=format\u0026n=wANpiWtgQORdXhk3\u0026q=85\u0026s=a67bcf8cb635c40e2371c3f86424d4a0","dark":"https://mintcdn.com/on-clarity/wANpiWtgQORdXhk3/logo/dark.svg?fit=max\u0026auto=format\u0026n=wANpiWtgQORdXhk3\u0026q=85\u0026s=577dc99ab10bac95f81c97fcc3e50097","href":"https://support.onclarity.com"},"favicon":"https://mintcdn.com/on-clarity/wANpiWtgQORdXhk3/favicon.png?fit=max\u0026auto=format\u0026n=wANpiWtgQORdXhk3\u0026q=85\u0026s=54c44b3a75b63a1416d10cc8096b97e6","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","python","javascript"]}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"mailto:hello@onclarity.com","label":"Support"}],"primary":{"type":"button","label":"Open Clarity","href":"https://support.onclarity.com"}},"footer":{"socials":{"website":"https://www.onclarity.com","linkedin":"https://www.linkedin.com/company/onclarity"},"links":[{"header":"Product","items":[{"label":"Open Clarity","href":"https://support.onclarity.com"}]},{"header":"Legal","items":[{"label":"Terms of service","href":"https://www.onclarity.com/legal-pages/terms-of-service"},{"label":"Privacy policy","href":"https://www.onclarity.com/legal-pages/privacy-policy"}]}]},"seo":{"indexing":"all"},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Open Clarity","icon":"arrow-up-right-from-square","href":"https://support.onclarity.com"},{"anchor":"Support","icon":"envelope","href":"mailto:hello@onclarity.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"on-clarity","hasAudioNarration":false,"actualSubdomain":"on-clarity","customDomains":["docs.support.onclarity.com"],"gitSource":{"type":"github","owner":"anecdote-ai","repo":"anecdote-monorepo","deployBranch":"develop","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":"","_id":"6adb3a2646b60ddf4f03b4cf"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af83d74f1de041cd0119a62","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"API Reference","count":130},{"language":"default","tag":"Voice API","count":88},{"language":"default","tag":"Support API","count":40},{"language":"default","tag":"Evals","count":32},{"language":"default","tag":"Documentation","count":23},{"language":"default","tag":"Runs","count":16},{"language":"default","tag":"Telephony","count":16},{"language":"default","tag":"Campaigns","count":12},{"language":"default","tag":"Tickets","count":11},{"language":"default","tag":"Agents","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/voice/agents/get-an-agent","slug":"/api-reference/voice/agents/get-an-agent","pageMetadata":{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{id}","title":"Get an agent","icon":"robot","description":"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.","href":"/api-reference/voice/agents/get-an-agent"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"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.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{id}","title":"Get an agent","icon":"robot","description":"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.","href":"/api-reference/voice/agents/get-an-agent"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Agents"],"summary":"Get an agent","description":"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.","operationId":"getAgent","responses":{"200":"d8a73dd9-9a91-48cb-8c89-3b345a210454","401":"c1249d9b-3a49-4ad3-8c52-a62c1a9ab8e6","403":"91d27ceb-3e72-4af8-8a5b-fb8ac787fd27","404":"299c740b-2d05-4211-ae27-4b337dee4669"},"method":"get","type":"path","servers":["c1b5bfaf-ca83-44db-afe9-8385e654f187"],"security":["79258329-9c11-41e2-825c-e7e86baa03e6"],"path":"/v1/projects/{projectId}/agents/{id}","baseUrlOptions":["https://voice-api.onclarity.com"],"title":"Get an agent","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"f673cf39-1e3c-4ee3-b278-543c95b3b29e":{"name":"projectId","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Project id","uniqueKey":"","typeLabel":"string"},"description":"Project id"},"edc82319-1f81-4295-8c4e-b214e991697b":{"name":"id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Agent id","uniqueKey":"","typeLabel":"string"},"description":"Agent id"}},"responses":{"d8a73dd9-9a91-48cb-8c89-3b345a210454":{"description":"The agent.","content":{"application/json":{"schema":{"type":"object","required":["id","name","project_id","created_at"],"description":"An agent and its configuration. Fields not listed here may also be present. See `GET /v1/agents/config-schema` for the full format.","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"project_id":{"type":"string","isRequired":true,"uniqueKey":"project_id","typeLabel":"string"},"created_at":{"type":"integer","format":"int64","description":"Creation time, epoch milliseconds.","isRequired":true,"uniqueKey":"created_at","typeLabel":"integer\u003cint64>"},"updated_at":{"oneOf":[{"type":"integer","format":"int64","description":"Last edit or publish, epoch milliseconds.","uniqueKey":"updated_at.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"Last edit or publish, epoch milliseconds.","uniqueKey":"updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_at","typeLabel":"integer\u003cint64> | null"},"agent_engine":{"type":"string","description":"Always `livekit` for current agents.","uniqueKey":"agent_engine","typeLabel":"string"},"published_version_id":{"oneOf":[{"type":"string","description":"The live version's id. Present on list items.","uniqueKey":"published_version_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The live version's id. Present on list items.","uniqueKey":"published_version_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"published_version_id","typeLabel":"string | null"},"published_version_number":{"oneOf":[{"type":"integer","description":"The live version's number. Present on list items.","uniqueKey":"published_version_number.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The live version's number. Present on list items.","uniqueKey":"published_version_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"published_version_number","typeLabel":"integer | null"},"has_draft":{"type":"boolean","description":"An unpublished draft exists. Present on list items.","uniqueKey":"has_draft","typeLabel":"boolean"},"draft_catalog_sync_only":{"type":"boolean","description":"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.","uniqueKey":"draft_catalog_sync_only","typeLabel":"boolean"},"llm_refs":{"type":"array","description":"The language models the agent runs on (live version, else the draft), with fallbacks. Present on list items.","items":{"properties":{"model":{"type":"string","isRequired":true,"uniqueKey":"llm_refs.items.[INDEX].model","typeLabel":"string"},"provider":{"type":"string","isRequired":true,"uniqueKey":"llm_refs.items.[INDEX].provider","typeLabel":"string"},"tier":{"enum":["primary","fallback_1","fallback_2"],"type":"string","isRequired":true,"uniqueKey":"llm_refs.items.[INDEX].tier","typeLabel":"enum\u003cstring>"},"place":{"enum":["voice","voice_assist"],"type":"string","uniqueKey":"llm_refs.items.[INDEX].place","typeLabel":"enum\u003cstring>"}},"required":["provider","model","tier"],"type":"object","uniqueKey":"llm_refs.items.[INDEX]","typeLabel":"object"},"uniqueKey":"llm_refs","typeLabel":"object[]"},"card":{"type":"object","description":"What the agent's card shows of its live version, else its draft. Present on list items.","required":["language_label","tts_voice","tts_provider","tool_count"],"properties":{"language_label":{"type":"string","description":"The agent's languages, primary first, e.g. \"Arabic · English\".","isRequired":true,"uniqueKey":"card.language_label","typeLabel":"string"},"tts_voice":{"oneOf":[{"type":"string","description":"The voice it speaks with; null for Voice Assist agents.","isRequired":true,"uniqueKey":"card.tts_voice.oneOf.0","typeLabel":"string"},{"type":"null","description":"The voice it speaks with; null for Voice Assist agents.","isRequired":true,"uniqueKey":"card.tts_voice.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.tts_voice","typeLabel":"string | null"},"tts_provider":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"card.tts_provider.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"card.tts_provider.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.tts_provider","typeLabel":"string | null"},"tool_count":{"oneOf":[{"type":"integer","description":"Tools in the live version; null when the agent was never published.","isRequired":true,"uniqueKey":"card.tool_count.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Tools in the live version; null when the agent was never published.","isRequired":true,"uniqueKey":"card.tool_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.tool_count","typeLabel":"integer | null"}},"uniqueKey":"card","typeLabel":"object"},"agent_type":{"type":"string","description":"`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.","uniqueKey":"agent_type","typeLabel":"string"},"preferred_language":{"oneOf":[{"type":"string","description":"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.","uniqueKey":"preferred_language.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.","uniqueKey":"preferred_language.oneOf.1","typeLabel":"null"}],"uniqueKey":"preferred_language","typeLabel":"string | null"},"allow_language_switch":{"type":"boolean","description":"Let the agent switch language when the caller does.","uniqueKey":"allow_language_switch","typeLabel":"boolean"},"greeting_message":{"type":"string","description":"What the agent says when the call connects.","uniqueKey":"greeting_message","typeLabel":"string"},"goodbye_message":{"oneOf":[{"type":"string","maxLength":500,"description":"What the agent says before it hangs up. Empty means \"Goodbye.\"","uniqueKey":"goodbye_message.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":500,"description":"What the agent says before it hangs up. Empty means \"Goodbye.\"","uniqueKey":"goodbye_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"goodbye_message","typeLabel":"string | null"},"silence_goodbye_message":{"oneOf":[{"type":"string","description":"What the agent says when it hangs up because the caller went silent. Empty means `goodbye_message`.","uniqueKey":"silence_goodbye_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the agent says when it hangs up because the caller went silent. Empty means `goodbye_message`.","uniqueKey":"silence_goodbye_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"silence_goodbye_message","typeLabel":"string | null"},"end_call_description":{"oneOf":[{"type":"string","maxLength":2000,"description":"Replaces the built-in description of the end_call tool (when the agent should hang up). Empty means the built-in text.","uniqueKey":"end_call_description.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":2000,"description":"Replaces the built-in description of the end_call tool (when the agent should hang up). Empty means the built-in text.","uniqueKey":"end_call_description.oneOf.1","typeLabel":"null"}],"uniqueKey":"end_call_description","typeLabel":"string | null"},"tts_director_prompt":{"oneOf":[{"type":"string","maxLength":4000,"description":"Delivery notes for the voice: tone, pace, accent.","uniqueKey":"tts_director_prompt.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":4000,"description":"Delivery notes for the voice: tone, pace, accent.","uniqueKey":"tts_director_prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"tts_director_prompt","typeLabel":"string | null"},"dialect_notes":{"oneOf":[{"type":"string","description":"Vocabulary and register guidance for the agent's dialect, added to its instructions.","uniqueKey":"dialect_notes.oneOf.0","typeLabel":"string"},{"type":"null","description":"Vocabulary and register guidance for the agent's dialect, added to its instructions.","uniqueKey":"dialect_notes.oneOf.1","typeLabel":"null"}],"uniqueKey":"dialect_notes","typeLabel":"string | null"},"dialect_notes_ref":{"oneOf":[{"type":"string","description":"The organization dialect-notes template the notes follow while unedited (or, when `dialect_notes_customized` is true, were edited from); `null` means the notes are the agent's own text. On a bilingual agent it names the main language (Arabic when the pair has it, else the first language).","uniqueKey":"dialect_notes_ref.oneOf.0","typeLabel":"string"},{"type":"null","description":"The organization dialect-notes template the notes follow while unedited (or, when `dialect_notes_customized` is true, were edited from); `null` means the notes are the agent's own text. On a bilingual agent it names the main language (Arabic when the pair has it, else the first language).","uniqueKey":"dialect_notes_ref.oneOf.1","typeLabel":"null"}],"uniqueKey":"dialect_notes_ref","typeLabel":"string | null"},"dialect_notes_customized":{"oneOf":[{"type":"boolean","description":"`true` when `dialect_notes` is the author's edit of the `dialect_notes_ref` template: calls use the author's text and the ref records its origin. Stored only as `true` together with a ref; `false` and `null` are stored as `null`. A write that carries `dialect_notes` or `dialect_notes_ref` without it means \"not edited\". The second language of a bilingual agent carries the same key in its `multi_language.languages[]` entry.","uniqueKey":"dialect_notes_customized.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when `dialect_notes` is the author's edit of the `dialect_notes_ref` template: calls use the author's text and the ref records its origin. Stored only as `true` together with a ref; `false` and `null` are stored as `null`. A write that carries `dialect_notes` or `dialect_notes_ref` without it means \"not edited\". The second language of a bilingual agent carries the same key in its `multi_language.languages[]` entry.","uniqueKey":"dialect_notes_customized.oneOf.1","typeLabel":"null"}],"uniqueKey":"dialect_notes_customized","typeLabel":"boolean | null"},"prompt_template_selections":{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"prompt_template_selections.items.[INDEX]","typeLabel":"object"},"description":"Organization prompt templates appended to the instructions, in order.","uniqueKey":"prompt_template_selections","typeLabel":"object[]"},"dynamic_prompt":{"type":"boolean","uniqueKey":"dynamic_prompt","typeLabel":"boolean"},"hijri_date":{"oneOf":[{"type":"boolean","description":"Adds the Umm al-Qura Hijri date to the caller's local time the agent gets at call start (\"Caller's local time\", `system__time_local`). `null`, the default, follows the agent's languages: on when Arabic is the only language or one of two.","uniqueKey":"hijri_date.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Adds the Umm al-Qura Hijri date to the caller's local time the agent gets at call start (\"Caller's local time\", `system__time_local`). `null`, the default, follows the agent's languages: on when Arabic is the only language or one of two.","uniqueKey":"hijri_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"hijri_date","typeLabel":"boolean | null"},"task_prompt_json":{"oneOf":[{"type":"object","additionalProperties":true,"description":"The agent's instructions (rich-text document).","uniqueKey":"task_prompt_json.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"The agent's instructions (rich-text document).","uniqueKey":"task_prompt_json.oneOf.1","typeLabel":"null"}],"uniqueKey":"task_prompt_json","typeLabel":"object | null"},"language_controls_enabled":{"type":"boolean","uniqueKey":"language_controls_enabled","typeLabel":"boolean"},"tools_instructions":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Extra instructions on when to use the attached tools.","uniqueKey":"tools_instructions.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Extra instructions on when to use the attached tools.","uniqueKey":"tools_instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools_instructions","typeLabel":"object | null"},"vad_config":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Voice activity detection tuning. See `GET /v1/agents/config-schema` for the full format.","uniqueKey":"vad_config.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Voice activity detection tuning. See `GET /v1/agents/config-schema` for the full format.","uniqueKey":"vad_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"vad_config","typeLabel":"object | null"},"enable_engagement_checks":{"type":"boolean","description":"Check in with the caller after a long silence.","uniqueKey":"enable_engagement_checks","typeLabel":"boolean"},"engagement_check_countdown_ms":{"oneOf":[{"type":"integer","uniqueKey":"engagement_check_countdown_ms.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"engagement_check_countdown_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"engagement_check_countdown_ms","typeLabel":"integer | null"},"max_engagement_checks":{"oneOf":[{"type":"integer","uniqueKey":"max_engagement_checks.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"max_engagement_checks.oneOf.1","typeLabel":"null"}],"uniqueKey":"max_engagement_checks","typeLabel":"integer | null"},"agent_model_config":{"oneOf":[{"type":"object","description":"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`. A Voice Assist agent keeps its speech recognition, its suggestion model and, of the voice keys, only `tts_provider`, `tts_model`, `tts_dialect` and `tts_voice`: the voice that speaks its hold phrases (`assist_config.hold_audio`). When any of them is set, `tts_provider` and `tts_model` are required and the voice must be one offered for the agent's primary language; with none set, the language's default voice speaks.","properties":{"llm_service_tier":{"oneOf":[{"type":"string","enum":["standard","fast","ultrafast"],"description":"Processing speed: how quickly OpenAI serves the agent's language model, for GPT models. `standard` is OpenAI's regular processing. `fast` skips OpenAI's queue, so each reply starts sooner; its tokens cost twice the standard price. `ultrafast` also writes the reply faster; its tokens cost six times the standard price. Leave the key out for the platform default: Fast on every GPT model that offers it, otherwise Standard. `fast` is that default, so it is not stored: sending `fast` or `null` is the same as leaving the key out, and a later read omits the key.\n\nEvery GPT model offers Standard. Fast is offered by every GPT model except the nano models; Ultrafast only by GPT-6.1 Sol (`gpt-6.1-sol`) and GPT-6 Astra (`gpt-6-astra`). Models of other providers have no processing speed. `GET /v1/projects/{projectId}/agents/chained-options` lists, on each model, the speeds your organization can choose (`service_tiers`).\n\nFast and Ultrafast are enabled per organization: Fast is on for every organization, and Clarity turns Ultrafast on when you ask for it. Saving a speed the model does not offer, or one your organization does not have, is refused with 422 `LLM_SERVICE_TIER_UNAVAILABLE` (`reason`: `model` or `organization`); a save that changes neither the speed nor the model is not checked again. If a speed is turned off for your organization later, an agent that stores it keeps working on the next slower speed the organization has.\n\nOn a Voice Assist agent the speed applies to its live suggestions.","example":"ultrafast","uniqueKey":"agent_model_config.oneOf.0.llm_service_tier.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["standard","fast","ultrafast"],"description":"Processing speed: how quickly OpenAI serves the agent's language model, for GPT models. `standard` is OpenAI's regular processing. `fast` skips OpenAI's queue, so each reply starts sooner; its tokens cost twice the standard price. `ultrafast` also writes the reply faster; its tokens cost six times the standard price. Leave the key out for the platform default: Fast on every GPT model that offers it, otherwise Standard. `fast` is that default, so it is not stored: sending `fast` or `null` is the same as leaving the key out, and a later read omits the key.\n\nEvery GPT model offers Standard. Fast is offered by every GPT model except the nano models; Ultrafast only by GPT-6.1 Sol (`gpt-6.1-sol`) and GPT-6 Astra (`gpt-6-astra`). Models of other providers have no processing speed. `GET /v1/projects/{projectId}/agents/chained-options` lists, on each model, the speeds your organization can choose (`service_tiers`).\n\nFast and Ultrafast are enabled per organization: Fast is on for every organization, and Clarity turns Ultrafast on when you ask for it. Saving a speed the model does not offer, or one your organization does not have, is refused with 422 `LLM_SERVICE_TIER_UNAVAILABLE` (`reason`: `model` or `organization`); a save that changes neither the speed nor the model is not checked again. If a speed is turned off for your organization later, an agent that stores it keeps working on the next slower speed the organization has.\n\nOn a Voice Assist agent the speed applies to its live suggestions.","example":"ultrafast","uniqueKey":"agent_model_config.oneOf.0.llm_service_tier.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_model_config.oneOf.0.llm_service_tier","typeLabel":"enum\u003cstring> | null"},"llm_thinking_level":{"deprecated":true,"description":"No longer has any effect. Every call now uses the least reasoning its language model accepts, which gives the fastest replies. Older agent versions may still carry the key; saving an agent removes it. A realtime model's thinking setting (`rt_thinking_level`) is unchanged.","uniqueKey":"agent_model_config.oneOf.0.llm_thinking_level","typeLabel":"any"},"llm_thinking_budget":{"oneOf":[{"type":"integer","deprecated":true,"description":"No longer has any effect (see `llm_thinking_level`). Older agent versions may still carry the key; saving an agent removes it.","uniqueKey":"agent_model_config.oneOf.0.llm_thinking_budget.oneOf.0","typeLabel":"integer"},{"type":"null","deprecated":true,"description":"No longer has any effect (see `llm_thinking_level`). Older agent versions may still carry the key; saving an agent removes it.","uniqueKey":"agent_model_config.oneOf.0.llm_thinking_budget.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_model_config.oneOf.0.llm_thinking_budget","typeLabel":"integer | null"}},"additionalProperties":true,"uniqueKey":"agent_model_config.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"agent_model_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_model_config","typeLabel":"object | null"},"sidekick_reminders":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"sidekick_reminders.oneOf.0.items.[INDEX]","typeLabel":"any"},"uniqueKey":"sidekick_reminders.oneOf.0","typeLabel":"any[]"},{"type":"null","items":{"oneOf":[{}]},"uniqueKey":"sidekick_reminders.oneOf.1","typeLabel":"null"}],"uniqueKey":"sidekick_reminders","typeLabel":"any[] | null"},"post_tool_reminder":{"oneOf":[{"type":"string","uniqueKey":"post_tool_reminder.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"post_tool_reminder.oneOf.1","typeLabel":"null"}],"uniqueKey":"post_tool_reminder","typeLabel":"string | null"},"greeting_vad_config":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Voice activity detection tuning while the greeting plays.","uniqueKey":"greeting_vad_config.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Voice activity detection tuning while the greeting plays.","uniqueKey":"greeting_vad_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"greeting_vad_config","typeLabel":"object | null"},"greeting_interruptible":{"type":"boolean","description":"Whether the caller can interrupt the greeting.","uniqueKey":"greeting_interruptible","typeLabel":"boolean"},"noise_reduction_enabled":{"type":"boolean","description":"Filter background noise from the caller's audio.","uniqueKey":"noise_reduction_enabled","typeLabel":"boolean"},"memory":{"type":"boolean","description":"Give the agent a digest of the caller's recent support tickets at the start of the call.","uniqueKey":"memory","typeLabel":"boolean"},"memory_days":{"oneOf":[{"type":"integer","description":"How far back (days, 1–365) to look for the caller's tickets; `0` uses the caller's name and attributes only.","uniqueKey":"memory_days.oneOf.0","typeLabel":"integer"},{"type":"null","description":"How far back (days, 1–365) to look for the caller's tickets; `0` uses the caller's name and attributes only.","uniqueKey":"memory_days.oneOf.1","typeLabel":"null"}],"uniqueKey":"memory_days","typeLabel":"integer | null"},"memory_max_tickets":{"oneOf":[{"type":"integer","description":"At most this many recent tickets (1–10).","uniqueKey":"memory_max_tickets.oneOf.0","typeLabel":"integer"},{"type":"null","description":"At most this many recent tickets (1–10).","uniqueKey":"memory_max_tickets.oneOf.1","typeLabel":"null"}],"uniqueKey":"memory_max_tickets","typeLabel":"integer | null"},"summary_enabled":{"type":"boolean","description":"Write a summary of each call when it ends.","uniqueKey":"summary_enabled","typeLabel":"boolean"},"realtime_warnings":{"oneOf":[{"type":"object","additionalProperties":true,"description":"In-call warnings raised to supervisors while a call is in progress. See `GET /v1/agents/config-schema` for the full format.","uniqueKey":"realtime_warnings.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"In-call warnings raised to supervisors while a call is in progress. See `GET /v1/agents/config-schema` for the full format.","uniqueKey":"realtime_warnings.oneOf.1","typeLabel":"null"}],"uniqueKey":"realtime_warnings","typeLabel":"object | null"},"caller_sentiment":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Live caller-sentiment tracking. See `GET /v1/agents/config-schema` for the full format.","uniqueKey":"caller_sentiment.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Live caller-sentiment tracking. See `GET /v1/agents/config-schema` for the full format.","uniqueKey":"caller_sentiment.oneOf.1","typeLabel":"null"}],"uniqueKey":"caller_sentiment","typeLabel":"object | null"},"background_audio":{"oneOf":[{"type":"object","description":"Background ambience and typing sounds while the agent thinks. See `GET /v1/agents/config-schema` for the full format.","required":["ambient_enabled","ambient_sound","ambient_volume","thinking_enabled","thinking_volume"],"properties":{"ambient_enabled":{"type":"boolean","isRequired":true,"uniqueKey":"background_audio.oneOf.0.ambient_enabled","typeLabel":"boolean"},"ambient_sound":{"type":"string","enum":["office_ambience","crowded_room","city_ambience"],"isRequired":true,"uniqueKey":"background_audio.oneOf.0.ambient_sound","typeLabel":"enum\u003cstring>"},"ambient_volume":{"type":"number","minimum":0,"maximum":1,"example":0.3,"isRequired":true,"uniqueKey":"background_audio.oneOf.0.ambient_volume","typeLabel":"number"},"thinking_enabled":{"type":"boolean","isRequired":true,"uniqueKey":"background_audio.oneOf.0.thinking_enabled","typeLabel":"boolean"},"thinking_volume":{"type":"number","minimum":0,"maximum":1,"example":0.5,"isRequired":true,"uniqueKey":"background_audio.oneOf.0.thinking_volume","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"background_audio.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"background_audio.oneOf.1","typeLabel":"null"}],"uniqueKey":"background_audio","typeLabel":"object | null"},"start_tools":{"oneOf":[{"type":"object","description":"Tools run when the call starts, before the greeting. See `GET /v1/agents/config-schema` for the full format.","required":["tools"],"properties":{"tools":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","description":"Name of an attached http tool with no required parameters.","isRequired":true,"uniqueKey":"start_tools.oneOf.0.tools.items.[INDEX].name","typeLabel":"string"},"confirmed_read_only":{"type":"boolean","description":"Required true for a tool whose method is not GET or HEAD.","uniqueKey":"start_tools.oneOf.0.tools.items.[INDEX].confirmed_read_only","typeLabel":"boolean"}},"uniqueKey":"start_tools.oneOf.0.tools.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"start_tools.oneOf.0.tools","typeLabel":"object[]"},"budget_ms":{"type":"integer","minimum":500,"maximum":4000,"default":1500,"uniqueKey":"start_tools.oneOf.0.budget_ms","typeLabel":"integer"},"fallback_greeting":{"type":"string","description":"Required when the greeting uses start-tool values. Must not use them itself.","uniqueKey":"start_tools.oneOf.0.fallback_greeting","typeLabel":"string"},"fallback_greetings":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"start_tools.oneOf.0.fallback_greetings.additionalProperties","typeLabel":"string"},"description":"Per `multi_language.languages[].label`, for each language greeting that uses start-tool values.","uniqueKey":"start_tools.oneOf.0.fallback_greetings","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"start_tools.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"start_tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"start_tools","typeLabel":"object | null"},"language_switching":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Language-switching policy and custom instruction texts. `null` means platform defaults.","uniqueKey":"language_switching.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Language-switching policy and custom instruction texts. `null` means platform defaults.","uniqueKey":"language_switching.oneOf.1","typeLabel":"null"}],"uniqueKey":"language_switching","typeLabel":"object | null"},"speech_normalization":{"oneOf":[{"type":"object","additionalProperties":true,"description":"How the agent speaks numbers, dates, amounts, links and acronyms. `{\"enabled\": true}` uses the defaults; `null` turns it off.","uniqueKey":"speech_normalization.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"How the agent speaks numbers, dates, amounts, links and acronyms. `{\"enabled\": true}` uses the defaults; `null` turns it off.","uniqueKey":"speech_normalization.oneOf.1","typeLabel":"null"}],"uniqueKey":"speech_normalization","typeLabel":"object | null"},"ivr_navigation_enabled":{"type":"boolean","description":"On outbound calls, navigate phone menus with keypad tones. Requires `amd_enabled`.","uniqueKey":"ivr_navigation_enabled","typeLabel":"boolean"},"amd_enabled":{"type":"boolean","description":"On outbound calls, detect an answering machine and end the call without the script.","uniqueKey":"amd_enabled","typeLabel":"boolean"},"livekit_region":{"oneOf":[{"type":"string","description":"Pin calls to a media region: `me`, `eu` or `us`. `null` picks the region nearest the caller.","uniqueKey":"livekit_region.oneOf.0","typeLabel":"string"},{"type":"null","description":"Pin calls to a media region: `me`, `eu` or `us`. `null` picks the region nearest the caller.","uniqueKey":"livekit_region.oneOf.1","typeLabel":"null"}],"uniqueKey":"livekit_region","typeLabel":"string | null"},"max_call_duration_sec":{"oneOf":[{"type":"integer","description":"Hard limit on a call's length, in seconds (30–3600, default 3600).","uniqueKey":"max_call_duration_sec.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Hard limit on a call's length, in seconds (30–3600, default 3600).","uniqueKey":"max_call_duration_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"max_call_duration_sec","typeLabel":"integer | null"},"max_llm_tokens_per_call":{"oneOf":[{"type":"integer","description":"End the call once the conversation model has used this many tokens (1,000–5,000,000). `null` means no limit.","uniqueKey":"max_llm_tokens_per_call.oneOf.0","typeLabel":"integer"},{"type":"null","description":"End the call once the conversation model has used this many tokens (1,000–5,000,000). `null` means no limit.","uniqueKey":"max_llm_tokens_per_call.oneOf.1","typeLabel":"null"}],"uniqueKey":"max_llm_tokens_per_call","typeLabel":"integer | null"},"task_groups":{"oneOf":[{"type":"array","items":{"type":"object","required":["task","description","fields","steps"],"properties":{"task":{"type":"string","description":"Task name (e.g. ticket_creation_workflow)","isRequired":true,"uniqueKey":"task_groups.oneOf.0.items.[INDEX].task","typeLabel":"string"},"description":{"type":"string","isRequired":true,"uniqueKey":"task_groups.oneOf.0.items.[INDEX].description","typeLabel":"string"},"fields":{"additionalProperties":true,"type":"object","isRequired":true,"uniqueKey":"task_groups.oneOf.0.items.[INDEX].fields","typeLabel":"object"},"steps":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"task_groups.oneOf.0.items.[INDEX].steps.items.[INDEX]","typeLabel":"any"},"isRequired":true,"uniqueKey":"task_groups.oneOf.0.items.[INDEX].steps","typeLabel":"any[]"},"completion_message":{"type":"string","uniqueKey":"task_groups.oneOf.0.items.[INDEX].completion_message","typeLabel":"string"},"task_instruction":{"type":"string","description":"When to run this task; used to derive workflow_instructions at runtime","uniqueKey":"task_groups.oneOf.0.items.[INDEX].task_instruction","typeLabel":"string"}},"uniqueKey":"task_groups.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Structured tasks (workflows) the agent can run.","uniqueKey":"task_groups.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["task","description","fields","steps"],"properties":{"task":{"type":"string","description":"Task name (e.g. ticket_creation_workflow)"},"description":{"type":"string"},"fields":{"additionalProperties":true,"type":"object"},"steps":{"type":"array","items":{"oneOf":[{}]}},"completion_message":{"type":"string"},"task_instruction":{"type":"string","description":"When to run this task; used to derive workflow_instructions at runtime"}}},"description":"Structured tasks (workflows) the agent can run.","uniqueKey":"task_groups.oneOf.1","typeLabel":"null"}],"uniqueKey":"task_groups","typeLabel":"object[] | null"},"builtin_tools":{"type":"array","items":{"type":"string","uniqueKey":"builtin_tools.items.[INDEX]","typeLabel":"string"},"description":"Built-in tools to enable, for example `lk_endCall` (hang up).","uniqueKey":"builtin_tools","typeLabel":"string[]"},"silence_recovery_config":{"oneOf":[{"type":"object","additionalProperties":true,"description":"What to do when the caller goes silent: `max_nudges` (0–10), `timeout_s` (0.5–60) and the nudge `note`.","uniqueKey":"silence_recovery_config.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"What to do when the caller goes silent: `max_nudges` (0–10), `timeout_s` (0.5–60) and the nudge `note`.","uniqueKey":"silence_recovery_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"silence_recovery_config","typeLabel":"object | null"},"multi_language":{"oneOf":[{"type":"object","additionalProperties":true,"description":"A second conversation language and the speech settings for it. `null` means a single-language agent. A bilingual agent is a single-language agent plus a second language: the main language (Arabic when the pair has it, else the first) lives in the agent's own fields — its voice in `agent_model_config`, greeting, goodbye, dialect notes and director prompt — so its entry carries only `label` and `asr_language`; the second language's entry carries its greeting, goodbye, dialect notes (`dialect_notes`, `dialect_notes_ref`, `dialect_notes_customized`) and director prompt, plus its own voice only with `per_language_tts`. The block itself carries no voice.","uniqueKey":"multi_language.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"A second conversation language and the speech settings for it. `null` means a single-language agent. A bilingual agent is a single-language agent plus a second language: the main language (Arabic when the pair has it, else the first) lives in the agent's own fields — its voice in `agent_model_config`, greeting, goodbye, dialect notes and director prompt — so its entry carries only `label` and `asr_language`; the second language's entry carries its greeting, goodbye, dialect notes (`dialect_notes`, `dialect_notes_ref`, `dialect_notes_customized`) and director prompt, plus its own voice only with `per_language_tts`. The block itself carries no voice.","uniqueKey":"multi_language.oneOf.1","typeLabel":"null"}],"uniqueKey":"multi_language","typeLabel":"object | null"},"demo":{"oneOf":[{"type":"object","additionalProperties":true,"description":"The demo page settings, without the password. `null` when off.","uniqueKey":"demo.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"The demo page settings, without the password. `null` when off.","uniqueKey":"demo.oneOf.1","typeLabel":"null"}],"uniqueKey":"demo","typeLabel":"object | null"},"sheet_refs":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"sheet_refs.additionalProperties","typeLabel":"string"},"description":"Google Sheet ids shared with every code tool of the agent, by argument name (for example `BOOKINGS_SHEET_ID`). Send `{}` to clear.","uniqueKey":"sheet_refs","typeLabel":"object"},"prompt_field_whitelist":{"oneOf":[{"type":"object","additionalProperties":true,"description":"The call-context fields (caller number, custom fields passed when a call starts) the instructions may reference. `null` allows any.","uniqueKey":"prompt_field_whitelist.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"The call-context fields (caller number, custom fields passed when a call starts) the instructions may reference. `null` allows any.","uniqueKey":"prompt_field_whitelist.oneOf.1","typeLabel":"null"}],"uniqueKey":"prompt_field_whitelist","typeLabel":"object | null"},"output_schema":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Fields to extract from the conversation when the call ends, by name, each with `type`, `description`, `required`, `enum_values`. `null` turns extraction off.","uniqueKey":"output_schema.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Fields to extract from the conversation when the call ends, by name, each with `type`, `description`, `required`, `enum_values`. `null` turns extraction off.","uniqueKey":"output_schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"output_schema","typeLabel":"object | null"},"workflow_config":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Rules the agent may apply at any point in the call (`global_rules`).","uniqueKey":"workflow_config.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Rules the agent may apply at any point in the call (`global_rules`).","uniqueKey":"workflow_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"workflow_config","typeLabel":"object | null"},"assist_config":{"oneOf":[{"type":"object","description":"Voice Assist settings. Only for `agent_type: assist`; ignored for other types.","properties":{"company_context":{"oneOf":[{"type":"string","default":null,"uniqueKey":"assist_config.oneOf.0.company_context.oneOf.0","typeLabel":"string"},{"type":"null","default":null,"uniqueKey":"assist_config.oneOf.0.company_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"assist_config.oneOf.0.company_context","typeLabel":"string | null"},"kb_enabled":{"type":"boolean","default":false,"uniqueKey":"assist_config.oneOf.0.kb_enabled","typeLabel":"boolean"},"kb_scope":{"oneOf":[{"type":"object","description":"Which articles retrieval may use. Only meaningful with `kb_enabled: true` (refused otherwise, 422). A scope naming collections outside the project's organization is refused at write time (Principle I).","required":["all_articles"],"properties":{"all_articles":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.0.all_articles","typeLabel":"enum\u003cboolean>"}},"uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.0","typeLabel":"object"},{"type":"object","description":"Which articles retrieval may use. Only meaningful with `kb_enabled: true` (refused otherwise, 422). A scope naming collections outside the project's organization is refused at write time (Principle I).","required":["article_ids"],"properties":{"article_ids":{"type":"array","minItems":1,"items":{"minimum":1,"type":"integer","uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.1.article_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.1.article_ids","typeLabel":"integer[]"}},"uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.1","typeLabel":"object"},{"type":"object","description":"Which articles retrieval may use. Only meaningful with `kb_enabled: true` (refused otherwise, 422). A scope naming collections outside the project's organization is refused at write time (Principle I).","required":["collection_ids"],"properties":{"collection_ids":{"type":"array","minItems":1,"items":{"type":"string","uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.2.collection_ids.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.2.collection_ids","typeLabel":"string[]"}},"uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.2","typeLabel":"object"},{"type":"null","uniqueKey":"assist_config.oneOf.0.kb_scope.oneOf.3","typeLabel":"null"}],"uniqueKey":"assist_config.oneOf.0.kb_scope","typeLabel":"object · object · object · null"},"kb_collection_id":{"oneOf":[{"type":"string","readOnly":true,"description":"The organization's knowledge-base collection, resolved when the agent is saved with the knowledge base on; null when the organization has no articles yet or `kb_enabled` is false.","uniqueKey":"assist_config.oneOf.0.kb_collection_id.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"description":"The organization's knowledge-base collection, resolved when the agent is saved with the knowledge base on; null when the organization has no articles yet or `kb_enabled` is false.","uniqueKey":"assist_config.oneOf.0.kb_collection_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"assist_config.oneOf.0.kb_collection_id","typeLabel":"string | null"},"kb_organization_id":{"oneOf":[{"type":"integer","readOnly":true,"description":"The organization the collection was resolved for.","uniqueKey":"assist_config.oneOf.0.kb_organization_id.oneOf.0","typeLabel":"integer"},{"type":"null","readOnly":true,"description":"The organization the collection was resolved for.","uniqueKey":"assist_config.oneOf.0.kb_organization_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"assist_config.oneOf.0.kb_organization_id","typeLabel":"integer | null"},"retrieval_query_chars":{"type":"integer","minimum":200,"maximum":8000,"default":1500,"uniqueKey":"assist_config.oneOf.0.retrieval_query_chars","typeLabel":"integer"},"retrieval_limit":{"type":"integer","minimum":1,"maximum":20,"default":5,"uniqueKey":"assist_config.oneOf.0.retrieval_limit","typeLabel":"integer"},"max_retries":{"type":"integer","minimum":0,"maximum":5,"default":2,"uniqueKey":"assist_config.oneOf.0.max_retries","typeLabel":"integer"},"max_prompt_tokens":{"oneOf":[{"type":"integer","minimum":512,"default":null,"description":"Caps assist BELOW the provider's own window; the effective limit is the minimum of the two.","uniqueKey":"assist_config.oneOf.0.max_prompt_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":512,"default":null,"description":"Caps assist BELOW the provider's own window; the effective limit is the minimum of the two.","uniqueKey":"assist_config.oneOf.0.max_prompt_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"assist_config.oneOf.0.max_prompt_tokens","typeLabel":"integer | null"},"hold_audio":{"type":"object","additionalProperties":false,"description":"What a caller waiting for a human agent hears in a Voice Assist call: a greeting with a recording notice, then hold music on a loop until an agent joins; when the agent drops out of the call, a pause, then a short \"your agent will be right back\" message, then music again. Everything stops as soon as an agent joins, and none of it is in the call recording or the transcript. Every key is optional on write; an omitted key takes its default, and an agent saved before this setting existed behaves as the defaults (hold audio on). The phrases are spoken in the agent's primary language with the voice in `agent_model_config` (`tts_provider`, `tts_model`, `tts_dialect`, `tts_voice`), or the language's default voice when none is set. A change reaches calls after the agent is published.","properties":{"enabled":{"type":"boolean","default":true,"description":"Whether the caller hears hold audio at all. When false the caller waits in silence (a phone caller hears ringing until an agent answers); `agent_wait_seconds` still applies.","uniqueKey":"assist_config.oneOf.0.hold_audio.enabled","typeLabel":"boolean"},"greeting":{"type":"object","additionalProperties":false,"description":"One hold phrase: `greeting` (the greeting with the recording notice, spoken once when the caller starts waiting) or `agent_dropped` (spoken once after an agent dropped out). Whether it plays is decided by the nearest of three levels: this agent's `choice`, then your organization's setting, then the platform's.","properties":{"choice":{"type":"string","enum":["default","on","off"],"default":"default","description":"`default` follows your organization's setting for the phrase; `on` and `off` override it for this agent.","uniqueKey":"assist_config.oneOf.0.hold_audio.greeting.choice","typeLabel":"enum\u003cstring>"},"text":{"oneOf":[{"type":"string","minLength":1,"maxLength":500,"default":null,"description":"This agent's own wording, in its primary language (surrounding spaces are trimmed; an empty text is refused). `null` uses your organization's text for that language, else the platform's.","uniqueKey":"assist_config.oneOf.0.hold_audio.greeting.text.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"maxLength":500,"default":null,"description":"This agent's own wording, in its primary language (surrounding spaces are trimmed; an empty text is refused). `null` uses your organization's text for that language, else the platform's.","uniqueKey":"assist_config.oneOf.0.hold_audio.greeting.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"assist_config.oneOf.0.hold_audio.greeting.text","typeLabel":"string | null"}},"uniqueKey":"assist_config.oneOf.0.hold_audio.greeting","typeLabel":"object"},"agent_dropped":{"type":"object","additionalProperties":false,"description":"One hold phrase: `greeting` (the greeting with the recording notice, spoken once when the caller starts waiting) or `agent_dropped` (spoken once after an agent dropped out). Whether it plays is decided by the nearest of three levels: this agent's `choice`, then your organization's setting, then the platform's.","properties":{"choice":{"type":"string","enum":["default","on","off"],"default":"default","description":"`default` follows your organization's setting for the phrase; `on` and `off` override it for this agent.","uniqueKey":"assist_config.oneOf.0.hold_audio.agent_dropped.choice","typeLabel":"enum\u003cstring>"},"text":{"oneOf":[{"type":"string","minLength":1,"maxLength":500,"default":null,"description":"This agent's own wording, in its primary language (surrounding spaces are trimmed; an empty text is refused). `null` uses your organization's text for that language, else the platform's.","uniqueKey":"assist_config.oneOf.0.hold_audio.agent_dropped.text.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"maxLength":500,"default":null,"description":"This agent's own wording, in its primary language (surrounding spaces are trimmed; an empty text is refused). `null` uses your organization's text for that language, else the platform's.","uniqueKey":"assist_config.oneOf.0.hold_audio.agent_dropped.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"assist_config.oneOf.0.hold_audio.agent_dropped.text","typeLabel":"string | null"}},"uniqueKey":"assist_config.oneOf.0.hold_audio.agent_dropped","typeLabel":"object"},"pause_seconds":{"type":"integer","minimum":0,"maximum":60,"default":5,"description":"Seconds after an agent left the call before the \"agent dropped out\" message plays. An agent back within the pause stops it from playing.","uniqueKey":"assist_config.oneOf.0.hold_audio.pause_seconds","typeLabel":"integer"},"agent_wait_seconds":{"type":"integer","minimum":10,"maximum":600,"default":60,"description":"Seconds the call waits for an agent who left it before the call ends.","uniqueKey":"assist_config.oneOf.0.hold_audio.agent_wait_seconds","typeLabel":"integer"}},"uniqueKey":"assist_config.oneOf.0.hold_audio","typeLabel":"object"}},"uniqueKey":"assist_config.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"assist_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"assist_config","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"example":{"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},"examples":{"Example":{"title":"Example","value":{"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}}},"exampleType":"examples"}},"exampleType":"examples"},"c1249d9b-3a49-4ad3-8c52-a62c1a9ab8e6":{"description":"No credential was sent, or the API key is invalid or revoked. A key that could not be checked at all answers 503 `AUTH_UPSTREAM_UNAVAILABLE` instead (see Errors).","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":true,"properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable reason, present on the refusals a client may branch on. Among them: `PUBLISH_CAPABILITY_REQUIRED` (403, the credential may not change what is live), `AGENT_NOT_PUBLISHED` (409, the agent has no published version yet), `AGENT_TYPE_NOT_DISPATCHABLE` (422, a Voice Assist agent named where an agent must place a call or answer one itself — a campaign, an outbound caller ID, a dispatched call, an eval; a number's inbound dispatch rule accepts one; the body carries `agent_type` and `agent_id`), `ASSIST_FLEET_NOT_CONFIGURED` (422 on a dispatch rule naming a Voice Assist agent in a project whose LiveKit has no Voice Assist listener), `NOT_APPLICABLE_TO_AGENT_TYPE` (422, a voice-only setting written on a Voice Assist agent), `AGENT_TYPE_BOUNDARY` (409), `AGENT_TYPE_NOT_SUPPORTED` (400), `INVALID_CUSTOMER_TIMEZONE` (400, `customer_timezone` is not a time zone name; the body carries the value), `VOICE_ASSISTANT_REQUIRED` (403, the organization is not licensed for Voice Assist), `ORGANIZATION_UNAVAILABLE` (503), `REGION_PROFILE_CONFLICT` (503), `LLM_SERVICE_TIER_UNAVAILABLE` (422, an agent's processing speed is not offered by its model or not enabled for the organization; `reason` says which) and `AUTH_UPSTREAM_UNAVAILABLE` (503 on any endpoint, with `Retry-After`: the credential could not be checked right now; it was not rejected and the request was not carried out).","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Invalid or revoked token"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid or revoked token"}}},"exampleType":"examples"}},"exampleType":"examples"},"91d27ceb-3e72-4af8-8a5b-fb8ac787fd27":{"description":"The agent is a Voice Assist agent and your organization does not have Voice Assist (`code: VOICE_ASSISTANT_REQUIRED`).","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":true,"properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable reason, present on the refusals a client may branch on. Among them: `PUBLISH_CAPABILITY_REQUIRED` (403, the credential may not change what is live), `AGENT_NOT_PUBLISHED` (409, the agent has no published version yet), `AGENT_TYPE_NOT_DISPATCHABLE` (422, a Voice Assist agent named where an agent must place a call or answer one itself — a campaign, an outbound caller ID, a dispatched call, an eval; a number's inbound dispatch rule accepts one; the body carries `agent_type` and `agent_id`), `ASSIST_FLEET_NOT_CONFIGURED` (422 on a dispatch rule naming a Voice Assist agent in a project whose LiveKit has no Voice Assist listener), `NOT_APPLICABLE_TO_AGENT_TYPE` (422, a voice-only setting written on a Voice Assist agent), `AGENT_TYPE_BOUNDARY` (409), `AGENT_TYPE_NOT_SUPPORTED` (400), `INVALID_CUSTOMER_TIMEZONE` (400, `customer_timezone` is not a time zone name; the body carries the value), `VOICE_ASSISTANT_REQUIRED` (403, the organization is not licensed for Voice Assist), `ORGANIZATION_UNAVAILABLE` (503), `REGION_PROFILE_CONFLICT` (503), `LLM_SERVICE_TIER_UNAVAILABLE` (422, an agent's processing speed is not offered by its model or not enabled for the organization; `reason` says which) and `AUTH_UPSTREAM_UNAVAILABLE` (503 on any endpoint, with `Retry-After`: the credential could not be checked right now; it was not rejected and the request was not carried out).","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"299c740b-2d05-4211-ae27-4b337dee4669":{"description":"The project or the agent does not exist.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":true,"properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable reason, present on the refusals a client may branch on. Among them: `PUBLISH_CAPABILITY_REQUIRED` (403, the credential may not change what is live), `AGENT_NOT_PUBLISHED` (409, the agent has no published version yet), `AGENT_TYPE_NOT_DISPATCHABLE` (422, a Voice Assist agent named where an agent must place a call or answer one itself — a campaign, an outbound caller ID, a dispatched call, an eval; a number's inbound dispatch rule accepts one; the body carries `agent_type` and `agent_id`), `ASSIST_FLEET_NOT_CONFIGURED` (422 on a dispatch rule naming a Voice Assist agent in a project whose LiveKit has no Voice Assist listener), `NOT_APPLICABLE_TO_AGENT_TYPE` (422, a voice-only setting written on a Voice Assist agent), `AGENT_TYPE_BOUNDARY` (409), `AGENT_TYPE_NOT_SUPPORTED` (400), `INVALID_CUSTOMER_TIMEZONE` (400, `customer_timezone` is not a time zone name; the body carries the value), `VOICE_ASSISTANT_REQUIRED` (403, the organization is not licensed for Voice Assist), `ORGANIZATION_UNAVAILABLE` (503), `REGION_PROFILE_CONFLICT` (503), `LLM_SERVICE_TIER_UNAVAILABLE` (422, an agent's processing speed is not offered by its model or not enabled for the organization; `reason` says which) and `AUTH_UPSTREAM_UNAVAILABLE` (503 on any endpoint, with `Retry-After`: the credential could not be checked right now; it was not rejected and the request was not carried out).","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Agent not found"},"examples":{"Example":{"title":"Example","value":{"error":"Agent not found"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"79258329-9c11-41e2-825c-e7e86baa03e6":{"organizationApiKey":{"type":"http","scheme":"bearer","description":"Your organization API key (it starts with `anek_org_`). The same key works on the Voice API and the Support API. See [Authentication](/authentication).","scopes":[],"schemeName":"organizationApiKey"}}},"servers":{"c1b5bfaf-ca83-44db-afe9-8385e654f187":{"url":"https://voice-api.onclarity.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your organization API key (it starts with `anek_org_`). The same key works on the Voice API and the Support API. See [Authentication](/authentication).","scopes":[],"schemeName":"organizationApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your organization API key (it starts with `anek_org_`). The same key works on the Voice API and the Support API. See [Authentication](/authentication).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"organizationApiKey","name":"Authorization"}],"title":"organizationApiKey"}]},"originalFileLocation":"api-reference/voice-openapi.json"},"subdomain":"on-clarity","siteName":"Clarity Support Docs","title":"Get an agent - Clarity Support Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T18:23:50.642Z","originalFileLocation":"api-reference/voice/agents/get-an-agent.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Returns the agent\u0026#x27;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.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Clarity Support Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get an agent - Clarity Support Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns the agent\u0026#x27;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.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Clarity Support Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://on-clarity.mintlify.site/_mintlify/api/og/v2?division=Agents\u0026amp;title=Get+an+agent\u0026amp;description=Returns+the+agent%27s+current+configuration.+When+the+agent+has+an+unpublished+draft%2C+this+is+the+draft+%28what+the+next+publish+will+make+live%29%3B+otherwise+it+is+th\u0026amp;theme=d4d3ea60eb64236c312935e2\u0026amp;signature=f1ef0f399bd7f54cd8530fee3a2d2296c67f4ddac64c05ab894f7484c9bbf487\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get an agent - Clarity Support Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns the agent\u0026#x27;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.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://on-clarity.mintlify.site/_mintlify/api/og/v2?division=Agents\u0026amp;title=Get+an+agent\u0026amp;description=Returns+the+agent%27s+current+configuration.+When+the+agent+has+an+unpublished+draft%2C+this+is+the+draft+%28what+the+next+publish+will+make+live%29%3B+otherwise+it+is+th\u0026amp;theme=d4d3ea60eb64236c312935e2\u0026amp;signature=f1ef0f399bd7f54cd8530fee3a2d2296c67f4ddac64c05ab894f7484c9bbf487\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/on-clarity/mFVlSgsYkfg6E9Cg/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Clarity Support Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0aa68a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/voice/agents/get-an-agent.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.support.onclarity.com/#organization\",\"name\":\"Clarity Support Docs\",\"url\":\"https://docs.support.onclarity.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/on-clarity/wANpiWtgQORdXhk3/logo/light.svg?fit=max\u0026auto=format\u0026n=wANpiWtgQORdXhk3\u0026q=85\u0026s=a67bcf8cb635c40e2371c3f86424d4a0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.support.onclarity.com#website\",\"name\":\"Clarity Support Docs\",\"url\":\"https://docs.support.onclarity.com\",\"publisher\":{\"@id\":\"https://docs.support.onclarity.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent#webpage\",\"url\":\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent\",\"name\":\"Get an agent\",\"description\":\"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.\",\"dateModified\":\"2026-11-11T18:23:50.642Z\",\"isPartOf\":{\"@id\":\"https://docs.support.onclarity.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Voice API\",\"item\":\"https://docs.support.onclarity.com/api-reference/voice/projects/list-projects\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agents\",\"item\":\"https://docs.support.onclarity.com/api-reference/voice/agents/list-agents\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get an agent\",\"item\":\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent#apireference\",\"headline\":\"Get an agent\",\"name\":\"Get an agent\",\"description\":\"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.\",\"url\":\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.support.onclarity.com/api-reference/voice/agents/get-an-agent#webpage\"},\"dateModified\":\"2026-11-11T18:23:50.642Z\",\"publisher\":{\"@id\":\"https://docs.support.onclarity.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.support.onclarity.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Clarity Support Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Clarity Support Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/voice/agents/get-an-agent.md","siteName":"Clarity Support Docs","nav":{"global":{"anchors":[{"anchor":"Open Clarity","icon":"arrow-up-right-from-square","href":"https://support.onclarity.com"},{"anchor":"Support","icon":"envelope","href":"mailto:hello@onclarity.com"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Getting started","pages":[{"title":"API introduction","href":"/api-reference/introduction"},{"title":"Errors","href":"/api-reference/errors"}]},{"group":"Voice API","pages":[{"group":"Projects","icon":"folder-open","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects","title":"List projects","icon":"folder-open","href":"/api-reference/voice/projects/list-projects"}]},{"group":"Agents","icon":"robot","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents","title":"List agents","icon":"robot","href":"/api-reference/voice/agents/list-agents"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents","title":"Create an agent","icon":"robot","description":"Creates an agent and publishes its first version, so it is live as soon as it is created. Only `name` is required: every setting you leave out takes the platform default (speech recognition, language model and voice included). The full configuration format, with every field and allowed value, is served by `GET /v1/agents/config-schema`; the providers, models and voices available to this project by `GET /v1/projects/{projectId}/agents/chained-options`.\n\nNeeds the publish permission, which organization API keys carry.","href":"/api-reference/voice/agents/create-an-agent"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{id}","title":"Get an agent","icon":"robot","href":"/api-reference/voice/agents/get-an-agent"},{"openapi":"api-reference/voice-openapi.json PATCH /v1/projects/{projectId}/agents/{id}","title":"Update an agent","icon":"robot","description":"Changes the fields you send and leaves every other field as it is. Configuration changes are saved to the agent's draft: live calls keep using the published version until you publish the draft (`POST .../agents/{id}/publish`). The agent's `name` and demo page settings are the exception and apply immediately.\n\n`agent_model_config` and other object-valued fields are replaced as a whole, not merged. Send `null` to clear a field that accepts it. The agent's type cannot change between Voice Assist and a voice type. Needs the publish permission, which organization API keys carry.","href":"/api-reference/voice/agents/update-an-agent"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/agents/{id}","title":"Delete an agent","icon":"robot","href":"/api-reference/voice/agents/delete-an-agent"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{id}/clone","title":"Clone an agent","icon":"robot","href":"/api-reference/voice/agents/clone-an-agent"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{id}/publish","title":"Publish the draft","icon":"robot","href":"/api-reference/voice/agents/publish-the-draft"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{id}/discard-draft","title":"Discard the draft","icon":"robot","href":"/api-reference/voice/agents/discard-the-draft"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{id}/versions","title":"List an agent's versions","icon":"robot","href":"/api-reference/voice/agents/list-an-agents-versions"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{id}/versions/{versionId}","title":"Get an agent version","icon":"robot","href":"/api-reference/voice/agents/get-an-agent-version"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{id}/versions/{versionId}/republish","title":"Roll back to an earlier version","icon":"robot","href":"/api-reference/voice/agents/roll-back-to-an-earlier-version"}]},{"group":"Tools","icon":"wrench","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/tools","title":"List tools","icon":"wrench","href":"/api-reference/voice/tools/list-tools"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/tools","title":"Create a tool","icon":"wrench","href":"/api-reference/voice/tools/create-a-tool"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/tools/{id}/push","title":"Push a tool to live agents","icon":"wrench","href":"/api-reference/voice/tools/push-a-tool-to-live-agents"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{id}/tools","title":"List an agent's tools","icon":"wrench","href":"/api-reference/voice/tools/list-an-agents-tools"},{"openapi":"api-reference/voice-openapi.json PUT /v1/projects/{projectId}/agents/{id}/tools","title":"Set an agent's tools","icon":"wrench","href":"/api-reference/voice/tools/set-an-agents-tools"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/tools/{id}","title":"Get a tool","icon":"wrench","href":"/api-reference/voice/tools/get-a-tool"},{"openapi":"api-reference/voice-openapi.json PATCH /v1/projects/{projectId}/tools/{id}","title":"Update a tool","icon":"wrench","href":"/api-reference/voice/tools/update-a-tool"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/tools/{id}","title":"Delete a tool","icon":"wrench","href":"/api-reference/voice/tools/delete-a-tool"}]},{"group":"Outbound calls","icon":"phone-arrow-up-right","pages":[{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{id}/dispatch-call","title":"Dispatch an outbound call","icon":"phone-arrow-up-right","href":"/api-reference/voice/outbound-calls/dispatch-an-outbound-call"}]},{"group":"Conversations","icon":"comments","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/conversations","title":"List conversations","icon":"comments","href":"/api-reference/voice/conversations/list-conversations"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/conversations/{id}","title":"Get a conversation","icon":"comments","href":"/api-reference/voice/conversations/get-a-conversation"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/conversations/{id}/calls","title":"List a conversation's calls","icon":"comments","href":"/api-reference/voice/conversations/list-a-conversations-calls"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/conversations/{id}/artifacts","title":"Get conversation artifacts","icon":"comments","href":"/api-reference/voice/conversations/get-conversation-artifacts"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/conversations/{id}/metrics","title":"Get conversation metrics","icon":"comments","href":"/api-reference/voice/conversations/get-conversation-metrics"}]},{"group":"Calls","icon":"phone","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/calls","title":"List calls","icon":"phone","href":"/api-reference/voice/calls/list-calls"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/calls/{id}","title":"Get a call","icon":"phone","href":"/api-reference/voice/calls/get-a-call"}]},{"group":"Campaigns","icon":"bullhorn","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/campaigns","title":"List campaigns","icon":"bullhorn","href":"/api-reference/voice/campaigns/list-campaigns"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/campaigns","title":"Create a campaign","icon":"bullhorn","href":"/api-reference/voice/campaigns/create-a-campaign"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/campaigns/{id}","title":"Get a campaign","icon":"bullhorn","href":"/api-reference/voice/campaigns/get-a-campaign"},{"openapi":"api-reference/voice-openapi.json PUT /v1/projects/{projectId}/campaigns/{id}","title":"Update a campaign","icon":"bullhorn","href":"/api-reference/voice/campaigns/update-a-campaign"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/campaigns/{id}","title":"Delete a campaign","icon":"bullhorn","href":"/api-reference/voice/campaigns/delete-a-campaign"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/campaigns/{id}/start","title":"Start a campaign","icon":"bullhorn","href":"/api-reference/voice/campaigns/start-a-campaign"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/campaigns/{id}/cancel","title":"Cancel a campaign","icon":"bullhorn","href":"/api-reference/voice/campaigns/cancel-a-campaign"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/campaigns/{id}/items","title":"Add contacts to a campaign","icon":"bullhorn","href":"/api-reference/voice/campaigns/add-contacts-to-a-campaign"},{"openapi":"api-reference/voice-openapi.json PUT /v1/projects/{projectId}/campaigns/{id}/items/{itemId}","title":"Update a campaign contact","icon":"bullhorn","href":"/api-reference/voice/campaigns/update-a-campaign-contact"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/campaigns/{id}/items/{itemId}","title":"Remove a campaign contact","icon":"bullhorn","href":"/api-reference/voice/campaigns/remove-a-campaign-contact"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/campaigns/{id}/clone","title":"Clone a campaign","icon":"bullhorn","href":"/api-reference/voice/campaigns/clone-a-campaign"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/campaigns/{id}/analytics","title":"Get campaign progress","icon":"bullhorn","href":"/api-reference/voice/campaigns/get-campaign-progress"}]},{"group":"Telephony","icon":"tower-broadcast","pages":[{"group":"Phone numbers","icon":"hashtag","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/phone-numbers","title":"List phone numbers","icon":"hashtag","href":"/api-reference/voice/phone-numbers/list-phone-numbers"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/phone-numbers","title":"Create a phone number","icon":"hashtag","href":"/api-reference/voice/phone-numbers/create-a-phone-number"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/phone-numbers/{id}","title":"Get a phone number","icon":"hashtag","href":"/api-reference/voice/phone-numbers/get-a-phone-number"},{"openapi":"api-reference/voice-openapi.json PUT /v1/projects/{projectId}/phone-numbers/{id}","title":"Update a phone number","icon":"hashtag","href":"/api-reference/voice/phone-numbers/update-a-phone-number"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/phone-numbers/{id}","title":"Delete a phone number","icon":"hashtag","href":"/api-reference/voice/phone-numbers/delete-a-phone-number"}]},{"group":"Inbound SIP trunks","icon":"arrow-right-to-bracket","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/telephony/sip-trunks","title":"List inbound SIP trunks","icon":"arrow-right-to-bracket","href":"/api-reference/voice/inbound-sip-trunks/list-inbound-sip-trunks"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/telephony/sip-trunks","title":"Create an inbound SIP trunk","icon":"arrow-right-to-bracket","href":"/api-reference/voice/inbound-sip-trunks/create-an-inbound-sip-trunk"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/telephony/sip-trunks/{id}","title":"Get an inbound SIP trunk","icon":"arrow-right-to-bracket","href":"/api-reference/voice/inbound-sip-trunks/get-an-inbound-sip-trunk"},{"openapi":"api-reference/voice-openapi.json PUT /v1/projects/{projectId}/telephony/sip-trunks/{id}","title":"Update an inbound SIP trunk","icon":"arrow-right-to-bracket","href":"/api-reference/voice/inbound-sip-trunks/update-an-inbound-sip-trunk"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/telephony/sip-trunks/{id}","title":"Delete an inbound SIP trunk","icon":"arrow-right-to-bracket","href":"/api-reference/voice/inbound-sip-trunks/delete-an-inbound-sip-trunk"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/telephony/sip-trunks/{id}/activate","title":"Activate an inbound SIP trunk","icon":"arrow-right-to-bracket","href":"/api-reference/voice/inbound-sip-trunks/activate-an-inbound-sip-trunk"}]},{"group":"Outbound SIP trunks","icon":"arrow-right-from-bracket","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/telephony/outbound-trunks","title":"List outbound SIP trunks","icon":"arrow-right-from-bracket","href":"/api-reference/voice/outbound-sip-trunks/list-outbound-sip-trunks"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/telephony/outbound-trunks","title":"Create an outbound SIP trunk","icon":"arrow-right-from-bracket","href":"/api-reference/voice/outbound-sip-trunks/create-an-outbound-sip-trunk"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/telephony/outbound-trunks/{id}","title":"Get an outbound SIP trunk","icon":"arrow-right-from-bracket","href":"/api-reference/voice/outbound-sip-trunks/get-an-outbound-sip-trunk"},{"openapi":"api-reference/voice-openapi.json PUT /v1/projects/{projectId}/telephony/outbound-trunks/{id}","title":"Update an outbound SIP trunk","icon":"arrow-right-from-bracket","href":"/api-reference/voice/outbound-sip-trunks/update-an-outbound-sip-trunk"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/telephony/outbound-trunks/{id}","title":"Delete an outbound SIP trunk","icon":"arrow-right-from-bracket","href":"/api-reference/voice/outbound-sip-trunks/delete-an-outbound-sip-trunk"}]}]},{"group":"Evals","icon":"flask-vial","pages":[{"group":"Suites","icon":"layer-group","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-suites","title":"List eval suites","icon":"layer-group","href":"/api-reference/voice/eval-suites/list-eval-suites"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/eval-suites","title":"Create an eval suite","icon":"layer-group","href":"/api-reference/voice/eval-suites/create-an-eval-suite"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-suites/{id}","title":"Get an eval suite","icon":"layer-group","href":"/api-reference/voice/eval-suites/get-an-eval-suite"},{"openapi":"api-reference/voice-openapi.json PATCH /v1/projects/{projectId}/eval-suites/{id}","title":"Update an eval suite","icon":"layer-group","href":"/api-reference/voice/eval-suites/update-an-eval-suite"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/eval-suites/{id}","title":"Delete an eval suite","icon":"layer-group","href":"/api-reference/voice/eval-suites/delete-an-eval-suite"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-suites/{id}/compare","title":"Compare submissions on a suite","icon":"layer-group","href":"/api-reference/voice/eval-suites/compare-submissions-on-a-suite"}]},{"group":"Test cases","icon":"list-check","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-test-cases","title":"List eval test cases","icon":"list-check","href":"/api-reference/voice/eval-test-cases/list-eval-test-cases"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-test-cases/{id}","title":"Get an eval test case","icon":"list-check","href":"/api-reference/voice/eval-test-cases/get-an-eval-test-case"}]},{"group":"Scenarios","icon":"masks-theater","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-scenarios","title":"List eval scenarios","icon":"masks-theater","href":"/api-reference/voice/eval-scenarios/list-eval-scenarios"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-scenarios/{id}","title":"Get an eval scenario","icon":"masks-theater","href":"/api-reference/voice/eval-scenarios/get-an-eval-scenario"}]},{"group":"Judges","icon":"scale-balanced","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-judges","title":"List eval judges","icon":"scale-balanced","href":"/api-reference/voice/eval-judges/list-eval-judges"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/eval-judges","title":"Create an eval judge","icon":"scale-balanced","href":"/api-reference/voice/eval-judges/create-an-eval-judge"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-judges/templates","title":"List judge prompt templates","icon":"scale-balanced","href":"/api-reference/voice/eval-judges/list-judge-prompt-templates"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-judges/{id}","title":"Get an eval judge","icon":"scale-balanced","href":"/api-reference/voice/eval-judges/get-an-eval-judge"},{"openapi":"api-reference/voice-openapi.json PATCH /v1/projects/{projectId}/eval-judges/{id}","title":"Update an eval judge","icon":"scale-balanced","href":"/api-reference/voice/eval-judges/update-an-eval-judge"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/eval-judges/{id}","title":"Delete an eval judge","icon":"scale-balanced","href":"/api-reference/voice/eval-judges/delete-an-eval-judge"}]},{"group":"Runs","icon":"play","pages":[{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{agentId}/eval-submissions","title":"List an agent's eval runs","icon":"play","href":"/api-reference/voice/eval-submissions/list-an-agents-eval-runs"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{agentId}/eval-submissions","title":"Create an eval run","icon":"play","href":"/api-reference/voice/eval-submissions/create-an-eval-run"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}","title":"Get an eval run","icon":"play","href":"/api-reference/voice/eval-submissions/get-an-eval-run"},{"openapi":"api-reference/voice-openapi.json PATCH /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}","title":"Update a paused eval run","icon":"play","href":"/api-reference/voice/eval-submissions/update-a-paused-eval-run"},{"openapi":"api-reference/voice-openapi.json DELETE /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}","title":"Delete an eval run","icon":"play","href":"/api-reference/voice/eval-submissions/delete-an-eval-run"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/verdicts","title":"List an eval run's verdicts","icon":"play","href":"/api-reference/voice/eval-submissions/list-an-eval-runs-verdicts"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/call-results","title":"List an eval run's calls","icon":"play","href":"/api-reference/voice/eval-submissions/list-an-eval-runs-calls"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/report","title":"Get an eval run's report","icon":"play","href":"/api-reference/voice/eval-submissions/get-an-eval-runs-report"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/improve-candidates","title":"Get the failed checks of an eval run and the calls to read for them","icon":"play","href":"/api-reference/voice/eval-submissions/get-the-failed-checks-of-an-eval-run-and-the-calls-to-read-for-them"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/run","title":"Start or resume an eval run","icon":"play","href":"/api-reference/voice/eval-submissions/start-or-resume-an-eval-run"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/pause","title":"Pause an eval run","icon":"play","href":"/api-reference/voice/eval-submissions/pause-an-eval-run"},{"openapi":"api-reference/voice-openapi.json POST /v1/projects/{projectId}/agents/{agentId}/run-all-evals","title":"Start all of an agent's paused eval runs","icon":"play","href":"/api-reference/voice/eval-submissions/start-all-of-an-agents-paused-eval-runs"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-submissions","title":"List all eval runs in a project","icon":"play","href":"/api-reference/voice/eval-submissions/list-all-eval-runs-in-a-project"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-submissions/{id}","title":"Get an eval run by id","icon":"play","href":"/api-reference/voice/eval-submissions/get-an-eval-run-by-id"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-submissions/{id}/status","title":"Get an eval run's status","icon":"play","href":"/api-reference/voice/eval-submissions/get-an-eval-runs-status"},{"openapi":"api-reference/voice-openapi.json GET /v1/projects/{projectId}/eval-submissions/{id}/verdicts","title":"List an eval run's verdicts by run id","icon":"play","href":"/api-reference/voice/eval-submissions/list-an-eval-runs-verdicts-by-run-id"}]}]}]},{"group":"Support API","pages":[{"group":"AI service","icon":"wand-magic-sparkles","pages":[{"openapi":"api-reference/support-openapi.json GET /api/integration/ai_service/ticket/{ticket_id}/details","title":"Get ticket details","icon":"wand-magic-sparkles","href":"/api-reference/support/ai-service/get-ticket-details"},{"openapi":"api-reference/support-openapi.json POST /api/integration/ai_service/ticket/{ticket_id}/voice_handoff","title":"Request a voice call","icon":"wand-magic-sparkles","href":"/api-reference/support/ai-service/request-a-voice-call"},{"openapi":"api-reference/support-openapi.json GET /api/integration/ai_service/customer/{customer_id}/details","title":"Get customer details","icon":"wand-magic-sparkles","href":"/api-reference/support/ai-service/get-customer-details"},{"openapi":"api-reference/support-openapi.json GET /api/integration/ai_service/customer/{customer_id}/tickets","title":"List a customer's tickets","icon":"wand-magic-sparkles","href":"/api-reference/support/ai-service/list-a-customers-tickets"},{"openapi":"api-reference/support-openapi.json POST /api/integration/ai_service/customer/send","title":"Send a customer message","icon":"wand-magic-sparkles","href":"/api-reference/support/ai-service/send-a-customer-message"}]},{"group":"Messages","icon":"message","pages":[{"openapi":"api-reference/support-openapi.json POST /api/message/send","title":"Send a message on a ticket","icon":"message","href":"/api-reference/support/messages/send-a-message-on-a-ticket"},{"openapi":"api-reference/support-openapi.json POST /api/attachment/upload","title":"Upload an attachment","icon":"message","href":"/api-reference/support/messages/upload-an-attachment"}]},{"group":"Customers","icon":"users","pages":[{"openapi":"api-reference/support-openapi.json POST /api/customer/create","title":"Create a customer","icon":"users","href":"/api-reference/support/customers/create-a-customer"},{"openapi":"api-reference/support-openapi.json POST /api/customer/delete","title":"Delete a customer","icon":"users","href":"/api-reference/support/customers/delete-a-customer"},{"openapi":"api-reference/support-openapi.json GET /api/customer/{customer_id}","title":"Get a customer","icon":"users","href":"/api-reference/support/customers/get-a-customer"},{"openapi":"api-reference/support-openapi.json POST /api/customer/edit","title":"Update a customer","icon":"users","href":"/api-reference/support/customers/update-a-customer"},{"openapi":"api-reference/support-openapi.json POST /api/customer/tags_set","title":"Set a customer's tags","icon":"users","href":"/api-reference/support/customers/set-a-customers-tags"},{"openapi":"api-reference/support-openapi.json GET /api/customer/list","title":"List customers","icon":"users","href":"/api-reference/support/customers/list-customers"},{"openapi":"api-reference/support-openapi.json GET /api/custom-attributes/definitions/list","title":"List custom attribute definitions","icon":"users","href":"/api-reference/support/customers/list-custom-attribute-definitions"},{"openapi":"api-reference/support-openapi.json GET /api/custom-attributes/values","title":"Get custom attribute values","icon":"users","href":"/api-reference/support/customers/get-custom-attribute-values"},{"openapi":"api-reference/support-openapi.json POST /api/custom-attributes/values/set","title":"Set a custom attribute value","icon":"users","href":"/api-reference/support/customers/set-a-custom-attribute-value"}]},{"group":"Tickets","icon":"ticket","pages":[{"openapi":"api-reference/support-openapi.json POST /api/ticket/category_set","title":"Set a ticket's category","icon":"ticket","href":"/api-reference/support/tickets/set-a-tickets-category"},{"openapi":"api-reference/support-openapi.json POST /api/ticket/status_set","title":"Set a ticket's status","icon":"ticket","href":"/api-reference/support/tickets/set-a-tickets-status"},{"openapi":"api-reference/support-openapi.json POST /api/ticket/tags_change","title":"Add or remove ticket tags","icon":"ticket","href":"/api-reference/support/tickets/add-or-remove-ticket-tags"},{"openapi":"api-reference/support-openapi.json POST /api/ticket/tags_set","title":"Set a ticket's tags","icon":"ticket","href":"/api-reference/support/tickets/set-a-tickets-tags"},{"openapi":"api-reference/support-openapi.json POST /api/ticket/assign/v2","title":"Assign a ticket","icon":"ticket","href":"/api-reference/support/tickets/assign-a-ticket"},{"openapi":"api-reference/support-openapi.json GET /api/ticket_priority/list","title":"List ticket priorities","icon":"ticket","href":"/api-reference/support/tickets/list-ticket-priorities"},{"openapi":"api-reference/support-openapi.json GET /api/ticket_status/list","title":"List ticket statuses","icon":"ticket","href":"/api-reference/support/tickets/list-ticket-statuses"},{"openapi":"api-reference/support-openapi.json GET /api/ticket_category/list","title":"List ticket categories","icon":"ticket","href":"/api-reference/support/tickets/list-ticket-categories"},{"openapi":"api-reference/support-openapi.json GET /api/agent/list","title":"List agents","icon":"ticket","href":"/api-reference/support/tickets/list-agents"},{"openapi":"api-reference/support-openapi.json GET /api/team/list","title":"List teams","icon":"ticket","href":"/api-reference/support/tickets/list-teams"},{"openapi":"api-reference/support-openapi.json GET /api/tag/list","title":"List tags","icon":"ticket","href":"/api-reference/support/tickets/list-tags"}]},{"group":"Knowledge base","icon":"book-open","pages":[{"openapi":"api-reference/support-openapi.json POST /api/kb/articles/create","title":"Create an article","icon":"book-open","href":"/api-reference/support/knowledge-base/create-an-article"},{"openapi":"api-reference/support-openapi.json DELETE /api/kb/articles/delete","title":"Delete an article","icon":"book-open","href":"/api-reference/support/knowledge-base/delete-an-article"},{"openapi":"api-reference/support-openapi.json GET /api/kb/articles/detail","title":"Get an article","icon":"book-open","href":"/api-reference/support/knowledge-base/get-an-article"},{"openapi":"api-reference/support-openapi.json GET /api/kb/meta","title":"Get knowledge base metadata","icon":"book-open","href":"/api-reference/support/knowledge-base/get-knowledge-base-metadata"},{"openapi":"api-reference/support-openapi.json POST /api/kb/articles/list","title":"List articles","icon":"book-open","href":"/api-reference/support/knowledge-base/list-articles"},{"openapi":"api-reference/support-openapi.json PATCH /api/kb/articles/update","title":"Update an article","icon":"book-open","href":"/api-reference/support/knowledge-base/update-an-article"},{"openapi":"api-reference/support-openapi.json POST /api/kb/articles/upload","title":"Upload articles from a file","icon":"book-open","href":"/api-reference/support/knowledge-base/upload-articles-from-a-file"}]},{"group":"Webhooks","icon":"bolt","pages":[{"openapi":"api-reference/support-openapi.json POST /api/webhooks/create","title":"Create a webhook","icon":"bolt","href":"/api-reference/support/webhooks/create-a-webhook"},{"openapi":"api-reference/support-openapi.json GET /api/webhooks/{webhook_id}","title":"Get a webhook","icon":"bolt","href":"/api-reference/support/webhooks/get-a-webhook"},{"openapi":"api-reference/support-openapi.json DELETE /api/webhooks/{webhook_id}","title":"Delete a webhook","icon":"bolt","href":"/api-reference/support/webhooks/delete-a-webhook"},{"openapi":"api-reference/support-openapi.json GET /api/webhooks/events/list","title":"List webhook events","icon":"bolt","href":"/api-reference/support/webhooks/list-webhook-events"},{"openapi":"api-reference/support-openapi.json GET /api/webhooks/list","title":"List webhooks","icon":"bolt","href":"/api-reference/support/webhooks/list-webhooks"},{"openapi":"api-reference/support-openapi.json POST /api/webhooks/edit","title":"Update a webhook","icon":"bolt","href":"/api-reference/support/webhooks/update-a-webhook"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Get an agent - Clarity Support Docs","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-NXj-Rqjv.js","utils-m0thOP-_.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D13EKcfm.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema--XTdfsEb.js","snippetPresets-D3s4lmAH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-ChURybxL.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DL8CiXq2.js","shallow-DI2-YB2E.js","getApiPlaygroundDisplay-DxbW7b_y.js","CodeSnippet-CiNYS0pP.js","CodeSnippets-BT87bThu.js","Page-DSpdRuhM.js","getPastedJson-F_g_IrFQ.js","icon-CCIG5BAs.js","MethodPill-DY3E0jwx.js","DuplicateIcon-BN88xnEg.js","createIcon-VCCc5HO5.js","DynamicMarkdown-CaSwclgK.js","SectionHeading-DXV8nWhc.js","axios-vUo_bRtp.js","Markdown-CV32Re6G.js","clsx-5ydLOnhV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-pFDdfjRe.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BUGO5bPJ.js"]}