Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Configuration for the session to be created. Supply personaConfig.personaId to use a persona you've already created (stateful), or the set avatarId/voiceId/llmId/systemPrompt to configure the persona at run time (ephemeral).
The returned token is valid for one hour, or for expiresInSeconds when set, and bound to this exact config.
Server-side SDKs in a secure context can skip this exchange and start a session directly by calling POST /v1/engine/session with their API key and the same configuration in the request body.
The most sessions the token can start. Omit it for no limit (the default). Each call to POST /v1/engine/session with the token counts, including one that fails, so set maxSessions: 1 only when your client starts the session once and gets a new token to retry. The Anam JS SDK retries a failed start up to 3 times by default: send maxSessions: 3, or set the SDK's retry.maxAttempts to 1. Reconnects and ICE restarts within a session don't count. Once the limit is reached, session start returns 401. If the API key has its own limit, the lower of the two applies.
How long the token can start sessions, in seconds, from 120 (2 minutes) to 3600 (1 hour). Omit it for one hour. The token is checked only when a session starts: once it expires, POST /v1/engine/session returns 401, but a session it already started keeps running until it ends. Start the session within this time, including any retries your client makes.
Persona configuration. An avatar-only config (avatarId without voiceId and without enableAudioPassthrough: true) is only accepted together with a LiveKit, Agora or ElevenLabs Agent integration environment; on the default Anam WebRTC transport send an ephemeral config with voiceId and llmId (llmId "CUSTOMER_CLIENT_V1" for a client-side LLM) or set enableAudioPassthrough to true. Otherwise the request fails with 400 avatar_only_requires_integration.
Optional engine routing or transport integration environment. The integration type may be supplied explicitly or inferred from the LiveKit, Agora, or ElevenLabs Agent settings.
Short-lived credential used by a client to connect to a live persona. Valid for one hour, or for the expiresInSeconds it was created with, and only while that API key stays active.
Signed JWT the client passes to the Anam SDK to open a WebRTC connection.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Anam","colors":{"primary":"#ff6200","light":"#ff6200","dark":"#ff6200"},"logo":{"light":"https://mintcdn.com/anam/C1_yhmh0z2cLMID5/logo/anam-logo-black.png?fit=max\u0026auto=format\u0026n=C1_yhmh0z2cLMID5\u0026q=85\u0026s=df3c7456becff3adcf00bdee3d8b24e6","dark":"https://mintcdn.com/anam/C1_yhmh0z2cLMID5/logo/anam-logo-white.png?fit=max\u0026auto=format\u0026n=C1_yhmh0z2cLMID5\u0026q=85\u0026s=005acf7e494d6373e42ecea78ed414c6","href":"https://anam.ai"},"favicon":"https://mintcdn.com/anam/gnLapnNwnB6mzSvX/images/FaviconDarkBorderRadius.png?fit=max\u0026auto=format\u0026n=gnLapnNwnB6mzSvX\u0026q=85\u0026s=4f13a1002d44bd8912121e6d0f106116","appearance":{"default":"light"},"background":{"color":{"light":"#FFFFFF","dark":"#000000"}},"navbar":{"links":[{"href":"https://anam.ai/cookbook","label":"Cookbook"},{"href":"https://anam.ai/docs/llms-full.txt","label":"llms.txt"},{"href":"https://join.slack.com/t/anamcommunity/shared_invite/zt-4an41luvk-UH4UowegfQQR3rQbR_UHuQ","label":"Support"}],"primary":{"type":"button","label":"Sign In","href":"https://lab.anam.ai"}},"seo":{"metatags":{"og:site_name":"Anam Documentation","og:description":"Anam developer documentation. Build real-time interactive AI avatars with low-latency voice, custom personas, and multi-language support.","og:image":"/logo/anam-logo-white.png","og:logo":"/logo/anam-logo-white.png","twitter:image":"/logo/anam-logo-white.png","twitter:logo":"/logo/anam-logo-white.png"},"indexing":"navigable"},"fonts":{"heading":{"family":"Inter"},"body":{"family":"Inter"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":false},"integrations":{"cookies":{"key":"anam_mintlify_consent","value":"granted"}},"contextual":{"options":["assistant","copy","view","claude","chatgpt"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"anam","hasAudioNarration":false,"actualSubdomain":"anam","customDomains":["anam.ai"],"gitSource":{"type":"github","owner":"anam-org","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aec94f4754501e0c6b6422b","collectionId":"9ca140ce-08c8-4c65-95a5-761bd45fb6d2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec94f4754501e0c6b6422b"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aee4ff60f2546a8f021f333","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API Reference","count":76},{"language":"default","tag":"Overview","count":45},{"language":"default","tag":"Personas","count":37},{"language":"default","tag":"Knowledge","count":20},{"language":"default","tag":"JavaScript SDK","count":16},{"language":"default","tag":"Voices","count":14},{"language":"default","tag":"Integrations","count":12},{"language":"default","tag":"ElevenLabs Agents","count":12},{"language":"default","tag":"Sessions","count":12},{"language":"default","tag":"Embed","count":10}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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":false},"customCss":[{"filePath":"style.css","content":".dark a[href=\"https://lab.anam.ai\"],.dark a[href=\"https://lab.anam.ai\"] *{color:#ffffff!important}.dark img[src$=\"/integrations/livekit.svg\"],.dark img[src$=\"/integrations/elevenlabs.svg\"]{filter:invert(1)}a.demo-source-link{display:inline-flex;min-height:44px;max-width:100%;align-items:center;justify-content:center;gap:10px;padding:10px 16px;border:1px solid #d4d4d4;border-radius:8px;background:#ffffff;color:#171717;font-size:14px;font-weight:500;line-height:1.5;text-decoration:none}.demo-source-link>span:first-child{display:flex;flex:none}.demo-source-link svg{background-color:currentColor}a.demo-source-link:hover{background:#f5f5f5;border-color:#a3a3a3}a.demo-source-link:active{background:#e5e5e5}a.demo-source-link:focus-visible{outline:2px solid #ff6200;outline-offset:3px}.dark a.demo-source-link{border-color:#525252;background:#171717;color:#f5f5f5}.dark a.demo-source-link:hover{border-color:#737373;background:#262626}.dark a.demo-source-link:active{background:#404040}.prebuilt-prompt{position:relative;display:grid;grid-template-columns:9.5rem 10.5rem minmax(0, 1fr);justify-content:start;align-items:center;gap:16px 12px;margin:1.75rem 0 2rem;padding:20px;border:1px solid #e5e5e5;border-radius:12px;background:#fafafa}.mdx-content>.prebuilt-prompt:first-child{margin-top:0}.prebuilt-prompt-copy{grid-column:1 / -1;min-width:0}.prebuilt-prompt-title{margin:0;color:#171717;font-size:16px;font-weight:600;letter-spacing:-0.01em;line-height:1.5}.prebuilt-prompt-description{margin:6px 0 0;color:#525252;font-size:14px;line-height:1.5}.prebuilt-prompt-button{display:inline-flex;width:9.5rem;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border:1px solid transparent;border-radius:8px;background:#171717;color:#ffffff;font:inherit;font-size:14px;font-weight:500;line-height:1.5;white-space:nowrap;cursor:pointer}.prebuilt-prompt-button:hover{background:#404040}.prebuilt-prompt-button:active{background:#525252}.prebuilt-prompt-button:focus-visible{outline:2px solid #ff6200;outline-offset:3px}.prebuilt-prompt-button[aria-disabled=\"true\"]{cursor:progress}.prebuilt-prompt-button svg{flex:none}.prebuilt-prompt-icon-check,.prebuilt-prompt-icon-error,.prebuilt-prompt-button[data-copy-state=\"copied\"] .prebuilt-prompt-icon-copy,.prebuilt-prompt-button[data-copy-state=\"error\"] .prebuilt-prompt-icon-copy{display:none}.prebuilt-prompt-button[data-copy-state=\"copied\"] .prebuilt-prompt-icon-check,.prebuilt-prompt-button[data-copy-state=\"error\"] .prebuilt-prompt-icon-error{display:initial}.prebuilt-prompt-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.dark .prebuilt-prompt{border-color:#404040;background:#171717}.dark .prebuilt-prompt-title{color:#f5f5f5}.dark .prebuilt-prompt-description{color:#bfbfbf}.dark .prebuilt-prompt-button{background:#f5f5f5;color:#171717}.dark .prebuilt-prompt-button:hover{background:#d4d4d4}.dark .prebuilt-prompt-button:active{background:#bfbfbf}@media (max-width: 480px){.prebuilt-prompt{grid-template-columns:minmax(0, 1fr);justify-content:stretch;gap:12px}.prebuilt-prompt-copy{margin-bottom:4px}.prebuilt-prompt-button{width:100%}}"},{"filePath":"anam-consent.css","content":".anam-cookie-banner{position:fixed;right:1rem;bottom:1rem;z-index:2147483647;width:min(24rem, calc(100vw - 2rem));padding:1rem;font-family:inherit;color:#111827;background:#ffffff;border:1px solid #e5e7eb;border-radius:0.75rem;box-shadow:0 0.625rem 0.9375rem -0.1875rem rgb(0 0 0 / 10%),\n 0 0.25rem 0.375rem -0.25rem rgb(0 0 0 / 10%)}.anam-cookie-banner[hidden]{display:none}.anam-cookie-banner h2{margin:0 0 0.25rem;font-size:0.8125rem;font-weight:600;line-height:1.125rem}.anam-cookie-banner p{margin:0;color:#6b7280;font-size:0.8125rem;line-height:1.125rem}.anam-cookie-banner a{color:#111827;text-underline-offset:0.2rem}.anam-cookie-actions{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.5rem;margin-top:1rem}.anam-cookie-actions button{height:2rem;min-width:0;padding:0 1rem;font-family:inherit;font-size:0.8125rem;font-weight:400;line-height:1.125rem;cursor:pointer;border-radius:0.5rem}.anam-cookie-primary{color:#111827;background:#ff6200;border:1px solid #ff6200}.anam-cookie-secondary{color:#111827;background:transparent;border:1px solid #d1d5db}.anam-cookie-primary:hover{background:#e55800;border-color:#e55800}.anam-cookie-secondary:hover{background:#f3f4f6}.anam-cookie-actions button:focus-visible{outline:2px solid #ff6200;outline-offset:2px}"}],"page":{"pagePath":"api-reference/sessions/create-session-token","slug":"/api-reference/sessions/create-session-token","pageMetadata":{"title":"create session token","description":"Create a new session token used to initialise Anam client side SDKs","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/auth/session-token","href":"/api-reference/sessions/create-session-token","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a new session token used to initialise Anam client side SDKs\"\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":"system","config":{},"pageMetadata":{"title":"create session token","description":"Create a new session token used to initialise Anam client side SDKs","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/auth/session-token","href":"/api-reference/sessions/create-session-token","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/anam/b2d95394aafe5d57/anam-attribution.js","/docs/_mintlify/custom/anam/e3b0c44298fc1c14/breadcrumbs.js","/docs/_mintlify/custom/anam/09f69e41a6d2a118/scripts/sync-api-reference.js","/docs/_mintlify/custom/anam/8eee8d5d8d0dc77a/anam-consent.js","/docs/_mintlify/custom/anam/1df9efd6c260b783/integration-menu-preload.js"],"openApiReferenceData":{"operation":{"description":"Create a new session token used to initialise Anam client side SDKs","requestBody":"b3e6f0d8-536e-4273-bbd4-f517a47c96c4","responses":{"200":"cc27578f-a986-44c5-a387-77528087a4a7","400":"0af39378-561a-4aff-9bf5-93bc67b66805","401":"a6492e76-29b4-41c7-90b0-9743d423ae1e","403":"846c9587-9000-4ffc-b083-e8a3a5910281","500":"7d646dc8-15fa-43c3-b0d9-2eef72c448b8","503":"ce3620b6-4fba-4934-a2df-8c7fd0de33ee"},"tags":["Sessions"],"operationId":"createSessionToken","summary":"create session token","x-mint":{"metadata":{"title":"create session token"},"mcp":{"enabled":true,"name":"create-session-token","description":"Create a new session token used to initialise Anam client side SDKs"}},"method":"post","type":"path","servers":["802b7150-f38f-4f50-b5e3-fd4d474eaa80"],"security":["c363502f-e3a0-4cfc-9ffa-4107ca0bf5e1"],"path":"/v1/auth/session-token","baseUrlOptions":["https://api.anam.ai"],"title":"create session token","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"description":"Configuration for the session to be created. Supply `personaConfig.personaId` to use a persona you've already created (stateful), or the set `avatarId`/`voiceId`/`llmId`/`systemPrompt` to configure the persona at run time (ephemeral).\n\nThe returned token is valid for one hour, or for `expiresInSeconds` when set, and bound to this exact config.\n\nServer-side SDKs in a secure context can skip this exchange and start a session directly by calling `POST /v1/engine/session` with their API key and the same configuration in the request body.\n","required":true,"content":{"application/json":{"examples":{"default":{"title":"default","value":{"personaConfig":{"name":"Cara","avatarId":"071b0286-4cce-4808-bee2-e642f1062de3","voiceId":"de23e340-1416-4dd8-977d-065a7ca11697","llmId":"a7cf662c-2ace-4de1-a21e-ef0fbf144bb7","systemPrompt":"You are a helpful assistant."}}}},"schema":{"type":"object","properties":{"clientLabel":{"type":"string","description":"The client label for the session","uniqueKey":"clientLabel","typeLabel":"string"},"maxSessions":{"type":"integer","minimum":1,"maximum":100,"description":"The most sessions the token can start. Omit it for no limit (the default). Each call to `POST /v1/engine/session` with the token counts, including one that fails, so set `maxSessions: 1` only when your client starts the session once and gets a new token to retry. The Anam JS SDK retries a failed start up to 3 times by default: send `maxSessions: 3`, or set the SDK's `retry.maxAttempts` to 1. Reconnects and ICE restarts within a session don't count. Once the limit is reached, session start returns 401. If the API key has its own limit, the lower of the two applies.","example":1,"uniqueKey":"maxSessions","typeLabel":"integer"},"expiresInSeconds":{"type":"integer","minimum":120,"maximum":3600,"default":3600,"description":"How long the token can start sessions, in seconds, from 120 (2 minutes) to 3600 (1 hour). Omit it for one hour. The token is checked only when a session starts: once it expires, `POST /v1/engine/session` returns 401, but a session it already started keeps running until it ends. Start the session within this time, including any retries your client makes.","example":300,"uniqueKey":"expiresInSeconds","typeLabel":"integer"},"personaConfig":{"oneOf":[{"type":"object","title":"Ephemeral persona","description":"Persona configuration. An avatar-only config (avatarId without voiceId and without enableAudioPassthrough: true) is only accepted together with a LiveKit, Agora or ElevenLabs Agent integration `environment`; on the default Anam WebRTC transport send an ephemeral config with voiceId and llmId (llmId \"CUSTOMER_CLIENT_V1\" for a client-side LLM) or set enableAudioPassthrough to true. Otherwise the request fails with 400 `avatar_only_requires_integration`.","properties":{"name":{"type":"string","example":"Cara","uniqueKey":"personaConfig.oneOf.0.name","typeLabel":"string"},"avatarId":{"type":"string","example":"071b0286-4cce-4808-bee2-e642f1062de3","uniqueKey":"personaConfig.oneOf.0.avatarId","typeLabel":"string"},"avatarModel":{"type":"string","example":"cara-4","description":"Avatar model version. `cara-4` is pinned to a stable checkpoint; `cara-4-latest` tracks the newest Cara 4 checkpoint and may change between sessions. `cara-5-latest` is an early-access preview that tracks the newest Cara 5 checkpoint; it is available only to organizations that have been granted it, and other organizations get 403.","enum":["cara-3","cara-4","cara-4.1-express","cara-4-latest","cara-5-latest"],"uniqueKey":"personaConfig.oneOf.0.avatarModel","typeLabel":"enum\u003cstring>"},"voiceId":{"type":"string","example":"de23e340-1416-4dd8-977d-065a7ca11697","uniqueKey":"personaConfig.oneOf.0.voiceId","typeLabel":"string"},"llmId":{"type":"string","example":"a7cf662c-2ace-4de1-a21e-ef0fbf144bb7","uniqueKey":"personaConfig.oneOf.0.llmId","typeLabel":"string"},"systemPrompt":{"type":"string","example":"You are a helpful assistant","uniqueKey":"personaConfig.oneOf.0.systemPrompt","typeLabel":"string"},"maxSessionLengthSeconds":{"type":"number","example":600,"uniqueKey":"personaConfig.oneOf.0.maxSessionLengthSeconds","typeLabel":"number"},"skipGreeting":{"type":"boolean","example":false,"uniqueKey":"personaConfig.oneOf.0.skipGreeting","typeLabel":"boolean"},"uninterruptibleGreeting":{"type":"boolean","description":"The user can't interrupt the greeting.","example":false,"uniqueKey":"personaConfig.oneOf.0.uninterruptibleGreeting","typeLabel":"boolean"},"initialMessage":{"oneOf":[{"type":"string","description":"What the persona says first. Empty or left out, it greets in its own words.","example":"Hi there! I'm excited to chat with you today.","uniqueKey":"personaConfig.oneOf.0.initialMessage.oneOf.0","typeLabel":"string"},{"type":"null","description":"What the persona says first. Empty or left out, it greets in its own words.","example":"Hi there! I'm excited to chat with you today.","uniqueKey":"personaConfig.oneOf.0.initialMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.initialMessage","typeLabel":"string | null"},"voiceDetectionOptions":{"type":"object","description":"Options for voice activity detection during user speech input.","properties":{"endOfSpeechSensitivity":{"type":"number","description":"End-of-speech sensitivity, from 0 (least) to 1 (most sensitive).","example":0.5,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceDetectionOptions.endOfSpeechSensitivity","typeLabel":"number"},"silenceBeforeSkipTurnSeconds":{"type":"number","description":"Seconds of silence before the user’s turn is skipped.","example":5,"minimum":0,"maximum":900,"uniqueKey":"personaConfig.oneOf.0.voiceDetectionOptions.silenceBeforeSkipTurnSeconds","typeLabel":"number"},"silenceBeforeSessionEndSeconds":{"type":"number","description":"Seconds of silence before the session ends.","example":60,"minimum":0,"maximum":7200,"uniqueKey":"personaConfig.oneOf.0.voiceDetectionOptions.silenceBeforeSessionEndSeconds","typeLabel":"number"},"silenceBeforeAutoEndTurnSeconds":{"type":"number","description":"Seconds of silence before the user’s turn ends.","example":5,"minimum":0.5,"maximum":10,"uniqueKey":"personaConfig.oneOf.0.voiceDetectionOptions.silenceBeforeAutoEndTurnSeconds","typeLabel":"number"},"speechEnhancementLevel":{"type":"number","description":"Speech enhancement, from 0 (none) to 1 (most).","example":0.8,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceDetectionOptions.speechEnhancementLevel","typeLabel":"number"},"sttProvider":{"type":"string","enum":["anam","deepgram","cartesia_ink_2","inworld_stt_1"],"description":"Speech-to-text provider to use. Defaults to the platform default when unset. The deepgram provider supports only these languageCode values: en, es, fr, de, hi, ru, pt, ja, it, nl. The cartesia_ink_2 provider supports only these languageCode values: en. The inworld_stt_1 provider supports only these languageCode values: ar, yue, zh, cs, da, nl, en, tl, fi, fr, de, el, hi, hu, id, it, ja, ko, mk, ms, fa, pl, pt, ro, ru, es, sv, th, tr, vi. The inworld_stt_1 provider cannot be used when zeroDataRetention is true. The inworld_stt_1 provider processes audio only in us, so it cannot be used when sessionOptions.regionPolicy is \"strict\" with any other region.","example":"anam","uniqueKey":"personaConfig.oneOf.0.voiceDetectionOptions.sttProvider","typeLabel":"enum\u003cstring>"}},"uniqueKey":"personaConfig.oneOf.0.voiceDetectionOptions","typeLabel":"object"},"languageCode":{"type":"string","description":"Supported ISO 639 language code override (including \"yue\" for Cantonese) for transcription, replaces organisation level settings and multilingual (default) mode.","uniqueKey":"personaConfig.oneOf.0.languageCode","typeLabel":"string"},"voiceGenerationOptions":{"oneOf":[{"type":"object","title":"ElevenLabs V1","description":"Configuration options for voice generation, plus an optional pronunciation dictionary for this session.","properties":{"stability":{"type":"number","description":"Controls how stable the generated voice is between each generation, between 0 (more varied/higher emotional range) and 1 (more stable/less emotional range).","example":0.5,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.0.stability","typeLabel":"number"},"similarityBoost":{"type":"number","description":"Controls how close the generated voice is to the original speaker, between 0 (more varied) and 1 (more similar).","example":0,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.0.similarityBoost","typeLabel":"number"},"speed":{"type":"number","description":"Controls the speed of the spoken voice as a multiplier, between 0.7 (slower) and 1.2 (faster).","example":1,"minimum":0.7,"maximum":1.2,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.0.speed","typeLabel":"number"},"pronunciationDictionaryId":{"type":"string","format":"uuid","description":"ID of a pronunciation dictionary in your organization (create and edit dictionaries in Lab or with the `/v1/pronunciation-dictionaries` endpoints). When the session starts, the dictionary's latest saved entries are applied: the persona speaks each entry's sounds-like replacement, or its IPA pronunciation on voices whose model reads IPA (Cartesia Sonic 3, ElevenLabs v3 and v4), falling back to the entry's optional sounds-like text on other models, while captions and transcripts keep the original words. For a saved persona this replaces the persona's dictionary for this session only; omit it to use the persona's dictionary, if any. An unknown, archived or other-organization ID fails the session when it starts with 404.","example":"4f600129-13cf-4bfa-909a-2f4c31467f43","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.0.pronunciationDictionaryId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.0","typeLabel":"ElevenLabs V1 · object"},{"type":"object","title":"ElevenLabs V2","description":"Configuration options for voice generation, plus an optional pronunciation dictionary for this session.","properties":{"stability":{"type":"number","description":"Controls how stable the generated voice is between each generation, between 0 (more varied/higher emotional range) and 1 (more stable/less emotional range).","example":0.5,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.1.stability","typeLabel":"number"},"similarityBoost":{"type":"number","description":"Controls how close the generated voice is to the original speaker, between 0 (more varied) and 1 (more similar).","example":0.75,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.1.similarityBoost","typeLabel":"number"},"style":{"type":"number","description":"Amplifies the style of the original speaker, between 0 and 1, it is recommended to keep this value low (0) to reduce latency.","example":0,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.1.style","typeLabel":"number"},"useSpeakerBoost":{"type":"boolean","description":"Whether to use speaker boost for the generated voice, enhancing the similarity to the original speaker.","example":true,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.1.useSpeakerBoost","typeLabel":"boolean"},"speed":{"type":"number","description":"Controls the speed of the spoken voice as a multiplier, between 0.7 (slower) and 1.2 (faster).","example":1,"minimum":0.7,"maximum":1.2,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.1.speed","typeLabel":"number"},"model":{"type":"string","enum":["eleven_v4_turbo","eleven_v3_conversational","eleven_v4","eleven_v3","eleven_flash_v2_5","eleven_multilingual_v2","eleven_flash_v2","eleven_turbo_v2_5"],"description":"Replaces the voice's ElevenLabs model for generation. Must be an ElevenLabs model supported for voice imports. The other options must be valid for this model: for example, eleven_v4 accepts only stability and similarityBoost.","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.1.model","typeLabel":"enum\u003cstring>"},"pronunciationDictionaryId":{"type":"string","format":"uuid","description":"ID of a pronunciation dictionary in your organization (create and edit dictionaries in Lab or with the `/v1/pronunciation-dictionaries` endpoints). When the session starts, the dictionary's latest saved entries are applied: the persona speaks each entry's sounds-like replacement, or its IPA pronunciation on voices whose model reads IPA (Cartesia Sonic 3, ElevenLabs v3 and v4), falling back to the entry's optional sounds-like text on other models, while captions and transcripts keep the original words. For a saved persona this replaces the persona's dictionary for this session only; omit it to use the persona's dictionary, if any. An unknown, archived or other-organization ID fails the session when it starts with 404.","example":"4f600129-13cf-4bfa-909a-2f4c31467f43","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.1.pronunciationDictionaryId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.1","typeLabel":"ElevenLabs V2 · object"},{"type":"object","title":"ElevenLabs V3","description":"Configuration options for voice generation, plus an optional pronunciation dictionary for this session.","properties":{"stability":{"type":"number","description":"Controls how stable the generated voice is, from 0 (more varied) to 1 (more stable).","example":0.5,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.2.stability","typeLabel":"number"},"model":{"type":"string","enum":["eleven_v4_turbo","eleven_v3_conversational","eleven_v4","eleven_v3","eleven_flash_v2_5","eleven_multilingual_v2","eleven_flash_v2","eleven_turbo_v2_5"],"description":"Replaces the voice's ElevenLabs model for generation. Must be an ElevenLabs model supported for voice imports. The other options must be valid for this model: for example, eleven_v4 accepts only stability and similarityBoost.","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.2.model","typeLabel":"enum\u003cstring>"},"pronunciationDictionaryId":{"type":"string","format":"uuid","description":"ID of a pronunciation dictionary in your organization (create and edit dictionaries in Lab or with the `/v1/pronunciation-dictionaries` endpoints). When the session starts, the dictionary's latest saved entries are applied: the persona speaks each entry's sounds-like replacement, or its IPA pronunciation on voices whose model reads IPA (Cartesia Sonic 3, ElevenLabs v3 and v4), falling back to the entry's optional sounds-like text on other models, while captions and transcripts keep the original words. For a saved persona this replaces the persona's dictionary for this session only; omit it to use the persona's dictionary, if any. An unknown, archived or other-organization ID fails the session when it starts with 404.","example":"4f600129-13cf-4bfa-909a-2f4c31467f43","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.2.pronunciationDictionaryId","typeLabel":"string\u003cuuid>"}},"additionalProperties":false,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.2","typeLabel":"ElevenLabs V3 · object"},{"type":"object","title":"ElevenLabs V4","description":"Configuration options for voice generation, plus an optional pronunciation dictionary for this session.","properties":{"stability":{"type":"number","description":"Controls how stable the generated voice is, from 0 (more varied) to 1 (more stable).","example":0.5,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.3.stability","typeLabel":"number"},"similarityBoost":{"type":"number","description":"Controls how close the generated voice is to the original speaker, between 0 (more varied) and 1 (more similar).","example":0.75,"minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.3.similarityBoost","typeLabel":"number"},"model":{"type":"string","enum":["eleven_v4_turbo","eleven_v3_conversational","eleven_v4","eleven_v3","eleven_flash_v2_5","eleven_multilingual_v2","eleven_flash_v2","eleven_turbo_v2_5"],"description":"Replaces the voice's ElevenLabs model for generation. Must be an ElevenLabs model supported for voice imports. The other options must be valid for this model: for example, eleven_v4 accepts only stability and similarityBoost.","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.3.model","typeLabel":"enum\u003cstring>"},"pronunciationDictionaryId":{"type":"string","format":"uuid","description":"ID of a pronunciation dictionary in your organization (create and edit dictionaries in Lab or with the `/v1/pronunciation-dictionaries` endpoints). When the session starts, the dictionary's latest saved entries are applied: the persona speaks each entry's sounds-like replacement, or its IPA pronunciation on voices whose model reads IPA (Cartesia Sonic 3, ElevenLabs v3 and v4), falling back to the entry's optional sounds-like text on other models, while captions and transcripts keep the original words. For a saved persona this replaces the persona's dictionary for this session only; omit it to use the persona's dictionary, if any. An unknown, archived or other-organization ID fails the session when it starts with 404.","example":"4f600129-13cf-4bfa-909a-2f4c31467f43","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.3.pronunciationDictionaryId","typeLabel":"string\u003cuuid>"}},"additionalProperties":false,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.3","typeLabel":"ElevenLabs V4 · object"},{"type":"object","title":"Cartesia Sonic-3","description":"Configuration options for voice generation, plus an optional pronunciation dictionary for this session.","properties":{"volume":{"type":"number","description":"Controls the volume level of the generated voice as a multiplier, between 0.5 (quieter) and 2.0 (louder).","example":1,"minimum":0.5,"maximum":2,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.4.volume","typeLabel":"number"},"speed":{"type":"number","description":"Controls the speed of the spoken voice as a multiplier, between 0.6 (slower) and 1.5 (faster).","example":1,"minimum":0.6,"maximum":1.5,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.4.speed","typeLabel":"number"},"emotion":{"type":"string","description":"Sets the emotional tone of the generated voice. Supported emotions are: neutral, calm, angry, content, sad, scared.","enum":["neutral","calm","angry","content","sad","scared"],"example":"neutral","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.4.emotion","typeLabel":"enum\u003cstring>"},"pronunciationDictionaryId":{"type":"string","format":"uuid","description":"ID of a pronunciation dictionary in your organization (create and edit dictionaries in Lab or with the `/v1/pronunciation-dictionaries` endpoints). When the session starts, the dictionary's latest saved entries are applied: the persona speaks each entry's sounds-like replacement, or its IPA pronunciation on voices whose model reads IPA (Cartesia Sonic 3, ElevenLabs v3 and v4), falling back to the entry's optional sounds-like text on other models, while captions and transcripts keep the original words. For a saved persona this replaces the persona's dictionary for this session only; omit it to use the persona's dictionary, if any. An unknown, archived or other-organization ID fails the session when it starts with 404.","example":"4f600129-13cf-4bfa-909a-2f4c31467f43","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.4.pronunciationDictionaryId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.4","typeLabel":"Cartesia Sonic-3 · object"},{"type":"object","title":"Fish Audio","description":"Configuration options for voice generation, plus an optional pronunciation dictionary for this session.","properties":{"volume":{"type":"number","description":"Controls the volume level of the generated voice as a multiplier, between 0.5 (quieter) and 2.0 (louder).","example":1,"minimum":0.5,"maximum":2,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.5.volume","typeLabel":"number"},"speed":{"type":"number","description":"Controls the speed of the spoken voice as a multiplier, between 0.5 (slower) and 2.0 (faster).","example":1,"minimum":0.5,"maximum":2,"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.5.speed","typeLabel":"number"},"pronunciationDictionaryId":{"type":"string","format":"uuid","description":"ID of a pronunciation dictionary in your organization (create and edit dictionaries in Lab or with the `/v1/pronunciation-dictionaries` endpoints). When the session starts, the dictionary's latest saved entries are applied: the persona speaks each entry's sounds-like replacement, or its IPA pronunciation on voices whose model reads IPA (Cartesia Sonic 3, ElevenLabs v3 and v4), falling back to the entry's optional sounds-like text on other models, while captions and transcripts keep the original words. For a saved persona this replaces the persona's dictionary for this session only; omit it to use the persona's dictionary, if any. An unknown, archived or other-organization ID fails the session when it starts with 404.","example":"4f600129-13cf-4bfa-909a-2f4c31467f43","uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.5.pronunciationDictionaryId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions.oneOf.5","typeLabel":"Fish Audio · object"}],"uniqueKey":"personaConfig.oneOf.0.voiceGenerationOptions","typeLabel":"ElevenLabs V1 · object | ElevenLabs V2 · object | ElevenLabs V3 · object | ElevenLabs V4 · object | Cartesia Sonic-3 · object | Fish Audio · object"},"directorNotes":{"type":"object","description":"Per-session performance overrides for the avatar. Only applied on Cara 4 and Cara 5 avatars (avatarModel `cara-4`, `cara-4.1-express`, `cara-4-latest` or `cara-5-latest`); if set on a cara-3 avatar they are ignored (silently stripped) and the session proceeds without them. `presetStyle` is mutually exclusive with `customStylePrompt` and `customIdlingStylePrompt`. These work best when the selected voice matches the intended performance.","properties":{"presetStyle":{"type":"string","enum":["neutral","happy","warm","playful","supportive","sad","angry","distressed"],"description":"Built-in performance style for the avatar to follow. Mutually exclusive with customStylePrompt. Works best with a voice that matches the intended performance.","example":"warm","uniqueKey":"personaConfig.oneOf.0.directorNotes.presetStyle","typeLabel":"enum\u003cstring>"},"customStylePrompt":{"type":"string","maxLength":2000,"description":"Free-form performance style prompt for the avatar to follow while speaking. Mutually exclusive with presetStyle. Works best with a voice that matches the intended performance.","example":"Warm smile, composed, slightly amused, looking directly at camera","uniqueKey":"personaConfig.oneOf.0.directorNotes.customStylePrompt","typeLabel":"string"},"expressivity":{"type":"number","minimum":0,"maximum":1,"description":"Controls how closely the avatar follows the selected style or cue. 0 is subtle, 1 follows it most strongly and can become unstable; omit the field to use the default. Works best with a voice that matches the intended performance.","example":0.5,"uniqueKey":"personaConfig.oneOf.0.directorNotes.expressivity","typeLabel":"number"},"customIdlingStylePrompt":{"oneOf":[{"type":"string","maxLength":2000,"description":"Free-form performance style prompt for the avatar to follow while it isn't speaking, such as listening and pauses. Mutually exclusive with presetStyle; omit it to use the model's default idle behaviour.","example":"Listen attentively, nod slowly, soft relaxed gaze","uniqueKey":"personaConfig.oneOf.0.directorNotes.customIdlingStylePrompt.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":2000,"description":"Free-form performance style prompt for the avatar to follow while it isn't speaking, such as listening and pauses. Mutually exclusive with presetStyle; omit it to use the model's default idle behaviour.","example":"Listen attentively, nod slowly, soft relaxed gaze","uniqueKey":"personaConfig.oneOf.0.directorNotes.customIdlingStylePrompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.directorNotes.customIdlingStylePrompt","typeLabel":"string | null"}},"uniqueKey":"personaConfig.oneOf.0.directorNotes","typeLabel":"object"},"tools":{"type":"array","description":"Runtime tool definitions made available to the persona for this session. Each item is one of a client tool, a server knowledge tool, a server webhook tool, or a system tool. For client and webhook tools, `parameters` (and, for webhook tools, `queryParameters`) is a JSON Schema object the LLM fills at call time; each such object must serialize to 10,000 bytes or less (UTF-8), otherwise the request is rejected. Use `toolIds` instead to reference tools you've pre-created via `/v1/tools` (those are not subject to this inline size limit).","items":{"type":"object","required":["type","name"],"additionalProperties":true,"properties":{"type":{"type":"string","enum":["client","server","system"],"description":"Tool kind. `server` tools additionally set `subtype` (`knowledge` or `webhook`).","isRequired":true,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Unique tool name the LLM calls.","isRequired":true,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].name","typeLabel":"string"},"subtype":{"type":"string","enum":["knowledge","rag","webhook"],"description":"Required when `type` is `server`. `knowledge` searches documents in `config.documentFolderIds` (`rag` is a legacy alias for `knowledge`, kept for backwards compatibility); `webhook` calls an external URL.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].subtype","typeLabel":"enum\u003cstring>"},"description":{"type":"string","maxLength":1024,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].description","typeLabel":"string"},"config":{"type":"object","description":"Type-specific configuration for a `knowledge` server tool.","properties":{"documentFolderIds":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.documentFolderIds.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"IDs of knowledge folders to search.","example":["67d27a9f-0ce1-4432-848b-8ab2b97f024b"],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.documentFolderIds","typeLabel":"string\u003cuuid>[]"},"topK":{"oneOf":[{"type":"integer","minimum":1,"maximum":100,"description":"Nested form of the flat `topK` field. The flat value is used when both are set.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.topK.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":100,"description":"Nested form of the flat `topK` field. The flat value is used when both are set.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.topK.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.topK","typeLabel":"integer | null"},"minScore":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"description":"Nested form of the flat `minScore` field. The flat value is used when both are set.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.minScore.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"description":"Nested form of the flat `minScore` field. The flat value is used when both are set.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.minScore.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.minScore","typeLabel":"number | null"},"maxContextTokens":{"oneOf":[{"type":"integer","minimum":1,"maximum":200000,"description":"Nested form of the flat `maxContextTokens` field. The flat value is used when both are set.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.maxContextTokens.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":200000,"description":"Nested form of the flat `maxContextTokens` field. The flat value is used when both are set.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.maxContextTokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.maxContextTokens","typeLabel":"integer | null"},"neighborChunks":{"oneOf":[{"type":"integer","minimum":0,"maximum":10,"description":"Nested form of the flat `neighborChunks` field. The flat value is used when both are set.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.neighborChunks.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":10,"description":"Nested form of the flat `neighborChunks` field. The flat value is used when both are set.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.neighborChunks.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config.neighborChunks","typeLabel":"integer | null"}},"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].config","typeLabel":"object"},"documentFolderIds":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].documentFolderIds.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Legacy flat form of `config.documentFolderIds`, kept for backwards compatibility. If both are set, this flat value is used.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].documentFolderIds","typeLabel":"string\u003cuuid>[]"},"topK":{"oneOf":[{"type":"integer","minimum":1,"maximum":100,"description":"Knowledge tools only. Maximum matching chunks to retrieve. Overrides the engine default. Omit or set null to use the default. Fixed tool configuration, not an LLM argument.","example":5,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].topK.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":100,"description":"Knowledge tools only. Maximum matching chunks to retrieve. Overrides the engine default. Omit or set null to use the default. Fixed tool configuration, not an LLM argument.","example":5,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].topK.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].topK","typeLabel":"integer | null"},"minScore":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"description":"Knowledge tools only. Minimum relevance score for retrieved chunks. Zero is valid. Omit or set null to use the default. Fixed tool configuration, not an LLM argument.","example":0.5,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].minScore.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"description":"Knowledge tools only. Minimum relevance score for retrieved chunks. Zero is valid. Omit or set null to use the default. Fixed tool configuration, not an LLM argument.","example":0.5,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].minScore.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].minScore","typeLabel":"number | null"},"maxContextTokens":{"oneOf":[{"type":"integer","minimum":1,"maximum":200000,"description":"Knowledge tools only. Retrieved content token budget, excluding metadata and prompt formatting. Omit or set null to use the default. Fixed tool configuration, not an LLM argument.","example":4000,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].maxContextTokens.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":200000,"description":"Knowledge tools only. Retrieved content token budget, excluding metadata and prompt formatting. Omit or set null to use the default. Fixed tool configuration, not an LLM argument.","example":4000,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].maxContextTokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].maxContextTokens","typeLabel":"integer | null"},"neighborChunks":{"oneOf":[{"type":"integer","minimum":0,"maximum":10,"description":"Knowledge tools only. Chunks to add after each match, plus the chunk before it, for surrounding context. 0 returns matches only. Defaults to 0 when omitted or null. Fixed tool configuration, not an LLM argument.","example":0,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].neighborChunks.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":10,"description":"Knowledge tools only. Chunks to add after each match, plus the chunk before it, for surrounding context. 0 returns matches only. Defaults to 0 when omitted or null. Fixed tool configuration, not an LLM argument.","example":0,"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].neighborChunks.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].neighborChunks","typeLabel":"integer | null"},"parameters":{"type":"object","description":"JSON Schema for the arguments the LLM provides (client and webhook tools). Must serialize to 10,000 bytes or less.","uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX].parameters","typeLabel":"object"}},"uniqueKey":"personaConfig.oneOf.0.tools.items.[INDEX]","typeLabel":"object"},"example":[{"type":"client","name":"open_calendar","description":"Open the calendar UI in the client app.","parameters":{"type":"object","properties":{"date":{"type":"string","description":"Date to jump to, in YYYY-MM-DD format."}}}},{"type":"server","subtype":"knowledge","name":"search_docs","description":"Search the knowledge base for relevant documents.","config":{"documentFolderIds":["67d27a9f-0ce1-4432-848b-8ab2b97f024b"]}}],"uniqueKey":"personaConfig.oneOf.0.tools","typeLabel":"object[]"},"toolIds":{"type":"array","description":"IDs of tools pre-created via `/v1/tools` to make available to the persona for this session.","items":{"type":"string","format":"uuid","uniqueKey":"personaConfig.oneOf.0.toolIds.items.[INDEX]","typeLabel":"string\u003cuuid>"},"uniqueKey":"personaConfig.oneOf.0.toolIds","typeLabel":"string\u003cuuid>[]"}},"uniqueKey":"personaConfig.oneOf.0","typeLabel":"Ephemeral persona · object"},{"type":"object","title":"Avatar with audio passthrough","description":"Persona configuration. An avatar-only config (avatarId without voiceId and without enableAudioPassthrough: true) is only accepted together with a LiveKit, Agora or ElevenLabs Agent integration `environment`; on the default Anam WebRTC transport send an ephemeral config with voiceId and llmId (llmId \"CUSTOMER_CLIENT_V1\" for a client-side LLM) or set enableAudioPassthrough to true. Otherwise the request fails with 400 `avatar_only_requires_integration`.","required":["avatarId","enableAudioPassthrough"],"properties":{"avatarId":{"type":"string","format":"uuid","example":"071b0286-4cce-4808-bee2-e642f1062de3","isRequired":true,"uniqueKey":"personaConfig.oneOf.1.avatarId","typeLabel":"string\u003cuuid>"},"enableAudioPassthrough":{"type":"boolean","enum":[true],"description":"Must be true; the client supplies audio for the avatar.","isRequired":true,"uniqueKey":"personaConfig.oneOf.1.enableAudioPassthrough","typeLabel":"enum\u003cboolean>"},"avatarModel":{"type":"string","description":"Public avatar model version. `cara-5-latest` is an early-access preview that tracks the newest Cara 5 checkpoint; it is available only to organizations that have been granted it, and other organizations get 403.","uniqueKey":"personaConfig.oneOf.1.avatarModel","typeLabel":"string"},"maxSessionLengthSeconds":{"type":"number","description":"Ends the session after this many seconds. Plan limits still apply.","example":1800,"uniqueKey":"personaConfig.oneOf.1.maxSessionLengthSeconds","typeLabel":"number"},"directorNotes":{"oneOf":[{"type":"object","properties":{"presetStyle":{"type":"string","enum":["neutral","happy","warm","playful","supportive","sad","angry","distressed"],"uniqueKey":"personaConfig.oneOf.1.directorNotes.oneOf.0.presetStyle","typeLabel":"enum\u003cstring>"},"customStylePrompt":{"type":"string","maxLength":2000,"uniqueKey":"personaConfig.oneOf.1.directorNotes.oneOf.0.customStylePrompt","typeLabel":"string"},"expressivity":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"personaConfig.oneOf.1.directorNotes.oneOf.0.expressivity","typeLabel":"number"},"customIdlingStylePrompt":{"oneOf":[{"type":"string","maxLength":2000,"uniqueKey":"personaConfig.oneOf.1.directorNotes.oneOf.0.customIdlingStylePrompt.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":2000,"uniqueKey":"personaConfig.oneOf.1.directorNotes.oneOf.0.customIdlingStylePrompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.1.directorNotes.oneOf.0.customIdlingStylePrompt","typeLabel":"string | null"}},"uniqueKey":"personaConfig.oneOf.1.directorNotes.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"presetStyle":{"type":"string","enum":["neutral","happy","warm","playful","supportive","sad","angry","distressed"]},"customStylePrompt":{"type":"string","maxLength":2000},"expressivity":{"type":"number","minimum":0,"maximum":1},"customIdlingStylePrompt":{"oneOf":[{"type":"string","maxLength":2000},{"type":"null","maxLength":2000}]}},"uniqueKey":"personaConfig.oneOf.1.directorNotes.oneOf.1","typeLabel":"null"}],"uniqueKey":"personaConfig.oneOf.1.directorNotes","typeLabel":"object | null"},"zeroDataRetention":{"type":"boolean","enum":[false],"uniqueKey":"personaConfig.oneOf.1.zeroDataRetention","typeLabel":"enum\u003cboolean>"}},"uniqueKey":"personaConfig.oneOf.1","typeLabel":"Avatar with audio passthrough · object"},{"type":"object","title":"Saved persona","description":"Persona configuration. An avatar-only config (avatarId without voiceId and without enableAudioPassthrough: true) is only accepted together with a LiveKit, Agora or ElevenLabs Agent integration `environment`; on the default Anam WebRTC transport send an ephemeral config with voiceId and llmId (llmId \"CUSTOMER_CLIENT_V1\" for a client-side LLM) or set enableAudioPassthrough to true. Otherwise the request fails with 400 `avatar_only_requires_integration`.","properties":{"personaId":{"type":"string","uniqueKey":"personaConfig.oneOf.2.personaId","typeLabel":"string"},"voiceGenerationOptions":{"type":"object","description":"Only `pronunciationDictionaryId` applies to a saved persona; voice settings come from the persona, and any other keys are ignored.","properties":{"pronunciationDictionaryId":{"type":"string","format":"uuid","description":"ID of a pronunciation dictionary in your organization (create and edit dictionaries in Lab or with the `/v1/pronunciation-dictionaries` endpoints). When the session starts, the dictionary's latest saved entries are applied: the persona speaks each entry's sounds-like replacement, or its IPA pronunciation on voices whose model reads IPA (Cartesia Sonic 3, ElevenLabs v3 and v4), falling back to the entry's optional sounds-like text on other models, while captions and transcripts keep the original words. For a saved persona this replaces the persona's dictionary for this session only; omit it to use the persona's dictionary, if any. An unknown, archived or other-organization ID fails the session when it starts with 404.","example":"4f600129-13cf-4bfa-909a-2f4c31467f43","uniqueKey":"personaConfig.oneOf.2.voiceGenerationOptions.pronunciationDictionaryId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"personaConfig.oneOf.2.voiceGenerationOptions","typeLabel":"object"}},"uniqueKey":"personaConfig.oneOf.2","typeLabel":"Saved persona · object"}],"uniqueKey":"personaConfig","typeLabel":"Ephemeral persona · object | Avatar with audio passthrough · object | Saved persona · object"},"environment":{"oneOf":[{"type":"object","description":"Optional engine routing or transport integration environment. The integration type may be supplied explicitly or inferred from the LiveKit, Agora, or ElevenLabs Agent settings.","properties":{"type":{"type":"string","enum":["normal"],"uniqueKey":"environment.oneOf.0.type","typeLabel":"enum\u003cstring>"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^(?:anam-engine-preview-\\d+|devspace-[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)$","uniqueKey":"environment.oneOf.0.namespace","typeLabel":"string"},"podName":{"type":"string","uniqueKey":"environment.oneOf.0.podName","typeLabel":"string"},"engineVersion":{"type":"string","uniqueKey":"environment.oneOf.0.engineVersion","typeLabel":"string"},"livekitUrl":{"type":"string","description":"Must be reachable from the public internet; loopback, private, link-local, reserved, documentation, cluster-internal, and single-label targets are rejected with HTTP 400. Use an absolute URL with an ASCII hostname (punycode for international names), canonical dotted-decimal IPv4, and a port from 1 to 65535 if specified. Hostnames must resolve only to public addresses; DNS is checked when the session starts. Temporary DNS failures are service errors (5xx), not invalid URL errors.","uniqueKey":"environment.oneOf.0.livekitUrl","typeLabel":"string"},"livekitToken":{"type":"string","uniqueKey":"environment.oneOf.0.livekitToken","typeLabel":"string"},"agoraSettings":{"type":"object","required":["appId","token","channel","uid","quality","videoEncoding","enableStringUids"],"properties":{"appId":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.0.agoraSettings.appId","typeLabel":"string"},"token":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.0.agoraSettings.token","typeLabel":"string"},"channel":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.0.agoraSettings.channel","typeLabel":"string"},"uid":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.0.agoraSettings.uid","typeLabel":"string"},"quality":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.0.agoraSettings.quality","typeLabel":"string"},"videoEncoding":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.0.agoraSettings.videoEncoding","typeLabel":"string"},"enableStringUids":{"type":"boolean","isRequired":true,"uniqueKey":"environment.oneOf.0.agoraSettings.enableStringUids","typeLabel":"boolean"},"activityIdleTimeout":{"type":"number","uniqueKey":"environment.oneOf.0.agoraSettings.activityIdleTimeout","typeLabel":"number"},"audioSampleRate":{"type":"number","uniqueKey":"environment.oneOf.0.agoraSettings.audioSampleRate","typeLabel":"number"},"showAIAvatarDisclosure":{"type":"boolean","uniqueKey":"environment.oneOf.0.agoraSettings.showAIAvatarDisclosure","typeLabel":"boolean"},"width":{"type":"integer","minimum":1,"uniqueKey":"environment.oneOf.0.agoraSettings.width","typeLabel":"integer"},"height":{"type":"integer","minimum":1,"uniqueKey":"environment.oneOf.0.agoraSettings.height","typeLabel":"integer"}},"dependentRequired":{"width":["height"],"height":["width"]},"uniqueKey":"environment.oneOf.0.agoraSettings","typeLabel":"object"},"elevenLabsAgentSettings":{"type":"object","required":["signedUrl","agentId"],"properties":{"signedUrl":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.0.elevenLabsAgentSettings.signedUrl","typeLabel":"string"},"agentId":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.0.elevenLabsAgentSettings.agentId","typeLabel":"string"},"conversationConfigOverride":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.0.elevenLabsAgentSettings.conversationConfigOverride","typeLabel":"object"},"dynamicVariables":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.0.elevenLabsAgentSettings.dynamicVariables","typeLabel":"object"},"userId":{"type":"string","uniqueKey":"environment.oneOf.0.elevenLabsAgentSettings.userId","typeLabel":"string"},"customLlmExtraBody":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.0.elevenLabsAgentSettings.customLlmExtraBody","typeLabel":"object"}},"uniqueKey":"environment.oneOf.0.elevenLabsAgentSettings","typeLabel":"object"}},"uniqueKey":"environment.oneOf.0","typeLabel":"object"},{"type":"object","description":"Optional engine routing or transport integration environment. The integration type may be supplied explicitly or inferred from the LiveKit, Agora, or ElevenLabs Agent settings.","required":["livekitUrl","livekitToken"],"properties":{"livekitUrl":{"type":"string","description":"Must be reachable from the public internet; loopback, private, link-local, reserved, documentation, cluster-internal, and single-label targets are rejected with HTTP 400. Use an absolute URL with an ASCII hostname (punycode for international names), canonical dotted-decimal IPv4, and a port from 1 to 65535 if specified. Hostnames must resolve only to public addresses; DNS is checked when the session starts. Temporary DNS failures are service errors (5xx), not invalid URL errors.","isRequired":true,"uniqueKey":"environment.oneOf.1.livekitUrl","typeLabel":"string"},"livekitToken":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.1.livekitToken","typeLabel":"string"},"type":{"type":"string","enum":["livekit"],"uniqueKey":"environment.oneOf.1.type","typeLabel":"enum\u003cstring>"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^(?:anam-engine-preview-\\d+|devspace-[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)$","uniqueKey":"environment.oneOf.1.namespace","typeLabel":"string"},"podName":{"type":"string","uniqueKey":"environment.oneOf.1.podName","typeLabel":"string"},"engineVersion":{"type":"string","uniqueKey":"environment.oneOf.1.engineVersion","typeLabel":"string"},"agoraSettings":{"type":"object","required":["appId","token","channel","uid","quality","videoEncoding","enableStringUids"],"properties":{"appId":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.1.agoraSettings.appId","typeLabel":"string"},"token":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.1.agoraSettings.token","typeLabel":"string"},"channel":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.1.agoraSettings.channel","typeLabel":"string"},"uid":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.1.agoraSettings.uid","typeLabel":"string"},"quality":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.1.agoraSettings.quality","typeLabel":"string"},"videoEncoding":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.1.agoraSettings.videoEncoding","typeLabel":"string"},"enableStringUids":{"type":"boolean","isRequired":true,"uniqueKey":"environment.oneOf.1.agoraSettings.enableStringUids","typeLabel":"boolean"},"activityIdleTimeout":{"type":"number","uniqueKey":"environment.oneOf.1.agoraSettings.activityIdleTimeout","typeLabel":"number"},"audioSampleRate":{"type":"number","uniqueKey":"environment.oneOf.1.agoraSettings.audioSampleRate","typeLabel":"number"},"showAIAvatarDisclosure":{"type":"boolean","uniqueKey":"environment.oneOf.1.agoraSettings.showAIAvatarDisclosure","typeLabel":"boolean"},"width":{"type":"integer","minimum":1,"uniqueKey":"environment.oneOf.1.agoraSettings.width","typeLabel":"integer"},"height":{"type":"integer","minimum":1,"uniqueKey":"environment.oneOf.1.agoraSettings.height","typeLabel":"integer"}},"dependentRequired":{"width":["height"],"height":["width"]},"uniqueKey":"environment.oneOf.1.agoraSettings","typeLabel":"object"},"elevenLabsAgentSettings":{"type":"object","required":["signedUrl","agentId"],"properties":{"signedUrl":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.1.elevenLabsAgentSettings.signedUrl","typeLabel":"string"},"agentId":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.1.elevenLabsAgentSettings.agentId","typeLabel":"string"},"conversationConfigOverride":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.1.elevenLabsAgentSettings.conversationConfigOverride","typeLabel":"object"},"dynamicVariables":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.1.elevenLabsAgentSettings.dynamicVariables","typeLabel":"object"},"userId":{"type":"string","uniqueKey":"environment.oneOf.1.elevenLabsAgentSettings.userId","typeLabel":"string"},"customLlmExtraBody":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.1.elevenLabsAgentSettings.customLlmExtraBody","typeLabel":"object"}},"uniqueKey":"environment.oneOf.1.elevenLabsAgentSettings","typeLabel":"object"}},"uniqueKey":"environment.oneOf.1","typeLabel":"object"},{"type":"object","description":"Optional engine routing or transport integration environment. The integration type may be supplied explicitly or inferred from the LiveKit, Agora, or ElevenLabs Agent settings.","required":["agoraSettings"],"properties":{"agoraSettings":{"type":"object","required":["appId","token","channel","uid","quality","videoEncoding","enableStringUids"],"properties":{"appId":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.2.agoraSettings.appId","typeLabel":"string"},"token":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.2.agoraSettings.token","typeLabel":"string"},"channel":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.2.agoraSettings.channel","typeLabel":"string"},"uid":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.2.agoraSettings.uid","typeLabel":"string"},"quality":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.2.agoraSettings.quality","typeLabel":"string"},"videoEncoding":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.2.agoraSettings.videoEncoding","typeLabel":"string"},"enableStringUids":{"type":"boolean","isRequired":true,"uniqueKey":"environment.oneOf.2.agoraSettings.enableStringUids","typeLabel":"boolean"},"activityIdleTimeout":{"type":"number","uniqueKey":"environment.oneOf.2.agoraSettings.activityIdleTimeout","typeLabel":"number"},"audioSampleRate":{"type":"number","uniqueKey":"environment.oneOf.2.agoraSettings.audioSampleRate","typeLabel":"number"},"showAIAvatarDisclosure":{"type":"boolean","uniqueKey":"environment.oneOf.2.agoraSettings.showAIAvatarDisclosure","typeLabel":"boolean"},"width":{"type":"integer","minimum":1,"uniqueKey":"environment.oneOf.2.agoraSettings.width","typeLabel":"integer"},"height":{"type":"integer","minimum":1,"uniqueKey":"environment.oneOf.2.agoraSettings.height","typeLabel":"integer"}},"dependentRequired":{"width":["height"],"height":["width"]},"isRequired":true,"uniqueKey":"environment.oneOf.2.agoraSettings","typeLabel":"object"},"type":{"type":"string","enum":["agora"],"uniqueKey":"environment.oneOf.2.type","typeLabel":"enum\u003cstring>"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^(?:anam-engine-preview-\\d+|devspace-[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)$","uniqueKey":"environment.oneOf.2.namespace","typeLabel":"string"},"podName":{"type":"string","uniqueKey":"environment.oneOf.2.podName","typeLabel":"string"},"engineVersion":{"type":"string","uniqueKey":"environment.oneOf.2.engineVersion","typeLabel":"string"},"livekitUrl":{"type":"string","description":"Must be reachable from the public internet; loopback, private, link-local, reserved, documentation, cluster-internal, and single-label targets are rejected with HTTP 400. Use an absolute URL with an ASCII hostname (punycode for international names), canonical dotted-decimal IPv4, and a port from 1 to 65535 if specified. Hostnames must resolve only to public addresses; DNS is checked when the session starts. Temporary DNS failures are service errors (5xx), not invalid URL errors.","uniqueKey":"environment.oneOf.2.livekitUrl","typeLabel":"string"},"livekitToken":{"type":"string","uniqueKey":"environment.oneOf.2.livekitToken","typeLabel":"string"},"elevenLabsAgentSettings":{"type":"object","required":["signedUrl","agentId"],"properties":{"signedUrl":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.2.elevenLabsAgentSettings.signedUrl","typeLabel":"string"},"agentId":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.2.elevenLabsAgentSettings.agentId","typeLabel":"string"},"conversationConfigOverride":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.2.elevenLabsAgentSettings.conversationConfigOverride","typeLabel":"object"},"dynamicVariables":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.2.elevenLabsAgentSettings.dynamicVariables","typeLabel":"object"},"userId":{"type":"string","uniqueKey":"environment.oneOf.2.elevenLabsAgentSettings.userId","typeLabel":"string"},"customLlmExtraBody":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.2.elevenLabsAgentSettings.customLlmExtraBody","typeLabel":"object"}},"uniqueKey":"environment.oneOf.2.elevenLabsAgentSettings","typeLabel":"object"}},"uniqueKey":"environment.oneOf.2","typeLabel":"object"},{"type":"object","description":"Optional engine routing or transport integration environment. The integration type may be supplied explicitly or inferred from the LiveKit, Agora, or ElevenLabs Agent settings.","required":["elevenLabsAgentSettings"],"properties":{"elevenLabsAgentSettings":{"type":"object","required":["signedUrl","agentId"],"properties":{"signedUrl":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.3.elevenLabsAgentSettings.signedUrl","typeLabel":"string"},"agentId":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.3.elevenLabsAgentSettings.agentId","typeLabel":"string"},"conversationConfigOverride":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.3.elevenLabsAgentSettings.conversationConfigOverride","typeLabel":"object"},"dynamicVariables":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.3.elevenLabsAgentSettings.dynamicVariables","typeLabel":"object"},"userId":{"type":"string","uniqueKey":"environment.oneOf.3.elevenLabsAgentSettings.userId","typeLabel":"string"},"customLlmExtraBody":{"type":"object","additionalProperties":true,"uniqueKey":"environment.oneOf.3.elevenLabsAgentSettings.customLlmExtraBody","typeLabel":"object"}},"isRequired":true,"uniqueKey":"environment.oneOf.3.elevenLabsAgentSettings","typeLabel":"object"},"type":{"type":"string","enum":["elevenlabs_agent"],"uniqueKey":"environment.oneOf.3.type","typeLabel":"enum\u003cstring>"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^(?:anam-engine-preview-\\d+|devspace-[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)$","uniqueKey":"environment.oneOf.3.namespace","typeLabel":"string"},"podName":{"type":"string","uniqueKey":"environment.oneOf.3.podName","typeLabel":"string"},"engineVersion":{"type":"string","uniqueKey":"environment.oneOf.3.engineVersion","typeLabel":"string"},"livekitUrl":{"type":"string","description":"Must be reachable from the public internet; loopback, private, link-local, reserved, documentation, cluster-internal, and single-label targets are rejected with HTTP 400. Use an absolute URL with an ASCII hostname (punycode for international names), canonical dotted-decimal IPv4, and a port from 1 to 65535 if specified. Hostnames must resolve only to public addresses; DNS is checked when the session starts. Temporary DNS failures are service errors (5xx), not invalid URL errors.","uniqueKey":"environment.oneOf.3.livekitUrl","typeLabel":"string"},"livekitToken":{"type":"string","uniqueKey":"environment.oneOf.3.livekitToken","typeLabel":"string"},"agoraSettings":{"type":"object","required":["appId","token","channel","uid","quality","videoEncoding","enableStringUids"],"properties":{"appId":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.3.agoraSettings.appId","typeLabel":"string"},"token":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.3.agoraSettings.token","typeLabel":"string"},"channel":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.3.agoraSettings.channel","typeLabel":"string"},"uid":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"environment.oneOf.3.agoraSettings.uid","typeLabel":"string"},"quality":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.3.agoraSettings.quality","typeLabel":"string"},"videoEncoding":{"type":"string","isRequired":true,"uniqueKey":"environment.oneOf.3.agoraSettings.videoEncoding","typeLabel":"string"},"enableStringUids":{"type":"boolean","isRequired":true,"uniqueKey":"environment.oneOf.3.agoraSettings.enableStringUids","typeLabel":"boolean"},"activityIdleTimeout":{"type":"number","uniqueKey":"environment.oneOf.3.agoraSettings.activityIdleTimeout","typeLabel":"number"},"audioSampleRate":{"type":"number","uniqueKey":"environment.oneOf.3.agoraSettings.audioSampleRate","typeLabel":"number"},"showAIAvatarDisclosure":{"type":"boolean","uniqueKey":"environment.oneOf.3.agoraSettings.showAIAvatarDisclosure","typeLabel":"boolean"},"width":{"type":"integer","minimum":1,"uniqueKey":"environment.oneOf.3.agoraSettings.width","typeLabel":"integer"},"height":{"type":"integer","minimum":1,"uniqueKey":"environment.oneOf.3.agoraSettings.height","typeLabel":"integer"}},"dependentRequired":{"width":["height"],"height":["width"]},"uniqueKey":"environment.oneOf.3.agoraSettings","typeLabel":"object"}},"uniqueKey":"environment.oneOf.3","typeLabel":"object"}],"uniqueKey":"environment","typeLabel":"object"},"sessionOptions":{"type":"object","properties":{"sessionReplay":{"type":"object","deprecated":true,"description":"Legacy control for both the recording and the transcript. Use dataRetention instead. It can be sent alongside dataRetention: enableSessionReplay false turns both off, and so does an empty sessionReplay object; enableSessionReplay true leaves each to dataRetention.","properties":{"enableSessionReplay":{"type":"boolean","deprecated":true,"description":"Record the session and store its transcript. false turns off both, the same as dataRetention with recording and transcripts set to false. Under Zero Data Retention, sending true without dataRetention returns HTTP 400; with dataRetention sent, omitted settings are off and only a dataRetention setting of true that this flag (false, or an empty sessionReplay) does not turn off is rejected.","example":true,"default":true,"uniqueKey":"sessionOptions.sessionReplay.enableSessionReplay","typeLabel":"boolean"}},"uniqueKey":"sessionOptions.sessionReplay","typeLabel":"object"},"dataRetention":{"type":"object","additionalProperties":false,"description":"Choose what Anam keeps after the session. Each setting is independent, so you can turn off the recording and keep the transcript, or the other way round. A sessionReplay sent alongside it with enableSessionReplay false, or with no value, turns both off. Zero Data Retention sessions keep neither: an omitted setting is off, and a setting of true returns HTTP 400 unless sessionReplay turns both off. Not supported for LiveKit or Agora sessions (HTTP 400).","properties":{"recording":{"type":"boolean","description":"Record the session video. When false, GET /v1/sessions/{id}/recording returns 404. With sessionOptions.egress mode daily the recording must resolve to off: set this to false, or set enableSessionReplay to false or send an empty sessionReplay.","default":true,"example":false,"uniqueKey":"sessionOptions.dataRetention.recording","typeLabel":"boolean"},"transcripts":{"type":"boolean","description":"Store the conversation transcript. When false, GET /v1/sessions/{id}/transcript returns transcriptsEnabled false and each message reads TRANSCRIPTS_DISABLED.","default":true,"example":true,"uniqueKey":"sessionOptions.dataRetention.transcripts","typeLabel":"boolean"}},"uniqueKey":"sessionOptions.dataRetention","typeLabel":"object"},"videoQuality":{"type":"string","enum":["high","auto"],"description":"'high' pins highest bitrate, 'auto' enables adaptive bitrate.","example":"high","uniqueKey":"sessionOptions.videoQuality","typeLabel":"enum\u003cstring>"},"showAIAvatarDisclosure":{"type":"boolean","description":"Show the AI avatar disclosure during the session. Defaults to false; set true to opt in. Agora sessions ignore this field.","example":true,"uniqueKey":"sessionOptions.showAIAvatarDisclosure","typeLabel":"boolean"},"region":{"type":"string","enum":["eu","us"],"description":"Requested engine region. This explicit choice is honored independently of automatic geographic routing.","uniqueKey":"sessionOptions.region","typeLabel":"enum\u003cstring>"},"regionPolicy":{"type":"string","enum":["preferred","strict"],"default":"preferred","description":"`preferred` allows cross-region capacity failover. `strict` keeps the session in the requested region and requires `region`.","uniqueKey":"sessionOptions.regionPolicy","typeLabel":"enum\u003cstring>"},"videoWidth":{"type":"integer","description":"Output video frame width in pixels. Supply together with `videoHeight` (both or neither). Omit to use the avatar model's default. Supported pairs depend on the avatar model — cara-3: `720x480`; cara-4: `1152x768`. Unsupported pairs are rejected (the session is not silently downgraded).","example":1152,"uniqueKey":"sessionOptions.videoWidth","typeLabel":"integer"},"videoHeight":{"type":"integer","description":"Output video frame height in pixels. Supply together with `videoWidth` (both or neither). See `videoWidth`.","example":768,"uniqueKey":"sessionOptions.videoHeight","typeLabel":"integer"},"egress":{"type":"object","description":"Set egress to an alternative egress transport mode. The avatar's audio/video are published to\na 3rd party transport and not delivered over the native webRTC channel.\nThe WebRTC peer connection still exists for signalling and the data channel (interrupts, status).\nRequires `personaConfig.enableAudioPassthrough=true`. Discriminated on `mode`.\n","required":["mode"],"properties":{"mode":{"type":"string","enum":["daily"],"description":"Egress provider. Only `daily` is supported today.","example":"daily","isRequired":true,"uniqueKey":"sessionOptions.egress.mode","typeLabel":"enum\u003cstring>"},"daily":{"type":"object","description":"Required when `mode` is `daily`.","required":["roomUrl"],"properties":{"roomUrl":{"type":"string","format":"uri","description":"Daily room URL the avatar should join as a publisher.","example":"https://your-domain.daily.co/avatar-room","isRequired":true,"uniqueKey":"sessionOptions.egress.daily.roomUrl","typeLabel":"string\u003curi>"},"token":{"type":"string","description":"Optional Daily meeting token. Omit for public rooms.","uniqueKey":"sessionOptions.egress.daily.token","typeLabel":"string"},"userName":{"type":"string","description":"Optional display name for the avatar participant. Defaults to \"anam-avatar\".","uniqueKey":"sessionOptions.egress.daily.userName","typeLabel":"string"}},"uniqueKey":"sessionOptions.egress.daily","typeLabel":"object"}},"uniqueKey":"sessionOptions.egress","typeLabel":"object"}},"uniqueKey":"sessionOptions","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"cc27578f-a986-44c5-a387-77528087a4a7":{"description":"Successfully started session","content":{"application/json":{"schema":{"type":"object","description":"Short-lived credential used by a client to connect to a live persona. Valid for one hour, or for the `expiresInSeconds` it was created with, and only while that API key stays active.","properties":{"sessionToken":{"type":"string","description":"Signed JWT the client passes to the Anam SDK to open a WebRTC connection.","uniqueKey":"sessionToken","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"default":{"title":"default","value":{"sessionToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.signature"}}},"exampleType":"examples"}},"exampleType":"examples"},"0af39378-561a-4aff-9bf5-93bc67b66805":{"description":"Invalid request body or incompatible Zero Data Retention configuration. ZDR requests are rejected when the selected voice, LLM or STT provider does not support ZDR, compatibility cannot be verified, dataRetention.recording or dataRetention.transcripts is set to true without a sessionReplay that turns both off, or sessionReplay.enableSessionReplay is set to true without dataRetention. Omitted dataRetention settings are off for ZDR sessions. Region values must be `eu` or `us`, and `regionPolicy: strict` requires an explicit `region`. Avatar-only persona configs (avatarId without voiceId and without enableAudioPassthrough: true) are rejected with `avatar_only_requires_integration` unless a LiveKit, Agora or ElevenLabs Agent integration `environment` is supplied.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"a6492e76-29b4-41c7-90b0-9743d423ae1e":{"description":"Unauthorized - Invalid or missing API key","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"846c9587-9000-4ffc-b083-e8a3a5910281":{"description":"Forbidden - API key lacks the required permission, the session config is not authorized for the organization, or the plan does not permit the requested option, including Zero Data Retention or session region selection.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"sessionRegionNotAvailable":{"title":"sessionRegionNotAvailable","value":{"error":"session_region_not_available","message":"Session region selection is not available for this organization"}}},"exampleType":"examples"}},"exampleType":"examples"},"7d646dc8-15fa-43c3-b0d9-2eef72c448b8":{"description":"Server error. Note: most errors other than validation and the API key check below are returned as a 500, even though the error might be due to joining the room or related to token validation.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"ce3620b6-4fba-4934-a2df-8c7fd0de33ee":{"description":"The API key could not be checked because of a temporary server problem (the key may be valid; retry after `Retry-After` seconds), or session storage for the strict region (`region` with `regionPolicy: strict`) is temporarily unavailable, so no token is issued (`error: session_store_unavailable`; retry later).","headers":{"Retry-After":{"description":"Seconds to wait before retrying. Present when the API key could not be checked.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","example":"Service temporarily unavailable","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","example":"We could not check your API key. Please retry shortly.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"sessionStoreUnavailable":{"title":"sessionStoreUnavailable","value":{"error":"session_store_unavailable","message":"Session storage for this region is temporarily unavailable. Try again later."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"c363502f-e3a0-4cfc-9ffa-4107ca0bf5e1":{"BearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"802b7150-f38f-4f50-b5e3-fd4d474eaa80":{"url":"https://api.anam.ai","description":"Anam API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"https://api.anam.ai/swagger.json"},"subdomain":"anam","siteName":"Anam","title":"create session token - Anam","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"api-reference/sessions/create-session-token.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=\"light\"}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=\"Create a new session token used to initialise Anam client side SDKs\">\u003cmeta data-mint-head name=\"application-name\" content=\"Anam\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_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=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"create session token - Anam\">\u003cmeta data-mint-head property=\"og:description\" content=\"Anam developer documentation. Build real-time interactive AI avatars with low-latency voice, custom personas, and multi-language support.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Anam Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://anam.ai/docs/api-reference/sessions/create-session-token\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://anam.mintlify.site/docs/logo/anam-logo-white.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=\"create session token - Anam\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Anam developer documentation. Build real-time interactive AI avatars with low-latency voice, custom personas, and multi-language support.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://anam.mintlify.site/docs/logo/anam-logo-white.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=\"/docs/mintlify-assets/_mintlify/favicons/anam/tqFnPe6JO4uLg8KJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Anam\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff6200\">\u003cmeta data-mint-head name=\"og:logo\" content=\"/logo/anam-logo-white.png\">\u003cmeta data-mint-head name=\"twitter:logo\" content=\"/logo/anam-logo-white.png\">\u003clink data-mint-head rel=\"canonical\" href=\"https://anam.ai/docs/api-reference/sessions/create-session-token\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/sessions/create-session-token.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://anam.ai/#organization\",\"name\":\"Anam\",\"url\":\"https://anam.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/anam/C1_yhmh0z2cLMID5/logo/anam-logo-black.png?fit=max\u0026auto=format\u0026n=C1_yhmh0z2cLMID5\u0026q=85\u0026s=df3c7456becff3adcf00bdee3d8b24e6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://anam.ai/docs#website\",\"name\":\"Anam\",\"url\":\"https://anam.ai/docs\",\"publisher\":{\"@id\":\"https://anam.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://anam.ai/docs/api-reference/sessions/create-session-token#webpage\",\"url\":\"https://anam.ai/docs/api-reference/sessions/create-session-token\",\"name\":\"create session token\",\"description\":\"Create a new session token used to initialise Anam client side SDKs\",\"isPartOf\":{\"@id\":\"https://anam.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://anam.ai/docs/api-reference/sessions/create-session-token#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://anam.ai/docs/api-reference/sessions/create-session-token#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anam\",\"item\":\"https://anam.ai/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"create session token\",\"item\":\"https://anam.ai/docs/api-reference/sessions/create-session-token\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://anam.ai/docs/api-reference/sessions/create-session-token#apireference\",\"headline\":\"create session token\",\"name\":\"create session token\",\"description\":\"Create a new session token used to initialise Anam client side SDKs\",\"url\":\"https://anam.ai/docs/api-reference/sessions/create-session-token\",\"mainEntityOfPage\":{\"@id\":\"https://anam.ai/docs/api-reference/sessions/create-session-token#webpage\"},\"image\":\"https://anam.ai/logo/anam-logo-white.png\",\"publisher\":{\"@id\":\"https://anam.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://anam.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Anam\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Anam","nav":{"global":null,"tabs":[{"tab":"Overview","align":"start","pages":[{"title":"Overview","href":"/introduction/overview"}]},{"tab":"Embed","align":"start","pages":[{"title":"Embed","href":"/embed/overview"}]},{"tab":"JavaScript SDK","align":"start","pages":[{"title":"JavaScript SDK","href":"/javascript-sdk/api-key"}]},{"tab":"Python SDK","align":"start","pages":[{"title":"Python SDK","href":"/python-sdk/overview"}]},{"tab":"Integrations","align":"start","menu":[{"item":"LiveKit","icon":"https://mintlify.s3.us-west-1.amazonaws.com/anam/images/integrations/livekit.svg","pages":[{"title":"LiveKit","href":"/integrations/livekit/overview"}]},{"item":"ElevenLabs Agents","icon":"https://mintlify.s3.us-west-1.amazonaws.com/anam/images/integrations/elevenlabs.svg","pages":[{"title":"ElevenLabs Agents","href":"/integrations/elevenlabs/agents"}]},{"item":"Other SDKs","icon":"code","pages":[{"title":"Other SDKs","href":"/integrations/sdks"}]}],"pages":[{"title":"Integrations","href":"/integrations/livekit/overview"}]},{"tab":"API Reference","align":"start","groups":[{"group":"Use the API","pages":[{"title":"Anam REST API","sidebarTitle":"Introduction","description":"Call the Anam REST API directly, authenticate server-side requests, and find the endpoints for personas, sessions, voices, tools, and knowledge.","href":"/api-reference/overview"}]},{"group":"Sessions","pages":[{"title":"create session token","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/auth/session-token","href":"/api-reference/sessions/create-session-token"},{"title":"list sessions","description":"Returns a list of all sessions for the organization","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/sessions","href":"/api-reference/sessions/list-sessions"},{"title":"get session concurrency status","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/sessions/concurrency","href":"/api-reference/sessions/get-current-concurrency-status"},{"title":"get aggregated session analytics","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/sessions/analytics","href":"/api-reference/sessions/get-aggregated-session-analytics"},{"title":"get session","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/sessions/{id}","href":"/api-reference/sessions/get-session"},{"title":"delete session","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/sessions/{id}","href":"/api-reference/sessions/delete-session"},{"title":"get session transcript","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/sessions/{id}/transcript","href":"/api-reference/sessions/get-session-transcript"},{"title":"stop session","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/sessions/{id}/stop","href":"/api-reference/sessions/stop-session"},{"title":"delete session report","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/sessions/{id}/report","href":"/api-reference/sessions/delete-session-report"},{"title":"get session recording","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/sessions/{id}/recording","href":"/api-reference/sessions/get-session-recording"},{"title":"delete session recording","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/sessions/{id}/recording","href":"/api-reference/sessions/delete-session-recording"},{"title":"get session analytics","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/sessions/{id}/analytics","href":"/api-reference/sessions/get-session-analytics"}]},{"group":"Meetings","pages":[{"title":"list meeting invites","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/meetings/invites","href":"/api-reference/meetings/list-meeting-invites"},{"title":"create meeting invite","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/meetings/invites","href":"/api-reference/meetings/create-meeting-invite"},{"title":"get meeting invite","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/meetings/invites/{id}","href":"/api-reference/meetings/get-meeting-invite"},{"title":"cancel meeting invite","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/meetings/invites/{id}","href":"/api-reference/meetings/cancel-meeting-invite"}]},{"group":"Avatar Videos","pages":[{"title":"list avatar videos","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/avatar-videos","href":"/api-reference/avatar-videos/list-avatar-videos"},{"title":"create avatar video","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/avatar-videos","href":"/api-reference/avatar-videos/create-an-avatar-video"},{"title":"get avatar video","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/avatar-videos/{id}","href":"/api-reference/avatar-videos/get-an-avatar-video"},{"title":"cancel avatar video","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/avatar-videos/{id}/cancel","href":"/api-reference/avatar-videos/cancel-an-avatar-video"},{"title":"retry avatar video","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/avatar-videos/{id}/retry","href":"/api-reference/avatar-videos/retry-an-avatar-video"}]},{"group":"Personas","pages":[{"title":"list personas","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/personas","href":"/api-reference/personas/list-personas"},{"title":"create persona","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/personas","href":"/api-reference/personas/create-persona"},{"title":"get persona","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/personas/{id}","href":"/api-reference/personas/get-persona"},{"title":"update persona","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/personas/{id}","href":"/api-reference/personas/update-persona"},{"title":"delete persona","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/personas/{id}","href":"/api-reference/personas/delete-persona"}]},{"group":"Avatars","pages":[{"title":"list avatars","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/avatars","href":"/api-reference/avatars/list-avatars"},{"title":"create avatar","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/avatars","href":"/api-reference/avatars/create-avatar"},{"title":"get avatar","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/avatars/{id}","href":"/api-reference/avatars/get-avatar"},{"title":"update avatar","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/avatars/{id}","href":"/api-reference/avatars/update-avatar"},{"title":"delete avatar","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/avatars/{id}","href":"/api-reference/avatars/delete-avatar"}]},{"group":"Voices","pages":[{"title":"list voices","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/voices","href":"/api-reference/voices/list-voices"},{"title":"create voice","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/voices","href":"/api-reference/voices/create-voice"},{"title":"create voice import","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/voice-imports","href":"/api-reference/voices/validate-and-import-a-provider-voice"},{"title":"get ElevenLabs API key status","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/voices/elevenlabs-key","href":"/api-reference/voices/get-the-organizations-elevenlabs-api-key-status"},{"title":"save ElevenLabs API key","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/voices/elevenlabs-key","href":"/api-reference/voices/save-the-organizations-elevenlabs-api-key"},{"title":"remove ElevenLabs API key","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/voices/elevenlabs-key","href":"/api-reference/voices/remove-the-organizations-elevenlabs-api-key"},{"title":"create voice presigned upload","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/voices/presigned-upload","href":"/api-reference/voices/create-voice-presigned-upload"},{"title":"get voice","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/voices/{id}","href":"/api-reference/voices/get-voice"},{"title":"update voice","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/voices/{id}","href":"/api-reference/voices/update-voice"},{"title":"delete voice","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/voices/{id}","href":"/api-reference/voices/delete-voice"}]},{"group":"Pronunciation Dictionaries","pages":[{"title":"list pronunciation dictionaries","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/pronunciation-dictionaries","href":"/api-reference/pronunciation-dictionaries/list-pronunciation-dictionaries"},{"title":"create pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/pronunciation-dictionaries","href":"/api-reference/pronunciation-dictionaries/create-pronunciation-dictionary"},{"title":"import pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/pronunciation-dictionaries/import","href":"/api-reference/pronunciation-dictionaries/import-pronunciation-dictionary"},{"title":"get pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/pronunciation-dictionaries/{id}","href":"/api-reference/pronunciation-dictionaries/get-pronunciation-dictionary"},{"title":"update pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/pronunciation-dictionaries/{id}","href":"/api-reference/pronunciation-dictionaries/update-pronunciation-dictionary"},{"title":"delete pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/pronunciation-dictionaries/{id}","href":"/api-reference/pronunciation-dictionaries/delete-pronunciation-dictionary"}]},{"group":"LLMs","pages":[{"title":"list llms","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/llms","href":"/api-reference/llms/list-llms"},{"title":"create llm","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/llms","href":"/api-reference/llms/create-llm"},{"title":"get llm","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/llms/{id}","href":"/api-reference/llms/get-llm"},{"title":"update llm","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/llms/{id}","href":"/api-reference/llms/update-llm"},{"title":"delete llm","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/llms/{id}","href":"/api-reference/llms/delete-llm"}]},{"group":"Knowledge","pages":[{"title":"list knowledge groups","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/knowledge/groups","href":"/api-reference/knowledge/list-knowledge-groups"},{"title":"create knowledge group","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/knowledge/groups","href":"/api-reference/knowledge/create-knowledge-group"},{"title":"get knowledge group","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/knowledge/groups/{id}","href":"/api-reference/knowledge/get-knowledge-group"},{"title":"update knowledge group","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/knowledge/groups/{id}","href":"/api-reference/knowledge/update-knowledge-group"},{"title":"delete knowledge group","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/knowledge/groups/{id}","href":"/api-reference/knowledge/delete-knowledge-group"},{"title":"search knowledge group","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/knowledge/groups/{id}/search","href":"/api-reference/knowledge/search-knowledge-group"},{"title":"list knowledge group documents","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/knowledge/groups/{id}/documents","href":"/api-reference/knowledge/list-knowledge-group-documents"},{"title":"upload knowledge group document","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/knowledge/groups/{id}/documents","href":"/api-reference/knowledge/upload-knowledge-group-document"},{"title":"get knowledge document","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/knowledge/documents/{id}","href":"/api-reference/knowledge/get-knowledge-document"},{"title":"update knowledge document","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/knowledge/documents/{id}","href":"/api-reference/knowledge/update-knowledge-document"},{"title":"delete knowledge document","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/knowledge/documents/{id}","href":"/api-reference/knowledge/delete-knowledge-document"},{"title":"get knowledge document download","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/knowledge/documents/{id}/download","href":"/api-reference/knowledge/get-knowledge-document-download"}]},{"group":"Tools","pages":[{"title":"list tools","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/tools","href":"/api-reference/tools/list-tools"},{"title":"create tool","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/tools","href":"/api-reference/tools/create-tool"},{"title":"get tool","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/tools/{id}","href":"/api-reference/tools/get-tool"},{"title":"update tool","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/tools/{id}","href":"/api-reference/tools/update-tool"},{"title":"delete tool","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/tools/{id}","href":"/api-reference/tools/delete-tool"}]},{"group":"Share Links","pages":[{"title":"list share links","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/share-links","href":"/api-reference/share-links/list-share-links"},{"title":"create share link","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/share-links","href":"/api-reference/share-links/create-share-link"},{"title":"get share link","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json get /v1/share-links/{id}","href":"/api-reference/share-links/get-share-link"},{"title":"update share link","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json put /v1/share-links/{id}","href":"/api-reference/share-links/update-share-link"},{"title":"delete share link","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json delete /v1/share-links/{id}","href":"/api-reference/share-links/delete-share-link"}]},{"group":"Engine","pages":[{"title":"create engine session","deprecated":null,"version":null,"openapi":"https://api.anam.ai/swagger.json post /v1/engine/session","href":"/api-reference/engine/create-engine-session"}]}]},{"tab":"Changelog","align":"start","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"create session token - Anam","buildId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","deploymentId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CNqlzjVB.js","utils-BqFiXZ79.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CnR4QBe6.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BY2ZM1OO.js","snippetPresets-x-8ACO8V.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ch-SJE05.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CqqG_0NE.js","shallow-BXrZ2b0C.js","getApiPlaygroundDisplay-n7J_wkjq.js","CodeSnippet-CQsp4vyQ.js","CodeSnippets-BfuHqvZx.js","Page-CTxrMSpo.js","getPastedJson-BjrGIK1i.js","icon-7iLZnVOC.js","MethodPill-TBS1m84e.js","DuplicateIcon-BNMrV4Vs.js","createIcon-C5kCqeU2.js","DynamicMarkdown-Bq09mRwR.js","SectionHeading-G4Bflf5Q.js","axios-vUo_bRtp.js","Markdown-BTUds0aX.js","clsx-6wHzaN2_.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BPypQKlo.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-o6bee4ro.js"]}