{
"type": "https://docs.kallabot.com/errors/unsupported_api_version",
"title": "Kallabot-Version names a version this API doesn't have",
"status": 400,
"code": "unsupported_api_version",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/unauthenticated",
"title": "Missing or invalid API key",
"status": 401,
"code": "unauthenticated",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/insufficient_scope",
"title": "The key lacks a required scope",
"status": 403,
"code": "insufficient_scope",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/revision_conflict",
"title": "Conflicts with the resource's current state",
"status": 409,
"code": "revision_conflict",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/invalid_request",
"title": "One or more fields are not valid",
"status": 422,
"code": "invalid_request",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/sdk_version_unsupported",
"title": "This SDK release is switched off: upgrade the SDK",
"status": 426,
"code": "sdk_version_unsupported",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/internal_error",
"title": "Something went wrong on our side",
"status": 500,
"code": "internal_error",
"retryable": true
}
Agents
Validate an agent configuration
Checks a configuration exactly as saving it would, without saving anything. Returns valid, every finding with its path, and resolved: the configuration with all defaults applied. Pass agent_id when the configuration is an edit of an existing agent.
{
"type": "https://docs.kallabot.com/errors/unsupported_api_version",
"title": "Kallabot-Version names a version this API doesn't have",
"status": 400,
"code": "unsupported_api_version",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/unauthenticated",
"title": "Missing or invalid API key",
"status": 401,
"code": "unauthenticated",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/insufficient_scope",
"title": "The key lacks a required scope",
"status": 403,
"code": "insufficient_scope",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/revision_conflict",
"title": "Conflicts with the resource's current state",
"status": 409,
"code": "revision_conflict",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/invalid_request",
"title": "One or more fields are not valid",
"status": 422,
"code": "invalid_request",
"retryable": false
}
{
"type": "https://docs.kallabot.com/errors/sdk_version_unsupported",
"title": "This SDK release is switched off: upgrade the SDK",
"status": 426,
"code": "sdk_version_unsupported",
"retryable": false
}
An API key from Settings → API keys, sent as Authorization: Bearer kb_live_…. A workspace key starts kb_; a personal key starts kbp_ and acts as its owner.
The API version to answer as, a date (YYYY-MM-DD). Leave it out for the current version (2026-11-07). An unknown version is refused with 400 unsupported_api_version.
The agent this config is an edit of. A knowledge source it already attaches that has since been deleted from the library is then dropped with a warning, as saving it would; without it, such an id is refused like any unknown one.
The configuration with every server default applied — what would be saved.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Kallabot Docs","description":"Kallabot builds AI agents that answer and make phone calls and reply on WhatsApp, Messenger, Instagram and website chat. Guides for owners, and the Kallabot API for developers.","colors":{"primary":"#111216","light":"#eeece7","dark":"#ff5a1f"},"logo":{"light":"https://mintcdn.com/kallabot/0ctdxcpeBH5ZeZjz/logo/light.svg?fit=max\u0026auto=format\u0026n=0ctdxcpeBH5ZeZjz\u0026q=85\u0026s=e5db5ce99f943a157b87e51aa1313e2b","dark":"https://mintcdn.com/kallabot/0ctdxcpeBH5ZeZjz/logo/dark.svg?fit=max\u0026auto=format\u0026n=0ctdxcpeBH5ZeZjz\u0026q=85\u0026s=186c1d6d45dcd7891e1aaeacc7068296","href":"https://kallabot.com"},"favicon":"https://mintcdn.com/kallabot/0ctdxcpeBH5ZeZjz/favicon.svg?fit=max\u0026auto=format\u0026n=0ctdxcpeBH5ZeZjz\u0026q=85\u0026s=bf739e78f0a54ce44a47e962530ed7e5","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python"]}},"appearance":{"default":"dark"},"background":{"color":{"light":"#fbfaf8","dark":"#0a0b0e"}},"navbar":{"links":[{"href":"https://kallabot.com","label":"Open the app"},{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Get API key","href":"https://kallabot.com/settings?section=api-keys"}},"footer":{"links":[{"header":"Kallabot","items":[{"label":"Open the app","href":"https://kallabot.com"},{"label":"Workflows","href":"https://workflows.kallabot.com"}]},{"header":"Help","items":[{"label":"[email protected]","href":"mailto:[email protected]"},{"label":"Changelog","href":"/changelog"}]}]},"search":{"prompt":"Search Kallabot docs"},"seo":{"metatags":{"og:site_name":"Kallabot Docs","og:image":"https://docs.kallabot.com/images/og.png","twitter:card":"summary_large_image"},"indexing":"navigable"},"fonts":{"heading":{"family":"Host Grotesk","weight":500},"body":{"family":"Geist"}},"icons":{"library":"lucide"},"styling":{"eyebrows":"section","codeblocks":"dark","latex":false},"contextual":{"options":["copy","view","download-spec","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Open Kallabot","icon":"phone","href":"https://kallabot.com"},{"anchor":"Email support","icon":"mail","href":"mailto:[email protected]"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kallabot","hasAudioNarration":false,"actualSubdomain":"kallabot","customDomains":["docs.kallabot.com"],"gitSource":{"type":"github","owner":"abdulrahmanmajid","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6aef7071201ab1024ff29f85","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API reference","count":199},{"language":"default","tag":"Endpoints","count":198},{"language":"default","tag":"Webhooks","count":50},{"language":"default","tag":"Guides","count":25},{"language":"default","tag":"Numbers","count":25},{"language":"default","tag":"Developers","count":19},{"language":"default","tag":"Calls","count":19},{"language":"default","tag":"Tools","count":18},{"language":"default","tag":"Knowledge","count":17},{"language":"default","tag":"Agents","count":15}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"llms-txt-v2","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":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/agents/validate-an-agent-configuration","slug":"/api-reference/agents/validate-an-agent-configuration","pageMetadata":{"title":"Validate an agent configuration","description":"Checks a configuration exactly as saving it would, without saving anything. Returns `valid`, every finding with its path, and `resolved`: the configuration with all defaults applied. Pass `agent_id` when the configuration is an edit of an existing agent.\n\n**Scopes:** `agent:read`","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/validate","href":"/api-reference/agents/validate-an-agent-configuration","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Checks a configuration exactly as saving it would, without saving anything. Returns \", _jsx(_components.code, {\n children: \"valid\"\n }), \", every finding with its path, and \", _jsx(_components.code, {\n children: \"resolved\"\n }), \": the configuration with all defaults applied. Pass \", _jsx(_components.code, {\n children: \"agent_id\"\n }), \" when the configuration is an edit of an existing agent.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Scopes:\"\n }), \" \", _jsx(_components.code, {\n children: \"agent:read\"\n })]\n })]\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":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Validate an agent configuration","description":"Checks a configuration exactly as saving it would, without saving anything. Returns `valid`, every finding with its path, and `resolved`: the configuration with all defaults applied. Pass `agent_id` when the configuration is an edit of an existing agent.\n\n**Scopes:** `agent:read`","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/validate","href":"/api-reference/agents/validate-an-agent-configuration","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Agents"],"summary":"Validate an agent configuration","description":"Checks a configuration exactly as saving it would, without saving anything. Returns `valid`, every finding with its path, and `resolved`: the configuration with all defaults applied. Pass `agent_id` when the configuration is an edit of an existing agent.\n\n**Scopes:** `agent:read`","operationId":"validateAgent","parameters":["a02d2d09-ef4c-423c-8ea9-2cbb2c230361"],"requestBody":"49446501-9724-4d43-b6bd-c0f115d7d40d","responses":{"200":"c3276786-5d3b-4833-95d9-94dcd38c1f12","400":"442ba535-118c-4aed-95d4-a90308956fa5","401":"6f16658b-a25f-4def-a79c-5616c09ce6a1","403":"12dddddd-ef51-4133-ae4f-1249a8dcdfa1","409":"ff73cf63-fb98-4fe6-88e0-e54db3aeb55b","422":"398345d3-97e8-44ce-9428-ddd0ab684ec1","426":"9715dbd0-e63d-4bdb-9d26-9806da93f646","429":"63efa3df-ae1a-4380-b605-421714cd6071","500":"912cefc1-8451-4693-82eb-9b73f5bb8564"},"security":["b41c6b50-3e07-461e-a1ac-82939f68846f"],"x-required-scopes":["agent:read"],"method":"post","type":"path","servers":["fde32f83-367a-4ba5-9cbd-b9de50cd5d65"],"path":"/v1/agents/validate","baseUrlOptions":["https://api.kallabot.com"],"title":"Validate an agent configuration","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a02d2d09-ef4c-423c-8ea9-2cbb2c230361":{"name":"Kallabot-Version","in":"header","required":false,"description":"The API version to answer as, a date (`YYYY-MM-DD`). Leave it out for the current version (`2026-11-07`). An unknown version is refused with 400 `unsupported_api_version`.","schema":{"type":"string","enum":["2026-11-07"],"example":"2026-11-07","isRequired":false,"description":"The API version to answer as, a date (`YYYY-MM-DD`). Leave it out for the current version (`2026-11-07`). An unknown version is refused with 400 `unsupported_api_version`.","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"config":{"properties":{"name":{"type":"string","title":"Name","default":"Inline agent","uniqueKey":"config.name","typeLabel":"string"},"prompt":{"type":"string","title":"Prompt","description":"The agent's persona, task and rules. The voice envelope is added automatically.","default":"You are a friendly voice assistant on a phone call.","uniqueKey":"config.prompt","typeLabel":"string"},"greeting":{"oneOf":[{"type":"string","title":"Greeting","description":"Spoken on answer. With greeting_mode 'fixed' this exact text is used; with 'dynamic' it is the brief the model opens from. Null always generates.","default":"Hi! How can I help?","uniqueKey":"config.greeting.oneOf.0","typeLabel":"string"},{"type":"null","title":"Greeting","description":"Spoken on answer. With greeting_mode 'fixed' this exact text is used; with 'dynamic' it is the brief the model opens from. Null always generates.","default":"Hi! How can I help?","uniqueKey":"config.greeting.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.greeting","typeLabel":"string | null"},"outbound_greeting":{"oneOf":[{"type":"string","title":"Outbound Greeting","description":"Spoken instead of `greeting` on calls the agent places. The first line sets the role the model keeps playing: an inbound caller who hears an outbound opener gets 'thanks for picking up' next. Empty uses `greeting` for both directions.","uniqueKey":"config.outbound_greeting.oneOf.0","typeLabel":"string"},{"type":"null","title":"Outbound Greeting","description":"Spoken instead of `greeting` on calls the agent places. The first line sets the role the model keeps playing: an inbound caller who hears an outbound opener gets 'thanks for picking up' next. Empty uses `greeting` for both directions.","uniqueKey":"config.outbound_greeting.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.outbound_greeting","typeLabel":"string | null"},"purpose":{"oneOf":[{"type":"string","title":"Purpose","description":"Why the agent places outbound calls, written the way it would say it (\"you're calling from the Dubai property desk to see if they're looking to buy or rent\"). Told only on calls the agent places, so it can answer \"why are you calling me?\" honestly; a `purpose` call variable overrides it per call. Empty: a plain follow-up from the business.","maxLength":300,"uniqueKey":"config.purpose.oneOf.0","typeLabel":"string"},{"type":"null","title":"Purpose","description":"Why the agent places outbound calls, written the way it would say it (\"you're calling from the Dubai property desk to see if they're looking to buy or rent\"). Told only on calls the agent places, so it can answer \"why are you calling me?\" honestly; a `purpose` call variable overrides it per call. Empty: a plain follow-up from the business.","uniqueKey":"config.purpose.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.purpose","typeLabel":"string | null"},"greeting_mode":{"oneOf":[{"type":"string","title":"Greeting Mode","description":"fixed (default): the same words every call — one round trip faster, and the caller hears audio sooner. dynamic: the model writes the opener from `greeting` as a brief plus who is calling and why, so a repeat caller is not greeted like a stranger. Costs one inference before the first word.","enum":["fixed","dynamic"],"uniqueKey":"config.greeting_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Greeting Mode","description":"fixed (default): the same words every call — one round trip faster, and the caller hears audio sooner. dynamic: the model writes the opener from `greeting` as a brief plus who is calling and why, so a repeat caller is not greeted like a stranger. Costs one inference before the first word.","uniqueKey":"config.greeting_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.greeting_mode","typeLabel":"enum\u003cstring> | null"},"language":{"type":"string","title":"Language","default":"en","uniqueKey":"config.language","typeLabel":"string"},"timezone":{"oneOf":[{"type":"string","title":"Timezone","description":"IANA zone used when the agent says the time.","uniqueKey":"config.timezone.oneOf.0","typeLabel":"string"},{"type":"null","title":"Timezone","description":"IANA zone used when the agent says the time.","uniqueKey":"config.timezone.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.timezone","typeLabel":"string | null"},"stt":{"properties":{"provider":{"oneOf":[{"type":"string","title":"Provider","description":"soniox | deepgram","uniqueKey":"config.stt.provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Provider","description":"soniox | deepgram","uniqueKey":"config.stt.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.provider","typeLabel":"string | null"},"model":{"oneOf":[{"type":"string","title":"Model","description":"See GET /v1/providers for valid ids.","uniqueKey":"config.stt.model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model","description":"See GET /v1/providers for valid ids.","uniqueKey":"config.stt.model.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.model","typeLabel":"string | null"},"language":{"oneOf":[{"type":"string","title":"Language","description":"ISO code, e.g. 'en'. Single language is most accurate.","uniqueKey":"config.stt.language.oneOf.0","typeLabel":"string"},{"type":"null","title":"Language","description":"ISO code, e.g. 'en'. Single language is most accurate.","uniqueKey":"config.stt.language.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.language","typeLabel":"string | null"},"languages":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.stt.languages.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Languages","description":"Additional expected languages. Multiple languages reduce robustness.","uniqueKey":"config.stt.languages.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Languages","description":"Additional expected languages. Multiple languages reduce robustness.","uniqueKey":"config.stt.languages.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.languages","typeLabel":"string[] | null"},"strict_language":{"oneOf":[{"type":"boolean","title":"Strict Language","description":"Confine output to the languages above. Fixes accented English coming back transliterated into another script. Strongly recommended.","uniqueKey":"config.stt.strict_language.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Strict Language","description":"Confine output to the languages above. Fixes accented English coming back transliterated into another script. Strongly recommended.","uniqueKey":"config.stt.strict_language.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.strict_language","typeLabel":"boolean | null"},"context":{"oneOf":[{"type":"object","title":"SonioxContext","description":"Domain context. The single largest accuracy lever Soniox exposes.\n\nTelling the model what the call is about, and which words to expect, fixes\nthe class of error where a name or product comes back as a similar-sounding\ncommon word. Capped at 8,000 tokens by the provider.","properties":{"general":{"oneOf":[{"type":"object","title":"General","description":"Short key/value facts: domain, topic, business name, location. Ten or fewer.","example":{"domain":"Dental clinic","location":"Dubai","setting":"Phone booking"},"additionalProperties":{"type":"string","uniqueKey":"config.stt.context.oneOf.0.general.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"config.stt.context.oneOf.0.general.oneOf.0","typeLabel":"General · object"},{"type":"null","title":"General","description":"Short key/value facts: domain, topic, business name, location. Ten or fewer.","example":{"domain":"Dental clinic","location":"Dubai","setting":"Phone booking"},"uniqueKey":"config.stt.context.oneOf.0.general.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.context.oneOf.0.general","typeLabel":"General · object | null"},"text":{"oneOf":[{"type":"string","title":"Text","description":"Longer background prose. Less influential than general or terms.","uniqueKey":"config.stt.context.oneOf.0.text.oneOf.0","typeLabel":"string"},{"type":"null","title":"Text","description":"Longer background prose. Less influential than general or terms.","uniqueKey":"config.stt.context.oneOf.0.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.context.oneOf.0.text","typeLabel":"string | null"},"terms":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.stt.context.oneOf.0.terms.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Terms","description":"Words to expect: product names, staff names, medications, jargon.","example":["Invisalign","Dr Al Mansouri","root canal"],"uniqueKey":"config.stt.context.oneOf.0.terms.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Terms","description":"Words to expect: product names, staff names, medications, jargon.","example":["Invisalign","Dr Al Mansouri","root canal"],"uniqueKey":"config.stt.context.oneOf.0.terms.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.context.oneOf.0.terms","typeLabel":"string[] | null"}},"uniqueKey":"config.stt.context.oneOf.0","typeLabel":"SonioxContext · object"},{"type":"null","uniqueKey":"config.stt.context.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.context","typeLabel":"SonioxContext · object | null"},"language_identification":{"oneOf":[{"type":"boolean","title":"Language Identification","description":"Soniox: tag every word with the language it was spoken in. On by default; this is what lets a caller switch languages mid-sentence.","uniqueKey":"config.stt.language_identification.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Language Identification","description":"Soniox: tag every word with the language it was spoken in. On by default; this is what lets a caller switch languages mid-sentence.","uniqueKey":"config.stt.language_identification.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.language_identification","typeLabel":"boolean | null"},"language_focus":{"oneOf":[{"type":"boolean","title":"Language Focus","description":"Soniox: once the caller's language is clear, narrow the hints to it. Off by default — narrowing turns anyone else's language (an Urdu side conversation on an English call) into wrong-script English.","uniqueKey":"config.stt.language_focus.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Language Focus","description":"Soniox: once the caller's language is clear, narrow the hints to it. Off by default — narrowing turns anyone else's language (an Urdu side conversation on an English call) into wrong-script English.","uniqueKey":"config.stt.language_focus.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.language_focus","typeLabel":"boolean | null"},"voice_focus":{"oneOf":[{"type":"string","title":"Voice Focus","description":"AssemblyAI: isolate the primary voice. near-field for handsets/headsets.","enum":["near-field","far-field"],"uniqueKey":"config.stt.voice_focus.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Voice Focus","description":"AssemblyAI: isolate the primary voice. near-field for handsets/headsets.","uniqueKey":"config.stt.voice_focus.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.voice_focus","typeLabel":"enum\u003cstring> | null"},"mode":{"oneOf":[{"type":"string","title":"Mode","description":"AssemblyAI U3 Pro latency/accuracy preset (server default balanced).","enum":["min_latency","balanced","max_accuracy"],"uniqueKey":"config.stt.mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Mode","description":"AssemblyAI U3 Pro latency/accuracy preset (server default balanced).","uniqueKey":"config.stt.mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.mode","typeLabel":"enum\u003cstring> | null"},"endpointing":{"oneOf":[{"type":"object","title":"Endpointing","description":"Soniox semantic endpointing.\n\nOnly honoured when ``turn.strategy = \"provider\"``. With the default\n``smart_turn`` strategy Pipecat disables provider endpointing entirely, and\nthese fields are inert.","properties":{"latency_level":{"oneOf":[{"type":"integer","title":"Latency Level","description":"0 default, 3 most aggressive. Higher finalises sooner and may split long speech.","maximum":3,"minimum":0,"uniqueKey":"config.stt.endpointing.oneOf.0.latency_level.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Latency Level","description":"0 default, 3 most aggressive. Higher finalises sooner and may split long speech.","uniqueKey":"config.stt.endpointing.oneOf.0.latency_level.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.endpointing.oneOf.0.latency_level","typeLabel":"integer | null"},"sensitivity":{"oneOf":[{"type":"number","title":"Sensitivity","description":"Higher makes endpoints more likely. Negative helps slow speakers who pause mid-sentence.","maximum":1,"minimum":-1,"uniqueKey":"config.stt.endpointing.oneOf.0.sensitivity.oneOf.0","typeLabel":"number"},{"type":"null","title":"Sensitivity","description":"Higher makes endpoints more likely. Negative helps slow speakers who pause mid-sentence.","uniqueKey":"config.stt.endpointing.oneOf.0.sensitivity.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.endpointing.oneOf.0.sensitivity","typeLabel":"number | null"},"max_delay_ms":{"oneOf":[{"type":"integer","title":"Max Delay Ms","description":"Hard upper bound on endpoint latency after speech stops. Provider default 2000.","maximum":3000,"minimum":500,"uniqueKey":"config.stt.endpointing.oneOf.0.max_delay_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Delay Ms","description":"Hard upper bound on endpoint latency after speech stops. Provider default 2000.","uniqueKey":"config.stt.endpointing.oneOf.0.max_delay_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.endpointing.oneOf.0.max_delay_ms","typeLabel":"integer | null"}},"uniqueKey":"config.stt.endpointing.oneOf.0","typeLabel":"Endpointing · object"},{"type":"null","uniqueKey":"config.stt.endpointing.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.endpointing","typeLabel":"Endpointing · object | null"},"diarization":{"oneOf":[{"type":"boolean","title":"Diarization","description":"Label every word with who said it. Soniox supports up to 15 speakers and returns a per-token speaker id. Required for `addressivity`. Note the provider's own caveat: real-time diarization is less accurate than batch, and provider endpointing degrades it further — so pair this with turn.strategy 'semantic' or 'smart_turn', never 'provider'.","uniqueKey":"config.stt.diarization.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Diarization","description":"Label every word with who said it. Soniox supports up to 15 speakers and returns a per-token speaker id. Required for `addressivity`. Note the provider's own caveat: real-time diarization is less accurate than batch, and provider endpointing degrades it further — so pair this with turn.strategy 'semantic' or 'smart_turn', never 'provider'.","uniqueKey":"config.stt.diarization.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.diarization","typeLabel":"boolean | null"},"addressivity":{"oneOf":[{"type":"string","title":"Addressivity","description":"What to do when speech reaches us that was not aimed at the agent. retain (default): the agent stays silent but the line is kept in context, so it can pick it up later ('did your friend want one too?'). ignore: dropped entirely. off: everything becomes a turn — the agent answers the room. Works with or without diarization; the acoustic read below is the stronger signal and stands alone.","default":"retain","enum":["off","retain","ignore"],"uniqueKey":"config.stt.addressivity.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Addressivity","description":"What to do when speech reaches us that was not aimed at the agent. retain (default): the agent stays silent but the line is kept in context, so it can pick it up later ('did your friend want one too?'). ignore: dropped entirely. off: everything becomes a turn — the agent answers the room. Works with or without diarization; the acoustic read below is the stronger signal and stands alone.","default":"retain","uniqueKey":"config.stt.addressivity.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.addressivity","typeLabel":"enum\u003cstring> | null"},"perception":{"oneOf":[{"type":"boolean","title":"Perception","description":"Read emotion and non-verbal events (laughter, crying, coughing) from the audio with a locally-hosted SenseVoiceSmall model, and describe them to the language model. Runs on a side channel during speech-recognition finalisation and is dropped if it is not ready in time, so it never delays a reply. Off unless the model is installed.","uniqueKey":"config.stt.perception.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Perception","description":"Read emotion and non-verbal events (laughter, crying, coughing) from the audio with a locally-hosted SenseVoiceSmall model, and describe them to the language model. Runs on a side channel during speech-recognition finalisation and is dropped if it is not ready in time, so it never delays a reply. Off unless the model is installed.","uniqueKey":"config.stt.perception.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.perception","typeLabel":"boolean | null"},"speaker_embeddings":{"oneOf":[{"type":"boolean","title":"Speaker Embeddings","description":"Experimental local call-scoped speaker embeddings. Requires a calibrated sherpa-onnx model; off until real multi-speaker threshold tests pass.","default":false,"uniqueKey":"config.stt.speaker_embeddings.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Speaker Embeddings","description":"Experimental local call-scoped speaker embeddings. Requires a calibrated sherpa-onnx model; off until real multi-speaker threshold tests pass.","default":false,"uniqueKey":"config.stt.speaker_embeddings.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.speaker_embeddings","typeLabel":"boolean | null"},"speaker_embedding_model":{"oneOf":[{"type":"string","title":"Speaker Embedding Model","description":"Path to a sherpa-onnx speaker embedding ONNX model.","uniqueKey":"config.stt.speaker_embedding_model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Speaker Embedding Model","description":"Path to a sherpa-onnx speaker embedding ONNX model.","uniqueKey":"config.stt.speaker_embedding_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.speaker_embedding_model","typeLabel":"string | null"},"speaker_embedding_threshold":{"oneOf":[{"type":"number","title":"Speaker Embedding Threshold","description":"Cosine/manager match threshold after calibration; library example defaults to 0.6.","maximum":1,"minimum":0,"uniqueKey":"config.stt.speaker_embedding_threshold.oneOf.0","typeLabel":"number"},{"type":"null","title":"Speaker Embedding Threshold","description":"Cosine/manager match threshold after calibration; library example defaults to 0.6.","uniqueKey":"config.stt.speaker_embedding_threshold.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.speaker_embedding_threshold","typeLabel":"number | null"},"acoustics":{"oneOf":[{"type":"boolean","title":"Acoustics","description":"Judge whether speech was aimed at the agent from how it sounded, not only from who said it. Level and spectral tilt, measured against a rolling baseline of this caller on this call, separate 'shouted to someone across the room' (louder, but dull, because off-axis speech loses its highs) from 'said emphatically into the phone' (louder, and bright). This is what catches the caller turning to talk to someone else — diarization cannot, because it is the same speaker. Costs no extra provider calls.","default":true,"uniqueKey":"config.stt.acoustics.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Acoustics","description":"Judge whether speech was aimed at the agent from how it sounded, not only from who said it. Level and spectral tilt, measured against a rolling baseline of this caller on this call, separate 'shouted to someone across the room' (louder, but dull, because off-axis speech loses its highs) from 'said emphatically into the phone' (louder, and bright). This is what catches the caller turning to talk to someone else — diarization cannot, because it is the same speaker. Costs no extra provider calls.","default":true,"uniqueKey":"config.stt.acoustics.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.acoustics","typeLabel":"boolean | null"},"clarify_below":{"oneOf":[{"type":"number","title":"Clarify Below","description":"When average recognition confidence falls below this, the agent is told the words are unreliable and asked to request a repeat rather than answer them. This is what stops it confidently confirming a misheard address. ~0.65 is a reasonable start. 0 (default) disables.","maximum":1,"minimum":0,"uniqueKey":"config.stt.clarify_below.oneOf.0","typeLabel":"number"},{"type":"null","title":"Clarify Below","description":"When average recognition confidence falls below this, the agent is told the words are unreliable and asked to request a repeat rather than answer them. This is what stops it confidently confirming a misheard address. ~0.65 is a reasonable start. 0 (default) disables.","uniqueKey":"config.stt.clarify_below.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.clarify_below","typeLabel":"number | null"},"ignore_below":{"oneOf":[{"type":"number","title":"Ignore Below","description":"Below this, an utterance is treated as background and the agent stays silent — nobody was talking to it. Must be lower than clarify_below; ~0.40 catches a voice across the room. Note the difference: below ignore_below the agent says nothing, between the two floors it asks you to repeat. 0 (default) disables.","maximum":1,"minimum":0,"uniqueKey":"config.stt.ignore_below.oneOf.0","typeLabel":"number"},{"type":"null","title":"Ignore Below","description":"Below this, an utterance is treated as background and the agent stays silent — nobody was talking to it. Must be lower than clarify_below; ~0.40 catches a voice across the room. Note the difference: below ignore_below the agent says nothing, between the two floors it asks you to repeat. 0 (default) disables.","uniqueKey":"config.stt.ignore_below.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.ignore_below","typeLabel":"number | null"},"keywords":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.stt.keywords.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Keywords","description":"Deepgram only: term boosting.","uniqueKey":"config.stt.keywords.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Keywords","description":"Deepgram only: term boosting.","uniqueKey":"config.stt.keywords.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.stt.keywords","typeLabel":"string[] | null"}},"type":"object","title":"STTConfig","uniqueKey":"config.stt","typeLabel":"STTConfig · object"},"llm":{"properties":{"provider":{"oneOf":[{"type":"string","title":"Provider","description":"telnyx | openai (LLM inference)","uniqueKey":"config.llm.provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Provider","description":"telnyx | openai (LLM inference)","uniqueKey":"config.llm.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.provider","typeLabel":"string | null"},"model":{"oneOf":[{"type":"string","title":"Model","uniqueKey":"config.llm.model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model","uniqueKey":"config.llm.model.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.model","typeLabel":"string | null"},"temperature":{"oneOf":[{"type":"number","title":"Temperature","maximum":2,"minimum":0,"uniqueKey":"config.llm.temperature.oneOf.0","typeLabel":"number"},{"type":"null","title":"Temperature","uniqueKey":"config.llm.temperature.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.temperature","typeLabel":"number | null"},"max_tokens":{"oneOf":[{"type":"integer","title":"Max Tokens","description":"Cap replies. A voice reply rarely needs more than 300.","maximum":4096,"minimum":1,"uniqueKey":"config.llm.max_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Tokens","description":"Cap replies. A voice reply rarely needs more than 300.","uniqueKey":"config.llm.max_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.max_tokens","typeLabel":"integer | null"},"top_p":{"oneOf":[{"type":"number","title":"Top P","maximum":1,"minimum":0,"uniqueKey":"config.llm.top_p.oneOf.0","typeLabel":"number"},{"type":"null","title":"Top P","uniqueKey":"config.llm.top_p.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.top_p","typeLabel":"number | null"},"frequency_penalty":{"oneOf":[{"type":"number","title":"Frequency Penalty","maximum":2,"minimum":-2,"uniqueKey":"config.llm.frequency_penalty.oneOf.0","typeLabel":"number"},{"type":"null","title":"Frequency Penalty","uniqueKey":"config.llm.frequency_penalty.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.frequency_penalty","typeLabel":"number | null"},"presence_penalty":{"oneOf":[{"type":"number","title":"Presence Penalty","maximum":2,"minimum":-2,"uniqueKey":"config.llm.presence_penalty.oneOf.0","typeLabel":"number"},{"type":"null","title":"Presence Penalty","uniqueKey":"config.llm.presence_penalty.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.presence_penalty","typeLabel":"number | null"},"seed":{"oneOf":[{"type":"integer","title":"Seed","description":"Reproducible sampling where the provider supports it.","uniqueKey":"config.llm.seed.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Seed","description":"Reproducible sampling where the provider supports it.","uniqueKey":"config.llm.seed.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.seed","typeLabel":"integer | null"},"extra":{"oneOf":[{"type":"object","title":"Extra","description":"Provider-specific passthrough, e.g. {\"reasoning_effort\": \"none\"} on Telnyx DeepSeek.","example":{"reasoning_effort":"none"},"additionalProperties":true,"uniqueKey":"config.llm.extra.oneOf.0","typeLabel":"Extra · object"},{"type":"null","title":"Extra","description":"Provider-specific passthrough, e.g. {\"reasoning_effort\": \"none\"} on Telnyx DeepSeek.","example":{"reasoning_effort":"none"},"uniqueKey":"config.llm.extra.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.extra","typeLabel":"Extra · object | null"},"fallback":{"oneOf":[{"type":"object","title":"LLMFallback","description":"Where a turn goes when this model rate-limits, errors or stalls, in the same turn. Unset: the platform's failover model.","required":["provider","model"],"properties":{"provider":{"type":"string","title":"Provider","description":"baseten | telnyx | openai. Never groq or cerebras.","isRequired":true,"uniqueKey":"config.llm.fallback.oneOf.0.provider","typeLabel":"string"},"model":{"type":"string","title":"Model","description":"A model from GET /v1/providers on that provider.","isRequired":true,"uniqueKey":"config.llm.fallback.oneOf.0.model","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.llm.fallback.oneOf.0","typeLabel":"LLMFallback · object"},{"type":"null","description":"Where a turn goes when this model rate-limits, errors or stalls, in the same turn. Unset: the platform's failover model.","uniqueKey":"config.llm.fallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.llm.fallback","typeLabel":"LLMFallback · object | null"}},"type":"object","title":"LLMConfig","uniqueKey":"config.llm","typeLabel":"LLMConfig · object"},"tts":{"properties":{"provider":{"oneOf":[{"type":"string","title":"Provider","description":"inworld | cartesia","uniqueKey":"config.tts.provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Provider","description":"inworld | cartesia","uniqueKey":"config.tts.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.provider","typeLabel":"string | null"},"model":{"oneOf":[{"type":"string","title":"Model","uniqueKey":"config.tts.model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model","uniqueKey":"config.tts.model.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.model","typeLabel":"string | null"},"voice":{"oneOf":[{"type":"string","title":"Voice","description":"Provider voice id.","uniqueKey":"config.tts.voice.oneOf.0","typeLabel":"string"},{"type":"null","title":"Voice","description":"Provider voice id.","uniqueKey":"config.tts.voice.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.voice","typeLabel":"string | null"},"language":{"oneOf":[{"type":"string","title":"Language","uniqueKey":"config.tts.language.oneOf.0","typeLabel":"string"},{"type":"null","title":"Language","uniqueKey":"config.tts.language.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.language","typeLabel":"string | null"},"speed":{"oneOf":[{"type":"number","title":"Speed","description":"Cartesia generation speed multiplier. 1.0 is native speed.","maximum":1.5,"minimum":0.6,"uniqueKey":"config.tts.speed.oneOf.0","typeLabel":"number"},{"type":"null","title":"Speed","description":"Cartesia generation speed multiplier. 1.0 is native speed.","uniqueKey":"config.tts.speed.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.speed","typeLabel":"number | null"},"volume":{"oneOf":[{"type":"number","title":"Volume","description":"Cartesia generation volume multiplier. Default 1.0.","maximum":2,"minimum":0.5,"uniqueKey":"config.tts.volume.oneOf.0","typeLabel":"number"},{"type":"null","title":"Volume","description":"Cartesia generation volume multiplier. Default 1.0.","uniqueKey":"config.tts.volume.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.volume","typeLabel":"number | null"},"delivery_mode":{"oneOf":[{"type":"string","title":"Delivery Mode","description":"Inworld TTS-2 only. STABLE tracks the text exactly; CREATIVE varies more.","enum":["STABLE","BALANCED","CREATIVE"],"uniqueKey":"config.tts.delivery_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Delivery Mode","description":"Inworld TTS-2 only. STABLE tracks the text exactly; CREATIVE varies more.","uniqueKey":"config.tts.delivery_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.delivery_mode","typeLabel":"enum\u003cstring> | null"},"temperature":{"oneOf":[{"type":"number","title":"Temperature","description":"Inworld only.","maximum":2,"minimum":0,"uniqueKey":"config.tts.temperature.oneOf.0","typeLabel":"number"},{"type":"null","title":"Temperature","description":"Inworld only.","uniqueKey":"config.tts.temperature.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.temperature","typeLabel":"number | null"},"stability":{"oneOf":[{"type":"number","title":"Stability","description":"ElevenLabs only. Lower is more expressive and varied, higher more consistent (0.5 default).","maximum":1,"minimum":0,"uniqueKey":"config.tts.stability.oneOf.0","typeLabel":"number"},{"type":"null","title":"Stability","description":"ElevenLabs only. Lower is more expressive and varied, higher more consistent (0.5 default).","uniqueKey":"config.tts.stability.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.stability","typeLabel":"number | null"},"emotion":{"oneOf":[{"type":"string","title":"Emotion","description":"Cartesia baseline emotion, English voices only (beta). Sonic 3.6 supports 60+ values; primary production choices are neutral, calm, content, sad, scared and angry.","uniqueKey":"config.tts.emotion.oneOf.0","typeLabel":"string"},{"type":"null","title":"Emotion","description":"Cartesia baseline emotion, English voices only (beta). Sonic 3.6 supports 60+ values; primary production choices are neutral, calm, content, sad, scared and angry.","uniqueKey":"config.tts.emotion.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.emotion","typeLabel":"string | null"},"pronunciation_dict_id":{"oneOf":[{"type":"string","title":"Pronunciation Dict Id","description":"Cartesia pronunciation dictionary applied to every request.","uniqueKey":"config.tts.pronunciation_dict_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Pronunciation Dict Id","description":"Cartesia pronunciation dictionary applied to every request.","uniqueKey":"config.tts.pronunciation_dict_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.pronunciation_dict_id","typeLabel":"string | null"},"max_buffer_delay_ms":{"oneOf":[{"type":"integer","title":"Max Buffer Delay Ms","description":"Cartesia server-side text buffering. Use 0 with Kallabot sentence aggregation so two buffering layers do not stack latency.","maximum":5000,"minimum":0,"uniqueKey":"config.tts.max_buffer_delay_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Buffer Delay Ms","description":"Cartesia server-side text buffering. Use 0 with Kallabot sentence aggregation so two buffering layers do not stack latency.","uniqueKey":"config.tts.max_buffer_delay_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.max_buffer_delay_ms","typeLabel":"integer | null"},"steering":{"oneOf":[{"type":"boolean","title":"Steering","description":"Let the LLM write inline [direction] tags that the voice performs. Enabled by default on models that support it.","uniqueKey":"config.tts.steering.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Steering","description":"Let the LLM write inline [direction] tags that the voice performs. Enabled by default on models that support it.","uniqueKey":"config.tts.steering.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.steering","typeLabel":"boolean | null"},"non_verbals":{"oneOf":[{"type":"boolean","title":"Non Verbals","description":"Allow [laugh], [sigh] and similar. Off by default — reads as unprofessional on support calls.","uniqueKey":"config.tts.non_verbals.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Non Verbals","description":"Allow [laugh], [sigh] and similar. Off by default — reads as unprofessional on support calls.","uniqueKey":"config.tts.non_verbals.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.non_verbals","typeLabel":"boolean | null"},"backchanneling":{"oneOf":[{"type":"boolean","title":"Backchanneling","description":"Permit brief acknowledgements while the caller holds a long speaking turn.","uniqueKey":"config.tts.backchanneling.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Backchanneling","description":"Permit brief acknowledgements while the caller holds a long speaking turn.","uniqueKey":"config.tts.backchanneling.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.backchanneling","typeLabel":"boolean | null"},"backchannel_start_delay_sec":{"oneOf":[{"type":"number","title":"Backchannel Start Delay Sec","maximum":20,"minimum":1,"uniqueKey":"config.tts.backchannel_start_delay_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Backchannel Start Delay Sec","uniqueKey":"config.tts.backchannel_start_delay_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.backchannel_start_delay_sec","typeLabel":"number | null"},"backchannel_gap_sec":{"oneOf":[{"type":"number","title":"Backchannel Gap Sec","maximum":30,"minimum":2,"uniqueKey":"config.tts.backchannel_gap_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Backchannel Gap Sec","uniqueKey":"config.tts.backchannel_gap_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.backchannel_gap_sec","typeLabel":"number | null"},"backchannel_max_per_minute":{"oneOf":[{"type":"integer","title":"Backchannel Max Per Minute","maximum":6,"minimum":1,"uniqueKey":"config.tts.backchannel_max_per_minute.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Backchannel Max Per Minute","uniqueKey":"config.tts.backchannel_max_per_minute.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.backchannel_max_per_minute","typeLabel":"integer | null"},"backchannel_mode":{"oneOf":[{"type":"string","title":"Backchannel Mode","enum":["neutral","contextual"],"uniqueKey":"config.tts.backchannel_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Backchannel Mode","uniqueKey":"config.tts.backchannel_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tts.backchannel_mode","typeLabel":"enum\u003cstring> | null"}},"type":"object","title":"TTSConfig","uniqueKey":"config.tts","typeLabel":"TTSConfig · object"},"turn":{"properties":{"strategy":{"oneOf":[{"type":"string","title":"Strategy","description":"semantic (default): Smart Turn listens to the waveform and the LLM then judges whether the thought was actually finished, emitting a hidden ✓/○/◐ marker. On ○ or ◐ the reply is withheld and the caller keeps the floor — this is what stops the agent answering 'my number is four one five...' mid-sequence. smart_turn: the acoustic model alone; one less judgement, slightly cheaper, and it will cut a slow speaker off. provider: Soniox's own semantic endpointing, no local compute, and the only option with numeric sensitivity controls. All three are mutually exclusive.","enum":["semantic","smart_turn","provider"],"uniqueKey":"config.turn.strategy.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Strategy","description":"semantic (default): Smart Turn listens to the waveform and the LLM then judges whether the thought was actually finished, emitting a hidden ✓/○/◐ marker. On ○ or ◐ the reply is withheld and the caller keeps the floor — this is what stops the agent answering 'my number is four one five...' mid-sequence. smart_turn: the acoustic model alone; one less judgement, slightly cheaper, and it will cut a slow speaker off. provider: Soniox's own semantic endpointing, no local compute, and the only option with numeric sensitivity controls. All three are mutually exclusive.","uniqueKey":"config.turn.strategy.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.strategy","typeLabel":"enum\u003cstring> | null"},"max_wait_sec":{"oneOf":[{"type":"number","title":"Max Wait Sec","description":"Backstop for when the turn model never reaches a confident verdict. Default 0.7 on semantic turns (the LLM still holds a half line) and 1.2 otherwise. This is NOT the turn timer, but it is not free either: when the model cannot decide, the caller waits this long in silence. Raising it makes an undecided turn read as a dropped call; lowering it below about a second makes the agent interrupt people.","maximum":10,"minimum":0.6,"uniqueKey":"config.turn.max_wait_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Wait Sec","description":"Backstop for when the turn model never reaches a confident verdict. Default 0.7 on semantic turns (the LLM still holds a half line) and 1.2 otherwise. This is NOT the turn timer, but it is not free either: when the model cannot decide, the caller waits this long in silence. Raising it makes an undecided turn read as a dropped call; lowering it below about a second makes the agent interrupt people.","uniqueKey":"config.turn.max_wait_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.max_wait_sec","typeLabel":"number | null"},"pre_speech_ms":{"oneOf":[{"type":"integer","title":"Pre Speech Ms","description":"Audio kept from before VAD noticed speech. Default 500. The turn model reads onset prosody; starve it and it misjudges clipped openings.","maximum":2000,"minimum":0,"uniqueKey":"config.turn.pre_speech_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Pre Speech Ms","description":"Audio kept from before VAD noticed speech. Default 500. The turn model reads onset prosody; starve it and it misjudges clipped openings.","uniqueKey":"config.turn.pre_speech_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.pre_speech_ms","typeLabel":"integer | null"},"claim_secs":{"oneOf":[{"type":"number","title":"Claim Secs","description":"While the agent is speaking, how long caller speech must continue before it claims the floor. Default 0.45: brief acknowledgements do not interrupt, while a real barge-in is respected before it feels talked over.","maximum":1.5,"minimum":0.2,"uniqueKey":"config.turn.claim_secs.oneOf.0","typeLabel":"number"},{"type":"null","title":"Claim Secs","description":"While the agent is speaking, how long caller speech must continue before it claims the floor. Default 0.45: brief acknowledgements do not interrupt, while a real barge-in is respected before it feels talked over.","uniqueKey":"config.turn.claim_secs.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.claim_secs","typeLabel":"number | null"},"ringback_settle_sec":{"oneOf":[{"type":"number","title":"Ringback Settle Sec","description":"When protect_greeting is enabled, how long after our opening audio starts before carrier leakage is no longer muted. Default 0.6.","maximum":2,"minimum":0.1,"uniqueKey":"config.turn.ringback_settle_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Ringback Settle Sec","description":"When protect_greeting is enabled, how long after our opening audio starts before carrier leakage is no longer muted. Default 0.6.","uniqueKey":"config.turn.ringback_settle_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.ringback_settle_sec","typeLabel":"number | null"},"resume_short_sec":{"oneOf":[{"type":"number","title":"Resume Short Sec","description":"semantic only. After ○ (cut off mid-sentence), sit silent this long waiting for them to carry on, then hand the floor back. Default 1.5.","maximum":30,"minimum":0.5,"uniqueKey":"config.turn.resume_short_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Resume Short Sec","description":"semantic only. After ○ (cut off mid-sentence), sit silent this long waiting for them to carry on, then hand the floor back. Default 1.5.","uniqueKey":"config.turn.resume_short_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.resume_short_sec","typeLabel":"number | null"},"resume_long_sec":{"oneOf":[{"type":"number","title":"Resume Long Sec","description":"Deprecated compatibility field. ◐ side-talk/hold turns now remain silent until the caller resumes; automatic check-ins felt intrusive.","maximum":60,"minimum":0.5,"uniqueKey":"config.turn.resume_long_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Resume Long Sec","description":"Deprecated compatibility field. ◐ side-talk/hold turns now remain silent until the caller resumes; automatic check-ins felt intrusive.","uniqueKey":"config.turn.resume_long_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.resume_long_sec","typeLabel":"number | null"},"confidence":{"oneOf":[{"type":"number","title":"Confidence","description":"VAD speech-detection threshold. Default 0.65.","maximum":1,"minimum":0,"uniqueKey":"config.turn.confidence.oneOf.0","typeLabel":"number"},{"type":"null","title":"Confidence","description":"VAD speech-detection threshold. Default 0.65.","uniqueKey":"config.turn.confidence.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.confidence","typeLabel":"number | null"},"min_volume":{"oneOf":[{"type":"number","title":"Min Volume","description":"Below this, audio is not treated as speech. Default 0.30; the library default of 0.60 discards ordinary speech.","maximum":1,"minimum":0,"uniqueKey":"config.turn.min_volume.oneOf.0","typeLabel":"number"},{"type":"null","title":"Min Volume","description":"Below this, audio is not treated as speech. Default 0.30; the library default of 0.60 discards ordinary speech.","uniqueKey":"config.turn.min_volume.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.min_volume","typeLabel":"number | null"},"stop_secs":{"oneOf":[{"type":"number","title":"Stop Secs","description":"Silence before VAD reports the caller stopped. Default 0.20. This is not the same as deciding the caller has finished — Smart Turn and the completion model do that — so raising it mostly adds latency to every turn and shrinks the window Smart Turn has to wait for the final transcript. Bounded at 1.0s for that reason.","maximum":1,"minimum":0.1,"uniqueKey":"config.turn.stop_secs.oneOf.0","typeLabel":"number"},{"type":"null","title":"Stop Secs","description":"Silence before VAD reports the caller stopped. Default 0.20. This is not the same as deciding the caller has finished — Smart Turn and the completion model do that — so raising it mostly adds latency to every turn and shrinks the window Smart Turn has to wait for the final transcript. Bounded at 1.0s for that reason.","uniqueKey":"config.turn.stop_secs.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.stop_secs","typeLabel":"number | null"},"interruptible":{"oneOf":[{"type":"boolean","title":"Interruptible","description":"Can the caller talk over the agent. Default true.","uniqueKey":"config.turn.interruptible.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Interruptible","description":"Can the caller talk over the agent. Default true.","uniqueKey":"config.turn.interruptible.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.interruptible","typeLabel":"boolean | null"},"min_interrupt_words":{"oneOf":[{"type":"integer","title":"Min Interrupt Words","description":"While the agent is speaking, ignore anything shorter than this many words. 2 is the useful value: it treats 'mm-hm', 'yeah' and 'right' as agreement rather than interruption, so an agent reading back an address is not chopped into fragments. Costs nothing on a normal turn.","maximum":10,"minimum":1,"uniqueKey":"config.turn.min_interrupt_words.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Min Interrupt Words","description":"While the agent is speaking, ignore anything shorter than this many words. 2 is the useful value: it treats 'mm-hm', 'yeah' and 'right' as agreement rather than interruption, so an agent reading back an address is not chopped into fragments. Costs nothing on a normal turn.","uniqueKey":"config.turn.min_interrupt_words.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.min_interrupt_words","typeLabel":"integer | null"},"protect_greeting":{"oneOf":[{"type":"boolean","title":"Protect Greeting","description":"Ignore caller audio until the greeting finishes. Carriers leak ringback and the caller's own 'hello?' into the first second of media, which otherwise truncates the opening line.","uniqueKey":"config.turn.protect_greeting.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Protect Greeting","description":"Ignore caller audio until the greeting finishes. Carriers leak ringback and the caller's own 'hello?' into the first second of media, which otherwise truncates the opening line.","uniqueKey":"config.turn.protect_greeting.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.protect_greeting","typeLabel":"boolean | null"},"idle_timeout_sec":{"oneOf":[{"type":"integer","title":"Idle Timeout Sec","description":"Silence before the agent prompts the caller. 0 disables.","maximum":120,"minimum":0,"uniqueKey":"config.turn.idle_timeout_sec.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Idle Timeout Sec","description":"Silence before the agent prompts the caller. 0 disables.","uniqueKey":"config.turn.idle_timeout_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.turn.idle_timeout_sec","typeLabel":"integer | null"}},"type":"object","title":"TurnConfig","description":"When the caller is considered to have finished speaking.","uniqueKey":"config.turn","typeLabel":"TurnConfig · object"},"style":{"properties":{"disfluency":{"oneOf":[{"type":"boolean","title":"Disfluency","description":"Default true. Allow fillers, false starts, thinking noises and self-correction. Clean, perfectly-formed sentences every turn read as synthetic even when the voice is flawless.","uniqueKey":"config.style.disfluency.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Disfluency","description":"Default true. Allow fillers, false starts, thinking noises and self-correction. Clean, perfectly-formed sentences every turn read as synthetic even when the voice is flawless.","uniqueKey":"config.style.disfluency.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.disfluency","typeLabel":"boolean | null"},"avoid_tells":{"oneOf":[{"type":"boolean","title":"Avoid Tells","description":"Default true. Forbid the behaviours that instantly reveal a machine: reading code or URLs aloud, listing six options in one breath, 'Is there anything else I can help you with today?', and claiming to be human when asked directly.","uniqueKey":"config.style.avoid_tells.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Avoid Tells","description":"Default true. Forbid the behaviours that instantly reveal a machine: reading code or URLs aloud, listing six options in one breath, 'Is there anything else I can help you with today?', and claiming to be human when asked directly.","uniqueKey":"config.style.avoid_tells.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.avoid_tells","typeLabel":"boolean | null"},"prompt_mode":{"oneOf":[{"type":"string","title":"Prompt Mode","description":"Default lean: the platform's short hidden guidance and turn protocol. full: the longer guidance it replaced on 31 Oct 2026, kept for comparison.","enum":["full","lean"],"uniqueKey":"config.style.prompt_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompt Mode","description":"Default lean: the platform's short hidden guidance and turn protocol. full: the longer guidance it replaced on 31 Oct 2026, kept for comparison.","uniqueKey":"config.style.prompt_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.prompt_mode","typeLabel":"enum\u003cstring> | null"},"backchanneling":{"oneOf":[{"type":"boolean","title":"Backchanneling","uniqueKey":"config.style.backchanneling.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Backchanneling","uniqueKey":"config.style.backchanneling.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.backchanneling","typeLabel":"boolean | null"},"backchannel_mode":{"oneOf":[{"type":"string","title":"Backchannel Mode","enum":["neutral","contextual"],"uniqueKey":"config.style.backchannel_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Backchannel Mode","uniqueKey":"config.style.backchannel_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.backchannel_mode","typeLabel":"enum\u003cstring> | null"},"backchannel_start_delay_sec":{"oneOf":[{"type":"number","title":"Backchannel Start Delay Sec","maximum":20,"minimum":1,"uniqueKey":"config.style.backchannel_start_delay_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Backchannel Start Delay Sec","uniqueKey":"config.style.backchannel_start_delay_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.backchannel_start_delay_sec","typeLabel":"number | null"},"backchannel_gap_sec":{"oneOf":[{"type":"number","title":"Backchannel Gap Sec","description":"Seconds between two listener sounds (\"mm-hm\", \"oh nice\"). Default 3.5.","maximum":30,"minimum":2,"uniqueKey":"config.style.backchannel_gap_sec.oneOf.0","typeLabel":"number"},{"type":"null","title":"Backchannel Gap Sec","description":"Seconds between two listener sounds (\"mm-hm\", \"oh nice\"). Default 3.5.","uniqueKey":"config.style.backchannel_gap_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.backchannel_gap_sec","typeLabel":"number | null"},"backchannel_max_per_minute":{"oneOf":[{"type":"integer","title":"Backchannel Max Per Minute","description":"Most listener sounds in any 60 seconds. Default 6.","maximum":10,"minimum":1,"uniqueKey":"config.style.backchannel_max_per_minute.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Backchannel Max Per Minute","description":"Most listener sounds in any 60 seconds. Default 6.","uniqueKey":"config.style.backchannel_max_per_minute.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.backchannel_max_per_minute","typeLabel":"integer | null"},"lookup_cut_in":{"oneOf":[{"type":"boolean","title":"Lookup Cut In","description":"Default false. When a lookup's answer lands while the caller is still talking, the agent takes the floor at their next pause instead of waiting for the end of their turn.","uniqueKey":"config.style.lookup_cut_in.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Lookup Cut In","description":"Default false. When a lookup's answer lands while the caller is still talking, the agent takes the floor at their next pause instead of waiting for the end of their turn.","uniqueKey":"config.style.lookup_cut_in.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.style.lookup_cut_in","typeLabel":"boolean | null"}},"type":"object","title":"StyleConfig","description":"How human the agent is allowed to sound.\n\nBoth default on. Turn them off for a compliance read-out or a menu bot,\nwhere a flat, identical delivery every time is the requirement rather than\nthe flaw.","uniqueKey":"config.style","typeLabel":"StyleConfig · object"},"audio":{"properties":{"noise_suppression":{"oneOf":[{"type":"string","title":"Noise Suppression","description":"Applied to inbound caller audio. auto (the default) uses ai-coustics Quail (speech cleaned for STT, not for ears) when AIC_LICENSE_KEY is set, else Krisp VIVA when installed, else nothing. rnnoise is free and local but tuned for human ears, and can cost speech recognition accuracy.","enum":["auto","none","rnnoise","koala","krisp","aic"],"uniqueKey":"config.audio.noise_suppression.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Noise Suppression","description":"Applied to inbound caller audio. auto (the default) uses ai-coustics Quail (speech cleaned for STT, not for ears) when AIC_LICENSE_KEY is set, else Krisp VIVA when installed, else nothing. rnnoise is free and local but tuned for human ears, and can cost speech recognition accuracy.","uniqueKey":"config.audio.noise_suppression.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.audio.noise_suppression","typeLabel":"enum\u003cstring> | null"},"crowded_places":{"oneOf":[{"type":"boolean","title":"Crowded Places","description":"With Krisp, also remove other people's voices, not just noise. For malls and open-plan offices. It weakens the agent's sense of who else is in the room, so it is off by default.","uniqueKey":"config.audio.crowded_places.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Crowded Places","description":"With Krisp, also remove other people's voices, not just noise. For malls and open-plan offices. It weakens the agent's sense of who else is in the room, so it is off by default.","uniqueKey":"config.audio.crowded_places.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.audio.crowded_places","typeLabel":"boolean | null"},"ambient":{"oneOf":[{"type":"object","title":"AmbientConfig","description":"Background bed under the agent's own audio, so silence does not sound dead.","properties":{"file":{"oneOf":[{"type":"string","title":"File","description":"Named background bed (60 s loops; 'room' is a short one). Perfect silence between sentences is the clearest tell that a caller is talking to software; a real person is never in an anechoic chamber.","enum":["office","call-center","restaurant","saloon","waiting-room","room"],"uniqueKey":"config.audio.ambient.oneOf.0.file.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"File","description":"Named background bed (60 s loops; 'room' is a short one). Perfect silence between sentences is the clearest tell that a caller is talking to software; a real person is never in an anechoic chamber.","uniqueKey":"config.audio.ambient.oneOf.0.file.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.audio.ambient.oneOf.0.file","typeLabel":"enum\u003cstring> | null"},"volume":{"oneOf":[{"type":"number","title":"Volume","description":"Default 0.10. Above ~0.15 it competes with the voice and the far-end STT works harder.","maximum":1,"minimum":0,"uniqueKey":"config.audio.ambient.oneOf.0.volume.oneOf.0","typeLabel":"number"},{"type":"null","title":"Volume","description":"Default 0.10. Above ~0.15 it competes with the voice and the far-end STT works harder.","uniqueKey":"config.audio.ambient.oneOf.0.volume.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.audio.ambient.oneOf.0.volume","typeLabel":"number | null"}},"uniqueKey":"config.audio.ambient.oneOf.0","typeLabel":"AmbientConfig · object"},{"type":"null","description":"Background bed under the agent's own audio, so silence does not sound dead.","uniqueKey":"config.audio.ambient.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.audio.ambient","typeLabel":"AmbientConfig · object | null"},"wideband":{"oneOf":[{"type":"boolean","title":"Wideband","description":"Browser calls only: send the agent's voice at 16 kHz instead of phone-like 8 kHz. Phone calls run at the trunk's G.711 rate.","uniqueKey":"config.audio.wideband.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Wideband","description":"Browser calls only: send the agent's voice at 16 kHz instead of phone-like 8 kHz. Phone calls run at the trunk's G.711 rate.","uniqueKey":"config.audio.wideband.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.audio.wideband","typeLabel":"boolean | null"}},"type":"object","title":"AudioConfig","uniqueKey":"config.audio","typeLabel":"AudioConfig · object"},"call":{"properties":{"direction":{"oneOf":[{"type":"string","title":"Direction","description":"Where this agent may be used. Phone-number routing remains a separate resource.","enum":["inbound","outbound","both"],"uniqueKey":"config.call.direction.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Direction","description":"Where this agent may be used. Phone-number routing remains a separate resource.","uniqueKey":"config.call.direction.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.direction","typeLabel":"enum\u003cstring> | null"},"max_duration_sec":{"oneOf":[{"type":"integer","title":"Max Duration Sec","maximum":7200,"minimum":10,"uniqueKey":"config.call.max_duration_sec.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Duration Sec","uniqueKey":"config.call.max_duration_sec.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.max_duration_sec","typeLabel":"integer | null"},"record":{"oneOf":[{"type":"boolean","title":"Record","uniqueKey":"config.call.record.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Record","uniqueKey":"config.call.record.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.record","typeLabel":"boolean | null"},"summarize_long_calls":{"oneOf":[{"type":"boolean","title":"Summarize Long Calls","description":"Default true. On a call long enough to outgrow the model's window, compress the older turns into a summary and keep the recent ones verbatim, instead of the agent forgetting the caller's name.","uniqueKey":"config.call.summarize_long_calls.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Summarize Long Calls","description":"Default true. On a call long enough to outgrow the model's window, compress the older turns into a summary and keep the recent ones verbatim, instead of the agent forgetting the caller's name.","uniqueKey":"config.call.summarize_long_calls.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.summarize_long_calls","typeLabel":"boolean | null"},"end_call":{"oneOf":[{"type":"boolean","title":"End Call","description":"Default true. The agent may hang up once the conversation is over (goodbye said, opt-out, next step agreed), after its goodbye plays.","uniqueKey":"config.call.end_call.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"End Call","description":"Default true. The agent may hang up once the conversation is over (goodbye said, opt-out, next step agreed), after its goodbye plays.","uniqueKey":"config.call.end_call.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.end_call","typeLabel":"boolean | null"},"voicemail":{"oneOf":[{"type":"object","title":"VoicemailConfig","description":"Outbound phone calls only: tell a person from an answering machine before speaking.","properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Default false. On calls the agent places, wait for a person-or-machine verdict before speaking; on a machine, leave `message` and hang up.","default":false,"uniqueKey":"config.call.voicemail.oneOf.0.enabled","typeLabel":"boolean"},"message":{"oneOf":[{"type":"string","title":"Message","description":"Spoken once the voicemail greeting ends. Required when enabled.","maxLength":500,"uniqueKey":"config.call.voicemail.oneOf.0.message.oneOf.0","typeLabel":"string"},{"type":"null","title":"Message","description":"Spoken once the voicemail greeting ends. Required when enabled.","uniqueKey":"config.call.voicemail.oneOf.0.message.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.voicemail.oneOf.0.message","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"config.call.voicemail.oneOf.0","typeLabel":"VoicemailConfig · object"},{"type":"null","uniqueKey":"config.call.voicemail.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.voicemail","typeLabel":"VoicemailConfig · object | null"},"transfer":{"oneOf":[{"type":"object","title":"TransferConfig","properties":{"enabled":{"oneOf":[{"type":"boolean","title":"Enabled","uniqueKey":"config.call.transfer.oneOf.0.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Enabled","uniqueKey":"config.call.transfer.oneOf.0.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.transfer.oneOf.0.enabled","typeLabel":"boolean | null"},"destinations":{"items":{"properties":{"id":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[A-Za-z][A-Za-z0-9_-]*$","title":"Id","description":"Stable identifier selected by the model. Never a phone number.","isRequired":true,"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].id","typeLabel":"string"},"label":{"type":"string","maxLength":80,"minLength":1,"title":"Label","isRequired":true,"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].label","typeLabel":"string"},"to":{"type":"string","pattern":"^\\+[1-9]\\d{7,14}$","title":"To","description":"Approved E.164 destination.","isRequired":true,"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].to","typeLabel":"string"},"description":{"type":"string","maxLength":280,"minLength":1,"title":"Description","description":"When this named destination should be selected.","isRequired":true,"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].description","typeLabel":"string"},"mode":{"type":"string","enum":["cold","warm"],"title":"Mode","default":"cold","uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].mode","typeLabel":"enum\u003cstring>"},"caller_message":{"oneOf":[{"type":"string","title":"Caller Message","maxLength":280,"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].caller_message.oneOf.0","typeLabel":"string"},{"type":"null","title":"Caller Message","uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].caller_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].caller_message","typeLabel":"string | null"},"consultation_message":{"oneOf":[{"type":"string","title":"Consultation Message","maxLength":500,"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].consultation_message.oneOf.0","typeLabel":"string"},{"type":"null","title":"Consultation Message","uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].consultation_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].consultation_message","typeLabel":"string | null"},"timeout_sec":{"type":"integer","maximum":60,"minimum":10,"title":"Timeout Sec","default":30,"uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX].timeout_sec","typeLabel":"integer"}},"type":"object","required":["id","label","to","description"],"title":"TransferDestination","uniqueKey":"config.call.transfer.oneOf.0.destinations.items.[INDEX]","typeLabel":"TransferDestination · object"},"type":"array","maxItems":20,"title":"Destinations","uniqueKey":"config.call.transfer.oneOf.0.destinations","typeLabel":"TransferDestination · object[]"},"failure_message":{"oneOf":[{"type":"string","title":"Failure Message","maxLength":280,"uniqueKey":"config.call.transfer.oneOf.0.failure_message.oneOf.0","typeLabel":"string"},{"type":"null","title":"Failure Message","uniqueKey":"config.call.transfer.oneOf.0.failure_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.transfer.oneOf.0.failure_message","typeLabel":"string | null"}},"uniqueKey":"config.call.transfer.oneOf.0","typeLabel":"TransferConfig · object"},{"type":"null","uniqueKey":"config.call.transfer.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.transfer","typeLabel":"TransferConfig · object | null"},"monitoring_notice":{"oneOf":[{"type":"object","title":"MonitoringNotice","properties":{"enabled":{"oneOf":[{"type":"boolean","title":"Enabled","description":"Default false. Say a short notice before the greeting that the call may be recorded or monitored (where listen-in or take-over needs callers told).","uniqueKey":"config.call.monitoring_notice.oneOf.0.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Enabled","description":"Default false. Say a short notice before the greeting that the call may be recorded or monitored (where listen-in or take-over needs callers told).","uniqueKey":"config.call.monitoring_notice.oneOf.0.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.monitoring_notice.oneOf.0.enabled","typeLabel":"boolean | null"},"text":{"oneOf":[{"type":"string","title":"Text","description":"The notice in your own words. Empty: a plain default in the agent's language.","maxLength":200,"uniqueKey":"config.call.monitoring_notice.oneOf.0.text.oneOf.0","typeLabel":"string"},{"type":"null","title":"Text","description":"The notice in your own words. Empty: a plain default in the agent's language.","uniqueKey":"config.call.monitoring_notice.oneOf.0.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.monitoring_notice.oneOf.0.text","typeLabel":"string | null"}},"uniqueKey":"config.call.monitoring_notice.oneOf.0","typeLabel":"MonitoringNotice · object"},{"type":"null","uniqueKey":"config.call.monitoring_notice.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.call.monitoring_notice","typeLabel":"MonitoringNotice · object | null"}},"type":"object","title":"CallConfig","uniqueKey":"config.call","typeLabel":"CallConfig · object"},"memory":{"oneOf":[{"type":"object","title":"MemoryConfig","properties":{"enabled":{"oneOf":[{"type":"boolean","title":"Enabled","uniqueKey":"config.memory.oneOf.0.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Enabled","uniqueKey":"config.memory.oneOf.0.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.memory.oneOf.0.enabled","typeLabel":"boolean | null"},"scope":{"oneOf":[{"type":"string","title":"Scope","description":"caller: remembered per phone number across calls.","enum":["caller","agent"],"uniqueKey":"config.memory.oneOf.0.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Scope","description":"caller: remembered per phone number across calls.","uniqueKey":"config.memory.oneOf.0.scope.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.memory.oneOf.0.scope","typeLabel":"enum\u003cstring> | null"},"retention_days":{"oneOf":[{"type":"integer","title":"Retention Days","maximum":3650,"minimum":1,"uniqueKey":"config.memory.oneOf.0.retention_days.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retention Days","uniqueKey":"config.memory.oneOf.0.retention_days.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.memory.oneOf.0.retention_days","typeLabel":"integer | null"}},"uniqueKey":"config.memory.oneOf.0","typeLabel":"MemoryConfig · object"},{"type":"null","uniqueKey":"config.memory.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.memory","typeLabel":"MemoryConfig · object | null"},"knowledge":{"oneOf":[{"type":"object","title":"KnowledgeConfig","properties":{"ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.knowledge.oneOf.0.ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Ids","description":"Knowledge base ids to search.","uniqueKey":"config.knowledge.oneOf.0.ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Ids","description":"Knowledge base ids to search.","uniqueKey":"config.knowledge.oneOf.0.ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.knowledge.oneOf.0.ids","typeLabel":"string[] | null"},"top_k":{"oneOf":[{"type":"integer","title":"Top K","maximum":20,"minimum":1,"uniqueKey":"config.knowledge.oneOf.0.top_k.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Top K","uniqueKey":"config.knowledge.oneOf.0.top_k.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.knowledge.oneOf.0.top_k","typeLabel":"integer | null"},"mode":{"oneOf":[{"type":"string","title":"Mode","description":"auto (default): libraries up to about 1,500 tokens go whole into the instructions, larger ones are searched each turn. prompt: always whole. search: always searched.","enum":["auto","prompt","search"],"uniqueKey":"config.knowledge.oneOf.0.mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Mode","description":"auto (default): libraries up to about 1,500 tokens go whole into the instructions, larger ones are searched each turn. prompt: always whole. search: always searched.","uniqueKey":"config.knowledge.oneOf.0.mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.knowledge.oneOf.0.mode","typeLabel":"enum\u003cstring> | null"},"channels":{"oneOf":[{"type":"object","title":"Channels","description":"Per source id, the channels it answers on. A source not listed answers on every channel; an empty list switches it off everywhere without detaching it.","additionalProperties":{"items":{"type":"string","enum":["phone","web","whatsapp","instagram","messenger","web_chat"],"uniqueKey":"config.knowledge.oneOf.0.channels.oneOf.0.additionalProperties.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","uniqueKey":"config.knowledge.oneOf.0.channels.oneOf.0.additionalProperties","typeLabel":"enum\u003cstring>[]"},"uniqueKey":"config.knowledge.oneOf.0.channels.oneOf.0","typeLabel":"Channels · object"},{"type":"null","title":"Channels","description":"Per source id, the channels it answers on. A source not listed answers on every channel; an empty list switches it off everywhere without detaching it.","uniqueKey":"config.knowledge.oneOf.0.channels.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.knowledge.oneOf.0.channels","typeLabel":"Channels · object | null"}},"uniqueKey":"config.knowledge.oneOf.0","typeLabel":"KnowledgeConfig · object"},{"type":"null","uniqueKey":"config.knowledge.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.knowledge","typeLabel":"KnowledgeConfig · object | null"},"tools":{"items":{"properties":{"tool_id":{"oneOf":[{"type":"string","title":"Tool Id","description":"The saved tool (POST /v1/tools).","uniqueKey":"config.tools.items.[INDEX].tool_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Tool Id","description":"The saved tool (POST /v1/tools).","uniqueKey":"config.tools.items.[INDEX].tool_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].tool_id","typeLabel":"string | null"},"kind":{"oneOf":[{"type":"string","title":"Kind","description":"Server-set from the saved tool.","enum":["api","mcp_server","google_sheets"],"uniqueKey":"config.tools.items.[INDEX].kind.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Kind","description":"Server-set from the saved tool.","uniqueKey":"config.tools.items.[INDEX].kind.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].kind","typeLabel":"enum\u003cstring> | null"},"channels":{"oneOf":[{"type":"array","items":{"type":"string","enum":["phone","web","whatsapp","instagram","messenger","web_chat"],"uniqueKey":"config.tools.items.[INDEX].channels.oneOf.0.items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"Channels","maxItems":6,"uniqueKey":"config.tools.items.[INDEX].channels.oneOf.0","typeLabel":"enum\u003cstring>[]"},{"type":"null","title":"Channels","uniqueKey":"config.tools.items.[INDEX].channels.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].channels","typeLabel":"enum\u003cstring>[] | null"},"allowed_tools":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.tools.items.[INDEX].allowed_tools.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Allowed Tools","maxItems":100,"uniqueKey":"config.tools.items.[INDEX].allowed_tools.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Allowed Tools","uniqueKey":"config.tools.items.[INDEX].allowed_tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].allowed_tools","typeLabel":"string[] | null"},"overrides":{"oneOf":[{"type":"object","title":"ToolOverrides","description":"What this agent changes about a saved tool, for itself only.","properties":{"filler":{"oneOf":[{"type":"string","title":"Filler","description":"Said if the tool is still running after filler_after_ms.","maxLength":200,"uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.filler.oneOf.0","typeLabel":"string"},{"type":"null","title":"Filler","description":"Said if the tool is still running after filler_after_ms.","uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.filler.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.filler","typeLabel":"string | null"},"filler_after_ms":{"oneOf":[{"type":"integer","title":"Filler After Ms","maximum":10000,"minimum":0,"uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.filler_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Filler After Ms","uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.filler_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.filler_after_ms","typeLabel":"integer | null"},"timeout_ms":{"oneOf":[{"type":"integer","title":"Timeout Ms","maximum":30000,"minimum":100,"uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.timeout_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Timeout Ms","uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.timeout_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0.timeout_ms","typeLabel":"integer | null"}},"additionalProperties":false,"uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.0","typeLabel":"ToolOverrides · object"},{"type":"null","uniqueKey":"config.tools.items.[INDEX].overrides.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].overrides","typeLabel":"ToolOverrides · object | null"},"name":{"oneOf":[{"type":"string","title":"Name","uniqueKey":"config.tools.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","uniqueKey":"config.tools.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"config.tools.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"config.tools.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].description","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","title":"Url","uniqueKey":"config.tools.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"config.tools.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].url","typeLabel":"string | null"},"method":{"oneOf":[{"type":"string","title":"Method","enum":["GET","POST","PUT","PATCH","DELETE"],"uniqueKey":"config.tools.items.[INDEX].method.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Method","uniqueKey":"config.tools.items.[INDEX].method.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].method","typeLabel":"enum\u003cstring> | null"},"transport":{"oneOf":[{"type":"string","title":"Transport","enum":["sse","streamable_http"],"uniqueKey":"config.tools.items.[INDEX].transport.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Transport","uniqueKey":"config.tools.items.[INDEX].transport.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].transport","typeLabel":"enum\u003cstring> | null"},"headers":{"oneOf":[{"type":"object","title":"Headers","additionalProperties":{"type":"string","uniqueKey":"config.tools.items.[INDEX].headers.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"config.tools.items.[INDEX].headers.oneOf.0","typeLabel":"Headers · object"},{"type":"null","title":"Headers","uniqueKey":"config.tools.items.[INDEX].headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].headers","typeLabel":"Headers · object | null"},"auth":{"oneOf":[{"type":"object","title":"ToolAuth","description":"How the tool authenticates to its own endpoint.\n\n``token``/``value`` are write-only: a client sends plaintext here when\ncreating or editing a tool, and the server moves it into a sealed\n``tool_credential`` (``kallabot.services.tools``); the tool keeps only\n``{type: 'credential', credential_id}``. Nothing that reads a tool back\ncarries the secret; the credential shows a hint (last four characters).","properties":{"type":{"type":"string","enum":["none","bearer","header","basic","query","credential"],"title":"Type","default":"none","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.type","typeLabel":"enum\u003cstring>"},"credential_id":{"oneOf":[{"type":"string","title":"Credential Id","description":"A saved credential (/v1/tool-credentials) when type is 'credential'.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.credential_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Credential Id","description":"A saved credential (/v1/tool-credentials) when type is 'credential'.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.credential_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.credential_id","typeLabel":"string | null"},"token":{"oneOf":[{"type":"string","title":"Token","description":"Bearer token or basic credentials. Write-only.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.token.oneOf.0","typeLabel":"string"},{"type":"null","title":"Token","description":"Bearer token or basic credentials. Write-only.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.token.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.token","typeLabel":"string | null"},"header":{"oneOf":[{"type":"string","title":"Header","description":"Header name when type is 'header'.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.header.oneOf.0","typeLabel":"string"},{"type":"null","title":"Header","description":"Header name when type is 'header'.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.header.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.header","typeLabel":"string | null"},"query":{"oneOf":[{"type":"string","title":"Query","description":"Query parameter name when type is 'query'.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.query.oneOf.0","typeLabel":"string"},{"type":"null","title":"Query","description":"Query parameter name when type is 'query'.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.query.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.query","typeLabel":"string | null"},"value":{"oneOf":[{"type":"string","title":"Value","description":"Header or query value. Write-only.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","description":"Header or query value. Write-only.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.value","typeLabel":"string | null"},"sealed":{"oneOf":[{"type":"string","title":"Sealed","description":"Server-set. AES-256-GCM ciphertext of token/value. Never accepted from a client.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.sealed.oneOf.0","typeLabel":"string"},{"type":"null","title":"Sealed","description":"Server-set. AES-256-GCM ciphertext of token/value. Never accepted from a client.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.sealed.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.sealed","typeLabel":"string | null"},"hint":{"oneOf":[{"type":"string","title":"Hint","description":"Server-set. Last 4 characters, for display.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.hint.oneOf.0","typeLabel":"string"},{"type":"null","title":"Hint","description":"Server-set. Last 4 characters, for display.","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.hint.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0.hint","typeLabel":"string | null"}},"uniqueKey":"config.tools.items.[INDEX].auth.oneOf.0","typeLabel":"ToolAuth · object"},{"type":"null","uniqueKey":"config.tools.items.[INDEX].auth.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].auth","typeLabel":"ToolAuth · object | null"},"parameters":{"oneOf":[{"type":"object","title":"Parameters","additionalProperties":true,"uniqueKey":"config.tools.items.[INDEX].parameters.oneOf.0","typeLabel":"Parameters · object"},{"type":"null","title":"Parameters","uniqueKey":"config.tools.items.[INDEX].parameters.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].parameters","typeLabel":"Parameters · object | null"},"timeout_ms":{"oneOf":[{"type":"integer","title":"Timeout Ms","maximum":30000,"minimum":100,"uniqueKey":"config.tools.items.[INDEX].timeout_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Timeout Ms","uniqueKey":"config.tools.items.[INDEX].timeout_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].timeout_ms","typeLabel":"integer | null"},"blocking":{"oneOf":[{"type":"boolean","title":"Blocking","uniqueKey":"config.tools.items.[INDEX].blocking.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Blocking","uniqueKey":"config.tools.items.[INDEX].blocking.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].blocking","typeLabel":"boolean | null"},"filler":{"oneOf":[{"type":"string","title":"Filler","uniqueKey":"config.tools.items.[INDEX].filler.oneOf.0","typeLabel":"string"},{"type":"null","title":"Filler","uniqueKey":"config.tools.items.[INDEX].filler.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.tools.items.[INDEX].filler","typeLabel":"string | null"}},"type":"object","title":"ToolConfig","description":"A saved tool (``POST /v1/tools``) attached to this agent.\n\nThe agent keeps the reference only. The tool's definition and its\ncredential are read when a call starts or a reply is written, so editing\na tool or rotating its key reaches the next conversation without a\nrepublish, and no URL, header or secret is ever stored in an agent\nversion. Every invocation is recorded in ``tool_invocation``.\n\n``channels`` narrows where the agent may use it (default: everywhere the\ntool can run; Google Sheets tools run in chats only). ``allowed_tools``\npicks an MCP server's tools, within the server's own ceiling; without it\nevery tool the server doesn't mark destructive is offered.\n\nThe inline fields below are read from documents saved before tools were\nreferences, and are ignored.","uniqueKey":"config.tools.items.[INDEX]","typeLabel":"ToolConfig · object"},"type":"array","title":"Tools","uniqueKey":"config.tools","typeLabel":"ToolConfig · object[]"},"builtins":{"oneOf":[{"type":"object","title":"BuiltinsConfig","description":"Built-in abilities beyond transfer (`call.transfer`), hanging up\n(`call.end_call`) and web search (`web_search`), which keep their blocks.","properties":{"knowledge_search":{"oneOf":[{"type":"boolean","title":"Knowledge Search","uniqueKey":"config.builtins.oneOf.0.knowledge_search.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Knowledge Search","uniqueKey":"config.builtins.oneOf.0.knowledge_search.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins.oneOf.0.knowledge_search","typeLabel":"boolean | null"},"calendar":{"oneOf":[{"type":"object","title":"CalendarBuiltin","description":"Check free times and book on a connected Google Calendar (`check_availability`, `book_appointment`).","required":["google_connection_id"],"properties":{"google_connection_id":{"type":"string","maxLength":64,"minLength":1,"title":"Google Connection Id","isRequired":true,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.google_connection_id","typeLabel":"string"},"calendar_id":{"type":"string","maxLength":256,"minLength":1,"title":"Calendar Id","default":"primary","uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.calendar_id","typeLabel":"string"},"timezone":{"oneOf":[{"type":"string","title":"Timezone","description":"Default: the agent's timezone.","maxLength":64,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.timezone.oneOf.0","typeLabel":"string"},{"type":"null","title":"Timezone","description":"Default: the agent's timezone.","uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.timezone.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.timezone","typeLabel":"string | null"},"duration_min":{"type":"integer","maximum":480,"minimum":5,"title":"Duration Min","description":"How long one appointment is.","default":30,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.duration_min","typeLabel":"integer"},"hours":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"object","title":"OpeningHours","description":"One weekday's bookable hours, local time (\"09:00\"–\"18:00\").","required":["start","end"],"properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","title":"Start","isRequired":true,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.hours.oneOf.0.items.[INDEX].oneOf.0.start","typeLabel":"string"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","title":"End","isRequired":true,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.hours.oneOf.0.items.[INDEX].oneOf.0.end","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.hours.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"OpeningHours · object"},{"type":"null","uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.hours.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.hours.oneOf.0.items.[INDEX]","typeLabel":"OpeningHours · object | null"},"title":"Hours","description":"Bookable hours Monday..Sunday; null for a closed day. Default Mon–Fri 09:00–18:00.","maxItems":7,"minItems":7,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.hours.oneOf.0","typeLabel":"(OpeningHours · object | null)[]"},{"type":"null","title":"Hours","description":"Bookable hours Monday..Sunday; null for a closed day. Default Mon–Fri 09:00–18:00.","uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.hours.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.hours","typeLabel":"(OpeningHours · object | null)[] | null"},"min_notice_min":{"type":"integer","maximum":10080,"minimum":0,"title":"Min Notice Min","description":"Earliest booking, in minutes from now.","default":60,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0.min_notice_min","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.0","typeLabel":"CalendarBuiltin · object"},{"type":"null","uniqueKey":"config.builtins.oneOf.0.calendar.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins.oneOf.0.calendar","typeLabel":"CalendarBuiltin · object | null"},"sheets":{"oneOf":[{"type":"object","title":"SheetsBuiltin","description":"Look rows up in a Google Sheet the business keeps (`look_up_sheet`). Saving rows is a saved\n`google_sheets` tool attached to the agent.","required":["google_connection_id","spreadsheet_id"],"properties":{"google_connection_id":{"type":"string","maxLength":64,"minLength":1,"title":"Google Connection Id","isRequired":true,"uniqueKey":"config.builtins.oneOf.0.sheets.oneOf.0.google_connection_id","typeLabel":"string"},"spreadsheet_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{20,128}$","title":"Spreadsheet Id","isRequired":true,"uniqueKey":"config.builtins.oneOf.0.sheets.oneOf.0.spreadsheet_id","typeLabel":"string"},"sheet":{"type":"string","maxLength":100,"title":"Sheet","description":"Tab name; empty = the first tab.","default":"","uniqueKey":"config.builtins.oneOf.0.sheets.oneOf.0.sheet","typeLabel":"string"},"when":{"type":"string","maxLength":300,"title":"When","description":"When to look something up, e.g. 'stock or prices'.","default":"","uniqueKey":"config.builtins.oneOf.0.sheets.oneOf.0.when","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.builtins.oneOf.0.sheets.oneOf.0","typeLabel":"SheetsBuiltin · object"},{"type":"null","uniqueKey":"config.builtins.oneOf.0.sheets.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins.oneOf.0.sheets","typeLabel":"SheetsBuiltin · object | null"},"whatsapp_send":{"oneOf":[{"type":"object","title":"WhatsAppSendBuiltin","required":["connection_id"],"properties":{"connection_id":{"type":"string","maxLength":64,"minLength":1,"title":"Connection Id","isRequired":true,"uniqueKey":"config.builtins.oneOf.0.whatsapp_send.oneOf.0.connection_id","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.builtins.oneOf.0.whatsapp_send.oneOf.0","typeLabel":"WhatsAppSendBuiltin · object"},{"type":"null","uniqueKey":"config.builtins.oneOf.0.whatsapp_send.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins.oneOf.0.whatsapp_send","typeLabel":"WhatsAppSendBuiltin · object | null"},"email_send":{"oneOf":[{"type":"boolean","title":"Email Send","uniqueKey":"config.builtins.oneOf.0.email_send.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Email Send","uniqueKey":"config.builtins.oneOf.0.email_send.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins.oneOf.0.email_send","typeLabel":"boolean | null"}},"additionalProperties":false,"uniqueKey":"config.builtins.oneOf.0","typeLabel":"BuiltinsConfig · object"},{"type":"null","uniqueKey":"config.builtins.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.builtins","typeLabel":"BuiltinsConfig · object | null"},"analysis":{"oneOf":[{"type":"object","title":"AnalysisConfig","description":"What the post-conversation analysis looks for (W2-A's job reads the compiled block).","properties":{"successDefinition":{"oneOf":[{"type":"string","title":"Successdefinition","maxLength":1000,"uniqueKey":"config.analysis.oneOf.0.successDefinition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Successdefinition","uniqueKey":"config.analysis.oneOf.0.successDefinition.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.analysis.oneOf.0.successDefinition","typeLabel":"string | null"},"dispositionLabels":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.analysis.oneOf.0.dispositionLabels.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Dispositionlabels","maxItems":20,"uniqueKey":"config.analysis.oneOf.0.dispositionLabels.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Dispositionlabels","uniqueKey":"config.analysis.oneOf.0.dispositionLabels.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.analysis.oneOf.0.dispositionLabels","typeLabel":"string[] | null"},"bookingToolIds":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.analysis.oneOf.0.bookingToolIds.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Bookingtoolids","maxItems":20,"uniqueKey":"config.analysis.oneOf.0.bookingToolIds.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Bookingtoolids","uniqueKey":"config.analysis.oneOf.0.bookingToolIds.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.analysis.oneOf.0.bookingToolIds","typeLabel":"string[] | null"},"extractFields":{"oneOf":[{"type":"array","items":{"properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$","title":"Key","isRequired":true,"uniqueKey":"config.analysis.oneOf.0.extractFields.oneOf.0.items.[INDEX].key","typeLabel":"string"},"type":{"type":"string","enum":["string","number","boolean","date","phone","email"],"title":"Type","default":"string","uniqueKey":"config.analysis.oneOf.0.extractFields.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","maxLength":300,"title":"Description","default":"","uniqueKey":"config.analysis.oneOf.0.extractFields.oneOf.0.items.[INDEX].description","typeLabel":"string"}},"additionalProperties":false,"type":"object","required":["key"],"title":"ExtractField","uniqueKey":"config.analysis.oneOf.0.extractFields.oneOf.0.items.[INDEX]","typeLabel":"ExtractField · object"},"title":"Extractfields","maxItems":20,"uniqueKey":"config.analysis.oneOf.0.extractFields.oneOf.0","typeLabel":"ExtractField · object[]"},{"type":"null","title":"Extractfields","uniqueKey":"config.analysis.oneOf.0.extractFields.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.analysis.oneOf.0.extractFields","typeLabel":"ExtractField · object[] | null"}},"additionalProperties":false,"uniqueKey":"config.analysis.oneOf.0","typeLabel":"AnalysisConfig · object"},{"type":"null","uniqueKey":"config.analysis.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.analysis","typeLabel":"AnalysisConfig · object | null"},"web_search":{"oneOf":[{"type":"object","title":"WebSearchConfig","description":"`search_web`, the tool the agent calls itself when it needs something current or outside the\nbusiness (founder override #3: no feeds, no router; the agent searches for itself).","properties":{"enabled":{"oneOf":[{"type":"boolean","title":"Enabled","uniqueKey":"config.web_search.oneOf.0.enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Enabled","uniqueKey":"config.web_search.oneOf.0.enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.web_search.oneOf.0.enabled","typeLabel":"boolean | null"},"max_results":{"type":"integer","maximum":10,"minimum":1,"title":"Max Results","default":5,"uniqueKey":"config.web_search.oneOf.0.max_results","typeLabel":"integer"},"domains":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.web_search.oneOf.0.domains.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Domains","description":"Optional public-domain allowlist. Hostnames only, no URLs.","maxItems":20,"uniqueKey":"config.web_search.oneOf.0.domains.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Domains","description":"Optional public-domain allowlist. Hostnames only, no URLs.","uniqueKey":"config.web_search.oneOf.0.domains.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.web_search.oneOf.0.domains","typeLabel":"string[] | null"},"max_per_call":{"type":"integer","maximum":10,"minimum":1,"title":"Max Per Call","description":"Most searches the agent may run in one call or one chat reply.","default":3,"uniqueKey":"config.web_search.oneOf.0.max_per_call","typeLabel":"integer"},"provider":{"oneOf":[{"type":"string","title":"Provider","description":"A search provider that passed the eval gate (GET /v1/search/providers); default: the platform's (Telnyx).","pattern":"^[a-z][a-z0-9_]{1,31}$","uniqueKey":"config.web_search.oneOf.0.provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Provider","description":"A search provider that passed the eval gate (GET /v1/search/providers); default: the platform's (Telnyx).","uniqueKey":"config.web_search.oneOf.0.provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.web_search.oneOf.0.provider","typeLabel":"string | null"}},"uniqueKey":"config.web_search.oneOf.0","typeLabel":"WebSearchConfig · object"},{"type":"null","uniqueKey":"config.web_search.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.web_search","typeLabel":"WebSearchConfig · object | null"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Your own data. Echoed back on every call record.","uniqueKey":"config.metadata","typeLabel":"Metadata · object"}},"additionalProperties":false,"type":"object","title":"AgentSpec","description":"A complete agent. Every field optional.","isRequired":true,"uniqueKey":"config","typeLabel":"AgentSpec · object"},"agent_id":{"oneOf":[{"type":"string","title":"Agent Id","description":"The agent this config is an edit of. A knowledge source it already attaches that has since been deleted from the library is then dropped with a warning, as saving it would; without it, such an id is refused like any unknown one.","format":"uuid","uniqueKey":"agent_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Agent Id","description":"The agent this config is an edit of. A knowledge source it already attaches that has since been deleted from the library is then dropped with a warning, as saving it would; without it, such an id is refused like any unknown one.","uniqueKey":"agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_id","typeLabel":"string\u003cuuid> | null"}},"additionalProperties":false,"type":"object","required":["config"],"title":"ValidateRequest","uniqueKey":"","typeLabel":"ValidateRequest · object"},"examples":{"Example":{"title":"Example","value":{"config":{"name":"Inline agent","prompt":"You are a friendly voice assistant on a phone call.","greeting":"Hi! How can I help?","outbound_greeting":"\u003cstring>","purpose":"\u003cstring>","language":"en","timezone":"\u003cstring>","stt":{"provider":"\u003cstring>","model":"\u003cstring>","language":"\u003cstring>","languages":["\u003cstring>"],"strict_language":true,"context":{"general":{"domain":"Dental clinic","location":"Dubai","setting":"Phone booking"},"text":"\u003cstring>","terms":["Invisalign","Dr Al Mansouri","root canal"]},"language_identification":true,"language_focus":true,"endpointing":{"latency_level":1,"sensitivity":0,"max_delay_ms":1750},"diarization":true,"addressivity":"retain","perception":true,"speaker_embeddings":false,"speaker_embedding_model":"\u003cstring>","speaker_embedding_threshold":0.5,"acoustics":true,"clarify_below":0.5,"ignore_below":0.5,"keywords":["\u003cstring>"]},"llm":{"provider":"\u003cstring>","model":"\u003cstring>","temperature":1,"max_tokens":2048,"top_p":0.5,"frequency_penalty":0,"presence_penalty":0,"seed":123,"extra":{"reasoning_effort":"none"},"fallback":{"provider":"\u003cstring>","model":"\u003cstring>"}},"tts":{"provider":"\u003cstring>","model":"\u003cstring>","voice":"\u003cstring>","language":"\u003cstring>","speed":1.05,"volume":1.25,"temperature":1,"stability":0.5,"emotion":"\u003cstring>","pronunciation_dict_id":"\u003cstring>","max_buffer_delay_ms":2500,"steering":true,"non_verbals":true,"backchanneling":true,"backchannel_start_delay_sec":10.5,"backchannel_gap_sec":16,"backchannel_max_per_minute":3},"turn":{"max_wait_sec":5.3,"pre_speech_ms":1000,"claim_secs":0.85,"ringback_settle_sec":1.05,"resume_short_sec":15.25,"resume_long_sec":30.25,"confidence":0.5,"min_volume":0.5,"stop_secs":0.55,"interruptible":true,"min_interrupt_words":5,"protect_greeting":true,"idle_timeout_sec":60},"style":{"disfluency":true,"avoid_tells":true,"backchanneling":true,"backchannel_start_delay_sec":10.5,"backchannel_gap_sec":16,"backchannel_max_per_minute":5,"lookup_cut_in":true},"audio":{"crowded_places":true,"ambient":{"volume":0.5},"wideband":true},"call":{"max_duration_sec":3605,"record":true,"summarize_long_calls":true,"end_call":true,"voicemail":{"enabled":false,"message":"\u003cstring>"},"transfer":{"enabled":true,"destinations":[{"id":"\u003cstring>","label":"\u003cstring>","to":"\u003cstring>","description":"\u003cstring>","mode":"cold","caller_message":"\u003cstring>","consultation_message":"\u003cstring>","timeout_sec":30}],"failure_message":"\u003cstring>"},"monitoring_notice":{"enabled":true,"text":"\u003cstring>"}},"memory":{"enabled":true,"retention_days":1825},"knowledge":{"ids":["\u003cstring>"],"top_k":10,"channels":{}},"tools":[{"tool_id":"\u003cstring>","channels":[],"allowed_tools":["\u003cstring>"],"overrides":{"filler":"\u003cstring>","filler_after_ms":5000,"timeout_ms":15050},"name":"\u003cstring>","description":"\u003cstring>","url":"\u003cstring>","headers":{},"auth":{"type":"none","credential_id":"\u003cstring>","token":"\u003cstring>","header":"\u003cstring>","query":"\u003cstring>","value":"\u003cstring>","sealed":"\u003cstring>","hint":"\u003cstring>"},"parameters":{},"timeout_ms":15050,"blocking":true,"filler":"\u003cstring>"}],"builtins":{"knowledge_search":true,"calendar":{"google_connection_id":"\u003cstring>","calendar_id":"primary","timezone":"\u003cstring>","duration_min":30,"hours":[{"start":"\u003cstring>","end":"\u003cstring>"}],"min_notice_min":60},"sheets":{"google_connection_id":"\u003cstring>","spreadsheet_id":"\u003cstring>","sheet":"","when":""},"whatsapp_send":{"connection_id":"\u003cstring>"},"email_send":true},"analysis":{"successDefinition":"\u003cstring>","dispositionLabels":["\u003cstring>"],"bookingToolIds":["\u003cstring>"],"extractFields":[{"key":"\u003cstring>","type":"string","description":""}]},"web_search":{"enabled":true,"max_results":5,"domains":["\u003cstring>"],"max_per_call":3,"provider":"\u003cstring>"},"metadata":{}},"agent_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"c3276786-5d3b-4833-95d9-94dcd38c1f12":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"valid":{"type":"boolean","title":"Valid","isRequired":true,"uniqueKey":"valid","typeLabel":"boolean"},"config_hash":{"type":"string","title":"Config Hash","isRequired":true,"uniqueKey":"config_hash","typeLabel":"string"},"findings":{"items":{"properties":{"severity":{"type":"string","enum":["error","warning","info"],"title":"Severity","description":"`error` blocks publishing; the others don't.","isRequired":true,"uniqueKey":"findings.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"A stable machine code for the finding.","isRequired":true,"uniqueKey":"findings.items.[INDEX].code","typeLabel":"string"},"path":{"type":"string","title":"Path","description":"JSON Pointer to the field in `config` it is about.","isRequired":true,"uniqueKey":"findings.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"What is wrong, in plain words.","isRequired":true,"uniqueKey":"findings.items.[INDEX].message","typeLabel":"string"},"provider":{"oneOf":[{"type":"string","title":"Provider","description":"The voice or model provider it concerns, if any.","uniqueKey":"findings.items.[INDEX].provider.oneOf.0","typeLabel":"string"},{"type":"null","title":"Provider","description":"The voice or model provider it concerns, if any.","uniqueKey":"findings.items.[INDEX].provider.oneOf.1","typeLabel":"null"}],"uniqueKey":"findings.items.[INDEX].provider","typeLabel":"string | null"}},"type":"object","required":["severity","code","path","message"],"title":"ValidationFinding","uniqueKey":"findings.items.[INDEX]","typeLabel":"ValidationFinding · object"},"type":"array","title":"Findings","isRequired":true,"uniqueKey":"findings","typeLabel":"ValidationFinding · object[]"},"resolved":{"additionalProperties":true,"type":"object","title":"Resolved","description":"The configuration with every server default applied — what would be saved.","isRequired":true,"uniqueKey":"resolved","typeLabel":"Resolved · object"}},"type":"object","required":["valid","config_hash","findings","resolved"],"title":"ValidateResponse","uniqueKey":"","typeLabel":"ValidateResponse · object"},"examples":{"Example":{"title":"Example","value":{"valid":true,"config_hash":"\u003cstring>","findings":[{"severity":"error","code":"\u003cstring>","path":"\u003cstring>","message":"\u003cstring>","provider":"\u003cstring>"}],"resolved":{}}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed per minute for this credential.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window is full again.","schema":{"type":"integer"}},"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}},"Kallabot-Version":{"description":"The API version that answered this request.","schema":{"type":"string","example":"2026-11-07"}},"Kallabot-SDK-Warning":{"description":"Sent when the SDK release that made the request is deprecated: what to upgrade to. The SDKs log it once.","schema":{"type":"string"}}},"exampleType":"generated"},"442ba535-118c-4aed-95d4-a90308956fa5":{"description":"Kallabot-Version names a version this API doesn't have","headers":{"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"An RFC 9457 problem. `code` is the stable contract; `title` and `detail` are for people.","required":["type","title","status","code","retryable"],"properties":{"type":{"type":"string","format":"uri","example":"https://docs.kallabot.com/errors/not_found","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","example":"Agent not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"detail":{"type":"string","example":"Agent does not exist, or you do not have access to it.","uniqueKey":"detail","typeLabel":"string"},"field_problems":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON Pointer to the field.","example":"/to","uniqueKey":"field_problems.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","example":"missing","uniqueKey":"field_problems.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Field required","uniqueKey":"field_problems.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"field_problems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"field_problems","typeLabel":"object[]"},"request_id":{"type":"string","example":"req_01HZX3K9Q2","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.kallabot.com/errors/unsupported_api_version","title":"Kallabot-Version names a version this API doesn't have","status":400,"code":"unsupported_api_version","retryable":false},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.kallabot.com/errors/unsupported_api_version","title":"Kallabot-Version names a version this API doesn't have","status":400,"code":"unsupported_api_version","retryable":false}}},"exampleType":"examples"}},"exampleType":"examples"},"6f16658b-a25f-4def-a79c-5616c09ce6a1":{"description":"Missing or invalid API key","headers":{"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"An RFC 9457 problem. `code` is the stable contract; `title` and `detail` are for people.","required":["type","title","status","code","retryable"],"properties":{"type":{"type":"string","format":"uri","example":"https://docs.kallabot.com/errors/not_found","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","example":"Agent not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"detail":{"type":"string","example":"Agent does not exist, or you do not have access to it.","uniqueKey":"detail","typeLabel":"string"},"field_problems":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON Pointer to the field.","example":"/to","uniqueKey":"field_problems.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","example":"missing","uniqueKey":"field_problems.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Field required","uniqueKey":"field_problems.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"field_problems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"field_problems","typeLabel":"object[]"},"request_id":{"type":"string","example":"req_01HZX3K9Q2","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.kallabot.com/errors/unauthenticated","title":"Missing or invalid API key","status":401,"code":"unauthenticated","retryable":false},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.kallabot.com/errors/unauthenticated","title":"Missing or invalid API key","status":401,"code":"unauthenticated","retryable":false}}},"exampleType":"examples"}},"exampleType":"examples"},"12dddddd-ef51-4133-ae4f-1249a8dcdfa1":{"description":"The key lacks a required scope","headers":{"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"An RFC 9457 problem. `code` is the stable contract; `title` and `detail` are for people.","required":["type","title","status","code","retryable"],"properties":{"type":{"type":"string","format":"uri","example":"https://docs.kallabot.com/errors/not_found","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","example":"Agent not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"detail":{"type":"string","example":"Agent does not exist, or you do not have access to it.","uniqueKey":"detail","typeLabel":"string"},"field_problems":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON Pointer to the field.","example":"/to","uniqueKey":"field_problems.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","example":"missing","uniqueKey":"field_problems.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Field required","uniqueKey":"field_problems.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"field_problems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"field_problems","typeLabel":"object[]"},"request_id":{"type":"string","example":"req_01HZX3K9Q2","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.kallabot.com/errors/insufficient_scope","title":"The key lacks a required scope","status":403,"code":"insufficient_scope","retryable":false},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.kallabot.com/errors/insufficient_scope","title":"The key lacks a required scope","status":403,"code":"insufficient_scope","retryable":false}}},"exampleType":"examples"}},"exampleType":"examples"},"ff73cf63-fb98-4fe6-88e0-e54db3aeb55b":{"description":"Conflicts with the resource's current state","headers":{"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"An RFC 9457 problem. `code` is the stable contract; `title` and `detail` are for people.","required":["type","title","status","code","retryable"],"properties":{"type":{"type":"string","format":"uri","example":"https://docs.kallabot.com/errors/not_found","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","example":"Agent not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"detail":{"type":"string","example":"Agent does not exist, or you do not have access to it.","uniqueKey":"detail","typeLabel":"string"},"field_problems":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON Pointer to the field.","example":"/to","uniqueKey":"field_problems.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","example":"missing","uniqueKey":"field_problems.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Field required","uniqueKey":"field_problems.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"field_problems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"field_problems","typeLabel":"object[]"},"request_id":{"type":"string","example":"req_01HZX3K9Q2","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.kallabot.com/errors/revision_conflict","title":"Conflicts with the resource's current state","status":409,"code":"revision_conflict","retryable":false},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.kallabot.com/errors/revision_conflict","title":"Conflicts with the resource's current state","status":409,"code":"revision_conflict","retryable":false}}},"exampleType":"examples"}},"exampleType":"examples"},"398345d3-97e8-44ce-9428-ddd0ab684ec1":{"description":"One or more fields are not valid","headers":{"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"An RFC 9457 problem. `code` is the stable contract; `title` and `detail` are for people.","required":["type","title","status","code","retryable"],"properties":{"type":{"type":"string","format":"uri","example":"https://docs.kallabot.com/errors/not_found","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","example":"Agent not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"detail":{"type":"string","example":"Agent does not exist, or you do not have access to it.","uniqueKey":"detail","typeLabel":"string"},"field_problems":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON Pointer to the field.","example":"/to","uniqueKey":"field_problems.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","example":"missing","uniqueKey":"field_problems.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Field required","uniqueKey":"field_problems.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"field_problems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"field_problems","typeLabel":"object[]"},"request_id":{"type":"string","example":"req_01HZX3K9Q2","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.kallabot.com/errors/invalid_request","title":"One or more fields are not valid","status":422,"code":"invalid_request","retryable":false},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.kallabot.com/errors/invalid_request","title":"One or more fields are not valid","status":422,"code":"invalid_request","retryable":false}}},"exampleType":"examples"}},"exampleType":"examples"},"9715dbd0-e63d-4bdb-9d26-9806da93f646":{"description":"This SDK release is switched off: upgrade the SDK","headers":{"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"An RFC 9457 problem. `code` is the stable contract; `title` and `detail` are for people.","required":["type","title","status","code","retryable"],"properties":{"type":{"type":"string","format":"uri","example":"https://docs.kallabot.com/errors/not_found","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","example":"Agent not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"detail":{"type":"string","example":"Agent does not exist, or you do not have access to it.","uniqueKey":"detail","typeLabel":"string"},"field_problems":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON Pointer to the field.","example":"/to","uniqueKey":"field_problems.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","example":"missing","uniqueKey":"field_problems.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Field required","uniqueKey":"field_problems.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"field_problems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"field_problems","typeLabel":"object[]"},"request_id":{"type":"string","example":"req_01HZX3K9Q2","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.kallabot.com/errors/sdk_version_unsupported","title":"This SDK release is switched off: upgrade the SDK","status":426,"code":"sdk_version_unsupported","retryable":false},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.kallabot.com/errors/sdk_version_unsupported","title":"This SDK release is switched off: upgrade the SDK","status":426,"code":"sdk_version_unsupported","retryable":false}}},"exampleType":"examples"}},"exampleType":"examples"},"63efa3df-ae1a-4380-b605-421714cd6071":{"description":"Too many requests","headers":{"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per minute for this credential.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window is full again.","schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"An RFC 9457 problem. `code` is the stable contract; `title` and `detail` are for people.","required":["type","title","status","code","retryable"],"properties":{"type":{"type":"string","format":"uri","example":"https://docs.kallabot.com/errors/not_found","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","example":"Agent not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"detail":{"type":"string","example":"Agent does not exist, or you do not have access to it.","uniqueKey":"detail","typeLabel":"string"},"field_problems":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON Pointer to the field.","example":"/to","uniqueKey":"field_problems.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","example":"missing","uniqueKey":"field_problems.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Field required","uniqueKey":"field_problems.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"field_problems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"field_problems","typeLabel":"object[]"},"request_id":{"type":"string","example":"req_01HZX3K9Q2","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.kallabot.com/errors/rate_limited","title":"Too many requests","status":429,"code":"rate_limited","retryable":true},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.kallabot.com/errors/rate_limited","title":"Too many requests","status":429,"code":"rate_limited","retryable":true}}},"exampleType":"examples"}},"exampleType":"examples"},"912cefc1-8451-4693-82eb-9b73f5bb8564":{"description":"Something went wrong on our side","headers":{"X-Request-Id":{"description":"Quote this when contacting support.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"An RFC 9457 problem. `code` is the stable contract; `title` and `detail` are for people.","required":["type","title","status","code","retryable"],"properties":{"type":{"type":"string","format":"uri","example":"https://docs.kallabot.com/errors/not_found","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","example":"Agent not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"retryable":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"detail":{"type":"string","example":"Agent does not exist, or you do not have access to it.","uniqueKey":"detail","typeLabel":"string"},"field_problems":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON Pointer to the field.","example":"/to","uniqueKey":"field_problems.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","example":"missing","uniqueKey":"field_problems.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Field required","uniqueKey":"field_problems.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"field_problems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"field_problems","typeLabel":"object[]"},"request_id":{"type":"string","example":"req_01HZX3K9Q2","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.kallabot.com/errors/internal_error","title":"Something went wrong on our side","status":500,"code":"internal_error","retryable":true},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.kallabot.com/errors/internal_error","title":"Something went wrong on our side","status":500,"code":"internal_error","retryable":true}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"b41c6b50-3e07-461e-a1ac-82939f68846f":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"kb_live_\u003clookup>_\u003csecret> | kbp_live_\u003clookup>_\u003csecret>","description":"An API key from Settings → API keys, sent as `Authorization: Bearer kb_live_…`. A workspace key starts `kb_`; a personal key starts `kbp_` and acts as its owner.","scopes":[],"schemeName":"apiKey"}}},"servers":{"fde32f83-367a-4ba5-9cbd-b9de50cd5d65":{"url":"https://api.kallabot.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"kb_live_\u003clookup>_\u003csecret> | kbp_live_\u003clookup>_\u003csecret>","description":"An API key from Settings → API keys, sent as `Authorization: Bearer kb_live_…`. A workspace key starts `kb_`; a personal key starts `kbp_` and acts as its owner.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key from Settings → API keys, sent as `Authorization: Bearer kb_live_…`. A workspace key starts `kb_`; a personal key starts `kbp_` and acts as its owner.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"kallabot","siteName":"Kallabot Docs","title":"Validate an agent configuration - Kallabot Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-07T18:39:37.127Z","originalFileLocation":"api-reference/agents/validate-an-agent-configuration.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=\"dark\"}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=\"Checks a configuration exactly as saving it would, without saving anything. Returns valid, every finding with its path, and resolved: the configuration with all defaults applied. Pass agent_id when the configuration is an edit of an existing agent. Scopes: agent:read\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kallabot 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/kallabot/uo1aJnHhy5FtXmQ0/_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/kallabot/uo1aJnHhy5FtXmQ0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kallabot/uo1aJnHhy5FtXmQ0/_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/kallabot/uo1aJnHhy5FtXmQ0/_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/kallabot/uo1aJnHhy5FtXmQ0/_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/kallabot/uo1aJnHhy5FtXmQ0/_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/kallabot/uo1aJnHhy5FtXmQ0/_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/kallabot/uo1aJnHhy5FtXmQ0/_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/kallabot/uo1aJnHhy5FtXmQ0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Validate an agent configuration - Kallabot Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Checks a configuration exactly as saving it would, without saving anything. Returns valid, every finding with its path, and resolved: the configuration with all defaults applied. Pass agent_id when the configuration is an edit of an existing agent. Scopes: agent:read\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kallabot Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.kallabot.com/images/og.png\">\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=\"Validate an agent configuration - Kallabot Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Checks a configuration exactly as saving it would, without saving anything. Returns valid, every finding with its path, and resolved: the configuration with all defaults applied. Pass agent_id when the configuration is an edit of an existing agent. Scopes: agent:read\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.kallabot.com/images/og.png\">\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/kallabot/uo1aJnHhy5FtXmQ0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kallabot Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#111216\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/agents/validate-an-agent-configuration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kallabot.com/#organization\",\"name\":\"Kallabot Docs\",\"url\":\"https://docs.kallabot.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kallabot/0ctdxcpeBH5ZeZjz/logo/light.svg?fit=max\u0026auto=format\u0026n=0ctdxcpeBH5ZeZjz\u0026q=85\u0026s=e5db5ce99f943a157b87e51aa1313e2b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kallabot.com#website\",\"name\":\"Kallabot Docs\",\"url\":\"https://docs.kallabot.com\",\"publisher\":{\"@id\":\"https://docs.kallabot.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration#webpage\",\"url\":\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration\",\"name\":\"Validate an agent configuration\",\"description\":\"Checks a configuration exactly as saving it would, without saving anything. Returns valid, every finding with its path, and resolved: the configuration with all defaults applied. Pass agent_id when the configuration is an edit of an existing agent. Scopes: agent:read\",\"dateModified\":\"2026-11-07T18:39:37.127Z\",\"isPartOf\":{\"@id\":\"https://docs.kallabot.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.kallabot.com/api-reference/agents/list-agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agents\",\"item\":\"https://docs.kallabot.com/api-reference/agents/list-agents\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Validate an agent configuration\",\"item\":\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration#apireference\",\"headline\":\"Validate an agent configuration\",\"name\":\"Validate an agent configuration\",\"description\":\"Checks a configuration exactly as saving it would, without saving anything. Returns valid, every finding with its path, and resolved: the configuration with all defaults applied. Pass agent_id when the configuration is an edit of an existing agent. Scopes: agent:read\",\"url\":\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kallabot.com/api-reference/agents/validate-an-agent-configuration#webpage\"},\"image\":\"https://docs.kallabot.com/images/og.png\",\"dateModified\":\"2026-11-07T18:39:37.127Z\",\"publisher\":{\"@id\":\"https://docs.kallabot.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kallabot.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kallabot Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kallabot Docs","nav":{"global":{"anchors":[{"anchor":"Open Kallabot","icon":"phone","href":"https://kallabot.com"},{"anchor":"Email support","icon":"mail","href":"mailto:[email protected]"}]},"tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":""}]},{"tab":"Developers","icon":"terminal","pages":[{"title":"Developers","href":"/developers/introduction"}]},{"tab":"API reference","icon":"braces","groups":[{"group":"Overview","pages":[{"title":"API reference","sidebarTitle":"Overview","icon":"braces","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents","href":"/api-reference/agents/list-agents"},{"title":"Create an agent","description":"Creates an agent from a configuration. The new agent is a draft: it can't take real calls until you publish it with `POST /v1/agents/{agent_id}/publish`. Send an `Idempotency-Key`. The response's `ETag` is the agent's `revision`, which later writes send back as `If-Match`.\n\n**Scopes:** `agent:write`","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents","href":"/api-reference/agents/create-an-agent"},{"title":"Validate an agent configuration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/validate","href":"/api-reference/agents/validate-an-agent-configuration"},{"title":"List saved WhatsApp setups","description":"Returns the WhatsApp setups saved with agents that don't have a WhatsApp number yet, most recently changed first. Add `include=draft` to get each full setup document; it is only returned to a key with `agent:write`.\n\n**Scopes:** `agent:read`","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/whatsapp-studios","href":"/api-reference/agents/list-saved-whatsapp-setups"},{"title":"Pick an agent for a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/picker","href":"/api-reference/agents/pick-an-agent-for-a-call"},{"title":"Get an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}","href":"/api-reference/agents/get-an-agent"},{"title":"Archive an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}","href":"/api-reference/agents/archive-an-agent"},{"title":"Update an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}","href":"/api-reference/agents/update-an-agent"},{"title":"Update an agent's WhatsApp copy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/channel","href":"/api-reference/agents/update-an-agents-whatsapp-copy"},{"title":"Publish an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/publish","href":"/api-reference/agents/publish-an-agent"},{"title":"List agent versions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/versions","href":"/api-reference/agents/list-agent-versions"},{"title":"Get an agent version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/versions/{version_id}","href":"/api-reference/agents/get-an-agent-version"},{"title":"Revert an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/versions/{version_id}/revert","href":"/api-reference/agents/revert-an-agent"},{"title":"Get a WhatsApp setup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/whatsapp-studio","href":"/api-reference/agents/get-a-whatsapp-setup"},{"title":"Save a WhatsApp setup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/agents/{agent_id}/whatsapp-studio","href":"/api-reference/agents/save-a-whatsapp-setup"},{"title":"Delete a WhatsApp setup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/whatsapp-studio","href":"/api-reference/agents/delete-a-whatsapp-setup"}]},{"group":"Tools","pages":[{"title":"List tools","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tools","href":"/api-reference/tools/list-tools"},{"title":"Create a tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools","href":"/api-reference/tools/create-a-tool"},{"title":"Get a tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tools/{tool_id}","href":"/api-reference/tools/get-a-tool"},{"title":"Delete a tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tools/{tool_id}","href":"/api-reference/tools/delete-a-tool"},{"title":"Update a tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/tools/{tool_id}","href":"/api-reference/tools/update-a-tool"},{"title":"Test a tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/test","href":"/api-reference/tools/test-a-tool"},{"title":"Test an unsaved tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/test","href":"/api-reference/tools/test-an-unsaved-tool"},{"title":"Probe an MCP server","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/mcp/probe","href":"/api-reference/tools/probe-an-mcp-server"},{"title":"Refresh an MCP server's tools","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/discover","href":"/api-reference/tools/refresh-an-mcp-servers-tools"},{"title":"Approve an MCP server's tools","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/approve-tools","href":"/api-reference/tools/approve-an-mcp-servers-tools"},{"title":"List a tool's runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tools/{tool_id}/invocations","href":"/api-reference/tools/list-a-tools-runs"},{"title":"List tool credentials","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tool-credentials","href":"/api-reference/tools/list-tool-credentials"},{"title":"Create a tool credential","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tool-credentials","href":"/api-reference/tools/create-a-tool-credential"},{"title":"Get a tool credential","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tool-credentials/{credential_id}","href":"/api-reference/tools/get-a-tool-credential"},{"title":"Delete a tool credential","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tool-credentials/{credential_id}","href":"/api-reference/tools/delete-a-tool-credential"},{"title":"Rename a tool credential","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/tool-credentials/{credential_id}","href":"/api-reference/tools/rename-a-tool-credential"},{"title":"Rotate a tool credential","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tool-credentials/{credential_id}/rotate","href":"/api-reference/tools/rotate-a-tool-credential"},{"title":"Revoke a tool credential","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tool-credentials/{credential_id}/revoke","href":"/api-reference/tools/revoke-a-tool-credential"}]},{"group":"Calls","pages":[{"title":"List a call's tool runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls/{call_id}/tool-invocations","href":"/api-reference/calls/list-a-calls-tool-runs"},{"title":"List calls","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls","href":"/api-reference/calls/list-calls"},{"title":"Place a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/calls","href":"/api-reference/calls/place-a-call"},{"title":"List call tags","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls/tags","href":"/api-reference/calls/list-call-tags"},{"title":"Export calls as CSV","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls/export","href":"/api-reference/calls/export-calls-as-csv"},{"title":"Get a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls/{call_id}","href":"/api-reference/calls/get-a-call"},{"title":"Tag or archive a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/calls/{call_id}","href":"/api-reference/calls/tag-or-archive-a-call"},{"title":"End a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/calls/{call_id}/cancel","href":"/api-reference/calls/end-a-call"},{"title":"List call notes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls/{call_id}/notes","href":"/api-reference/calls/list-call-notes"},{"title":"Add a note to a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/calls/{call_id}/notes","href":"/api-reference/calls/add-a-note-to-a-call"},{"title":"Delete a note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/calls/{call_id}/notes/{note_id}","href":"/api-reference/calls/delete-a-note"},{"title":"Edit a note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/calls/{call_id}/notes/{note_id}","href":"/api-reference/calls/edit-a-note"},{"title":"Whisper to the agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/calls/{call_id}/whisper","href":"/api-reference/calls/whisper-to-the-agent"},{"title":"Listen in or take over","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/calls/{call_id}/operator","href":"/api-reference/calls/listen-in-or-take-over"},{"title":"Stop listening or hand back","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/calls/{call_id}/operator","href":"/api-reference/calls/stop-listening-or-hand-back"},{"title":"Transfer a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/calls/{call_id}/transfer","href":"/api-reference/calls/transfer-a-call"},{"title":"List call events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls/{call_id}/events","href":"/api-reference/calls/list-call-events"},{"title":"Download a call recording","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls/{call_id}/recording","href":"/api-reference/calls/download-a-call-recording"},{"title":"Get a call transcript","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/calls/{call_id}/transcript","href":"/api-reference/calls/get-a-call-transcript"}]},{"group":"Scheduled calls","pages":[{"title":"List scheduled calls","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/scheduled-calls","href":"/api-reference/scheduled-calls/list-scheduled-calls"},{"title":"Schedule a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/scheduled-calls","href":"/api-reference/scheduled-calls/schedule-a-call"},{"title":"Get a scheduled call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/scheduled-calls/{scheduled_call_id}","href":"/api-reference/scheduled-calls/get-a-scheduled-call"},{"title":"Update a scheduled call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/scheduled-calls/{scheduled_call_id}","href":"/api-reference/scheduled-calls/update-a-scheduled-call"},{"title":"Confirm a proposed callback","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/scheduled-calls/{scheduled_call_id}/confirm","href":"/api-reference/scheduled-calls/confirm-a-proposed-callback"},{"title":"Cancel a scheduled call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/scheduled-calls/{scheduled_call_id}/cancel","href":"/api-reference/scheduled-calls/cancel-a-scheduled-call"}]},{"group":"Web calls","pages":[{"title":"Start a web call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/web-call-sessions","href":"/api-reference/web-calls/start-a-web-call"},{"title":"Send a WebRTC offer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/web-call-sessions/{call_id}/offer","href":"/api-reference/web-calls/send-a-webrtc-offer"},{"title":"Send ICE candidates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/web-call-sessions/{call_id}/offer","href":"/api-reference/web-calls/send-ice-candidates"},{"title":"End a web call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/web-call-sessions/{call_id}","href":"/api-reference/web-calls/end-a-web-call"},{"title":"Send a WebRTC offer (browser)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/web-call-sessions/{call_id}/client/offer","href":"/api-reference/web-calls/send-a-webrtc-offer-browser"},{"title":"Send ICE candidates (browser)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/web-call-sessions/{call_id}/client/offer","href":"/api-reference/web-calls/send-ice-candidates-browser"},{"title":"Hang up a web call (browser)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/web-call-sessions/{call_id}/client","href":"/api-reference/web-calls/hang-up-a-web-call-browser"}]},{"group":"Webhooks","pages":[{"title":"List webhook event types","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhooks/event-types","href":"/api-reference/webhooks/list-webhook-event-types"},{"title":"List webhook endpoints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhooks","href":"/api-reference/webhooks/list-webhook-endpoints"},{"title":"Create a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhooks","href":"/api-reference/webhooks/create-a-webhook-endpoint"},{"title":"List webhook deliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhooks/deliveries","href":"/api-reference/webhooks/list-webhook-deliveries"},{"title":"Get a webhook delivery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhooks/deliveries/{delivery_id}","href":"/api-reference/webhooks/get-a-webhook-delivery"},{"title":"Retry a webhook delivery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhooks/deliveries/{delivery_id}/retry","href":"/api-reference/webhooks/retry-a-webhook-delivery"},{"title":"Get a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhooks/{endpoint_id}","href":"/api-reference/webhooks/get-a-webhook-endpoint"},{"title":"Delete a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/webhooks/{endpoint_id}","href":"/api-reference/webhooks/delete-a-webhook-endpoint"},{"title":"Update a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/webhooks/{endpoint_id}","href":"/api-reference/webhooks/update-a-webhook-endpoint"},{"title":"Enable a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhooks/{endpoint_id}/enable","href":"/api-reference/webhooks/enable-a-webhook-endpoint"},{"title":"Rotate a webhook secret","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhooks/{endpoint_id}/rotate-secret","href":"/api-reference/webhooks/rotate-a-webhook-secret"},{"title":"Send a test event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhooks/{endpoint_id}/test","href":"/api-reference/webhooks/send-a-test-event"},{"title":"Re-send failed deliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhooks/{endpoint_id}/recover","href":"/api-reference/webhooks/re-send-failed-deliveries"},{"title":"Callcreated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.created","href":"/api-reference/webhooks/callcreated"},{"title":"Callringing","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.ringing","href":"/api-reference/webhooks/callringing"},{"title":"Callanswered","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.answered","href":"/api-reference/webhooks/callanswered"},{"title":"Callended","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.ended","href":"/api-reference/webhooks/callended"},{"title":"Calltranscriptready","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.transcript.ready","href":"/api-reference/webhooks/calltranscriptready"},{"title":"Callrecordingready","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.recording.ready","href":"/api-reference/webhooks/callrecordingready"},{"title":"Callanalyzed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.analyzed","href":"/api-reference/webhooks/callanalyzed"},{"title":"Calltransferrequested","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.transfer.requested","href":"/api-reference/webhooks/calltransferrequested"},{"title":"Calltransfercompleted","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.transfer.completed","href":"/api-reference/webhooks/calltransfercompleted"},{"title":"Calltransferfailed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.transfer.failed","href":"/api-reference/webhooks/calltransferfailed"},{"title":"Callvoicemaildetected","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.voicemail.detected","href":"/api-reference/webhooks/callvoicemaildetected"},{"title":"Calloperatorjoined","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.operator.joined","href":"/api-reference/webhooks/calloperatorjoined"},{"title":"Calloperatorleft","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook call.operator.left","href":"/api-reference/webhooks/calloperatorleft"},{"title":"Toolcalled","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook tool.called","href":"/api-reference/webhooks/toolcalled"},{"title":"Conversationstarted","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook conversation.started","href":"/api-reference/webhooks/conversationstarted"},{"title":"Conversationmessagereceived","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook conversation.message.received","href":"/api-reference/webhooks/conversationmessagereceived"},{"title":"Conversationmessagesent","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook conversation.message.sent","href":"/api-reference/webhooks/conversationmessagesent"},{"title":"Conversationhanded off","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook conversation.handed_off","href":"/api-reference/webhooks/conversationhanded_off"},{"title":"Conversationclosed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook conversation.closed","href":"/api-reference/webhooks/conversationclosed"},{"title":"Conversationanalyzed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook conversation.analyzed","href":"/api-reference/webhooks/conversationanalyzed"},{"title":"Numberpurchased","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook number.purchased","href":"/api-reference/webhooks/numberpurchased"},{"title":"Numberreleased","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook number.released","href":"/api-reference/webhooks/numberreleased"},{"title":"Numberupdated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook number.updated","href":"/api-reference/webhooks/numberupdated"},{"title":"Numbercomplianceupdated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook number.compliance.updated","href":"/api-reference/webhooks/numbercomplianceupdated"},{"title":"Numberorderupdated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook number.order.updated","href":"/api-reference/webhooks/numberorderupdated"},{"title":"Numberport inupdated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook number.port_in.updated","href":"/api-reference/webhooks/numberport_inupdated"},{"title":"Numbertrustupdated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook number.trust.updated","href":"/api-reference/webhooks/numbertrustupdated"},{"title":"Agentcreated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook agent.created","href":"/api-reference/webhooks/agentcreated"},{"title":"Agentupdated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook agent.updated","href":"/api-reference/webhooks/agentupdated"},{"title":"Agentpublished","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook agent.published","href":"/api-reference/webhooks/agentpublished"},{"title":"Agentarchived","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook agent.archived","href":"/api-reference/webhooks/agentarchived"},{"title":"Knowledgesourceready","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook knowledge.source.ready","href":"/api-reference/webhooks/knowledgesourceready"},{"title":"Knowledgesourcefailed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook knowledge.source.failed","href":"/api-reference/webhooks/knowledgesourcefailed"},{"title":"Knowledgesourcerefreshed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook knowledge.source.refreshed","href":"/api-reference/webhooks/knowledgesourcerefreshed"},{"title":"Webhooktest","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook webhook.test","href":"/api-reference/webhooks/webhooktest"}]},{"group":"Minutes","pages":[{"title":"List minute requests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/minutes/requests","href":"/api-reference/minutes/list-minute-requests"},{"title":"Ask for more minutes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/minutes/requests","href":"/api-reference/minutes/ask-for-more-minutes"},{"title":"Move minutes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/minutes/transfers","href":"/api-reference/minutes/move-minutes"}]},{"group":"Numbers","pages":[{"title":"List number countries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/countries","href":"/api-reference/numbers/list-number-countries"},{"title":"Get a number country","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/countries/{country_code}","href":"/api-reference/numbers/get-a-number-country"},{"title":"Search available numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/available","href":"/api-reference/numbers/search-available-numbers"},{"title":"Check number availability","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/availability","href":"/api-reference/numbers/check-number-availability"},{"title":"List number requests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/requests","href":"/api-reference/numbers/list-number-requests"},{"title":"Ask for a number we don't stock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/requests","href":"/api-reference/numbers/ask-for-a-number-we-dont-stock"},{"title":"List numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/lines","href":"/api-reference/numbers/list-numbers"},{"title":"Get a number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/lines/{number_id}","href":"/api-reference/numbers/get-a-number"},{"title":"Release a number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/numbers/lines/{number_id}","href":"/api-reference/numbers/release-a-number"},{"title":"Rename a number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/numbers/lines/{number_id}","href":"/api-reference/numbers/rename-a-number"},{"title":"Change a number's verification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/numbers/lines/{number_id}/compliance","href":"/api-reference/numbers/change-a-numbers-verification"},{"title":"Dismiss a failed purchase","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/lines/{number_id}/dismiss","href":"/api-reference/numbers/dismiss-a-failed-purchase"},{"title":"List number orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/orders","href":"/api-reference/numbers/list-number-orders"},{"title":"Cancel a number order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/numbers/orders/{order_id}","href":"/api-reference/numbers/cancel-a-number-order"},{"title":"Swap a taken number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/orders/{order_id}/swap","href":"/api-reference/numbers/swap-a-taken-number"},{"title":"Set a number's agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/numbers/lines/{number_id}/agent","href":"/api-reference/numbers/set-a-numbers-agent"},{"title":"Set how a number answers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/numbers/lines/{number_id}/settings","href":"/api-reference/numbers/set-how-a-number-answers"},{"title":"List agents' caller numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/caller-numbers","href":"/api-reference/numbers/list-agents-caller-numbers"},{"title":"Set an agent's caller number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/numbers/agents/{agent_id}/caller-number","href":"/api-reference/numbers/set-an-agents-caller-number"},{"title":"Buy a number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/purchase","href":"/api-reference/numbers/buy-a-number"},{"title":"List number transfers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/numbers/port-ins","href":"/api-reference/numbers/list-number-transfers"},{"title":"Transfer numbers in","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/port-ins","href":"/api-reference/numbers/transfer-numbers-in"},{"title":"Check if numbers can transfer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/port-ins/portability","href":"/api-reference/numbers/check-if-numbers-can-transfer"},{"title":"Upload a carrier bill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/port-ins/documents","href":"/api-reference/numbers/upload-a-carrier-bill"},{"title":"Cancel a number transfer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/numbers/port-ins/{port_in_id}/cancel","href":"/api-reference/numbers/cancel-a-number-transfer"}]},{"group":"SIP trunks","pages":[{"title":"List SIP trunks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sip-trunks","href":"/api-reference/sip-trunks/list-sip-trunks"},{"title":"Create a SIP trunk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sip-trunks","href":"/api-reference/sip-trunks/create-a-sip-trunk"},{"title":"List Twilio account numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sip-trunks/twilio/lookup","href":"/api-reference/sip-trunks/list-twilio-account-numbers"},{"title":"Connect a Twilio account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sip-trunks/twilio","href":"/api-reference/sip-trunks/connect-a-twilio-account"},{"title":"Delete a SIP trunk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sip-trunks/{trunk_id}","href":"/api-reference/sip-trunks/delete-a-sip-trunk"},{"title":"Update a SIP trunk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/sip-trunks/{trunk_id}","href":"/api-reference/sip-trunks/update-a-sip-trunk"},{"title":"Check a SIP trunk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sip-trunks/{trunk_id}/check","href":"/api-reference/sip-trunks/check-a-sip-trunk"},{"title":"Add numbers to a trunk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sip-trunks/{trunk_id}/numbers","href":"/api-reference/sip-trunks/add-numbers-to-a-trunk"},{"title":"Remove a trunk number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sip-trunks/{trunk_id}/numbers/{number_id}","href":"/api-reference/sip-trunks/remove-a-trunk-number"}]},{"group":"Billing","pages":[{"title":"Get plans and prices","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/billing/plans","href":"/api-reference/billing/get-plans-and-prices"},{"title":"Get billing summary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/billing/summary","href":"/api-reference/billing/get-billing-summary"},{"title":"Get minutes balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/billing/status","href":"/api-reference/billing/get-minutes-balance"},{"title":"List invoices","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/billing/invoices","href":"/api-reference/billing/list-invoices"},{"title":"Start plan checkout","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/billing/checkout","href":"/api-reference/billing/start-plan-checkout"},{"title":"Start minutes pack checkout","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/billing/packs/checkout","href":"/api-reference/billing/start-minutes-pack-checkout"},{"title":"Open billing portal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/billing/portal","href":"/api-reference/billing/open-billing-portal"},{"title":"Change subscription","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/billing/subscription","href":"/api-reference/billing/change-subscription"},{"title":"Sync billed seats","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/billing/seats/sync","href":"/api-reference/billing/sync-billed-seats"},{"title":"Set auto top-up","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/billing/auto-recharge","href":"/api-reference/billing/set-auto-top-up"}]},{"group":"Web chat","pages":[{"title":"List chat widgets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webchat/widgets","href":"/api-reference/web-chat/list-chat-widgets"},{"title":"Create a chat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webchat/widgets","href":"/api-reference/web-chat/create-a-chat-widget"},{"title":"Get a chat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webchat/widgets/{widget_id}","href":"/api-reference/web-chat/get-a-chat-widget"},{"title":"Delete a chat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/webchat/widgets/{widget_id}","href":"/api-reference/web-chat/delete-a-chat-widget"},{"title":"Update a chat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/webchat/widgets/{widget_id}","href":"/api-reference/web-chat/update-a-chat-widget"},{"title":"Publish a chat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webchat/widgets/{widget_id}/publish","href":"/api-reference/web-chat/publish-a-chat-widget"},{"title":"Rotate a widget's public key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webchat/widgets/{widget_id}/rotate-key","href":"/api-reference/web-chat/rotate-a-widgets-public-key"}]},{"group":"Inbox","pages":[{"title":"List inbox threads","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/inbox/threads","href":"/api-reference/inbox/list-inbox-threads"},{"title":"Get an inbox thread","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/inbox/threads/{channel}/{thread_id}","href":"/api-reference/inbox/get-an-inbox-thread"},{"title":"Update a thread's state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/inbox/threads/{channel}/{thread_id}/state","href":"/api-reference/inbox/update-a-threads-state"},{"title":"Mark a thread read","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/inbox/threads/{channel}/{thread_id}/read","href":"/api-reference/inbox/mark-a-thread-read"},{"title":"List thread notes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/inbox/threads/{channel}/{thread_id}/notes","href":"/api-reference/inbox/list-thread-notes"},{"title":"Summarize a thread","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/inbox/threads/{channel}/{thread_id}/summary","href":"/api-reference/inbox/summarize-a-thread"},{"title":"Get a thread's customer history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/inbox/threads/{channel}/{thread_id}/history","href":"/api-reference/inbox/get-a-threads-customer-history"},{"title":"Get a customer's history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/inbox/customers/history","href":"/api-reference/inbox/get-a-customers-history"},{"title":"List quick replies","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/inbox/quick-replies","href":"/api-reference/inbox/list-quick-replies"},{"title":"Create a quick reply","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/inbox/quick-replies","href":"/api-reference/inbox/create-a-quick-reply"},{"title":"Delete a quick reply","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/inbox/quick-replies/{reply_id}","href":"/api-reference/inbox/delete-a-quick-reply"},{"title":"Update a quick reply","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/inbox/quick-replies/{reply_id}","href":"/api-reference/inbox/update-a-quick-reply"},{"title":"Get inbox settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/inbox/settings","href":"/api-reference/inbox/get-inbox-settings"},{"title":"List bookings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/inbox/bookings","href":"/api-reference/inbox/list-bookings"}]},{"group":"Knowledge","pages":[{"title":"List knowledge sources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge/sources","href":"/api-reference/knowledge/list-knowledge-sources"},{"title":"Add a knowledge source","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge/sources","href":"/api-reference/knowledge/add-a-knowledge-source"},{"title":"Get a knowledge source","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge/sources/{source_id}","href":"/api-reference/knowledge/get-a-knowledge-source"},{"title":"Delete a knowledge source","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/knowledge/sources/{source_id}","href":"/api-reference/knowledge/delete-a-knowledge-source"},{"title":"Update a knowledge source","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge/sources/{source_id}","href":"/api-reference/knowledge/update-a-knowledge-source"},{"title":"Resync a website or sheet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge/sources/{source_id}/resync","href":"/api-reference/knowledge/resync-a-website-or-sheet"},{"title":"Retry a knowledge source's indexing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge/sources/{source_id}/reindex","href":"/api-reference/knowledge/retry-a-knowledge-sources-indexing"},{"title":"Preview a Google Sheet's columns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge/sheet-columns","href":"/api-reference/knowledge/preview-a-google-sheets-columns"},{"title":"Get a source's indexing status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge/sources/{source_id}/status","href":"/api-reference/knowledge/get-a-sources-indexing-status"},{"title":"Set a source's refresh schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/knowledge/sources/{source_id}/refresh","href":"/api-reference/knowledge/set-a-sources-refresh-schedule"},{"title":"Search knowledge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge/search","href":"/api-reference/knowledge/search-knowledge"},{"title":"Preview catalog matches","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge/sources/{source_id}/listings-preview","href":"/api-reference/knowledge/preview-catalog-matches"},{"title":"Preview a catalog mapping","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge/catalog/preview-mapping","href":"/api-reference/knowledge/preview-a-catalog-mapping"},{"title":"Import a listings catalog","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge/catalog/import","href":"/api-reference/knowledge/import-a-listings-catalog"},{"title":"List catalog listings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge/catalog/{source_id}/items","href":"/api-reference/knowledge/list-catalog-listings"},{"title":"Update a listing's status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge/catalog/items/{item_id}","href":"/api-reference/knowledge/update-a-listings-status"},{"title":"List knowledge citations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge/retrievals","href":"/api-reference/knowledge/list-knowledge-citations"}]}]}]},{"tab":"Changelog","icon":"history","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Validate an agent configuration - Kallabot Docs","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}