{
"error": {
"code": "forbidden",
"message": "Video API access is not configured.",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}
{
"error": {
"code": "conflict",
"message": "requestId was already used for a different video request",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}
Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires.
Video access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency.
Use requestId to retry uncertain submissions without creating another render. A retry returns the existing job’s current state. Use a new requestId to render again after a terminal failure.
{
"error": {
"code": "forbidden",
"message": "Video API access is not configured.",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}
{
"error": {
"code": "conflict",
"message": "requestId was already used for a different video request",
"requestId": "b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"
}
}
An existing public Avatar, an Avatar actively assigned to your account, or an Avatar explicitly allowed for your account. Access is checked on every creation and before rendering.
Audio source in WAV format only, at most 500 MiB and no longer than 20 minutes. Use a public HTTP(S) URL without embedded credentials. Signed query parameters are supported. Keep the URL accessible for the preparation window of up to 30 minutes. Each transfer has a five-minute limit. The source must return a supported Content-Type; application/octet-stream is not supported. See Media requirements.
Optional background image, at most 50 MiB. Use a public HTTP(S) URL without embedded credentials. Signed query parameters are supported. Keep the URL accessible for the preparation window of up to 30 minutes. Each transfer has a five-minute limit. The source must return a supported Content-Type; application/octet-stream is not supported. See Media requirements. Its pixel dimensions determine omitted output dimensions according to the Output sizing rules.
Optional retry key, shared across Apps owned by your account. The same requestId and normalized input return the existing job without consuming creation quota again. Different input with the same key returns HTTP 409. Omitted video.width, video.height, and video.fit are distinct from explicit values, even if output is identical. Other omitted presentation settings remain equivalent to their documented defaults. Keep the key and request body unchanged when retrying an uncertain response. Requests accepted before the change to background-based sizing can return 409 on replay even with the original body; check the existing job before submitting a new requestId. Omit this field to create a new job on every call.
Optional presentation settings. When both dimensions are omitted and the background image dimensions are available, output follows the image size, scaled down proportionally to fit the limits and rounded down to even dimensions with a minimum of 64 pixels. If only one dimension is supplied, the missing dimension follows the background aspect ratio with the same rounding and minimum. Without usable background dimensions, each omitted dimension falls back to 1024. An invalid derived size can fail the job during preparation. Explicit dimensions must be even, from 64 to 1920, with an effective product at most 2,073,600 pixels; request validation substitutes 1024 for an omitted dimension. Omitted width, height, and fit remain distinct from explicit values for retry comparison. Encoding settings are managed by Spatius. Opening and closing transitions are included even when lead-in and lead-out are zero. See Output sizing.
Show child attributes
Response
Job accepted, or an existing job returned for a retry.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Spatius","colors":{"primary":"#9399E3","light":"#9A9AC0","dark":"#9A9AC0"},"logo":{"light":"https://mintcdn.com/spatius/wOjIDpP8OnEpRngp/images/spatius-logo-wordmark-black.png?fit=max\u0026auto=format\u0026n=wOjIDpP8OnEpRngp\u0026q=85\u0026s=3a9b7965a4bcfae37a65eefa457011ba","dark":"https://mintcdn.com/spatius/wOjIDpP8OnEpRngp/images/spatius-logo-wordmark-white.png?fit=max\u0026auto=format\u0026n=wOjIDpP8OnEpRngp\u0026q=85\u0026s=432ca82121812857d15cb7a85a90de0a"},"favicon":{"light":"https://mintcdn.com/spatius/KgLGkQWTJjnB2fTn/images/spatius-logo-mark-black.svg?fit=max\u0026auto=format\u0026n=KgLGkQWTJjnB2fTn\u0026q=85\u0026s=b3a8b579d89d1a5e93f73c732d20404d","dark":"https://mintcdn.com/spatius/KgLGkQWTJjnB2fTn/images/spatius-logo-mark-white.svg?fit=max\u0026auto=format\u0026n=KgLGkQWTJjnB2fTn\u0026q=85\u0026s=6f430113e3cf1c19f51a0a54c202046a"},"navbar":{"links":[{"icon":"discord","href":"https://discord.com/invite/9HGhZfHZh9","label":"Community"}],"primary":{"type":"button","label":"Studio","href":"https://app.spatius.ai"}},"integrations":{"posthog":{"apiKey":"phc_BJpW8hXVP84eK4bnQsRevfNy7uDdD7PAmxafqxLBerfj","sessionRecording":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","grok","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"spatius","hasAudioNarration":false,"actualSubdomain":"spatius","customDomains":["docs.spatius.ai"],"gitSource":{"type":"github","owner":"spatius-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ade63df17041bcf74b82f2d","collectionId":"0f15a615-60a2-4f8c-a760-ec9c13a28b41","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ade63df17041bcf74b82f2d"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ade63df17041bcf74b82f2d","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Guides","count":26},{"language":"default","tag":"SDK Reference","count":16},{"language":"default","tag":"API Reference","count":12},{"language":"default","tag":"Integrations","count":11},{"language":"default","tag":"Client SDKs","count":6},{"language":"default","tag":"Start Here","count":5},{"language":"default","tag":"Concepts","count":5},{"language":"default","tag":"Avatar API","count":5},{"language":"default","tag":"Agora ConvoAI","count":4},{"language":"default","tag":"Video API","count":4}]},"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":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"@keyframes spatius-tour-wire-travel{to{stroke-dashoffset:-30}}@keyframes spatius-tour-node-pulse{0%,to{filter:drop-shadow(0 0 0 transparent)}42%{filter:drop-shadow(0 0 12px color-mix(in srgb,var(--spatius-tour-node) 70%,transparent))}}@keyframes spatius-audio-bar{0%,to{transform:scaleY(.42)}45%{transform:scaleY(1)}70%{transform:scaleY(.64)}}@keyframes spatius-diagram-flow{to{stroke-dashoffset:-24}}@keyframes spatius-timing-packet-good{0%{opacity:0;transform:translateX(0) scale(.82)}15%,74%{opacity:1}to{opacity:0;transform:translateX(var(--spatius-timing-good-distance)) scale(1)}}@keyframes spatius-timing-packet-bad{0%{opacity:0;transform:translateX(0) scale(.82)}24%,70%{opacity:1}to{opacity:0;transform:translateX(var(--spatius-timing-bad-distance)) scale(1)}}@keyframes spatius-timing-window-pulse{0%,to{opacity:.52;transform:scale(.96)}45%{opacity:1;transform:scale(1.04)}}@keyframes spatius-timing-blocker{0%,to{opacity:.78;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}@keyframes spatius-agent-pipeline{0%,42%,98%,to{opacity:1}48%,92%{opacity:0}}@keyframes spatius-agent-speech{0%,42%,98%,to{opacity:0}48%,92%{opacity:1}}.docs-page,:root{--spatius-selection-background:rgba(147, 153, 227, 0.22);--spatius-selection-text:#11131f}.dark,[data-theme=dark],html.dark{--spatius-selection-background:rgba(173, 175, 244, 0.28);--spatius-selection-text:#ffffff}::selection{color:var(--spatius-selection-text);background:var(--spatius-selection-background)}.spatius-comparison-recommended{display:inline-block;margin-top:.35rem;padding:.12rem .48rem;border-radius:999px;color:#5559a9;background:rgba(147,153,227,.18);font-size:.72rem;font-weight:650;line-height:1.35;white-space:nowrap}.dark .spatius-comparison-recommended,[data-theme=dark] .spatius-comparison-recommended,html.dark .spatius-comparison-recommended{color:#c3c5ff;background:rgba(173,175,244,.16)}.spatius-diagram.spatius-flow-explorer{--spatius-tour-surface:transparent;--spatius-tour-box:var(--spatius-diagram-node);--spatius-tour-border:var(--spatius-diagram-stroke);--spatius-tour-ink:var(--spatius-diagram-ink);--spatius-tour-muted:var(--spatius-diagram-muted);--spatius-tour-focus:var(--spatius-diagram-brand);--spatius-tour-node:var(--spatius-diagram-stroke);--spatius-tour-network-line:var(--spatius-diagram-muted);--spatius-tour-network-surface:rgba(56, 189, 248, 0.16);--spatius-tour-owned:var(--spatius-diagram-owned);--spatius-tour-managed:var(--spatius-diagram-managed);--spatius-tour-flow:var(--spatius-diagram-ink);--spatius-tour-audio:#2563eb;--spatius-tour-motion:#946200;container:spatius-flow/inline-size;margin:0;overflow:visible}.dark .spatius-flow-explorer,[data-theme=dark] .spatius-flow-explorer,html.dark .spatius-flow-explorer{--spatius-tour-audio:#60a5fa;--spatius-tour-motion:#facc15;--spatius-tour-network-surface:rgba(125, 211, 252, 0.16)}.spatius-flow-controls{display:grid;gap:.2rem;padding:.55rem .8rem 0}.spatius-flow-source-row{display:flex;align-items:flex-end;justify-content:space-between;min-width:0;gap:1rem}.spatius-flow-latency{display:inline-flex;flex:0 0 auto;align-items:center;gap:.32rem;padding:.5rem 0 .62rem;color:var(--spatius-tour-ink);font-size:.8rem;font-weight:700;line-height:1.25;white-space:nowrap}.spatius-flow-latency-title{margin-right:.08rem}.spatius-flow-latency-term{display:inline-flex;align-items:center;gap:.32rem}.spatius-flow-latency-stage{display:inline-flex;width:1.14rem;height:1.14rem;align-items:center;justify-content:center;border:1.25px solid var(--spatius-tour-ink);border-radius:50%;font-size:.76rem;font-weight:700;line-height:1}.spatius-flow-latency-stage.is-variable{border-style:dashed}.spatius-flow-latency-plus{color:var(--spatius-tour-muted);font-weight:600}.spatius-flow-segmented{display:inline-flex;min-width:0;gap:.25rem;padding:0;border:0;border-bottom:1px solid var(--spatius-tour-border);border-radius:0;background:0 0}.spatius-flow-segmented:not(.spatius-flow-mode-options){justify-self:start}.spatius-flow-segmented button{appearance:none;position:relative;min-width:5rem;padding:.5rem .72rem .62rem;border:0;border-radius:0;color:var(--spatius-tour-muted);background:0 0;cursor:pointer;font:inherit;font-size:.76rem;font-weight:600;line-height:1.25;white-space:nowrap;transition:color 140ms ease}.spatius-flow-segmented button::after{position:absolute;right:50%;bottom:-1px;left:50%;height:2px;border-radius:999px;background:var(--spatius-tour-focus);content:\"\";transition:right 160ms ease,left 160ms ease}.spatius-flow-segmented button:hover:not(:disabled){color:var(--spatius-tour-ink)}.spatius-flow-segmented button:disabled{color:var(--spatius-tour-muted);cursor:not-allowed;opacity:.42}.spatius-flow-segmented button:focus-visible{outline:3px solid var(--spatius-tour-focus);outline-offset:2px}.spatius-flow-segmented button[data-selected=true]{color:var(--spatius-tour-ink);background:0 0;box-shadow:none}.spatius-flow-segmented button[data-selected=true]::after{right:.72rem;left:.72rem}.spatius-flow-mode-options{display:grid;width:100%;gap:0;grid-template-columns:repeat(4,minmax(0,1fr))}.spatius-flow-mode-options button{min-width:0}.spatius-flow-diagram-shell{position:relative}.spatius-flow-diagram{overflow:hidden}.spatius-tour-stage{display:block;width:100%;min-width:0;height:auto;color:var(--spatius-tour-ink)}.spatius-tour-stage-surface{fill:var(--spatius-tour-surface)}.spatius-flow-explorer .spatius-tour-network,.spatius-flow-explorer .spatius-tour-stage-surface{filter:none}.spatius-tour-network{fill:var(--spatius-tour-network-surface)}.spatius-tour-network-edge{stroke:var(--spatius-tour-network-line);stroke-width:2;stroke-dasharray:6 7}.spatius-tour-zone-label{fill:var(--spatius-tour-ink);font-size:21px;font-weight:600}.spatius-tour-network-label{font-weight:600;fill:var(--spatius-tour-muted);font-size:11px}.spatius-tour-network-icon circle,.spatius-tour-network-icon path{fill:none;stroke:var(--spatius-tour-network-line);stroke-width:1.5}.spatius-tour-node rect{fill:var(--spatius-tour-box);stroke:var(--spatius-tour-border);stroke-width:3;transition:stroke 180ms ease,filter 180ms ease}.spatius-tour-node.is-owner rect{fill:var(--spatius-tour-owned)}.spatius-tour-node.is-service rect{fill:var(--spatius-tour-managed);stroke:var(--spatius-diagram-brand)}.spatius-tour-node.is-sdk rect,.spatius-tour-stage-number circle{fill:var(--spatius-tour-box);stroke:var(--spatius-tour-border)}.spatius-tour-node.is-room rect{stroke:var(--spatius-tour-node);stroke-width:3}.spatius-tour-node.is-lit rect{animation:spatius-tour-node-pulse 260ms ease-out}.spatius-tour-node-label,.spatius-tour-owner-label{fill:var(--spatius-tour-ink);font-size:17px;font-weight:600}.spatius-tour-owner-label{font-size:15px}.spatius-tour-wire{fill:none;stroke:var(--spatius-tour-flow);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none}.spatius-tour-wire.is-crossing{stroke-dasharray:7 8}.spatius-tour-footer-edge{stroke:var(--spatius-tour-border);stroke-width:1.5}.spatius-tour-legend-label{fill:var(--spatius-tour-ink);font-size:16px;font-weight:600}.spatius-tour-legend-orb.is-audio{color:var(--spatius-tour-audio)}.spatius-tour-legend-orb.is-motion{color:var(--spatius-tour-motion)}.spatius-tour-legend-orb-halo{fill:currentColor;opacity:.3}.spatius-tour-legend-orb-core{fill:currentColor}.spatius-tour-arrow{fill:var(--spatius-tour-flow)}.spatius-tour-wire.is-active{animation:spatius-tour-wire-travel 248ms linear infinite}.spatius-tour-wire.is-active.is-crossing{animation-duration:1984ms}.spatius-tour-stage-number circle{stroke-width:2}.spatius-tour-stage-number.is-variable circle{stroke-dasharray:4 3}.spatius-tour-stage-number text{fill:var(--spatius-tour-ink);font-size:12px;font-weight:700}.spatius-flow-seo-copy,.spatius-flow-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.spatius-tour-packet{pointer-events:none}.spatius-tour-packet.is-audio{color:var(--spatius-tour-audio)}.spatius-tour-packet.is-motion{color:var(--spatius-tour-motion)}.spatius-tour-packet-core{fill:#fff}.spatius-tour-packet-halo{fill:currentColor;opacity:.72}.spatius-tour-packet-glow{fill:currentColor;opacity:.42;filter:url(#spatius-tour-packet-glow)}@media (max-width:720px){.spatius-flow-mode-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:460px){.spatius-flow-controls{padding:.65rem}.spatius-flow-source-row{align-items:stretch;flex-direction:column;gap:0}.spatius-flow-latency{align-self:flex-end}}@media (prefers-reduced-motion:reduce){.spatius-flow-segmented button,.spatius-flow-segmented button::after{transition:none}.spatius-tour-node.is-lit rect,.spatius-tour-wire.is-active{animation:none}.spatius-tour-packets{display:none}}.step-container{margin-bottom:.25rem!important}.step-container+.step-container{margin-top:.25rem!important}[class*=steps]{margin-top:1.5rem!important}[class*=steps] .accordion-item,[class*=steps] .step-container{margin-bottom:.25rem!important}.spatius-diagram,.spatius-diagram svg{width:100%;color:var(--spatius-diagram-ink)}.spatius-diagram{--spatius-diagram-ink:#171821;--spatius-diagram-box:rgba(248, 249, 255, 0.94);--spatius-diagram-managed:rgba(149, 153, 227, 0.1);--spatius-diagram-stroke:rgba(52, 55, 76, 0.38);--spatius-diagram-brand:#7478d9;--spatius-diagram-muted:rgba(60, 63, 82, 0.58);--spatius-diagram-blue:#7478e7;--spatius-diagram-livekit:rgb(31, 213, 249);--spatius-diagram-livekit-surface:rgba(31, 213, 249, 0.12);--spatius-diagram-red:#5fae88;--spatius-diagram-green:rgba(54, 105, 82, 0.82);--spatius-diagram-owned:rgba(54, 105, 82, 0.1);--spatius-diagram-node:rgba(246, 247, 253, 0.98);--spatius-diagram-white:#191a24;--spatius-diagram-muted-dark:rgba(64, 67, 86, 0.52);--spatius-diagram-glow:rgba(116, 120, 231, 0.28);--spatius-diagram-edge:rgba(255, 255, 255, 0.72);--spatius-diagram-warning:#d65f66;--spatius-diagram-warning-surface:rgba(214, 95, 102, 0.1);--spatius-diagram-warning-stroke:rgba(214, 95, 102, 0.48);margin:0;overflow:visible;border-radius:6px}.spatius-agora-diagram{--spatius-diagram-agora:rgb(91, 193, 251);--spatius-diagram-agora-surface:rgba(91, 193, 251, 0.12);--spatius-diagram-agora-stroke:rgba(91, 193, 251, 0.54)}.spatius-diagram svg{display:block;max-width:100%;height:auto}.spatius-diagram rect:not([fill=none]){filter:drop-shadow(0 18px 26px rgba(20,22,36,.1))}.spatius-diagram text{font-family:inherit;letter-spacing:0}.spatius-diagram-zone{fill:var(--spatius-diagram-managed);stroke-width:2.5}.spatius-diagram-orbit{fill:none;stroke:var(--spatius-diagram-brand);stroke-dasharray:2 10;stroke-linecap:round;stroke-width:2;opacity:.55}.spatius-audio-bar{animation:spatius-audio-bar 1.08s ease-in-out infinite;fill:var(--spatius-diagram-brand);filter:drop-shadow(0 0 7px var(--spatius-diagram-glow));transform-box:fill-box;transform-origin:center}.spatius-audio-bar:nth-child(2){animation-delay:-.86s}.spatius-audio-bar:nth-child(3){animation-delay:-.62s}.spatius-audio-bar:nth-child(4){animation-delay:-.44s}.spatius-audio-bar:nth-child(5){animation-delay:-.18s}.spatius-audio-visualizer{opacity:.96}.spatius-agent-pipeline,.spatius-agent-speech{pointer-events:none}.spatius-agent-pipeline{animation:spatius-agent-pipeline 9s ease-in-out infinite}.spatius-agent-speech{animation:spatius-agent-speech 9s ease-in-out infinite;opacity:0}.spatius-diagram-flow{filter:drop-shadow(0 0 5px var(--spatius-diagram-glow));stroke-dasharray:12 12;animation:spatius-diagram-flow 1.6s linear infinite}.spatius-audio-timing-diagram{--spatius-timing-good-distance:108px;--spatius-timing-bad-distance:108px;--spatius-diagram-warning:#c85b63;--spatius-diagram-warning-surface:rgba(200, 91, 99, 0.08);--spatius-diagram-warning-stroke:rgba(200, 91, 99, 0.42)}.spatius-audio-timing-diagram rect:not([fill=none]){filter:drop-shadow(0 12px 18px rgba(20,22,36,.08))}.spatius-timing-packet{filter:drop-shadow(0 0 8px var(--spatius-diagram-glow));transform-box:fill-box;transform-origin:center}.spatius-timing-packet-good{animation:spatius-timing-packet-good 1.45s ease-in-out infinite}.spatius-timing-packet-bad{animation:spatius-timing-packet-bad 4.2s ease-in-out infinite}.spatius-timing-delay-1{animation-delay:-.48s}.spatius-timing-delay-2{animation-delay:-.96s}.spatius-timing-window-pulse rect{animation:spatius-timing-window-pulse 2.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.spatius-timing-window-pulse rect:nth-child(2){animation-delay:-1.45s}.spatius-timing-window-pulse rect:nth-child(3){animation-delay:-.72s}.spatius-timing-blocker{animation:spatius-timing-blocker 2s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(200,91,99,.22));transform-box:fill-box;transform-origin:center}.spatius-timing-flow-bad{animation-duration:3.2s;filter:drop-shadow(0 0 4px rgba(200,91,99,.18))}@media (prefers-reduced-motion:reduce){.spatius-diagram-flow{animation:none;stroke-dasharray:none}.spatius-audio-bar{animation:none}.spatius-agent-pipeline{animation:none;opacity:1}.spatius-agent-speech{animation:none;opacity:0}.spatius-timing-blocker,.spatius-timing-packet,.spatius-timing-window-pulse rect{animation:none}}.dark .spatius-diagram,[data-theme=dark] .spatius-diagram,html.dark .spatius-diagram{--spatius-diagram-ink:#f7f7fb;--spatius-diagram-box:rgba(31, 34, 48, 0.88);--spatius-diagram-managed:rgba(147, 153, 227, 0.16);--spatius-diagram-stroke:rgba(234, 235, 255, 0.24);--spatius-diagram-brand:#adaff4;--spatius-diagram-muted:rgba(232, 233, 246, 0.6);--spatius-diagram-blue:#9399e3;--spatius-diagram-livekit:rgb(31, 213, 249);--spatius-diagram-livekit-surface:rgba(31, 213, 249, 0.16);--spatius-diagram-red:#7bd4a8;--spatius-diagram-green:rgba(75, 126, 97, 0.78);--spatius-diagram-owned:rgba(75, 126, 97, 0.18);--spatius-diagram-node:rgba(43, 48, 67, 0.92);--spatius-diagram-white:#f7f7fb;--spatius-diagram-muted-dark:rgba(230, 230, 240, 0.5);--spatius-diagram-glow:rgba(147, 153, 227, 0.46);--spatius-diagram-edge:rgba(255, 255, 255, 0.2);--spatius-diagram-warning:#ff8a92;--spatius-diagram-warning-surface:rgba(255, 138, 146, 0.16);--spatius-diagram-warning-stroke:rgba(255, 138, 146, 0.58)}.dark .spatius-agora-diagram,[data-theme=dark] .spatius-agora-diagram,html.dark .spatius-agora-diagram{--spatius-diagram-agora-surface:rgba(91, 193, 251, 0.16);--spatius-diagram-agora-stroke:rgba(91, 193, 251, 0.62)}.dark .spatius-audio-timing-diagram,[data-theme=dark] .spatius-audio-timing-diagram,html.dark .spatius-audio-timing-diagram{--spatius-diagram-warning:#f27f88;--spatius-diagram-warning-surface:rgba(242, 127, 136, 0.13);--spatius-diagram-warning-stroke:rgba(242, 127, 136, 0.52)}.walkthrough-code [data-content-type=codeBlock],.walkthrough-code pre{max-height:460px;overflow:auto;-webkit-overflow-scrolling:touch}"}],"page":{"pagePath":"api-reference/videos/create-a-video","slug":"/api-reference/videos/create-a-video","pageMetadata":{"title":"Create a Video","description":"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires.\n\nVideo access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency.\n\nUse requestId to retry uncertain submissions without creating another render. A retry returns the existing job's current state. Use a new requestId to render again after a terminal failure.","deprecated":null,"version":null,"openapi":"/openapi/video-open-api.json post /videos","href":"/api-reference/videos/create-a-video","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Video access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Use requestId to retry uncertain submissions without creating another render. A retry returns the existing job’s current state. Use a new requestId to render again after a terminal failure.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a Video","description":"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires.\n\nVideo access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency.\n\nUse requestId to retry uncertain submissions without creating another render. A retry returns the existing job's current state. Use a new requestId to render again after a terminal failure.","deprecated":null,"version":null,"openapi":"/openapi/video-open-api.json post /videos","href":"/api-reference/videos/create-a-video","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createVideo","summary":"Create a Video","tags":["Videos"],"description":"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires.\n\nVideo access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency.\n\nUse requestId to retry uncertain submissions without creating another render. A retry returns the existing job's current state. Use a new requestId to render again after a terminal failure.","requestBody":"7dd74cf5-a9a7-4f92-b684-02fdf9b40f75","responses":{"200":"cf436294-12a7-4174-877a-52963f09c7d8","400":"563bae6f-1bd2-43d9-ab49-2f3c09debe02","401":"4ff5b98d-c6e0-49fb-a9f9-3981b2bc1659","403":"705be79b-bef0-4622-9c2a-30979c538c9c","409":"bb7e9265-3cff-4673-b8ae-039464fe97a0","429":"f5d736e5-7fdf-4aa4-8ef9-3ecbbe61bece","500":"f20ed417-786d-4745-be4c-a596bc3a2a61","503":"09a28978-4ad8-4ac0-a481-29a177698c4a"},"method":"post","type":"path","servers":["d30fb40c-67cb-48bb-8574-bdd51345d259"],"security":["59d224d6-b61e-46fb-ade4-3144a497f4cd"],"path":"/videos","baseUrlOptions":["https://console.spatius.ai/v1/open"],"title":"Create a Video","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["avatarId","audioUrl"],"properties":{"avatarId":{"type":"string","description":"An existing public Avatar, an Avatar actively assigned to your account, or an Avatar explicitly allowed for your account. Access is checked on every creation and before rendering.","format":"uuid","isRequired":true,"uniqueKey":"avatarId","typeLabel":"string\u003cuuid>"},"audioUrl":{"type":"string","description":"Audio source in WAV format only, at most 500 MiB and no longer than 20 minutes. Use a public HTTP(S) URL without embedded credentials. Signed query parameters are supported. Keep the URL accessible for the preparation window of up to 30 minutes. Each transfer has a five-minute limit. The source must return a supported Content-Type; application/octet-stream is not supported. See [Media requirements](/api-reference/video-generation#media-requirements).","format":"uri","minLength":1,"maxLength":4096,"pattern":"^https?://[^/?#@\\s]+([/?#].*)?$","isRequired":true,"uniqueKey":"audioUrl","typeLabel":"string\u003curi>"},"backgroundUrl":{"type":"string","description":"Optional background image, at most 50 MiB. Use a public HTTP(S) URL without embedded credentials. Signed query parameters are supported. Keep the URL accessible for the preparation window of up to 30 minutes. Each transfer has a five-minute limit. The source must return a supported Content-Type; application/octet-stream is not supported. See [Media requirements](/api-reference/video-generation#media-requirements). Its pixel dimensions determine omitted output dimensions according to the [Output sizing rules](/api-reference/video-generation#output-sizing).","format":"uri","minLength":1,"maxLength":4096,"pattern":"^https?://[^/?#@\\s]+([/?#].*)?$","uniqueKey":"backgroundUrl","typeLabel":"string\u003curi>"},"name":{"type":"string","description":"Optional job name. When omitted, Spatius generates a name from the job ID.","minLength":1,"maxLength":128,"uniqueKey":"name","typeLabel":"string"},"requestId":{"type":"string","description":"Optional retry key, shared across Apps owned by your account. The same requestId and normalized input return the existing job without consuming creation quota again. Different input with the same key returns HTTP 409. Omitted video.width, video.height, and video.fit are distinct from explicit values, even if output is identical. Other omitted presentation settings remain equivalent to their documented defaults. Keep the key and request body unchanged when retrying an uncertain response. Requests accepted before the change to background-based sizing can return 409 on replay even with the original body; check the existing job before submitting a new requestId. Omit this field to create a new job on every call.","format":"uuid","uniqueKey":"requestId","typeLabel":"string\u003cuuid>"},"video":{"type":"object","description":"Optional presentation settings. When both dimensions are omitted and the background image dimensions are available, output follows the image size, scaled down proportionally to fit the limits and rounded down to even dimensions with a minimum of 64 pixels. If only one dimension is supplied, the missing dimension follows the background aspect ratio with the same rounding and minimum. Without usable background dimensions, each omitted dimension falls back to 1024. An invalid derived size can fail the job during preparation. Explicit dimensions must be even, from 64 to 1920, with an effective product at most 2,073,600 pixels; request validation substitutes 1024 for an omitted dimension. Omitted width, height, and fit remain distinct from explicit values for retry comparison. Encoding settings are managed by Spatius. Opening and closing transitions are included even when lead-in and lead-out are zero. See [Output sizing](/api-reference/video-generation#output-sizing).","properties":{"width":{"type":"integer","format":"int32","minimum":64,"maximum":1920,"multipleOf":2,"description":"Output width in pixels. If omitted, derive from the background image according to the output sizing rules; fall back to 1024 when background image dimensions are unavailable. Omission is distinct from an explicit value for retry comparison.","uniqueKey":"video.width","typeLabel":"integer\u003cint32>"},"height":{"type":"integer","format":"int32","minimum":64,"maximum":1920,"multipleOf":2,"description":"Output height in pixels. If omitted, derive from the background image according to the output sizing rules; fall back to 1024 when background image dimensions are unavailable. Omission is distinct from an explicit value for retry comparison.","uniqueKey":"video.height","typeLabel":"integer\u003cint32>"},"fit":{"type":"string","description":"How the Avatar fits the output frame. If omitted, use contain when both width and height are omitted and background image dimensions are available; otherwise use crop. An explicit value takes precedence and is distinct from omission for retry comparison.","enum":["crop","contain"],"uniqueKey":"video.fit","typeLabel":"enum\u003cstring>"},"backgroundColor":{"type":"string","description":"Six-digit RGB hex color.","pattern":"^#[0-9a-fA-F]{6}$","default":"#000000","uniqueKey":"video.backgroundColor","typeLabel":"string"},"backgroundFit":{"type":"string","description":"How the background image fits the output frame.","enum":["cover","contain","stretch"],"default":"cover","uniqueKey":"video.backgroundFit","typeLabel":"enum\u003cstring>"},"leadInSeconds":{"type":"number","format":"double","minimum":0,"maximum":60,"default":0,"description":"Additional idle time before the opening transition. Must be finite.","uniqueKey":"video.leadInSeconds","typeLabel":"number\u003cdouble>"},"leadOutSeconds":{"type":"number","format":"double","minimum":0,"maximum":60,"default":0,"description":"Additional idle time after the closing transition. Must be finite.","uniqueKey":"video.leadOutSeconds","typeLabel":"number\u003cdouble>"}},"uniqueKey":"video","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"avatarId":"d385dd22-9200-4806-94a0-dce464ca916d","audioUrl":"https://example.com/media/speech.wav","name":"Welcome video","requestId":"9628ee92-d5d9-4eac-bf2a-39cd3f804f02","video":{"width":1024,"height":1024}},"examples":{"Example":{"title":"Example","value":{"avatarId":"d385dd22-9200-4806-94a0-dce464ca916d","audioUrl":"https://example.com/media/speech.wav","name":"Welcome video","requestId":"9628ee92-d5d9-4eac-bf2a-39cd3f804f02","video":{"width":1024,"height":1024}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"cf436294-12a7-4174-877a-52963f09c7d8":{"description":"Job accepted, or an existing job returned for a retry.","content":{"application/json":{"schema":{"type":"object","required":["jobId","status","createdAt"],"properties":{"jobId":{"type":"string","description":"The accepted job ID.","format":"uuid","isRequired":true,"uniqueKey":"jobId","typeLabel":"string\u003cuuid>"},"status":{"type":"string","description":"New jobs return queued. A retry returns the existing job's current status, which may already be terminal.","enum":["queued","processing","succeeded","failed","expired"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","description":"Original acceptance time, including on a retry.","format":"date-time","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"example":{"jobId":"6f1e2b3c-9a1d-4e5f-8b0a-2c4d6e8f0a1b","status":"queued","createdAt":"2026-09-12T09:00:00Z"},"examples":{"Example":{"title":"Example","value":{"jobId":"6f1e2b3c-9a1d-4e5f-8b0a-2c4d6e8f0a1b","status":"queued","createdAt":"2026-09-12T09:00:00Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"563bae6f-1bd2-43d9-ab49-2f3c09debe02":{"description":"The request has invalid fields, settings, or pagination.","content":{"application/json":{"schema":{"type":"object","description":"The single public error envelope returned by every Spatius API endpoint.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable machine-readable error code.","enum":["unauthorized","forbidden","invalid_request","not_found","conflict","rate_limit_exceeded","service_unavailable","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Unique identifier for this request. Quote it when contacting support.","uniqueKey":"error.requestId","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"invalid_request","message":"Invalid video request or presentation settings.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"Invalid video request or presentation settings.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}}}},"exampleType":"examples"}},"exampleType":"examples"},"4ff5b98d-c6e0-49fb-a9f9-3981b2bc1659":{"description":"Missing or mismatched App credentials, or an inactive owner account.","content":{"application/json":{"schema":{"type":"object","description":"The single public error envelope returned by every Spatius API endpoint.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable machine-readable error code.","enum":["unauthorized","forbidden","invalid_request","not_found","conflict","rate_limit_exceeded","service_unavailable","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Unique identifier for this request. Quote it when contacting support.","uniqueKey":"error.requestId","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unauthorized","message":"Unauthorized.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"Unauthorized.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}}}},"exampleType":"examples"}},"exampleType":"examples"},"705be79b-bef0-4622-9c2a-30979c538c9c":{"description":"Video access is absent, creation is disabled, or Avatar access is denied. Disabling creation alone preserves reads.","content":{"application/json":{"schema":{"type":"object","description":"The single public error envelope returned by every Spatius API endpoint.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable machine-readable error code.","enum":["unauthorized","forbidden","invalid_request","not_found","conflict","rate_limit_exceeded","service_unavailable","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Unique identifier for this request. Quote it when contacting support.","uniqueKey":"error.requestId","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"forbidden","message":"Video API access is not configured.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"forbidden","message":"Video API access is not configured.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}}}},"exampleType":"examples"}},"exampleType":"examples"},"bb7e9265-3cff-4673-b8ae-039464fe97a0":{"description":"The requestId already identifies different normalized input. Omitted video.width, video.height, and video.fit differ from explicit values. Retry the original body. Requests accepted before the change to background-based sizing can conflict even with the original body; check the existing job before using a new UUID, which creates another render.","content":{"application/json":{"schema":{"type":"object","description":"The single public error envelope returned by every Spatius API endpoint.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable machine-readable error code.","enum":["unauthorized","forbidden","invalid_request","not_found","conflict","rate_limit_exceeded","service_unavailable","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Unique identifier for this request. Quote it when contacting support.","uniqueKey":"error.requestId","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"conflict","message":"requestId was already used for a different video request","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"conflict","message":"requestId was already used for a different video request","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}}}},"exampleType":"examples"}},"exampleType":"examples"},"f5d736e5-7fdf-4aa4-8ef9-3ecbbe61bece":{"description":"An independent video request limit was exceeded. Back off before retrying.","content":{"application/json":{"schema":{"type":"object","description":"The single public error envelope returned by every Spatius API endpoint.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable machine-readable error code.","enum":["unauthorized","forbidden","invalid_request","not_found","conflict","rate_limit_exceeded","service_unavailable","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Unique identifier for this request. Quote it when contacting support.","uniqueKey":"error.requestId","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limit_exceeded","message":"Open API rate limit exceeded.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limit_exceeded","message":"Open API rate limit exceeded.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}}}},"exampleType":"examples"}},"exampleType":"examples"},"f20ed417-786d-4745-be4c-a596bc3a2a61":{"description":"Unexpected server failure. Use bounded backoff and retain the creation requestId when retrying.","content":{"application/json":{"schema":{"type":"object","description":"The single public error envelope returned by every Spatius API endpoint.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable machine-readable error code.","enum":["unauthorized","forbidden","invalid_request","not_found","conflict","rate_limit_exceeded","service_unavailable","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Unique identifier for this request. Quote it when contacting support.","uniqueKey":"error.requestId","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"internal_error","message":"An internal error occurred.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"internal_error","message":"An internal error occurred.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}}}},"exampleType":"examples"}},"exampleType":"examples"},"09a28978-4ad8-4ac0-a481-29a177698c4a":{"description":"Temporary service or download-link availability failure. Retry with the same requestId and body for creation, or retry the detail read. A link refresh failure preserves saved success.","content":{"application/json":{"schema":{"type":"object","description":"The single public error envelope returned by every Spatius API endpoint.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable machine-readable error code.","enum":["unauthorized","forbidden","invalid_request","not_found","conflict","rate_limit_exceeded","service_unavailable","internal_error"],"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation specific to this occurrence.","uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Unique identifier for this request. Quote it when contacting support.","uniqueKey":"error.requestId","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"service_unavailable","message":"Video generation is unavailable; retry later.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"service_unavailable","message":"Video generation is unavailable; retry later.","requestId":"b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"59d224d6-b61e-46fb-ade4-3144a497f4cd":{"AppId":{"type":"apiKey","in":"header","name":"X-App-ID","description":"Your Spatius App ID.","scopes":[],"schemeName":"AppId"},"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"The API key bound to the App ID.","scopes":[],"schemeName":"ApiKey"}}},"servers":{"d30fb40c-67cb-48bb-8574-bdd51345d259":{"url":"https://console.spatius.ai/v1/open","description":"Spatius Console API (global)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-App-ID","description":"Your Spatius App ID.","scopes":[],"schemeName":"AppId"},"schema":{"title":"X-App-ID","type":"string","description":"Your Spatius App ID.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"AppId","name":"X-App-ID"},{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"The API key bound to the App ID.","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"X-API-Key","type":"string","description":"The API key bound to the App ID.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"X-API-Key"}],"title":"AppId \u0026 ApiKey"}]},"originalFileLocation":"openapi/video-open-api.json"},"subdomain":"spatius","siteName":"Spatius","title":"Create a Video - Spatius","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-14T04:25:56.138Z","originalFileLocation":"api-reference/videos/create-a-video.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires. Video access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency. Use requestId to retry uncertain submissions without creating another render. A retry returns the existing job\u0026#x27;s current state. Use a new requestId to render again after a terminal failure.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Spatius\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/spatius/w2LH48fbTgqvj-Bh/_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/spatius/w2LH48fbTgqvj-Bh/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/spatius/w2LH48fbTgqvj-Bh/_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/spatius/w2LH48fbTgqvj-Bh/_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/spatius/w2LH48fbTgqvj-Bh/_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/spatius/w2LH48fbTgqvj-Bh/_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/spatius/w2LH48fbTgqvj-Bh/_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/spatius/w2LH48fbTgqvj-Bh/_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/spatius/w2LH48fbTgqvj-Bh/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a Video - Spatius\">\u003cmeta data-mint-head property=\"og:description\" content=\"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires. Video access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency. Use requestId to retry uncertain submissions without creating another render. A retry returns the existing job\u0026#x27;s current state. Use a new requestId to render again after a terminal failure.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Spatius\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.spatius.ai/api-reference/videos/create-a-video\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://spatius.mintlify.app/_mintlify/api/og/v2?division=Videos\u0026amp;title=Create+a+Video\u0026amp;description=Accepts+an+Avatar+ID+and+public+audio+URL%2C+saves+a+job%2C+and+immediately+returns+its+ID.+Media+processing+happens+asynchronously%3B+poll+the+job+every+15+seconds+u\u0026amp;theme=c949cc7c92689fbde2efd4cc\u0026amp;signature=fb68104bc1065d0323d0b35142e063c726e61d3da7045ced3cb25936ad08c159\">\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 a Video - Spatius\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires. Video access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency. Use requestId to retry uncertain submissions without creating another render. A retry returns the existing job\u0026#x27;s current state. Use a new requestId to render again after a terminal failure.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://spatius.mintlify.app/_mintlify/api/og/v2?division=Videos\u0026amp;title=Create+a+Video\u0026amp;description=Accepts+an+Avatar+ID+and+public+audio+URL%2C+saves+a+job%2C+and+immediately+returns+its+ID.+Media+processing+happens+asynchronously%3B+poll+the+job+every+15+seconds+u\u0026amp;theme=c949cc7c92689fbde2efd4cc\u0026amp;signature=fb68104bc1065d0323d0b35142e063c726e61d3da7045ced3cb25936ad08c159\">\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/spatius/w2LH48fbTgqvj-Bh/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Spatius\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9399E3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.spatius.ai/api-reference/videos/create-a-video\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/videos/create-a-video.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.spatius.ai/#organization\",\"name\":\"Spatius\",\"url\":\"https://docs.spatius.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/spatius/wOjIDpP8OnEpRngp/images/spatius-logo-wordmark-black.png?fit=max\u0026auto=format\u0026n=wOjIDpP8OnEpRngp\u0026q=85\u0026s=3a9b7965a4bcfae37a65eefa457011ba\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.spatius.ai#website\",\"name\":\"Spatius\",\"url\":\"https://docs.spatius.ai\",\"publisher\":{\"@id\":\"https://docs.spatius.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.spatius.ai/api-reference/videos/create-a-video#webpage\",\"url\":\"https://docs.spatius.ai/api-reference/videos/create-a-video\",\"name\":\"Create a Video\",\"description\":\"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires. Video access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency. Use requestId to retry uncertain submissions without creating another render. A retry returns the existing job's current state. Use a new requestId to render again after a terminal failure.\",\"dateModified\":\"2026-10-14T04:25:56.138Z\",\"isPartOf\":{\"@id\":\"https://docs.spatius.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.spatius.ai/api-reference/videos/create-a-video#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.spatius.ai/api-reference/videos/create-a-video#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Video API\",\"item\":\"https://docs.spatius.ai/api-reference/video-generation\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a Video\",\"item\":\"https://docs.spatius.ai/api-reference/videos/create-a-video\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.spatius.ai/api-reference/videos/create-a-video#apireference\",\"headline\":\"Create a Video\",\"name\":\"Create a Video\",\"description\":\"Accepts an Avatar ID and public audio URL, saves a job, and immediately returns its ID. Media processing happens asynchronously; poll the job every 15 seconds until it succeeds, fails, or expires. Video access must be enabled separately from Avatar creation. Apps owned by one account share video jobs, retry keys, and independent video rate limits. Accepted jobs count toward creation limits even if processing later fails. The Console API does not impose an active-video-job quota; the video service manages execution concurrency. Use requestId to retry uncertain submissions without creating another render. A retry returns the existing job's current state. Use a new requestId to render again after a terminal failure.\",\"url\":\"https://docs.spatius.ai/api-reference/videos/create-a-video\",\"mainEntityOfPage\":{\"@id\":\"https://docs.spatius.ai/api-reference/videos/create-a-video#webpage\"},\"dateModified\":\"2026-10-14T04:25:56.138Z\",\"publisher\":{\"@id\":\"https://docs.spatius.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.spatius.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Spatius\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Spatius","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/getting-started"}]},{"tab":"SDK Reference","pages":[{"title":"SDK Reference","href":"/reference/overview"}]},{"tab":"API Reference","groups":[{"group":"Start Here","icon":"rocket","pages":[{"title":"Spatius API","sidebarTitle":"Overview","href":"/api-reference/overview"},{"title":"Spatius API Authentication","sidebarTitle":"Authentication","href":"/api-reference/authentication"},{"title":"Spatius API Errors and Limits","sidebarTitle":"Errors and Limits","href":"/api-reference/errors"}]},{"group":"Avatar API","icon":"image","tag":"Beta","pages":[{"group":"Avatars","pages":[{"title":"List Avatars","deprecated":null,"version":null,"openapi":"/openapi/avatar-open-api.json get /avatars","href":"/api-reference/avatars/list-avatars"},{"title":"Create an Avatar","deprecated":null,"version":null,"openapi":"/openapi/avatar-open-api.json post /avatars","href":"/api-reference/avatars/create-an-avatar"},{"title":"Get an Avatar","deprecated":null,"version":null,"openapi":"/openapi/avatar-open-api.json get /avatars/{avatarId}","href":"/api-reference/avatars/get-an-avatar"}]},{"group":"Avatar Jobs","pages":[{"title":"List Avatar jobs","deprecated":null,"version":null,"openapi":"/openapi/avatar-open-api.json get /avatar-jobs","href":"/api-reference/avatar-jobs/list-avatar-jobs"},{"title":"Get an Avatar job","deprecated":null,"version":null,"openapi":"/openapi/avatar-open-api.json get /avatar-jobs/{jobId}","href":"/api-reference/avatar-jobs/get-an-avatar-job"}]}]},{"group":"Video API","icon":"video","tag":"Experimental","pages":[{"title":"Generate a Video","sidebarTitle":"Overview","description":"Turn an existing Avatar and an audio URL into a downloadable MP4.","href":"/api-reference/video-generation"},{"group":"Endpoints","pages":[{"group":"Videos","pages":[{"title":"Create a Video","deprecated":null,"version":null,"openapi":"/openapi/video-open-api.json post /videos","href":"/api-reference/videos/create-a-video"}]},{"group":"Video Jobs","pages":[{"title":"Get a Video Job","description":"Returns a job owned by the authenticated account. Other Apps owned by that account can read it; cross-account reads return 404.\n\nSuccessful, unexpired jobs include a fresh download URL. If refreshing the link fails, the request returns 503 while the saved job remains succeeded. Output expiry returns expired without a link. Download the MP4 before job.expiresAt; refreshing a link does not extend retention.","deprecated":null,"version":null,"openapi":"/openapi/video-open-api.json get /video-jobs/{jobId}","href":"/api-reference/video-jobs/get-a-video-job"},{"title":"List Video Jobs","deprecated":null,"version":null,"openapi":"/openapi/video-open-api.json get /video-jobs","href":"/api-reference/video-jobs/list-video-jobs"}]}]}]}]}]},"title":"Create a Video - Spatius","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}