Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at time with params. Poll the returned job with GET /v1/renders/, as for any preview.
Structured JSON result for tasks that return data rather than a file — transcribe returns the transcript here (text, words, utterances, and any requested analysis). Populated once status == completed; null for renders and for any job whose only artifact is the file at output.url.
Example:
{ "language_code": "en", "text": "Welcome back to the show." }
ISO-8601 UTC timestamp when the job reached a terminal state.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Framelane","colors":{"primary":"#0070f3","light":"#3b82f6","dark":"#1d4ed8"},"logo":{"light":"https://mintcdn.com/itis-c7dc7146/I-4ZfymyiJyBmcDs/logo/framelane-light.png?fit=max\u0026auto=format\u0026n=I-4ZfymyiJyBmcDs\u0026q=85\u0026s=a819adfb6e5b9a97575f20c034d41c77","dark":"https://mintcdn.com/itis-c7dc7146/I-4ZfymyiJyBmcDs/logo/framelane-dark.png?fit=max\u0026auto=format\u0026n=I-4ZfymyiJyBmcDs\u0026q=85\u0026s=14e93bd67dd1fedf3c655cbebd17e046"},"favicon":"https://mintcdn.com/itis-c7dc7146/I-4ZfymyiJyBmcDs/favicon.ico?fit=max\u0026auto=format\u0026n=I-4ZfymyiJyBmcDs\u0026q=85\u0026s=a0cbeea069121bb5f6014ae0b57c8b8b","api":{"playground":{"display":"interactive"}},"navbar":{"links":[{"href":"https://console.framelane.io","label":"Console"}],"primary":{"type":"button","label":"Get API Key","href":"https://console.framelane.io/signup"}},"footer":{"socials":{"x":"https://twitter.com/framelane","github":"https://github.com/framelane"}},"seo":{"metatags":{"og:type":"website","og:site_name":"Framelane","og:image":"https://cdn-assets.framelane.io/shared/images/og-docs.png","robots":"index, follow"},"indexing":"all"},"contextual":{"options":["copy","view","claude","chatgpt","download-spec"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/framelane"},{"anchor":"Status","icon":"signal-bars","href":"https://status.framelane.io"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"itis-c7dc7146","hasAudioNarration":false,"actualSubdomain":"itis-c7dc7146","customDomains":["docs.framelane.io"],"gitSource":{"type":"github","owner":"itishq","repo":"framelane-api","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf86d0737ceb5e7109b3ae","collectionId":"43553988-d245-46c7-9e69-6860d4cdb8de","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf86d0737ceb5e7109b3ae"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adf86d0737ceb5e7109b3ae","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API Reference","count":65},{"language":"default","tag":"Documentation","count":41},{"language":"default","tag":"Webhooks","count":13},{"language":"default","tag":"Projects","count":10},{"language":"default","tag":"Renders","count":10},{"language":"default","tag":"Get Started","count":9},{"language":"default","tag":"Render Examples","count":9},{"language":"default","tag":"Account","count":9},{"language":"default","tag":"Guides","count":7},{"language":"default","tag":"Tasks","count":7}]},"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/shaders/render-one-frame-of-a-shader","slug":"/api-reference/shaders/render-one-frame-of-a-shader","pageMetadata":{"title":"Render one frame of a shader","description":"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at `time` with `params`. Poll the returned job with GET /v1/renders/{id}, as for any preview.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/shaders/{shader_id}/probe","href":"/api-reference/shaders/render-one-frame-of-a-shader","autogeneratedByOpenApi":true},"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: [\"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at \", _jsx(_components.code, {\n children: \"time\"\n }), \" with \", _jsx(_components.code, {\n children: \"params\"\n }), \". Poll the returned job with GET /v1/renders/\", \", as for any preview.\"]\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":"Render one frame of a shader","description":"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at `time` with `params`. Poll the returned job with GET /v1/renders/{id}, as for any preview.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/shaders/{shader_id}/probe","href":"/api-reference/shaders/render-one-frame-of-a-shader","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["shaders"],"summary":"Render one frame of a shader","description":"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at `time` with `params`. Poll the returned job with GET /v1/renders/{id}, as for any preview.","operationId":"probe_shader","security":["221aedb6-855e-4e4f-9c43-04d2154ad754"],"parameters":["5171cf5c-e30b-4456-8dd0-2e7ee0693689"],"requestBody":"6c24c12f-9165-47be-b7f5-0f95485e067e","responses":{"202":"9260318f-d888-4d1a-b5b9-3d9783d54785","401":"3968a07c-61cd-4c3c-b8e2-1429820e7550","404":"39d2dc39-d867-40a8-8a79-f859f5141e92","422":"5e072fc4-f5ff-4b85-a967-f3e7270902dc"},"method":"post","type":"path","servers":["374e059c-6af0-4c50-a102-7400af30babb"],"path":"/v1/shaders/{shader_id}/probe","baseUrlOptions":["https://api.framelane.io"],"title":"Render one frame of a shader","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"5171cf5c-e30b-4456-8dd0-2e7ee0693689":{"name":"shader_id","in":"path","required":true,"schema":{"type":"string","title":"Shader Id","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"width":{"type":"integer","maximum":8192,"minimum":16,"title":"Width","description":"Canvas width in px.","default":1280,"uniqueKey":"width","typeLabel":"integer"},"height":{"type":"integer","maximum":8192,"minimum":16,"title":"Height","description":"Canvas height in px.","default":720,"uniqueKey":"height","typeLabel":"integer"},"time":{"type":"number","minimum":0,"title":"Time","description":"The timeline second to render.","default":0,"uniqueKey":"time","typeLabel":"number"},"params":{"additionalProperties":{"oneOf":[{"type":"number","uniqueKey":"params.additionalProperties.oneOf.0","typeLabel":"number"},{"type":"string","uniqueKey":"params.additionalProperties.oneOf.1","typeLabel":"string"},{"type":"array","items":{"type":"number","uniqueKey":"params.additionalProperties.oneOf.2.items.[INDEX]","typeLabel":"number"},"maxItems":2,"minItems":2,"uniqueKey":"params.additionalProperties.oneOf.2","typeLabel":"number[]"},{"type":"array","items":{"properties":{"time":{"type":"number","minimum":0,"title":"Time","description":"Absolute timeline seconds.","isRequired":true,"uniqueKey":"params.additionalProperties.oneOf.3.items.[INDEX].time","typeLabel":"number"},"value":{"oneOf":[{"type":"number","title":"Value","description":"The param's value at this time, of its type.","isRequired":true,"uniqueKey":"params.additionalProperties.oneOf.3.items.[INDEX].value.oneOf.0","typeLabel":"number"},{"type":"string","title":"Value","description":"The param's value at this time, of its type.","isRequired":true,"uniqueKey":"params.additionalProperties.oneOf.3.items.[INDEX].value.oneOf.1","typeLabel":"string"},{"type":"array","items":{"type":"number","uniqueKey":"params.additionalProperties.oneOf.3.items.[INDEX].value.oneOf.2.items.[INDEX]","typeLabel":"number"},"title":"Value","description":"The param's value at this time, of its type.","maxItems":2,"minItems":2,"isRequired":true,"uniqueKey":"params.additionalProperties.oneOf.3.items.[INDEX].value.oneOf.2","typeLabel":"number[]"}],"isRequired":true,"uniqueKey":"params.additionalProperties.oneOf.3.items.[INDEX].value","typeLabel":"number | string | number[]"}},"additionalProperties":false,"type":"object","required":["time","value"],"title":"ShaderParamKeyframe","description":"A point on a runtime shader param's track (AEC §2): linear between, held outside.","uniqueKey":"params.additionalProperties.oneOf.3.items.[INDEX]","typeLabel":"ShaderParamKeyframe · object"},"minItems":1,"uniqueKey":"params.additionalProperties.oneOf.3","typeLabel":"ShaderParamKeyframe · object[]"}],"uniqueKey":"params.additionalProperties","typeLabel":"number | string | number[] | ShaderParamKeyframe · object[]"},"type":"object","title":"Params","description":"Param values for the frame, as an effect's `shader.params` takes them.","default":{},"uniqueKey":"params","typeLabel":"Params · object"}},"additionalProperties":false,"type":"object","title":"ShaderProbe","description":"``POST /v1/shaders/{id}/probe``: one frame of the shader on a full-canvas shape.","uniqueKey":"","typeLabel":"ShaderProbe · object"},"examples":{"Example":{"title":"Example","value":{"width":1280,"height":720,"time":0,"params":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"9260318f-d888-4d1a-b5b9-3d9783d54785":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique job ID. Prefix indicates type: `render_` or `task_`.","example":"render_01J8QR2K5VKDGN2T4FBM3CZYX7","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"kind":{"type":"string","enum":["render","task"],"title":"JobKind","description":"Whether this is a `render` or a `task`.","example":"render","isRequired":true,"uniqueKey":"kind","typeLabel":"enum\u003cstring>"},"workspace_id":{"type":"string","title":"Workspace Id","description":"ID of the workspace that owns this job.","example":"ws_01J8QR2K5VKDGN2T4FBM3CZYX8","isRequired":true,"uniqueKey":"workspace_id","typeLabel":"string"},"status":{"type":"string","enum":["ingesting","queued","processing","completed","failed","cancelled"],"title":"JobStatus","description":"Current lifecycle state: `queued` → `processing` → `completed` / `failed` / `cancelled`.","x-enumDescriptions":{"ingesting":"External source files are being probed for duration before the render is queued.","queued":"Accepted and waiting for a worker to pick it up.","processing":"Actively rendering or processing.","completed":"Finished successfully; the output artifact is available.","failed":"Terminated with an error (see `error`).","cancelled":"Cancelled by the caller before completion."},"example":"queued","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"ISO-8601 UTC timestamp when the job was created.","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"ISO-8601 UTC timestamp of the last status change.","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"is_preview":{"type":"boolean","title":"Is Preview","description":"True for a cheap preview render. Previews are not billed and are excluded from the renders list.","default":false,"example":false,"uniqueKey":"is_preview","typeLabel":"boolean"},"editor_url":{"oneOf":[{"type":"string","title":"Editor Url","description":"Open the project this job was submitted from in the authenticated console. Absent for a job with no project.","uniqueKey":"editor_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Editor Url","description":"Open the project this job was submitted from in the authenticated console. Absent for a job with no project.","uniqueKey":"editor_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"editor_url","typeLabel":"string | null"},"task_type":{"oneOf":[{"type":"string","title":"TaskType","description":"For `task` jobs only — the specific AI operation.","enum":["transcribe"],"x-enumDescriptions":{"transcribe":"Speech-to-text transcription (via AssemblyAI) with optional analysis. Returns the transcript inline on the task's `result` object — there is no file artifact, so `output` is null and `/v1/tasks/{id}/download` returns 404."},"example":"transcribe","uniqueKey":"task_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"For `task` jobs only — the specific AI operation.","example":"transcribe","uniqueKey":"task_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"task_type","typeLabel":"enum\u003cstring> | null"},"progress_percent":{"type":"integer","maximum":100,"minimum":0,"title":"Progress Percent","description":"0–100 progress indicator updated by the render engine.","default":0,"example":0,"uniqueKey":"progress_percent","typeLabel":"integer"},"progress_stage":{"oneOf":[{"type":"string","title":"ProgressStage","description":"Current processing phase within a job.","enum":["downloading","compositing","encoding","uploading"],"x-enumDescriptions":{"downloading":"Fetching source media.","compositing":"Compositing the scene on the GPU.","encoding":"Encoding the output video.","uploading":"Uploading the finished artifact to storage."},"example":"compositing","uniqueKey":"progress_stage.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Current processing phase within a job.","example":"compositing","uniqueKey":"progress_stage.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress_stage","typeLabel":"enum\u003cstring> | null"},"output":{"oneOf":[{"type":"object","title":"JobOutput","description":"Populated once `status == completed`. Contains the signed artifact URL.","properties":{"url":{"oneOf":[{"type":"string","title":"Url","description":"CDN URL to the completed artifact.","example":"https://cdn-user.framelane.io/render_01J.../output.mp4","uniqueKey":"output.oneOf.0.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"CDN URL to the completed artifact.","example":"https://cdn-user.framelane.io/render_01J.../output.mp4","uniqueKey":"output.oneOf.0.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.oneOf.0.url","typeLabel":"string | null"},"width":{"oneOf":[{"type":"integer","title":"Width","description":"Output video width in pixels.","example":1920,"uniqueKey":"output.oneOf.0.width.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Width","description":"Output video width in pixels.","example":1920,"uniqueKey":"output.oneOf.0.width.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.oneOf.0.width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","title":"Height","description":"Output video height in pixels.","example":1080,"uniqueKey":"output.oneOf.0.height.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Height","description":"Output video height in pixels.","example":1080,"uniqueKey":"output.oneOf.0.height.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.oneOf.0.height","typeLabel":"integer | null"},"duration":{"oneOf":[{"type":"number","title":"Duration","description":"Output duration in seconds.","example":15.3,"uniqueKey":"output.oneOf.0.duration.oneOf.0","typeLabel":"number"},{"type":"null","title":"Duration","description":"Output duration in seconds.","example":15.3,"uniqueKey":"output.oneOf.0.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.oneOf.0.duration","typeLabel":"number | null"},"size_bytes":{"oneOf":[{"type":"integer","title":"Size Bytes","description":"Artifact file size in bytes.","example":12582912,"uniqueKey":"output.oneOf.0.size_bytes.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Size Bytes","description":"Artifact file size in bytes.","example":12582912,"uniqueKey":"output.oneOf.0.size_bytes.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.oneOf.0.size_bytes","typeLabel":"integer | null"}},"uniqueKey":"output.oneOf.0","typeLabel":"JobOutput · object"},{"type":"null","description":"Populated once `status == completed`. Contains the signed artifact URL.","uniqueKey":"output.oneOf.1","typeLabel":"null"}],"uniqueKey":"output","typeLabel":"JobOutput · object | null"},"result":{"oneOf":[{"type":"object","title":"Result","description":"Structured JSON result for tasks that return data rather than a file — `transcribe` returns the transcript here (`text`, `words`, `utterances`, and any requested analysis). Populated once `status == completed`; `null` for renders and for any job whose only artifact is the file at `output.url`.","example":{"language_code":"en","text":"Welcome back to the show."},"additionalProperties":true,"uniqueKey":"result.oneOf.0","typeLabel":"Result · object"},{"type":"null","title":"Result","description":"Structured JSON result for tasks that return data rather than a file — `transcribe` returns the transcript here (`text`, `words`, `utterances`, and any requested analysis). Populated once `status == completed`; `null` for renders and for any job whose only artifact is the file at `output.url`.","example":{"language_code":"en","text":"Welcome back to the show."},"uniqueKey":"result.oneOf.1","typeLabel":"null"}],"uniqueKey":"result","typeLabel":"Result · object | null"},"error":{"oneOf":[{"type":"object","title":"JobError","description":"Populated when `status == failed`. Contains a structured error code.","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_source","source_not_found","source_too_large","asset_not_ready","codec_unsupported","decode_failed","encode_failed","timeout","out_of_memory","gpu_error","upload_failed","provider_error","ingest_failed","render_refused","internal","cancelled"],"title":"ErrorCode","description":"Machine-readable error code.","x-enumDescriptions":{"invalid_source":"A source URL was malformed or inaccessible.","source_not_found":"A source URL returned 404.","source_too_large":"A source file exceeded the maximum allowed size.","asset_not_ready":"A referenced asset was still ingesting when the job ran.","codec_unsupported":"A source used a codec the renderer cannot decode.","decode_failed":"A source file could not be decoded.","encode_failed":"The output could not be encoded.","timeout":"Processing exceeded the time limit.","out_of_memory":"The renderer ran out of GPU memory.","gpu_error":"A GPU hardware/driver error occurred.","upload_failed":"The output artifact failed to upload to storage.","provider_error":"An upstream provider (e.g. AssemblyAI) returned an error.","ingest_failed":"An external source could not be probed (unreachable, not a media file, or timed out).","render_refused":"The renderer refused the composition by name: a runtime shader that did not compile or ran over its GPU time budget, or an operation, a component or a nested composition it could not apply. `error_message` carries the engine's words; change what it names and submit again.","internal":"An unexpected internal error occurred.","cancelled":"The job was cancelled."},"example":"invalid_source","isRequired":true,"uniqueKey":"error.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","title":"Message","description":"Human-readable error description.","example":"Source URL returned 404.","isRequired":true,"uniqueKey":"error.oneOf.0.message","typeLabel":"string"}},"uniqueKey":"error.oneOf.0","typeLabel":"JobError · object"},{"type":"null","description":"Populated when `status == failed`. Contains a structured error code.","uniqueKey":"error.oneOf.1","typeLabel":"null"}],"uniqueKey":"error","typeLabel":"JobError · object | null"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Caller-supplied key-value pairs echoed back on every webhook and response.","example":{"project_id":"proj_123","user_ref":"usr_abc"},"uniqueKey":"metadata","typeLabel":"Metadata · object"},"completed_at":{"oneOf":[{"type":"string","title":"Completed At","description":"ISO-8601 UTC timestamp when the job reached a terminal state.","format":"date-time","uniqueKey":"completed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Completed At","description":"ISO-8601 UTC timestamp when the job reached a terminal state.","uniqueKey":"completed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"completed_at","typeLabel":"string\u003cdate-time> | null"}},"type":"object","required":["id","kind","workspace_id","status","created_at","updated_at"],"title":"JobOut","description":"A render job or AI task.","uniqueKey":"","typeLabel":"JobOut · object"},"examples":{"Example":{"title":"Example","value":{"id":"render_01J8QR2K5VKDGN2T4FBM3CZYX7","kind":"render","workspace_id":"ws_01J8QR2K5VKDGN2T4FBM3CZYX8","status":"queued","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","is_preview":false,"editor_url":"\u003cstring>","task_type":"transcribe","progress_percent":0,"progress_stage":"compositing","output":{"url":"https://cdn-user.framelane.io/render_01J.../output.mp4","width":1920,"height":1080,"duration":15.3,"size_bytes":12582912},"result":{"language_code":"en","text":"Welcome back to the show."},"error":{"code":"invalid_source","message":"Source URL returned 404."},"metadata":{"project_id":"proj_123","user_ref":"usr_abc"},"completed_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"3968a07c-61cd-4c3c-b8e2-1429820e7550":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"description":"The error envelope returned on every 4xx/5xx response: `{\"error\": {...}}`.","properties":{"error":{"description":"The structured error body — the value of the `error` key on an error response.","properties":{"code":{"description":"Machine-readable error code returned on a 4xx/5xx response. Branch on `error.code` to\nhandle failures programmatically.\n\nValues:\n- `invalid_request` — The request was malformed or failed validation.\n- `unauthorized` — Missing or invalid API key.\n- `forbidden` — Authenticated but not permitted to perform this action.\n- `not_found` — The requested resource does not exist.\n- `conflict` — Conflicts with current state (e.g. a reused Idempotency-Key with a different body).\n- `unsupported_feature` — The composition uses a feature the renderer does not support.\n- `invalid_source` — A source URL is malformed or unreachable.\n- `source_not_found` — A referenced source file could not be found.\n- `source_too_large` — A source file exceeds the allowed size.\n- `asset_not_ready` — A referenced asset is still ingesting and is not ready yet.\n- `ingest_failed` — Copying an external source into Framelane storage failed.\n- `codec_unsupported` — A source uses a codec the renderer cannot decode.\n- `quota_exceeded` — The workspace has exhausted its plan quota (HTTP 402).\n- `rate_limited` — Too many requests; retry after the Retry-After interval.\n- `internal` — An unexpected server error occurred.\n- `email_not_verified` — The workspace email is unverified; verify it before making authed calls.\n- `email_in_use` — The email is already associated with another workspace.\n- `invalid_otp` — The verification code is incorrect or expired.\n- `unsupported_content_type` — The provided content type is not supported.\n- `plan_required` — The feature needs a higher plan (HTTP 402); `details.required_plan` names it.\n- `admin_only` — Only an admin workspace may call this route (HTTP 403).\n- `template_assets_not_shared` — A published template may reference only shared CDN media; `details.urls` lists the rest.\n- `template_has_webhook` — A published template may not carry a `webhook_url`: every copy of it would notify that URL.\n- `http_error` — A generic HTTP error not covered by a more specific code.\n- `shader_compile_error` — A shader's SkSL did not compile; `details.errors` gives each error's line and column.\n- `shader_compiler_unavailable` — The shader compiler is not installed on this deployment or did not answer in time (HTTP 503).\n- `shader_not_found` — An effect names a shader id that is neither this workspace's nor shared.\n- `shader_param_invalid` — An effect sets a shader param the shader does not declare, or a value of the wrong type or range.","enum":["invalid_request","unauthorized","forbidden","not_found","conflict","unsupported_feature","invalid_source","source_not_found","source_too_large","asset_not_ready","ingest_failed","codec_unsupported","quota_exceeded","rate_limited","internal","email_not_verified","email_in_use","invalid_otp","unsupported_content_type","inline_too_large","plan_required","admin_only","template_assets_not_shared","template_has_webhook","http_error","shader_compile_error","shader_compiler_unavailable","shader_not_found","shader_param_invalid"],"title":"ErrorCode","type":"string","x-enumDescriptions":{"invalid_request":"The request was malformed or failed validation.","unauthorized":"Missing or invalid API key.","forbidden":"Authenticated but not permitted to perform this action.","not_found":"The requested resource does not exist.","conflict":"Conflicts with current state (e.g. a reused Idempotency-Key with a different body).","unsupported_feature":"The composition uses a feature the renderer does not support.","invalid_source":"A source URL is malformed or unreachable.","source_not_found":"A referenced source file could not be found.","source_too_large":"A source file exceeds the allowed size.","asset_not_ready":"A referenced asset is still ingesting and is not ready yet.","ingest_failed":"Copying an external source into Framelane storage failed.","codec_unsupported":"A source uses a codec the renderer cannot decode.","quota_exceeded":"The workspace has exhausted its plan quota (HTTP 402).","rate_limited":"Too many requests; retry after the Retry-After interval.","internal":"An unexpected server error occurred.","email_not_verified":"The workspace email is unverified; verify it before making authed calls.","email_in_use":"The email is already associated with another workspace.","invalid_otp":"The verification code is incorrect or expired.","unsupported_content_type":"The provided content type is not supported.","plan_required":"The feature needs a higher plan (HTTP 402); `details.required_plan` names it.","admin_only":"Only an admin workspace may call this route (HTTP 403).","template_assets_not_shared":"A published template may reference only shared CDN media; `details.urls` lists the rest.","template_has_webhook":"A published template may not carry a `webhook_url`: every copy of it would notify that URL.","http_error":"A generic HTTP error not covered by a more specific code.","shader_compile_error":"A shader's SkSL did not compile; `details.errors` gives each error's line and column.","shader_compiler_unavailable":"The shader compiler is not installed on this deployment or did not answer in time (HTTP 503).","shader_not_found":"An effect names a shader id that is neither this workspace's nor shared.","shader_param_invalid":"An effect sets a shader param the shader does not declare, or a value of the wrong type or range."},"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"object","title":"Details","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"required":["code","message"],"title":"ErrorResponse","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorResponse · object"}},"required":["error"],"title":"ApiError","type":"object","uniqueKey":"","typeLabel":"ApiError · object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"39d2dc39-d867-40a8-8a79-f859f5141e92":{"description":"Shader not found.","content":{"application/json":{"schema":{"description":"The error envelope returned on every 4xx/5xx response: `{\"error\": {...}}`.","properties":{"error":{"description":"The structured error body — the value of the `error` key on an error response.","properties":{"code":{"description":"Machine-readable error code returned on a 4xx/5xx response. Branch on `error.code` to\nhandle failures programmatically.\n\nValues:\n- `invalid_request` — The request was malformed or failed validation.\n- `unauthorized` — Missing or invalid API key.\n- `forbidden` — Authenticated but not permitted to perform this action.\n- `not_found` — The requested resource does not exist.\n- `conflict` — Conflicts with current state (e.g. a reused Idempotency-Key with a different body).\n- `unsupported_feature` — The composition uses a feature the renderer does not support.\n- `invalid_source` — A source URL is malformed or unreachable.\n- `source_not_found` — A referenced source file could not be found.\n- `source_too_large` — A source file exceeds the allowed size.\n- `asset_not_ready` — A referenced asset is still ingesting and is not ready yet.\n- `ingest_failed` — Copying an external source into Framelane storage failed.\n- `codec_unsupported` — A source uses a codec the renderer cannot decode.\n- `quota_exceeded` — The workspace has exhausted its plan quota (HTTP 402).\n- `rate_limited` — Too many requests; retry after the Retry-After interval.\n- `internal` — An unexpected server error occurred.\n- `email_not_verified` — The workspace email is unverified; verify it before making authed calls.\n- `email_in_use` — The email is already associated with another workspace.\n- `invalid_otp` — The verification code is incorrect or expired.\n- `unsupported_content_type` — The provided content type is not supported.\n- `plan_required` — The feature needs a higher plan (HTTP 402); `details.required_plan` names it.\n- `admin_only` — Only an admin workspace may call this route (HTTP 403).\n- `template_assets_not_shared` — A published template may reference only shared CDN media; `details.urls` lists the rest.\n- `template_has_webhook` — A published template may not carry a `webhook_url`: every copy of it would notify that URL.\n- `http_error` — A generic HTTP error not covered by a more specific code.\n- `shader_compile_error` — A shader's SkSL did not compile; `details.errors` gives each error's line and column.\n- `shader_compiler_unavailable` — The shader compiler is not installed on this deployment or did not answer in time (HTTP 503).\n- `shader_not_found` — An effect names a shader id that is neither this workspace's nor shared.\n- `shader_param_invalid` — An effect sets a shader param the shader does not declare, or a value of the wrong type or range.","enum":["invalid_request","unauthorized","forbidden","not_found","conflict","unsupported_feature","invalid_source","source_not_found","source_too_large","asset_not_ready","ingest_failed","codec_unsupported","quota_exceeded","rate_limited","internal","email_not_verified","email_in_use","invalid_otp","unsupported_content_type","inline_too_large","plan_required","admin_only","template_assets_not_shared","template_has_webhook","http_error","shader_compile_error","shader_compiler_unavailable","shader_not_found","shader_param_invalid"],"title":"ErrorCode","type":"string","x-enumDescriptions":{"invalid_request":"The request was malformed or failed validation.","unauthorized":"Missing or invalid API key.","forbidden":"Authenticated but not permitted to perform this action.","not_found":"The requested resource does not exist.","conflict":"Conflicts with current state (e.g. a reused Idempotency-Key with a different body).","unsupported_feature":"The composition uses a feature the renderer does not support.","invalid_source":"A source URL is malformed or unreachable.","source_not_found":"A referenced source file could not be found.","source_too_large":"A source file exceeds the allowed size.","asset_not_ready":"A referenced asset is still ingesting and is not ready yet.","ingest_failed":"Copying an external source into Framelane storage failed.","codec_unsupported":"A source uses a codec the renderer cannot decode.","quota_exceeded":"The workspace has exhausted its plan quota (HTTP 402).","rate_limited":"Too many requests; retry after the Retry-After interval.","internal":"An unexpected server error occurred.","email_not_verified":"The workspace email is unverified; verify it before making authed calls.","email_in_use":"The email is already associated with another workspace.","invalid_otp":"The verification code is incorrect or expired.","unsupported_content_type":"The provided content type is not supported.","plan_required":"The feature needs a higher plan (HTTP 402); `details.required_plan` names it.","admin_only":"Only an admin workspace may call this route (HTTP 403).","template_assets_not_shared":"A published template may reference only shared CDN media; `details.urls` lists the rest.","template_has_webhook":"A published template may not carry a `webhook_url`: every copy of it would notify that URL.","http_error":"A generic HTTP error not covered by a more specific code.","shader_compile_error":"A shader's SkSL did not compile; `details.errors` gives each error's line and column.","shader_compiler_unavailable":"The shader compiler is not installed on this deployment or did not answer in time (HTTP 503).","shader_not_found":"An effect names a shader id that is neither this workspace's nor shared.","shader_param_invalid":"An effect sets a shader param the shader does not declare, or a value of the wrong type or range."},"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"object","title":"Details","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"required":["code","message"],"title":"ErrorResponse","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorResponse · object"}},"required":["error"],"title":"ApiError","type":"object","uniqueKey":"","typeLabel":"ApiError · object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"5e072fc4-f5ff-4b85-a967-f3e7270902dc":{"description":"`shader_compile_error`, `shader_param_invalid`, or `unsupported_feature` while this deployment does not send runtime shaders to the engine.","content":{"application/json":{"schema":{"description":"The error envelope returned on every 4xx/5xx response: `{\"error\": {...}}`.","properties":{"error":{"description":"The structured error body — the value of the `error` key on an error response.","properties":{"code":{"description":"Machine-readable error code returned on a 4xx/5xx response. Branch on `error.code` to\nhandle failures programmatically.\n\nValues:\n- `invalid_request` — The request was malformed or failed validation.\n- `unauthorized` — Missing or invalid API key.\n- `forbidden` — Authenticated but not permitted to perform this action.\n- `not_found` — The requested resource does not exist.\n- `conflict` — Conflicts with current state (e.g. a reused Idempotency-Key with a different body).\n- `unsupported_feature` — The composition uses a feature the renderer does not support.\n- `invalid_source` — A source URL is malformed or unreachable.\n- `source_not_found` — A referenced source file could not be found.\n- `source_too_large` — A source file exceeds the allowed size.\n- `asset_not_ready` — A referenced asset is still ingesting and is not ready yet.\n- `ingest_failed` — Copying an external source into Framelane storage failed.\n- `codec_unsupported` — A source uses a codec the renderer cannot decode.\n- `quota_exceeded` — The workspace has exhausted its plan quota (HTTP 402).\n- `rate_limited` — Too many requests; retry after the Retry-After interval.\n- `internal` — An unexpected server error occurred.\n- `email_not_verified` — The workspace email is unverified; verify it before making authed calls.\n- `email_in_use` — The email is already associated with another workspace.\n- `invalid_otp` — The verification code is incorrect or expired.\n- `unsupported_content_type` — The provided content type is not supported.\n- `plan_required` — The feature needs a higher plan (HTTP 402); `details.required_plan` names it.\n- `admin_only` — Only an admin workspace may call this route (HTTP 403).\n- `template_assets_not_shared` — A published template may reference only shared CDN media; `details.urls` lists the rest.\n- `template_has_webhook` — A published template may not carry a `webhook_url`: every copy of it would notify that URL.\n- `http_error` — A generic HTTP error not covered by a more specific code.\n- `shader_compile_error` — A shader's SkSL did not compile; `details.errors` gives each error's line and column.\n- `shader_compiler_unavailable` — The shader compiler is not installed on this deployment or did not answer in time (HTTP 503).\n- `shader_not_found` — An effect names a shader id that is neither this workspace's nor shared.\n- `shader_param_invalid` — An effect sets a shader param the shader does not declare, or a value of the wrong type or range.","enum":["invalid_request","unauthorized","forbidden","not_found","conflict","unsupported_feature","invalid_source","source_not_found","source_too_large","asset_not_ready","ingest_failed","codec_unsupported","quota_exceeded","rate_limited","internal","email_not_verified","email_in_use","invalid_otp","unsupported_content_type","inline_too_large","plan_required","admin_only","template_assets_not_shared","template_has_webhook","http_error","shader_compile_error","shader_compiler_unavailable","shader_not_found","shader_param_invalid"],"title":"ErrorCode","type":"string","x-enumDescriptions":{"invalid_request":"The request was malformed or failed validation.","unauthorized":"Missing or invalid API key.","forbidden":"Authenticated but not permitted to perform this action.","not_found":"The requested resource does not exist.","conflict":"Conflicts with current state (e.g. a reused Idempotency-Key with a different body).","unsupported_feature":"The composition uses a feature the renderer does not support.","invalid_source":"A source URL is malformed or unreachable.","source_not_found":"A referenced source file could not be found.","source_too_large":"A source file exceeds the allowed size.","asset_not_ready":"A referenced asset is still ingesting and is not ready yet.","ingest_failed":"Copying an external source into Framelane storage failed.","codec_unsupported":"A source uses a codec the renderer cannot decode.","quota_exceeded":"The workspace has exhausted its plan quota (HTTP 402).","rate_limited":"Too many requests; retry after the Retry-After interval.","internal":"An unexpected server error occurred.","email_not_verified":"The workspace email is unverified; verify it before making authed calls.","email_in_use":"The email is already associated with another workspace.","invalid_otp":"The verification code is incorrect or expired.","unsupported_content_type":"The provided content type is not supported.","plan_required":"The feature needs a higher plan (HTTP 402); `details.required_plan` names it.","admin_only":"Only an admin workspace may call this route (HTTP 403).","template_assets_not_shared":"A published template may reference only shared CDN media; `details.urls` lists the rest.","template_has_webhook":"A published template may not carry a `webhook_url`: every copy of it would notify that URL.","http_error":"A generic HTTP error not covered by a more specific code.","shader_compile_error":"A shader's SkSL did not compile; `details.errors` gives each error's line and column.","shader_compiler_unavailable":"The shader compiler is not installed on this deployment or did not answer in time (HTTP 503).","shader_not_found":"An effect names a shader id that is neither this workspace's nor shared.","shader_param_invalid":"An effect sets a shader param the shader does not declare, or a value of the wrong type or range."},"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"object","title":"Details","additionalProperties":true,"uniqueKey":"error.details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"Details · object | null"}},"required":["code","message"],"title":"ErrorResponse","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorResponse · object"}},"required":["error"],"title":"ApiError","type":"object","uniqueKey":"","typeLabel":"ApiError · object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"221aedb6-855e-4e4f-9c43-04d2154ad754":{"ApiKey":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"ApiKey"}}},"servers":{"374e059c-6af0-4c50-a102-7400af30babb":{"url":"https://api.framelane.io","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKey","name":"Authorization"}],"title":"ApiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"itis-c7dc7146","siteName":"Framelane","title":"Render one frame of a shader - Framelane","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T13:55:55.802Z","originalFileLocation":"api-reference/shaders/render-one-frame-of-a-shader.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=\"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at time with params. Poll the returned job with GET /v1/renders/{id}, as for any preview.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Framelane\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/itis-c7dc7146/3AM3-gs_iChWRW0W/_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/itis-c7dc7146/3AM3-gs_iChWRW0W/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/itis-c7dc7146/3AM3-gs_iChWRW0W/_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/itis-c7dc7146/3AM3-gs_iChWRW0W/_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/itis-c7dc7146/3AM3-gs_iChWRW0W/_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/itis-c7dc7146/3AM3-gs_iChWRW0W/_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/itis-c7dc7146/3AM3-gs_iChWRW0W/_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/itis-c7dc7146/3AM3-gs_iChWRW0W/_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/itis-c7dc7146/3AM3-gs_iChWRW0W/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Render one frame of a shader - Framelane\">\u003cmeta data-mint-head property=\"og:description\" content=\"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at time with params. Poll the returned job with GET /v1/renders/{id}, as for any preview.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Framelane\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cdn-assets.framelane.io/shared/images/og-docs.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Render one frame of a shader - Framelane\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at time with params. Poll the returned job with GET /v1/renders/{id}, as for any preview.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cdn-assets.framelane.io/shared/images/og-docs.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/itis-c7dc7146/3AM3-gs_iChWRW0W/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Framelane\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0070f3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/shaders/render-one-frame-of-a-shader.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.framelane.io/#organization\",\"name\":\"Framelane\",\"url\":\"https://docs.framelane.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/itis-c7dc7146/I-4ZfymyiJyBmcDs/logo/framelane-light.png?fit=max\u0026auto=format\u0026n=I-4ZfymyiJyBmcDs\u0026q=85\u0026s=a819adfb6e5b9a97575f20c034d41c77\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.framelane.io#website\",\"name\":\"Framelane\",\"url\":\"https://docs.framelane.io\",\"publisher\":{\"@id\":\"https://docs.framelane.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader#webpage\",\"url\":\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader\",\"name\":\"Render one frame of a shader\",\"description\":\"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at time with params. Poll the returned job with GET /v1/renders/{id}, as for any preview.\",\"dateModified\":\"2026-10-25T13:55:55.802Z\",\"isPartOf\":{\"@id\":\"https://docs.framelane.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Shaders\",\"item\":\"https://docs.framelane.io/api-reference/shaders\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Render one frame of a shader\",\"item\":\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader#apireference\",\"headline\":\"Render one frame of a shader\",\"name\":\"Render one frame of a shader\",\"description\":\"Queue a one-frame preview (a PNG, not billed) of the shader on a full-canvas shape over a three-hue fill, at time with params. Poll the returned job with GET /v1/renders/{id}, as for any preview.\",\"url\":\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader\",\"mainEntityOfPage\":{\"@id\":\"https://docs.framelane.io/api-reference/shaders/render-one-frame-of-a-shader#webpage\"},\"image\":\"https://cdn-assets.framelane.io/shared/images/og-docs.png\",\"dateModified\":\"2026-10-25T13:55:55.802Z\",\"publisher\":{\"@id\":\"https://docs.framelane.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.framelane.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Framelane\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Framelane","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/framelane"},{"anchor":"Status","icon":"signal-bars","href":"https://status.framelane.io"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction/overview"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/mcp/overview"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"},{"title":"RenderRequest schema reference","href":"/api-reference/render-request"}]},{"group":"Discovery","pages":[{"title":"List render and task capabilities","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/capabilities","href":"/api-reference/capabilities/list-render-and-task-capabilities"}]},{"group":"Onboarding","pages":[{"title":"Create a workspace and send an OTP verification email","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/signup","href":"/api-reference/signup/create-a-workspace-and-send-an-otp-verification-email"},{"title":"Verify email with OTP code","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/signup/verify","href":"/api-reference/signup/verify-email-with-otp-code"},{"title":"Sync a Clerk session to a Framelane workspace","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/auth/sync","href":"/api-reference/auth/sync-a-clerk-session-to-a-framelane-workspace"}]},{"group":"Renders","pages":[{"title":"Submit a render job","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/renders","href":"/api-reference/renders/submit-a-render-job"},{"title":"List renders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/renders","href":"/api-reference/renders/list-renders"},{"title":"Get a render","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/renders/{render_id}","href":"/api-reference/renders/get-a-render"},{"title":"Cancel a render","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/renders/{render_id}","href":"/api-reference/renders/cancel-a-render"},{"title":"Download render artifact","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/renders/{render_id}/download","href":"/api-reference/renders/download-render-artifact"},{"title":"Get render poster image","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/renders/{render_id}/poster","href":"/api-reference/renders/get-render-poster-image"}]},{"group":"Preview","pages":[{"title":"Validate or preview a composition","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/preview","href":"/api-reference/preview/validate-or-preview-a-composition"}]},{"group":"Projects","pages":[{"title":"Create a project","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects","href":"/api-reference/projects/create-a-project"},{"title":"List projects","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects","href":"/api-reference/projects/list-projects"},{"title":"Get a project","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}","href":"/api-reference/projects/get-a-project"},{"title":"Rename a project","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/projects/{project_id}","href":"/api-reference/projects/rename-a-project"},{"title":"Delete a project","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}","href":"/api-reference/projects/delete-a-project"},{"title":"Apply targeted edits","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/ops","href":"/api-reference/projects/apply-targeted-edits"},{"title":"Preview or validate the project head","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/preview","href":"/api-reference/projects/preview-or-validate-the-project-head"},{"title":"Refresh the project thumbnail","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/thumbnail","href":"/api-reference/projects/refresh-the-project-thumbnail"},{"title":"Render the project head","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/renders","href":"/api-reference/projects/render-the-project-head"}]},{"group":"Templates","pages":[{"title":"Templates","href":"/api-reference/templates"},{"title":"List templates","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/templates","href":"/api-reference/templates/list-templates"},{"title":"Get a template","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/templates/{id_or_slug}","href":"/api-reference/templates/get-a-template"},{"title":"Publish a template","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/templates","href":"/api-reference/templates/publish-a-template"},{"title":"Update a template listing","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/templates/{listing_id}","href":"/api-reference/templates/update-a-template-listing"},{"title":"Unpublish a template","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/templates/{listing_id}","href":"/api-reference/templates/unpublish-a-template"}]},{"group":"Brand Kits","pages":[{"title":"Extract a brand kit from a URL","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/brand-kits","href":"/api-reference/brand-kits/extract-a-brand-kit-from-a-url"},{"title":"List brand kits","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/brand-kits","href":"/api-reference/brand-kits/list-brand-kits"},{"title":"Get a brand kit","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/brand-kits/{brand_kit_id}","href":"/api-reference/brand-kits/get-a-brand-kit"},{"title":"Override brand kit fields","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/brand-kits/{brand_kit_id}","href":"/api-reference/brand-kits/override-brand-kit-fields"},{"title":"Delete a brand kit","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/brand-kits/{brand_kit_id}","href":"/api-reference/brand-kits/delete-a-brand-kit"}]},{"group":"Shaders","pages":[{"title":"Runtime shaders","href":"/api-reference/shaders"},{"title":"Compile and store a shader","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/shaders","href":"/api-reference/shaders/compile-and-store-a-shader"},{"title":"List shaders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/shaders","href":"/api-reference/shaders/list-shaders"},{"title":"Get a shader","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/shaders/{shader_id}","href":"/api-reference/shaders/get-a-shader"},{"title":"Delete a shader","description":"Remove one of this workspace's shaders. Renders already made with it are unaffected (a render carries the compiled variants); a document that still names it is refused with `shader_not_found` at its next render.","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/shaders/{shader_id}","href":"/api-reference/shaders/delete-a-shader"},{"title":"Render one frame of a shader","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/shaders/{shader_id}/probe","href":"/api-reference/shaders/render-one-frame-of-a-shader"}]},{"group":"Tasks","pages":[{"title":"Transcribe task","description":"Submit a media URL for transcription. Runs asynchronously — the task is accepted with `202` and moves through `queued` → `processing` → a terminal status; poll `GET /v1/tasks/{task_id}` or pass `wait` there to long-poll. Supports word-level timestamps and speaker diarisation.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/tasks/transcribe","href":"/api-reference/tasks/transcribe-task"},{"title":"List tasks","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Get a task","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tasks/{task_id}","href":"/api-reference/tasks/get-a-task"},{"title":"Cancel a task","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/tasks/{task_id}","href":"/api-reference/tasks/cancel-a-task"},{"title":"Download task artifact","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tasks/{task_id}/download","href":"/api-reference/tasks/download-task-artifact"}]},{"group":"Uploads","pages":[{"title":"Request a file upload URL","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/uploads","href":"/api-reference/uploads/request-a-file-upload-url"}]},{"group":"Webhooks","pages":[{"title":"Register webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks","href":"/api-reference/webhooks/register-webhook"},{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Get webhook","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/get-webhook"},{"title":"Update webhook","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/delete-webhook"},{"title":"Send test event","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/{webhook_id}/test","href":"/api-reference/webhooks/send-test-event"},{"title":"Rotate signing secret","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/{webhook_id}/rotate-secret","href":"/api-reference/webhooks/rotate-signing-secret"},{"title":"List delivery attempts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/{webhook_id}/deliveries","href":"/api-reference/webhooks/list-delivery-attempts"},{"title":"Retry a delivery","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/{webhook_id}/deliveries/{delivery_id}/retry","href":"/api-reference/webhooks/retry-a-delivery"}]},{"group":"Account","pages":[{"group":"Workspace","pages":[{"title":"Get workspace","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/workspace","href":"/api-reference/workspace/get-workspace"},{"title":"Update workspace","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/workspace","href":"/api-reference/workspace/update-workspace"},{"title":"Get workspace usage","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/workspace/usage","href":"/api-reference/workspace/get-workspace-usage"},{"title":"List workspace media assets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/workspace/assets","href":"/api-reference/workspace/list-workspace-media-assets"},{"title":"Delete workspace","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/workspace","href":"/api-reference/workspace/delete-workspace"}]},{"group":"API Keys","pages":[{"title":"Create API key","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/api-keys","href":"/api-reference/api-keys/create-api-key"},{"title":"List API keys","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/api-keys","href":"/api-reference/api-keys/list-api-keys"},{"title":"Revoke API key","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/api-keys/{key_id}","href":"/api-reference/api-keys/revoke-api-key"}]},{"group":"Billing","pages":[{"title":"Create a Paddle Customer Portal session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/billing/portal","href":"/api-reference/billing/create-a-paddle-customer-portal-session"}]}]}]}]},"title":"Render one frame of a shader - Framelane","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}