{ "code": 0, "message": "success", "data": { "session_id": "avatar-session-123", "status": "active", "auto_close": { "disconnected_timeout_seconds": 60, "interaction_idle_timeout_seconds": 300 }, "session": { "mode": "video_avatar", "active_avatar_id": "host_a", "source_image_id": "front" }, "control": { "url": "wss://api.vivix.ai/v1/realtime-avatar/control?session_id=avatar-session-123", "client_secret": "ctl_..." }, "output": { "aspect_ratio": "9:16", "resolution": "480p" }, "assets": { "audio": [ { "asset_id": "welcome_jingle", "url": "https://cdn.example.com/audio/welcome-jingle.wav", "mime_type": "audio/wav" } ], "speech_text": [ { "asset_id": "welcome_line", "text": "Welcome back. I saved your place." } ], "visual_prompts": [ { "asset_id": "wave_small", "prompt": "smile and give a small wave" } ] }, "conversation": { "tools": [ { "type": "function", "name": "lookup_product", "description": "Look up product details by product id.", "parameters": { "type": "object", "properties": { "product_id": { "type": "string" } }, "required": [ "product_id" ] } } ], "response_defaults": { "temperature": 0.7, "max_output_tokens": 512 }, "turn_detection": { "type": "server_vad", "silence_duration_ms": 500 }, "input_audio_transcription": { "enabled": true, "language": "auto" } }, "avatars": [ { "avatar_id": "host_a", "persona": "You are Host A, a warm livestream host who gives concise product-focused replies.", "visual": { "source_images": [ { "source_image_id": "front", "url": "https://cdn.example.com/avatars/host-a-front.png", "description": "A woman facing the camera in a brightly lit studio, front view.", "media_type": "image/png" }, { "source_image_id": "side", "url": "https://cdn.example.com/avatars/host-a-side.png", "description": "The same woman in the same studio, side view.", "media_type": "image/png" } ], "default_source_image_id": "front" } }, { "avatar_id": "host_b", "persona": "You are Host B, a calm expert who gives brief technical explanations.", "visual": { "source_images": [ { "source_image_id": "front", "url": "https://cdn.example.com/avatars/host-b-front.png", "description": "A man facing the camera in a brightly lit studio, front view.", "media_type": "image/png" } ], "default_source_image_id": "front" } } ], "delivery": { "media": { "transport": "trtc", "trtc": { "sdk_app_id": "1400000000", "room_id": "avatar-session-123", "user_id": "viewer", "user_sig": "...", "publisher_user_id": "publisher_xxx" } } }, "model": "vivix-a1-stream", "expires_at": "2026-07-16T10:05:00Z" }}
Errors
See Session errors for the error codes session endpoints return.
Authorizations
Authorization
string
header
required
Your Vivix API key. Keep it on your server.
Body
application/json
character_id
string
required
Saved character to start from, shaped like chr_…. Send it in the JSON body, not in the URL path.
idempotency_key
string
Optional key for retrying session creation. Reuse the same key when retrying the same request; use a new key for a new session.
model
string
Overrides the saved model.
max_duration_seconds
integer
Session time limit in seconds; minimum 4. The standard default is 20 minutes (1200 seconds), subject to your workspace’s session-duration limit. Check expires_at in the response for the actual expiry.
Required range: x >= 4
recording_mode
string
on or off. Send off to disable recording.
output
object
Overrides the saved output; shallow-merged with the saved object.
Show child attributes
delivery
object
Overrides the saved delivery; shallow-merged with the saved object.
Show child attributes
Response
Success
code
integer
required
0 on success; any other value is an error code.
message
string
required
success, or an English error description.
data
object
required
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Vivix API Platform","description":"Build real-time interactive avatars, worlds, and blazing fast video generation with the Vivix API.","colors":{"primary":"#202124","light":"#E8EAED","dark":"#202124"},"logo":{"light":"https://mintcdn.com/vivix-20d305ce/_pH0P9NPGXmrYjpb/logo/light.svg?fit=max\u0026auto=format\u0026n=_pH0P9NPGXmrYjpb\u0026q=85\u0026s=baf0ff5242cbe15c7109578472ce97da","dark":"https://mintcdn.com/vivix-20d305ce/_pH0P9NPGXmrYjpb/logo/dark.svg?fit=max\u0026auto=format\u0026n=_pH0P9NPGXmrYjpb\u0026q=85\u0026s=589e9a9cf678ffb3e4d02b257709d2b2","href":"https://platform.vivix.ai"},"favicon":"https://mintcdn.com/vivix-20d305ce/_pH0P9NPGXmrYjpb/favicon.png?fit=max\u0026auto=format\u0026n=_pH0P9NPGXmrYjpb\u0026q=85\u0026s=5c253eff0d790be37c1e534f29b580b0","appearance":{"default":"light","strict":true},"background":{"color":{"light":"#F9F6F4","dark":"#141413"}},"navbar":{"primary":{"type":"button","label":"Developer Platform","href":"https://platform.vivix.ai"}},"seo":{"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vivix-20d305ce","hasAudioNarration":false,"actualSubdomain":"vivix-20d305ce","customDomains":["docs.vivix.ai"],"gitSource":{"type":"gitlab","owner":"vivix-labs","repo":"vivix-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"projectId":689,"hostUrl":"https://gitlab.vivix.work","mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af736e036896a78e7f6275c","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"API","count":73},{"language":"default","tag":"A1: Streaming Avatar","count":64},{"language":"default","tag":"API reference","count":45},{"language":"default","tag":"Server events","count":22},{"language":"default","tag":"Client events","count":8},{"language":"default","tag":"Integrate your app","count":7},{"language":"default","tag":"Agent","count":5},{"language":"default","tag":"Characters","count":5},{"language":"default","tag":"Sessions","count":5},{"language":"default","tag":"Voices","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--vivix-bg: #f9f6f4;--vivix-active: #e9e5e0;--vivix-line: #ddd8d3;--vivix-ink: #313131;--vivix-muted: #70757d;--vivix-note-bg: #f6f6f6}#sidebar-content li[data-active]>a{background-color:var(--vivix-active)!important;color:#202124!important}.callout[data-callout-type=\"note\"]{background-color:var(--vivix-note-bg)!important;border:0!important;border-left:3px solid var(--vivix-muted)!important;border-radius:6px!important}.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"],.callout[data-callout-type=\"note\"] [data-component-part=\"callout-icon\"] svg{color:var(--vivix-ink)!important}#navbar{background-color:var(--vivix-bg);border-color:var(--vivix-line)}.columns>div>figure[data-name=\"frame\"]{height:100%}#w1-reference-pricing-note{background-color:#f0ece8;border-left:3px solid #b6aba0;border-radius:6px;padding:10px 14px;color:#5f6368;font-size:14px;line-height:1.5}#w1-reference-pricing-note strong{color:var(--vivix-ink);font-weight:600}.persona-map{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:16px;margin:28px 0 36px;color:#313131;font-size:13px;line-height:1.5}.persona-group-label{grid-column:1 / -1;color:#61716a;font-size:12px;font-weight:600}.persona-group-label:not(:first-child){margin-top:8px}.persona-speech{grid-column:1 / -1}.persona-outcome{display:flex;flex-direction:column;padding:20px;border:1px solid #ddd8d3;border-radius:16px;background:#f5f1ed}.persona-inputs{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:20px}.persona-inputs a,.persona-single-input{display:flex;flex-direction:column;gap:6px;text-decoration:none!important;border-bottom:0!important;color:#313131!important;font-weight:400}.persona-inputs a:hover .persona-module-title,.persona-single-input:hover .persona-module-title{text-decoration:underline}.persona-inputs a:focus-visible,.persona-single-input:focus-visible{outline:2px solid #617d79;outline-offset:4px;border-radius:3px}.persona-module-title{font-size:15px;line-height:1.4;font-weight:700}.persona-connector{margin:16px 0;text-align:center;color:#7b9788;font-size:23px;line-height:1}.persona-dialogue-scene{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.persona-speech-example{display:flex;flex-direction:column;gap:12px}.persona-viewer{color:#61716a;font-size:13px}.persona-reply{padding:14px 16px;border-radius:14px 14px 14px 3px;background:#fffaf5;border:1px solid #ddd8d3;font-size:15px;line-height:1.5}.persona-scene-caption{margin-top:12px;color:#576962;font-size:13px;line-height:1.6}.persona-map .persona-behavior-scene{width:100%;height:auto;margin:0}.persona-scene-labels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;color:#576962;font-size:13px;text-align:center}@media (max-width: 540px){.persona-map,.persona-inputs,.persona-dialogue-scene{grid-template-columns:minmax(0, 1fr)}.persona-speech,.persona-group-label{grid-column:1}.persona-dialogue-scene{gap:12px}}"}],"page":{"pagePath":"streaming-avatar/api-references/sessions/create-from-character","slug":"/streaming-avatar/api-references/sessions/create-from-character","pageMetadata":{"title":"Create Session from Character","openapi":"streaming-avatar/api-references/openapi.json POST /v1/realtime-avatar/character-sessions","description":"Start a session from a saved `character_id`. Returns the same session and connection fields as Create Session.","href":"/streaming-avatar/api-references/sessions/create-from-character"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Start a session from a saved \", _jsx(_components.code, {\n children: \"character_id\"\n }), \". Returns the same session and connection fields as Create Session.\"]\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{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Accordion,AccordionGroup}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);return _jsx(AccordionGroup,{children:_jsx(Accordion,{title:`Errors`,id:`errors`,children:_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/streaming-avatar/api-references/sessions#errors`,children:`Session errors`}),` for the error codes session endpoints return.`]})})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Session from Character","openapi":"streaming-avatar/api-references/openapi.json POST /v1/realtime-avatar/character-sessions","description":"Start a session from a saved `character_id`. Returns the same session and connection fields as Create Session.","href":"/streaming-avatar/api-references/sessions/create-from-character"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createSessionFromCharacter","summary":"Create Session from Character","description":"Start a session from a saved `character_id`. Returns the same session and connection fields as Create Session.","requestBody":"45bae02a-8284-4c67-b9ad-ec335f02941c","responses":{"200":"b8fb5d45-e940-49da-8935-88cad8ca3581","422":"cf6aa2e9-da5d-4b1b-a410-cc703f912c6c"},"method":"post","type":"path","servers":["e8dd2a0a-f29f-4e25-ac5c-3463a23bc70e"],"security":["42b210fd-35b9-4d7a-9d11-bc61cb5f168d"],"path":"/v1/realtime-avatar/character-sessions","baseUrlOptions":["https://api.vivix.ai"],"title":"Create Session from Character","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["character_id"],"properties":{"character_id":{"type":"string","description":"Saved character to start from, shaped like `chr_…`. Send it in the JSON body, not in the URL path.","isRequired":true,"uniqueKey":"character_id","typeLabel":"string"},"idempotency_key":{"type":"string","description":"Optional key for retrying session creation. Reuse the same key when retrying the same request; use a new key for a new session.","uniqueKey":"idempotency_key","typeLabel":"string"},"model":{"type":"string","description":"Overrides the saved model.","uniqueKey":"model","typeLabel":"string"},"max_duration_seconds":{"type":"integer","description":"Session time limit in seconds; minimum `4`. The standard default is 20 minutes (`1200` seconds), subject to your workspace’s session-duration limit. Check `expires_at` in the response for the actual expiry.","minimum":4,"uniqueKey":"max_duration_seconds","typeLabel":"integer"},"recording_mode":{"type":"string","description":"`on` or `off`. Send `off` to disable recording.","uniqueKey":"recording_mode","typeLabel":"string"},"output":{"type":"object","description":"Overrides the saved `output`; shallow-merged with the saved object.","properties":{"aspect_ratio":{"type":"string","description":"Requested avatar video aspect ratio. Supported values are `9:16` and `16:9`. Use a starting image with the same aspect ratio—a mismatched image will noticeably degrade video quality.","uniqueKey":"output.aspect_ratio","typeLabel":"string"},"resolution":{"type":"string","description":"Requested avatar video resolution. Supported values are `480p` and `720p`.","uniqueKey":"output.resolution","typeLabel":"string"}},"uniqueKey":"output","typeLabel":"object"},"delivery":{"type":"object","description":"Overrides the saved `delivery`; shallow-merged with the saved object.","properties":{"media":{"type":"object","description":"Selects how the client sends and receives realtime media.","properties":{"transport":{"type":"string","description":"Media transport requested for the session. Use `trtc` for TRTC or `agora` for Agora. If omitted, it defaults to TRTC. The response returns the corresponding provider-specific join details under `delivery.media.trtc` or `delivery.media.agora`.","uniqueKey":"delivery.media.transport","typeLabel":"string"}},"uniqueKey":"delivery.media","typeLabel":"object"}},"uniqueKey":"delivery","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"character_id":"chr_a1b2c3d4e5f6789012345678abcdef01","idempotency_key":"live-20260901-001"},"examples":{"Example":{"title":"Example","value":{"character_id":"chr_a1b2c3d4e5f6789012345678abcdef01","idempotency_key":"live-20260901-001"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"b8fb5d45-e940-49da-8935-88cad8ca3581":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","description":"`0` on success; any other value is an error code.","isRequired":true,"uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","description":"`success`, or an English error description.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"data":{"type":"object","properties":{"session_id":{"type":"string","description":"Identifier for the created avatar session.","isRequired":true,"uniqueKey":"data.session_id","typeLabel":"string"},"status":{"type":"string","description":"Current session status, such as `active`, `closing`, `closed`, or `failed`.","isRequired":true,"uniqueKey":"data.status","typeLabel":"string"},"auto_close":{"type":"object","description":"The effective policy snapshotted when the session was first created.","properties":{"disconnected_timeout_seconds":{"type":"integer","description":"The effective no-control-WSS timeout in seconds. 0 means disabled.","isRequired":true,"uniqueKey":"data.auto_close.disconnected_timeout_seconds","typeLabel":"integer"},"interaction_idle_timeout_seconds":{"type":"integer","description":"The effective interaction idle timeout in seconds. 0 means disabled.","isRequired":true,"uniqueKey":"data.auto_close.interaction_idle_timeout_seconds","typeLabel":"integer"}},"required":["disconnected_timeout_seconds","interaction_idle_timeout_seconds"],"isRequired":true,"uniqueKey":"data.auto_close","typeLabel":"object"},"session":{"type":"object","description":"Effective mutable session state after defaults and validation are applied.","properties":{"mode":{"type":"string","description":"Session mode: `video_avatar`.","enum":["video_avatar"],"isRequired":true,"uniqueKey":"data.session.mode","typeLabel":"enum\u003cstring>"},"active_avatar_id":{"type":"string","description":"Avatar rendered in the video and used for subsequent responses.","isRequired":true,"uniqueKey":"data.session.active_avatar_id","typeLabel":"string"},"source_image_id":{"type":"string","description":"ID of the source image currently used for avatar video.","uniqueKey":"data.session.source_image_id","typeLabel":"string"}},"required":["mode","active_avatar_id"],"isRequired":true,"uniqueKey":"data.session","typeLabel":"object"},"control":{"type":"object","description":"Connection details for the session control channel.","properties":{"url":{"type":"string","description":"Absolute WSS URL for the control channel, carrying client control events and server state events. The path is `/v1/realtime-avatar/control` and the session is identified by the `session_id` query parameter; always connect to the exact URL returned in this field.","isRequired":true,"uniqueKey":"data.control.url","typeLabel":"string"},"client_secret":{"type":"string","description":"Control-channel credential for this session. Browsers send it as the `token` query parameter; server clients may use a Bearer header. Valid until the session ends, including for reconnects. See [Connection example](/streaming-avatar/api-references/sessions#connect-and-control).","isRequired":true,"uniqueKey":"data.control.client_secret","typeLabel":"string"}},"required":["url","client_secret"],"isRequired":true,"uniqueKey":"data.control","typeLabel":"object"},"output":{"type":"object","description":"Effective avatar video output settings after defaults and limits are applied. Present when `session.mode` is `video_avatar`.","properties":{"aspect_ratio":{"type":"string","description":"Effective avatar video aspect ratio, either `9:16` or `16:9`.","isRequired":true,"uniqueKey":"data.output.aspect_ratio","typeLabel":"string"},"resolution":{"type":"string","description":"Effective avatar video resolution, either `480p` or `720p`.","isRequired":true,"uniqueKey":"data.output.resolution","typeLabel":"string"}},"required":["aspect_ratio","resolution"],"isRequired":true,"uniqueKey":"data.output","typeLabel":"object"},"conversation":{"type":"object","description":"Effective conversation defaults after server limits and defaults are applied. Same structure and meaning as the `conversation` request field.","properties":{"tools":{"type":"array","description":"Tools available to responses in the session.","items":{"type":"object","description":"One tool definition. Only function tools are documented for v1.","properties":{"type":{"type":"string","description":"Use `function`.","isRequired":true,"uniqueKey":"data.conversation.tools.items.[INDEX].type","typeLabel":"string"},"name":{"type":"string","description":"Function name available to the response planner.","isRequired":true,"uniqueKey":"data.conversation.tools.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","description":"Human-readable description of when the tool should be used.","uniqueKey":"data.conversation.tools.items.[INDEX].description","typeLabel":"string"},"parameters":{"type":"object","description":"JSON Schema object describing function arguments.","uniqueKey":"data.conversation.tools.items.[INDEX].parameters","typeLabel":"object"}},"required":["type","name"],"uniqueKey":"data.conversation.tools.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.conversation.tools","typeLabel":"object[]"},"response_defaults":{"type":"object","description":"Default response-generation settings for later turns.","properties":{"temperature":{"type":"number","description":"Sampling temperature for generated response text. Supported range is `0` to `2`.","uniqueKey":"data.conversation.response_defaults.temperature","typeLabel":"number"},"max_output_tokens":{"type":"integer","description":"Maximum generated text tokens for a response.","uniqueKey":"data.conversation.response_defaults.max_output_tokens","typeLabel":"integer"}},"uniqueKey":"data.conversation.response_defaults","typeLabel":"object"},"turn_detection":{"type":"object","description":"Default turn handling for real-time user input.","properties":{"type":{"type":"string","description":"`manual` means the client starts responses explicitly. `server_vad` means the server detects turn boundaries from incoming user audio.","isRequired":true,"uniqueKey":"data.conversation.turn_detection.type","typeLabel":"string"},"silence_duration_ms":{"type":"integer","description":"Compatibility field. Do not use it to tune actual end-of-utterance timing. See [Speech recognition configuration](/streaming-avatar/integrate/speech-recognition) for recognition and turn-detection settings.","uniqueKey":"data.conversation.turn_detection.silence_duration_ms","typeLabel":"integer"}},"required":["type"],"uniqueKey":"data.conversation.turn_detection","typeLabel":"object"},"input_audio_transcription":{"type":"object","description":"Default transcription settings for user audio input.","properties":{"enabled":{"type":"boolean","description":"Whether user audio should be transcribed.","uniqueKey":"data.conversation.input_audio_transcription.enabled","typeLabel":"boolean"},"language":{"type":"string","description":"BCP-47 `language` code, or `auto` for automatic `language` detection.","uniqueKey":"data.conversation.input_audio_transcription.language","typeLabel":"string"}},"uniqueKey":"data.conversation.input_audio_transcription","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.conversation","typeLabel":"object"},"avatars":{"type":"array","description":"Effective avatar definitions in the session. Same structure and meaning as the `avatars` request field.","items":{"type":"object","properties":{"avatar_id":{"type":"string","description":"Caller-defined avatar identifier, unique within the session.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].avatar_id","typeLabel":"string"},"persona":{"type":"string","description":"Describe the character's identity, personality, speaking style, response habits, movement preferences, and listening behavior in plain language or Markdown. Vivix uses this Persona to prepare the character's behavior automatically. See [Write a Persona](/streaming-avatar/character/persona).","uniqueKey":"data.avatars.items.[INDEX].persona","typeLabel":"string"},"voice":{"type":"object","description":"Optional per-avatar TTS configuration for multi-avatar sessions that require different voices. Provide `provider`, `provider_voice_id`, and `model`. For the normal session-wide voice path, omit this object and configure `pipeline_config.tts_config`. A session TTS configuration takes precedence over every per-avatar voice.","properties":{"provider":{"type":"string","description":"TTS backend, such as `qwen-audio-3.0-tts-flash_ws`, `elevenlabs`, or `qwen3tts`. Required with `provider_voice_id` and `model`.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].voice.provider","typeLabel":"string"},"provider_voice_id":{"type":"string","description":"Provider-side voice or style id. Required with `provider` and `model`.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].voice.provider_voice_id","typeLabel":"string"},"model":{"type":"string","description":"Provider TTS model ID. Required with `provider` and `provider_voice_id`.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].voice.model","typeLabel":"string"},"speed":{"type":"number","description":"Speech speed multiplier. The valid range is `0.7` to `1.2`.","uniqueKey":"data.avatars.items.[INDEX].voice.speed","typeLabel":"number"}},"required":["provider","provider_voice_id","model"],"uniqueKey":"data.avatars.items.[INDEX].voice","typeLabel":"object"},"visual":{"type":"object","description":"Visual rendering settings. Required when this avatar is used for video rendering.","properties":{"source_images":{"type":"array","description":"Registered source images available for this avatar. Required when image-based avatar video rendering is used.","items":{"type":"object","description":"One source image that can be selected for avatar video rendering.","properties":{"source_image_id":{"type":"string","description":"Caller-defined source image identifier, unique within the avatar.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].source_image_id","typeLabel":"string"},"url":{"type":"string","description":"Publicly accessible HTTPS URL of the source image. Its aspect ratio should match `output.aspect_ratio` (`9:16` or `16:9`)—a mismatched image will noticeably degrade video quality.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].url","typeLabel":"string"},"media_type":{"type":"string","description":"Image media type, such as `image/png` or `image/jpeg`.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].media_type","typeLabel":"string"},"description":{"type":"string","description":"Optional description of the person, pose, and scene.","uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].description","typeLabel":"string"},"opening":{"type":"object","description":"Optional opening speech or action. Supply `dialogue`, `action`, or both. It runs when this image is selected and begins rendering.","properties":{"dialogue":{"type":"string","description":"Exact opening words to synthesize.","uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].opening.dialogue","typeLabel":"string"},"action":{"type":"object","properties":{"prompt":{"type":"string","description":"Visual motion prompt for the opening action.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].opening.action.prompt","typeLabel":"string"},"duration_ms":{"type":"integer","minimum":1,"description":"Opening action duration in milliseconds.","isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].opening.action.duration_ms","typeLabel":"integer"}},"required":["prompt","duration_ms"],"description":"Opening movement, described by a prompt and duration.","uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].opening.action","typeLabel":"object"},"starting_at":{"type":"integer","minimum":0,"default":0,"description":"Delay in milliseconds before the opening begins, measured from the first frame becoming available.","uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].opening.starting_at","typeLabel":"integer"}},"uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX].opening","typeLabel":"object"}},"required":["source_image_id","media_type","url"],"uniqueKey":"data.avatars.items.[INDEX].visual.source_images.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.avatars.items.[INDEX].visual.source_images","typeLabel":"object[]"},"default_source_image_id":{"type":"string","description":"Default image ID. Omit when the avatar has one source image; otherwise set this or `session.source_image_id`.","uniqueKey":"data.avatars.items.[INDEX].visual.default_source_image_id","typeLabel":"string"}},"required":["source_images"],"uniqueKey":"data.avatars.items.[INDEX].visual","typeLabel":"object"}},"required":["avatar_id"],"uniqueKey":"data.avatars.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"data.avatars","typeLabel":"object[]"},"model":{"type":"string","description":"The model from the request.","isRequired":true,"uniqueKey":"data.model","typeLabel":"string"},"assets":{"type":"object","description":"Reusable image references, audio, speech text, and motion prompts. Use `images` for props or products in [object interaction](/streaming-avatar/interaction/object-interaction); put the character’s starting images in `avatars[].visual.source_images`. Asset IDs must be unique across all asset types.","properties":{"images":{"type":"array","description":"Reference images for props or products. These preserve the object’s appearance; they do not replace the character’s starting image or place the object in the scene by themselves.","items":{"type":"object","properties":{"asset_id":{"type":"string","description":"Object reference ID, unique across session assets. Use `OBJ_0`, `OBJ_1`, and so on.","isRequired":true,"uniqueKey":"data.assets.images.items.[INDEX].asset_id","typeLabel":"string"},"url":{"type":"string","description":"Publicly accessible HTTPS image URL.","isRequired":true,"uniqueKey":"data.assets.images.items.[INDEX].url","typeLabel":"string"},"mime_type":{"type":"string","description":"Image MIME type, such as `image/png` or `image/jpeg`.","uniqueKey":"data.assets.images.items.[INDEX].mime_type","typeLabel":"string"},"description":{"type":"string","description":"Optional visual description. If provided, include the matching reference tag, such as `a dark gray cylindrical speaker\u003cOBJ_0>` for `asset_id: \"OBJ_0\"`. See [Object interaction](/streaming-avatar/interaction/object-interaction).","uniqueKey":"data.assets.images.items.[INDEX].description","typeLabel":"string"}},"required":["asset_id","url"],"uniqueKey":"data.assets.images.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.assets.images","typeLabel":"object[]"},"audio":{"type":"array","description":"Reusable audio assets for `response.script.vocal.type: \"audio_asset\"`.","items":{"type":"object","description":"One reusable audio asset.","properties":{"asset_id":{"type":"string","description":"Caller-defined audio asset id.","isRequired":true,"uniqueKey":"data.assets.audio.items.[INDEX].asset_id","typeLabel":"string"},"url":{"type":"string","description":"HTTPS URL for the audio file. The URL must be directly fetchable by Vivix without custom request headers.","isRequired":true,"uniqueKey":"data.assets.audio.items.[INDEX].url","typeLabel":"string"},"mime_type":{"type":"string","description":"Audio MIME type. Supported values are `audio/wav` and `audio/mpeg`.","uniqueKey":"data.assets.audio.items.[INDEX].mime_type","typeLabel":"string"}},"required":["asset_id","url"],"uniqueKey":"data.assets.audio.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.assets.audio","typeLabel":"object[]"},"speech_text":{"type":"array","description":"Reusable exact speech text assets for `response.script.vocal.type: \"speech_asset\"`.","items":{"type":"object","description":"One reusable speech text asset.","properties":{"asset_id":{"type":"string","description":"Caller-defined speech text asset id.","isRequired":true,"uniqueKey":"data.assets.speech_text.items.[INDEX].asset_id","typeLabel":"string"},"text":{"type":"string","description":"Exact text to synthesize and stream through output text events when used in `response.script`.","isRequired":true,"uniqueKey":"data.assets.speech_text.items.[INDEX].text","typeLabel":"string"}},"required":["asset_id","text"],"uniqueKey":"data.assets.speech_text.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.assets.speech_text","typeLabel":"object[]"},"visual_prompts":{"type":"array","description":"Reusable visual prompt assets for `response.script.visual.visual_prompt_asset_id`.","items":{"type":"object","description":"One reusable visual prompt asset.","properties":{"asset_id":{"type":"string","description":"Caller-defined visual prompt asset id.","isRequired":true,"uniqueKey":"data.assets.visual_prompts.items.[INDEX].asset_id","typeLabel":"string"},"prompt":{"type":"string","description":"Instruction for avatar movement, posture, gaze, gesture, or presentation.","isRequired":true,"uniqueKey":"data.assets.visual_prompts.items.[INDEX].prompt","typeLabel":"string"}},"required":["asset_id","prompt"],"uniqueKey":"data.assets.visual_prompts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.assets.visual_prompts","typeLabel":"object[]"}},"uniqueKey":"data.assets","typeLabel":"object"},"delivery":{"type":"object","description":"Media connection details returned by the server. Present when `session.mode` is `video_avatar`.","properties":{"media":{"type":"object","description":"Temporary media connection details. Present when avatar video media is available. Exactly one media variant is returned, selected by `transport`. These details are scoped to this session and are not `provider` account credentials.","properties":{"transport":{"type":"string","description":"Discriminator that selects which media variant is returned. Supported values are `trtc` and `agora`.","isRequired":true,"uniqueKey":"data.delivery.media.transport","typeLabel":"string"},"trtc":{"type":"object","description":"TRTC room join details for the `trtc` media variant.","properties":{"sdk_app_id":{"type":"string","description":"TRTC application id used by the client SDK. Returned as a string, consistent with the convention that 64-bit integers may be returned as strings.","isRequired":true,"uniqueKey":"data.delivery.media.trtc.sdk_app_id","typeLabel":"string"},"room_id":{"type":"string","description":"TRTC room id for this session.","isRequired":true,"uniqueKey":"data.delivery.media.trtc.room_id","typeLabel":"string"},"user_id":{"type":"string","description":"TRTC user id assigned to the client.","isRequired":true,"uniqueKey":"data.delivery.media.trtc.user_id","typeLabel":"string"},"user_sig":{"type":"string","description":"Session-scoped signature for joining the TRTC room.","isRequired":true,"uniqueKey":"data.delivery.media.trtc.user_sig","typeLabel":"string"},"publisher_user_id":{"type":"string","description":"User id of the avatar video publisher in the TRTC room. Subscribe only to this user id to receive the avatar stream.","isRequired":true,"uniqueKey":"data.delivery.media.trtc.publisher_user_id","typeLabel":"string"}},"required":["sdk_app_id","room_id","user_id","user_sig","publisher_user_id"],"uniqueKey":"data.delivery.media.trtc","typeLabel":"object"},"agora":{"type":"object","description":"Agora channel join details for the `agora` media variant.","properties":{"app_id":{"type":"string","description":"Agora application id used by the client SDK.","isRequired":true,"uniqueKey":"data.delivery.media.agora.app_id","typeLabel":"string"},"channel_name":{"type":"string","description":"Agora channel name for this session.","isRequired":true,"uniqueKey":"data.delivery.media.agora.channel_name","typeLabel":"string"},"token":{"type":"string","description":"Session-scoped token for joining the Agora channel.","isRequired":true,"uniqueKey":"data.delivery.media.agora.token","typeLabel":"string"},"user_id":{"type":"string","description":"Agora user id assigned to the client.","isRequired":true,"uniqueKey":"data.delivery.media.agora.user_id","typeLabel":"string"},"publisher_user_id":{"type":"string","description":"User id of the avatar video publisher in the Agora channel. Subscribe only to this user id to receive the avatar stream.","isRequired":true,"uniqueKey":"data.delivery.media.agora.publisher_user_id","typeLabel":"string"}},"required":["app_id","channel_name","token","user_id","publisher_user_id"],"uniqueKey":"data.delivery.media.agora","typeLabel":"object"}},"required":["transport"],"uniqueKey":"data.delivery.media","typeLabel":"object"}},"uniqueKey":"data.delivery","typeLabel":"object"},"expires_at":{"type":"string","format":"date-time","description":"Time at which the session and its control credential expire. Present when the server returns a fixed expiration; otherwise omitted.","uniqueKey":"data.expires_at","typeLabel":"string\u003cdate-time>"},"recording_mode":{"type":"string","description":"Effective recording mode: `on` or `off`.","uniqueKey":"data.recording_mode","typeLabel":"string"}},"required":["session_id","status","auto_close","session","control","conversation","avatars","model","output"],"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":0,"message":"success","data":{"session_id":"avatar-session-123","status":"active","auto_close":{"disconnected_timeout_seconds":60,"interaction_idle_timeout_seconds":300},"session":{"mode":"video_avatar","active_avatar_id":"host_a","source_image_id":"front"},"control":{"url":"wss://api.vivix.ai/v1/realtime-avatar/control?session_id=avatar-session-123","client_secret":"ctl_..."},"output":{"aspect_ratio":"9:16","resolution":"480p"},"assets":{"audio":[{"asset_id":"welcome_jingle","url":"https://cdn.example.com/audio/welcome-jingle.wav","mime_type":"audio/wav"}],"speech_text":[{"asset_id":"welcome_line","text":"Welcome back. I saved your place."}],"visual_prompts":[{"asset_id":"wave_small","prompt":"smile and give a small wave"}]},"conversation":{"tools":[{"type":"function","name":"lookup_product","description":"Look up product details by product id.","parameters":{"type":"object","properties":{"product_id":{"type":"string"}},"required":["product_id"]}}],"response_defaults":{"temperature":0.7,"max_output_tokens":512},"turn_detection":{"type":"server_vad","silence_duration_ms":500},"input_audio_transcription":{"enabled":true,"language":"auto"}},"avatars":[{"avatar_id":"host_a","persona":"You are Host A, a warm livestream host who gives concise product-focused replies.","visual":{"source_images":[{"source_image_id":"front","url":"https://cdn.example.com/avatars/host-a-front.png","description":"A woman facing the camera in a brightly lit studio, front view.","media_type":"image/png"},{"source_image_id":"side","url":"https://cdn.example.com/avatars/host-a-side.png","description":"The same woman in the same studio, side view.","media_type":"image/png"}],"default_source_image_id":"front"}},{"avatar_id":"host_b","persona":"You are Host B, a calm expert who gives brief technical explanations.","visual":{"source_images":[{"source_image_id":"front","url":"https://cdn.example.com/avatars/host-b-front.png","description":"A man facing the camera in a brightly lit studio, front view.","media_type":"image/png"}],"default_source_image_id":"front"}}],"delivery":{"media":{"transport":"trtc","trtc":{"sdk_app_id":"1400000000","room_id":"avatar-session-123","user_id":"viewer","user_sig":"...","publisher_user_id":"publisher_xxx"}}},"model":"vivix-a1-stream","expires_at":"2026-07-16T10:05:00Z"}},"examples":{"Example":{"title":"Example","value":{"code":0,"message":"success","data":{"session_id":"avatar-session-123","status":"active","auto_close":{"disconnected_timeout_seconds":60,"interaction_idle_timeout_seconds":300},"session":{"mode":"video_avatar","active_avatar_id":"host_a","source_image_id":"front"},"control":{"url":"wss://api.vivix.ai/v1/realtime-avatar/control?session_id=avatar-session-123","client_secret":"ctl_..."},"output":{"aspect_ratio":"9:16","resolution":"480p"},"assets":{"audio":[{"asset_id":"welcome_jingle","url":"https://cdn.example.com/audio/welcome-jingle.wav","mime_type":"audio/wav"}],"speech_text":[{"asset_id":"welcome_line","text":"Welcome back. I saved your place."}],"visual_prompts":[{"asset_id":"wave_small","prompt":"smile and give a small wave"}]},"conversation":{"tools":[{"type":"function","name":"lookup_product","description":"Look up product details by product id.","parameters":{"type":"object","properties":{"product_id":{"type":"string"}},"required":["product_id"]}}],"response_defaults":{"temperature":0.7,"max_output_tokens":512},"turn_detection":{"type":"server_vad","silence_duration_ms":500},"input_audio_transcription":{"enabled":true,"language":"auto"}},"avatars":[{"avatar_id":"host_a","persona":"You are Host A, a warm livestream host who gives concise product-focused replies.","visual":{"source_images":[{"source_image_id":"front","url":"https://cdn.example.com/avatars/host-a-front.png","description":"A woman facing the camera in a brightly lit studio, front view.","media_type":"image/png"},{"source_image_id":"side","url":"https://cdn.example.com/avatars/host-a-side.png","description":"The same woman in the same studio, side view.","media_type":"image/png"}],"default_source_image_id":"front"}},{"avatar_id":"host_b","persona":"You are Host B, a calm expert who gives brief technical explanations.","visual":{"source_images":[{"source_image_id":"front","url":"https://cdn.example.com/avatars/host-b-front.png","description":"A man facing the camera in a brightly lit studio, front view.","media_type":"image/png"}],"default_source_image_id":"front"}}],"delivery":{"media":{"transport":"trtc","trtc":{"sdk_app_id":"1400000000","room_id":"avatar-session-123","user_id":"viewer","user_sig":"...","publisher_user_id":"publisher_xxx"}}},"model":"vivix-a1-stream","expires_at":"2026-07-16T10:05:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"cf6aa2e9-da5d-4b1b-a410-cc703f912c6c":{"description":"The selected opening image did not meet a video session image requirement.","content":{"application/json":{"schema":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","enum":[20021,20022],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cinteger>"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"data":{"type":"null","isRequired":true,"uniqueKey":"data","typeLabel":"null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"faceTooSmall":{"title":"faceTooSmall","summary":"Use a closer opening image","value":{"code":20021,"message":"The avatar's face is too small in the opening image. Use a closer shot with the full face clearly visible. See the first-image guide: https://docs.vivix.ai/streaming-avatar/character/first-image","data":null}},"solidBackground":{"title":"solidBackground","summary":"Choose an image with background detail","value":{"code":20022,"message":"For better results, use an opening image with a background that has some detail, such as a room or outdoor scene. See the first-image guide: https://docs.vivix.ai/streaming-avatar/character/first-image","data":null}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"42b210fd-35b9-4d7a-9d11-bc61cb5f168d":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your Vivix API key. Keep it on your server.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"e8dd2a0a-f29f-4e25-ac5c-3463a23bc70e":{"url":"https://api.vivix.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your Vivix API key. Keep it on your server.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your Vivix API key. Keep it on your server.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"streaming-avatar/api-references/openapi.json"},"subdomain":"vivix-20d305ce","siteName":"Vivix API Platform","title":"Create Session from Character - Vivix API Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-30T06:42:49.745Z","originalFileLocation":"streaming-avatar/api-references/sessions/create-from-character.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"Start a session from a saved character_id. Returns the same session and connection fields as Create Session.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Vivix API Platform\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Session from Character - Vivix API Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Start a session from a saved character_id. Returns the same session and connection fields as Create Session.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vivix API Platform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vivix-20d305ce.mintlify.site/_mintlify/api/og/v2?division=Sessions\u0026amp;title=Create+Session+from+Character\u0026amp;description=Start+a+session+from+a+saved+%60character_id%60.+Returns+the+same+session+and+connection+fields+as+Create+Session.\u0026amp;theme=c0ba66fadb8405a2f081edcf\u0026amp;signature=dbf3c025ad652a5462855ee126ce00d79c81117b04308724e4cad928ef1f53c9\">\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 from Character - Vivix API Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Start a session from a saved character_id. Returns the same session and connection fields as Create Session.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vivix-20d305ce.mintlify.site/_mintlify/api/og/v2?division=Sessions\u0026amp;title=Create+Session+from+Character\u0026amp;description=Start+a+session+from+a+saved+%60character_id%60.+Returns+the+same+session+and+connection+fields+as+Create+Session.\u0026amp;theme=c0ba66fadb8405a2f081edcf\u0026amp;signature=dbf3c025ad652a5462855ee126ce00d79c81117b04308724e4cad928ef1f53c9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/vivix-20d305ce/4XVG5hka1siEhate/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Vivix API Platform\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#202124\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/streaming-avatar/api-references/sessions/create-from-character.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.vivix.ai/#organization\",\"name\":\"Vivix API Platform\",\"url\":\"https://docs.vivix.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vivix-20d305ce/_pH0P9NPGXmrYjpb/logo/light.svg?fit=max\u0026auto=format\u0026n=_pH0P9NPGXmrYjpb\u0026q=85\u0026s=baf0ff5242cbe15c7109578472ce97da\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.vivix.ai#website\",\"name\":\"Vivix API Platform\",\"url\":\"https://docs.vivix.ai\",\"publisher\":{\"@id\":\"https://docs.vivix.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character#webpage\",\"url\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character\",\"name\":\"Create Session from Character\",\"description\":\"Start a session from a saved character_id. Returns the same session and connection fields as Create Session.\",\"dateModified\":\"2026-09-30T06:42:49.745Z\",\"isPartOf\":{\"@id\":\"https://docs.vivix.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"A1: Streaming Avatar\",\"item\":\"https://docs.vivix.ai/streaming-avatar/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API reference\",\"item\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Sessions\",\"item\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create Session from Character\",\"item\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character#apireference\",\"headline\":\"Create Session from Character\",\"name\":\"Create Session from Character\",\"description\":\"Start a session from a saved character_id. Returns the same session and connection fields as Create Session.\",\"url\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vivix.ai/streaming-avatar/api-references/sessions/create-from-character#webpage\"},\"dateModified\":\"2026-09-30T06:42:49.745Z\",\"publisher\":{\"@id\":\"https://docs.vivix.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.vivix.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Vivix API Platform\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Vivix API Platform\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/streaming-avatar/api-references/sessions/create-from-character.md","siteName":"Vivix API Platform","nav":{"global":null,"tabs":[{"tab":"API","icon":"code","groups":[{"group":"Overview","pages":[{"title":"Introduction","href":"/overview/introduction"},{"title":"Models","href":"/overview/models"}]},{"group":"A1: Streaming Avatar","pages":[{"title":"Streaming Avatar overview","sidebarTitle":"Overview","href":"/streaming-avatar/overview"},{"group":"Get started","pages":[{"title":"Avatar Playground","href":"/streaming-avatar/get-started/avatar-playground"},{"title":"Quickstart","href":"/streaming-avatar/get-started/quickstart"}]},{"group":"Define the character","pages":[{"title":"Prepare the first image","href":"/streaming-avatar/character/first-image"},{"title":"Choose a voice","href":"/streaming-avatar/character/voice"},{"title":"Write a Persona","sidebarTitle":"Persona","href":"/streaming-avatar/character/persona"},{"title":"Add tools to the character","href":"/streaming-avatar/character/tools"}]},{"group":"Interaction and performance","pages":[{"title":"Conversation and interruptions","href":"/streaming-avatar/interaction/conversation"},{"title":"Script speech and performances","href":"/streaming-avatar/interaction/scripted-performances"},{"title":"Change outfits and scenes","href":"/streaming-avatar/interaction/outfits-and-scenes"},{"title":"Object interaction","href":"/streaming-avatar/interaction/object-interaction"},{"title":"Respond quickly with short vocal cues","sidebarTitle":"Short vocal cues","href":"/streaming-avatar/interaction/acknowledgement"}]},{"group":"Integrate your app","pages":[{"title":"Create, manage, and close sessions","href":"/streaming-avatar/integrate/sessions"},{"title":"Connect with TRTC","href":"/streaming-avatar/integrate/trtc"},{"title":"Connect with Agora","href":"/streaming-avatar/integrate/agora"},{"title":"Configure speech recognition","href":"/streaming-avatar/integrate/speech-recognition"},{"title":"Configure the dialogue model","href":"/streaming-avatar/integrate/dialogue-model"},{"title":"Configure speech synthesis","href":"/streaming-avatar/integrate/speech-synthesis"},{"title":"Pure rendering mode","href":"/streaming-avatar/integrate/pure-rendering"}]},{"group":"API reference","pages":[{"group":"Sessions","root":{"title":"Sessions","href":"/streaming-avatar/api-references/sessions"},"pages":[{"title":"Create Session","openapi":"streaming-avatar/api-references/openapi.json POST /v1/realtime-avatar/sessions","description":"Create a live session from an image, a Persona, and a voice. Returns session settings, a WebSocket control credential, and RTC media credentials. For a minimal working request, see the [Quickstart](/streaming-avatar/get-started/quickstart).","href":"/streaming-avatar/api-references/sessions/create"},{"title":"Create Session from Character","openapi":"streaming-avatar/api-references/openapi.json POST /v1/realtime-avatar/character-sessions","href":"/streaming-avatar/api-references/sessions/create-from-character"},{"title":"Get Session","openapi":"streaming-avatar/api-references/openapi.json GET /v1/realtime-avatar/sessions/{session_id}","description":"Retrieve a session’s current status, effective settings, and connection details.","href":"/streaming-avatar/api-references/sessions/get"},{"title":"List Sessions","openapi":"streaming-avatar/api-references/openapi.json GET /v1/realtime-avatar/sessions","href":"/streaming-avatar/api-references/sessions/list"},{"title":"Close Session","openapi":"streaming-avatar/api-references/openapi.json POST /v1/realtime-avatar/sessions/{session_id}/close","href":"/streaming-avatar/api-references/sessions/close"}]},{"group":"Voices","root":{"title":"Voices","href":"/streaming-avatar/api-references/voices"},"pages":[{"title":"Upload Audio","openapi":"streaming-avatar/api-references/openapi.json POST /v1/files/audios","href":"/streaming-avatar/api-references/voices/upload-audio"},{"title":"Clone Voice","openapi":"streaming-avatar/api-references/openapi.json POST /v1/voices","href":"/streaming-avatar/api-references/voices/clone"},{"title":"Design Voice","openapi":"streaming-avatar/api-references/openapi.json POST /v1/voices/design","href":"/streaming-avatar/api-references/voices/design"},{"title":"List Voices","openapi":"streaming-avatar/api-references/openapi.json GET /v1/voices","href":"/streaming-avatar/api-references/voices/list"},{"title":"Get Voice","openapi":"streaming-avatar/api-references/openapi.json GET /v1/voices/{voice_id}","href":"/streaming-avatar/api-references/voices/get"}]},{"group":"Client events","root":{"title":"Client events","href":"/streaming-avatar/api-references/client-events"},"pages":[{"title":"session.update","href":"/streaming-avatar/api-references/client-events/session-update"},{"title":"asset.add","href":"/streaming-avatar/api-references/client-events/asset-add"},{"title":"avatar.add","href":"/streaming-avatar/api-references/client-events/avatar-add"},{"title":"conversation.item.create","href":"/streaming-avatar/api-references/client-events/conversation-item-create"},{"title":"conversation.item.retrieve","href":"/streaming-avatar/api-references/client-events/conversation-item-retrieve"},{"title":"conversation.item.delete","href":"/streaming-avatar/api-references/client-events/conversation-item-delete"},{"title":"response.create","href":"/streaming-avatar/api-references/client-events/response-create"},{"title":"response.cancel","href":"/streaming-avatar/api-references/client-events/response-cancel"}]},{"group":"Server events","root":{"title":"Server events","href":"/streaming-avatar/api-references/server-events"},"pages":[{"title":"error","href":"/streaming-avatar/api-references/server-events/error"},{"title":"session.closed","href":"/streaming-avatar/api-references/server-events/session-closed"},{"title":"session.updated","href":"/streaming-avatar/api-references/server-events/session-updated"},{"title":"session.update.done","href":"/streaming-avatar/api-references/server-events/session-update-done"},{"title":"session.bootstrap.opening.done","href":"/streaming-avatar/api-references/server-events/session-bootstrap-opening-done"},{"title":"asset.added","href":"/streaming-avatar/api-references/server-events/asset-added"},{"title":"avatar.added","href":"/streaming-avatar/api-references/server-events/avatar-added"},{"title":"conversation.item.created","href":"/streaming-avatar/api-references/server-events/conversation-item-created"},{"title":"conversation.item.retrieved","href":"/streaming-avatar/api-references/server-events/conversation-item-retrieved"},{"title":"conversation.item.deleted","href":"/streaming-avatar/api-references/server-events/conversation-item-deleted"},{"title":"input_audio.speech_started","href":"/streaming-avatar/api-references/server-events/input-audio-speech-started"},{"title":"input_audio.speech_stopped","href":"/streaming-avatar/api-references/server-events/input-audio-speech-stopped"},{"title":"conversation.item.input_audio_transcription.delta","href":"/streaming-avatar/api-references/server-events/conversation-item-input-audio-transcription-delta"},{"title":"conversation.item.input_audio_transcription.completed","href":"/streaming-avatar/api-references/server-events/conversation-item-input-audio-transcription-completed"},{"title":"conversation.item.input_audio_transcription.failed","href":"/streaming-avatar/api-references/server-events/conversation-item-input-audio-transcription-failed"},{"title":"response.created","href":"/streaming-avatar/api-references/server-events/response-created"},{"title":"response.done","href":"/streaming-avatar/api-references/server-events/response-done"},{"title":"response.render.started","href":"/streaming-avatar/api-references/server-events/response-render-started"},{"title":"response.render.stopped","href":"/streaming-avatar/api-references/server-events/response-render-stopped"},{"title":"response.output_item.done","href":"/streaming-avatar/api-references/server-events/response-output-item-done"},{"title":"response.output_text.delta","href":"/streaming-avatar/api-references/server-events/response-output-text-delta"},{"title":"response.output_text.done","href":"/streaming-avatar/api-references/server-events/response-output-text-done"}]},{"group":"Characters","root":{"title":"Characters","href":"/streaming-avatar/api-references/characters"},"pages":[{"title":"Create Character","openapi":"streaming-avatar/api-references/openapi.json POST /v1/characters","href":"/streaming-avatar/api-references/characters/create"},{"title":"List Characters","openapi":"streaming-avatar/api-references/openapi.json GET /v1/characters","href":"/streaming-avatar/api-references/characters/list"},{"title":"Get Character","openapi":"streaming-avatar/api-references/openapi.json GET /v1/characters/{character_id}","href":"/streaming-avatar/api-references/characters/get"},{"title":"Update Character","openapi":"streaming-avatar/api-references/openapi.json PUT /v1/characters/{character_id}","href":"/streaming-avatar/api-references/characters/update"},{"title":"Delete Character","openapi":"streaming-avatar/api-references/openapi.json DELETE /v1/characters/{character_id}","href":"/streaming-avatar/api-references/characters/delete"}]}]}]},{"group":"W1: Streaming World","pages":[{"title":"W1: Streaming World","href":"/streaming-world/configuration"},{"title":"Streaming Control","href":"/streaming-world/control"},{"group":"API References","pages":[{"title":"Sessions","href":"/streaming-world/api-references/sessions"},{"title":"Client Messages","sidebarTitle":"Client messages","href":"/streaming-world/api-references/client-events"},{"title":"Server Events","sidebarTitle":"Server events","href":"/streaming-world/api-references/server-events"}]}]},{"group":"Blazing Fast Video Generation","pages":[{"title":"Avatar Video Generation","sidebarTitle":"A1: Avatar Video Generation","href":"/video-generation/avatar-video-generation"},{"title":"World Video Generation","sidebarTitle":"W1: World Video Generation","href":"/video-generation/world-video-generation"}]}]},{"tab":"Agent","icon":"robot","pages":[{"title":"Agent","href":"/agent/overview"}]}]},"basePath":"","title":"Create Session from Character - Vivix API Platform","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DdEMm2kG.js","utils-BMo572L7.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C-4m9KAx.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DPLK2Oq9.js","snippetPresets-BKjfJMC9.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-DTsgtCEj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C8vmhyQM.js","shallow-r9w8LQGS.js","getApiPlaygroundDisplay-DjPI64HQ.js","CodeSnippet-C8Bvhl16.js","CodeSnippets-BtWUwcMy.js","Page-BIYvYBgk.js","getPastedJson-Dcm_3Pgl.js","icon-BXwrTpjc.js","MethodPill-CcjfVmmy.js","DuplicateIcon-BuKIbXAQ.js","createIcon-DaL9yXsO.js","DynamicMarkdown-Co5nikxh.js","SectionHeading-P4UNTsMZ.js","axios-vUo_bRtp.js","Markdown-CEfymfIH.js","clsx-Dq9TQuNi.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-D2J8knkn.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BgZ2ThuU.js"]}