Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.
POST
/
v1
/
videos
curl \
https://api.cometapi.com/v1/videos \
-H "Authorization: Bearer $COMETAPI_KEY" \
--form-string 'model=flux-3' \
--form-string 'prompt=A paper boat glides across a still pond while the camera moves forward.' \
--form-string 'seconds=5' \
--form-string 'size=1280x720'
Create a Flux 3 video from text, reference images, or first and last frames. Store the returned id to poll the task and download the completed video.POST /v1/videos uses multipart/form-data. Send controls as form fields. For image inputs, use reference image URLs or opening and closing frames.Keep input_reference separate from first_frame and last_frame.
The input_reference field accepts publicly accessible HTTPS image URLs only. Send it once for a single image, or repeat it in keyframe order for multiple images. Use one URL per field, up to 10 URLs in total.Describe the motion, camera behavior, and visual details that the generated video should preserve from the reference image.The request samples at the top of this page show single-image and multiple-image inputs. The following request uses two images in their submitted order:
curl \ https://api.cometapi.com/v1/videos \ -H "Authorization: Bearer $COMETAPI_KEY" \ --form-string 'model=flux-3' \ --form-string 'prompt=Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.' \ --form-string 'seconds=5' \ --form-string 'size=1280x720' \ --form-string 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png' \ --form-string 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png'
Send first_frame to set the opening image. To also set the closing image, include last_frame and describe the motion between the two frames in prompt.For an opening frame alone, omit last_frame. A closing frame requires both first_frame and last_frame.Each field accepts one publicly accessible HTTPS URL or one PNG or JPEG file. Send each field once, using either a URL or a file. Keep each file at or below 20 MiB (20 × 1024 × 1024 bytes).The frame examples at the top of this page show URL inputs and file uploads, with seconds and size set explicitly.
Set seconds explicitly to an integer from 5 through 20.Set size to one of these exact WxH preset values:
Resolution tier
Size
720p
1280x720
1080p
1920x1080
The size value selects the output resolution tier. For text-to-video, encoded dimensions can be adjusted for codec alignment. For image-to-video, the reference image can also determine the final framing and aspect ratio.
Resolution preset in exact WxH form. Use 1280x720 for the 720p tier or 1920x1080 for the 1080p tier. Encoded dimensions can be codec-aligned; image-to-video framing can follow the reference image.
Reference image URLs. Send one publicly accessible HTTPS image URL per input_reference field. For multiple images, repeat the field in keyframe order, up to 10 URLs. This field accepts URLs only. Keep it separate from first_frame and last_frame.
Opening-frame image as one publicly accessible HTTPS URL or one PNG or JPEG file. Keep each file at or below 20 MiB (20 × 1024 × 1024 bytes). Send the field once, using either a URL or a file. Pair with last_frame to set both boundaries. Keep frame inputs separate from input_reference.
Closing-frame image as one publicly accessible HTTPS URL or one PNG or JPEG file. Keep each file at or below 20 MiB (20 × 1024 × 1024 bytes). Send the field once, using either a URL or a file. To specify the closing image through this endpoint, send last_frame together with first_frame. Keep frame inputs separate from input_reference.
Pattern: ^https://
Response
Task created. Store the returned id and poll GET /v1/videos/{task_id}.
Failure details. This field appears when the task fails.
Show child attributes
Last modified on September 9, 2026
⌘I
curl \
https://api.cometapi.com/v1/videos \
-H "Authorization: Bearer $COMETAPI_KEY" \
--form-string 'model=flux-3' \
--form-string 'prompt=A paper boat glides across a still pond while the camera moves forward.' \
--form-string 'seconds=5' \
--form-string 'size=1280x720'
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"CometAPI Documentation","description":"CometAPI developer documentation for unified API access to GPT, Claude, Gemini, Grok, Llama, DeepSeek, Mistral, Qwen, and more, including API reference, quickstart guides, and integration tutorials.","colors":{"primary":"#00ACE2","light":"#00ACE2","dark":"#0274C3"},"logo":{"light":"https://mintcdn.com/cometapi/cmhWX83dzrkf2F-2/logo/comet-light.svg?fit=max\u0026auto=format\u0026n=cmhWX83dzrkf2F-2\u0026q=85\u0026s=7ae2fde0df7785d111912bce23157ef2","dark":"https://mintcdn.com/cometapi/cmhWX83dzrkf2F-2/logo/comet-dark.svg?fit=max\u0026auto=format\u0026n=cmhWX83dzrkf2F-2\u0026q=85\u0026s=2d25d0a1c0376b7a3b5b2b06c4149fbc"},"favicon":"https://mintcdn.com/cometapi/cmhWX83dzrkf2F-2/logo/comet.svg?fit=max\u0026auto=format\u0026n=cmhWX83dzrkf2F-2\u0026q=85\u0026s=bd1150b78a8058af98088b06cbe67cdc","api":{"playground":{"display":"interactive","proxy":true},"examples":{"defaults":"required","prefill":true}},"navbar":{"links":[{"href":"https://www.cometapi.com/models/","label":"Models"}],"primary":{"type":"button","label":"Dashboard","href":"https://www.cometapi.com/console"}},"footer":{},"seo":{"metatags":{"og:site_name":"CometAPI Docs","og:type":"website","twitter:card":"summary_large_image","canonical":"https://apidoc.cometapi.com","author":"CometAPI","copyright":"Copyright 2026 CometAPI","category":"Technology","distribution":"global","coverage":"Worldwide"},"indexing":"navigable"},"integrations":{"posthog":{"apiKey":"phc_y3KwBz46V9TGDjqPtDrpuSahVg3bDky6eyzGsD8vuCYS","sessionRecording":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":""},{"language":"zh-Hans","href":"zh-Hans"},{"language":"zh-Hant","href":"zh-Hant"},{"language":"ja","href":"ja"},{"language":"ko","href":"ko"},{"language":"fr","href":"fr"},{"language":"de","href":"de"},{"language":"es","href":"es"},{"language":"it","href":"it"},{"language":"pt","href":"pt"},{"language":"ru","href":"ru"},{"language":"ar","href":"ar"},{"language":"vi","href":"vi"},{"language":"id","href":"id"},{"language":"tr","href":"tr"},{"language":"pl","href":"pl"},{"language":"nl","href":"nl"},{"language":"no","href":"no"},{"language":"uk","href":"uk"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cometapi","hasAudioNarration":false,"actualSubdomain":"cometapi","customDomains":["apidoc.cometapi.com"],"gitSource":{"type":"github","owner":"cometapi-dev","repo":"cometapi-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af573e755c1ebcca5218d31","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"en","tag":"API","count":109},{"language":"en","tag":"Video Models","count":66},{"language":"en","tag":"Integrations","count":53},{"language":"en","tag":"Docs","count":37},{"language":"en","tag":"Kling","count":33},{"language":"en","tag":"Image Models","count":28},{"language":"en","tag":"AI chat clients","count":14},{"language":"en","tag":"Runway","count":13},{"language":"en","tag":"Midjourney","count":10},{"language":"en","tag":"AI coding agents","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"img[src*=\"cloudfront.net/flags/\"]{display:none!important}div.relative:has(>img[src*=\"cloudfront.net/flags/\"]){display:none!important}#localization-select-item-zh-Hans{display:none!important}nav a.link[class~=\"bg-gray-950/[0.03]\"]{background-color:rgb(var(--primary) / 0.12);box-shadow:inset 0 0 0 1px rgb(var(--primary) / 0.38), 0 1px 2px rgb(var(--primary) / 0.08);color:rgb(var(--primary))}nav a.link[class~=\"bg-gray-950/[0.03]\"]:hover,nav a.link[class~=\"bg-gray-950/[0.03]\"]:focus-visible{background-color:rgb(var(--primary) / 0.18);box-shadow:inset 0 0 0 1px rgb(var(--primary) / 0.58), 0 1px 2px rgb(var(--primary) / 0.1);color:rgb(var(--primary))}nav a.link[class~=\"bg-gray-950/[0.03]\"]:focus-visible{outline:2px solid rgb(var(--primary) / 0.45);outline-offset:2px}.dark nav a.link[class~=\"bg-gray-950/[0.03]\"]{background-color:rgb(var(--primary-light) / 0.2);box-shadow:inset 0 0 0 1px rgb(var(--primary-light) / 0.55), 0 1px 2px rgb(var(--primary-light) / 0.16);color:rgb(var(--primary-light))}.dark nav a.link[class~=\"bg-gray-950/[0.03]\"]:hover,.dark nav a.link[class~=\"bg-gray-950/[0.03]\"]:focus-visible{background-color:rgb(var(--primary-light) / 0.28);box-shadow:inset 0 0 0 1px rgb(var(--primary-light) / 0.7), 0 1px 2px rgb(var(--primary-light) / 0.18);color:rgb(var(--primary-light))}.integration-logo-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px;margin:16px 0 28px}.integration-logo-card{align-items:center;background:rgba(127, 127, 127, 0.04);border:1px solid rgba(127, 127, 127, 0.22);border-radius:8px;color:inherit;display:flex;gap:14px;min-height:72px;padding:14px 16px;text-decoration:none!important;transition:background 160ms ease, border-color 160ms ease, transform 160ms ease}.integration-logo-card:hover,.integration-logo-card:focus-visible{background:rgba(0, 172, 226, 0.08);border-color:rgba(0, 172, 226, 0.55);transform:translateY(-1px)}.integration-logo-card:focus-visible{outline:2px solid rgba(0, 172, 226, 0.45);outline-offset:2px}.integration-logo-mark{align-items:center;background:#fff;background-position:center;background-repeat:no-repeat;background-size:28px 28px;border:1px solid rgba(127, 127, 127, 0.18);border-radius:8px;display:flex;flex:0 0 38px;height:38px;justify-content:center;overflow:hidden;width:38px}.integration-logo-body{display:flex;flex-direction:column;gap:2px;min-width:0}.integration-logo-title{font-size:0.95rem;font-weight:600;line-height:1.3}.integration-logo-subtitle{color:rgba(90, 90, 90, 0.92);font-size:0.78rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.integration-card-arrow{color:rgba(90, 90, 90, 0.7);flex:0 0 16px;font-size:0.9rem;margin-left:auto;text-align:right}.integration-card-arrow::before{content:\"\\2197\"}.integration-logo-ai-sdk{background-image:url(\"/images/integrations/logos/ai-sdk.png\")}.integration-logo-agno{background-image:url(\"/images/integrations/logos/agno.png\")}.integration-logo-claude-code{background-image:url(\"/images/integrations/logos/claude-code.png\")}.integration-logo-claude-desktop{background-image:url(\"/images/integrations/logos/claude-desktop.png\")}.integration-logo-codex{background-image:url(\"/images/integrations/logos/codex.png\")}.integration-logo-dify{background-image:url(\"/images/integrations/logos/dify.png\")}.integration-logo-gemini-cli{background-image:url(\"/images/integrations/logos/gemini-cli.png\")}.integration-logo-hermes-agent{background-image:url(\"/images/integrations/logos/hermes-agent.png\");background-size:34px 34px}.integration-logo-langchain{background-image:url(\"/images/integrations/logos/langchain.png\")}.integration-logo-langflow{background-image:url(\"/images/integrations/logos/langflow.png\")}.integration-logo-langfuse{background-image:url(\"/images/integrations/logos/langfuse.png\")}.integration-logo-litellm{background-image:url(\"/images/integrations/logos/litellm.png\")}.integration-logo-llamaindex{background-image:url(\"/images/integrations/logos/llamaindex.png\")}.integration-logo-lobe-chat{background-image:url(\"/images/integrations/logos/lobe-chat.jpg\")}.integration-logo-make{background-image:url(\"/images/integrations/logos/make.jpg\")}.integration-logo-n8n{background-image:url(\"/images/integrations/logos/n8n.png\")}.integration-logo-open-webui{background-image:url(\"/images/integrations/logos/open-webui.png\")}.integration-logo-workbuddy-ai{background-image:url(\"/images/integrations/logos/workbuddy-ai.svg\")}.integration-logo-openclaw{background-image:url(\"/images/integrations/logos/openclaw.svg\")}.integration-logo-opencode{background-image:url(\"/images/integrations/logos/opencode.png\")}.integration-logo-pi{background-image:url(\"/images/integrations/logos/pi.svg\")}.integration-logo-promptfoo{background-image:url(\"/images/integrations/logos/promptfoo.png\")}.dark .integration-logo-card{background:rgba(255, 255, 255, 0.035);border-color:rgba(255, 255, 255, 0.14)}.dark .integration-logo-card:hover,.dark .integration-logo-card:focus-visible{background:rgba(0, 172, 226, 0.14);border-color:rgba(0, 172, 226, 0.65)}.dark .integration-logo-mark{background-color:rgba(255, 255, 255, 0.96)}.dark .integration-logo-subtitle{color:rgba(255, 255, 255, 0.66)}.dark .integration-card-arrow{color:rgba(255, 255, 255, 0.64)}@media (max-width: 1024px){.integration-logo-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (max-width: 640px){.integration-logo-grid{grid-template-columns:1fr}.integration-logo-card{min-height:68px}}"}],"page":{"pagePath":"api/video/flux-3/create","slug":"/api/video/flux-3/create","pageMetadata":{"title":"Create a Flux 3 video","sidebarTitle":"Create a Flux 3 video","openapi":"api/openapi/video/flux-3/post-create.openapi.json POST /v1/videos","description":"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.","keywords":["CometAPI","Flux 3","flux-3","video generation API","POST /v1/videos","text to video","image to video"],"href":"/api/video/flux-3/create"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Step,Steps,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Create a Flux 3 video from text, reference images, or first and last frames. Store the returned `,_jsx(_components.code,{children:`id`}),` to poll the task and download the completed video.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`POST /v1/videos`}),` uses `,_jsx(_components.code,{children:`multipart/form-data`}),`. Send controls as form fields. For image inputs, use reference image URLs or opening and closing frames.`]}),`\n`,_jsxs(_components.p,{children:[`Keep `,_jsx(_components.code,{children:`input_reference`}),` separate from `,_jsx(_components.code,{children:`first_frame`}),` and `,_jsx(_components.code,{children:`last_frame`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`choose-an-input-mode`,children:`Choose an input mode`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Goal`}),_jsx(_components.th,{children:`Required fields`}),_jsx(_components.th,{children:`Optional fields`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Text-to-video`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`model=flux-3`}),`, `,_jsx(_components.code,{children:`prompt`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`seconds`}),`, `,_jsx(_components.code,{children:`size`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`HTTPS image-to-video`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`model=flux-3`}),`, `,_jsx(_components.code,{children:`prompt`}),`, one `,_jsx(_components.code,{children:`input_reference`}),` URL`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`seconds`}),`, `,_jsx(_components.code,{children:`size`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ordered keyframes`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`model=flux-3`}),`, `,_jsx(_components.code,{children:`prompt`}),`, repeated `,_jsx(_components.code,{children:`input_reference`}),` URLs`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`seconds`}),`, `,_jsx(_components.code,{children:`size`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Uploaded opening frame`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`model=flux-3`}),`, `,_jsx(_components.code,{children:`prompt`}),`, one `,_jsx(_components.code,{children:`first_frame`}),` file`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`seconds`}),`, `,_jsx(_components.code,{children:`size`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`First-and-last-frame video`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`model=flux-3`}),`, `,_jsx(_components.code,{children:`prompt`}),`, `,_jsx(_components.code,{children:`first_frame`}),`, `,_jsx(_components.code,{children:`last_frame`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`seconds`}),`, `,_jsx(_components.code,{children:`size`})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`use-reference-images`,children:`Use reference images`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`input_reference`}),` field accepts publicly accessible HTTPS image URLs only. Send it once for a single image, or repeat it in keyframe order for multiple images. Use one URL per field, up to 10 URLs in total.`]}),`\n`,_jsx(_components.p,{children:`Describe the motion, camera behavior, and visual details that the generated video should preserve from the reference image.`}),`\n`,_jsx(_components.p,{children:`The request samples at the top of this page show single-image and multiple-image inputs. The following request uses two images in their submitted order:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.cometapi.com/v1/videos`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$COMETAPI_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form-string`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'model=flux-3'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form-string`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'prompt=Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form-string`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'seconds=5'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form-string`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'size=1280x720'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form-string`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form-string`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png'`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`set-the-first-and-last-frames`,children:`Set the first and last frames`}),`\n`,_jsxs(_components.p,{children:[`Send `,_jsx(_components.code,{children:`first_frame`}),` to set the opening image. To also set the closing image, include `,_jsx(_components.code,{children:`last_frame`}),` and describe the motion between the two frames in `,_jsx(_components.code,{children:`prompt`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`For an opening frame alone, omit `,_jsx(_components.code,{children:`last_frame`}),`. A closing frame requires both `,_jsx(_components.code,{children:`first_frame`}),` and `,_jsx(_components.code,{children:`last_frame`}),`.`]}),`\n`,_jsx(_components.p,{children:`Each field accepts one publicly accessible HTTPS URL or one PNG or JPEG file. Send each field once, using either a URL or a file. Keep each file at or below 20 MiB (20 × 1024 × 1024 bytes).`}),`\n`,_jsxs(_components.p,{children:[`The frame examples at the top of this page show URL inputs and file uploads, with `,_jsx(_components.code,{children:`seconds`}),` and `,_jsx(_components.code,{children:`size`}),` set explicitly.`]}),`\n`,_jsx(Heading,{level:`2`,id:`set-duration-and-size`,children:`Set duration and size`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`seconds`}),` explicitly to an integer from `,_jsx(_components.code,{children:`5`}),` through `,_jsx(_components.code,{children:`20`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`size`}),` to one of these exact `,_jsx(_components.code,{children:`WxH`}),` preset values:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Resolution tier`}),_jsx(_components.th,{children:`Size`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`720p`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`1280x720`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`1080p`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`1920x1080`})})]})]})]}),`\n`,_jsx(_components.p,{children:`The size value selects the output resolution tier. For text-to-video, encoded dimensions can be adjusted for codec alignment. For image-to-video, the reference image can also determine the final framing and aspect ratio.`}),`\n`,_jsx(Heading,{level:`2`,id:`task-flow`,children:`Task flow`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Create the task`,children:_jsxs(_components.p,{children:[`Send the multipart form request and store the returned `,_jsx(_components.code,{children:`id`}),`.`]})}),_jsx(Step,{title:`Poll the task`,children:_jsxs(_components.p,{children:[`Call `,_jsx(_components.a,{href:`/api/video/flux-3/retrieve`,children:`Retrieve a Flux 3 video`}),` until `,_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`completed`}),` or `,_jsx(_components.code,{children:`failed`}),`.`]})}),_jsx(Step,{title:`Download the result`,children:_jsxs(_components.p,{children:[`When the task is `,_jsx(_components.code,{children:`completed`}),`, call `,_jsx(_components.a,{href:`/api/video/flux-3/retrieve-content`,children:`Download Flux 3 video content`}),` to save the MP4 file.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a Flux 3 video","sidebarTitle":"Create a Flux 3 video","openapi":"api/openapi/video/flux-3/post-create.openapi.json POST /v1/videos","description":"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.","keywords":["CometAPI","Flux 3","flux-3","video generation API","POST /v1/videos","text to video","image to video"],"href":"/api/video/flux-3/create"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Choose an input mode","slug":"choose-an-input-mode","depth":2,"children":[]},{"title":"Use reference images","slug":"use-reference-images","depth":2,"children":[]},{"title":"Set the first and last frames","slug":"set-the-first-and-last-frames","depth":2,"children":[]},{"title":"Set duration and size","slug":"set-duration-and-size","depth":2,"children":[]},{"title":"Task flow","slug":"task-flow","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cometapi/430a303ac1007180/analytics.js"],"openApiReferenceData":{"operation":{"summary":"Create a Flux 3 video task","operationId":"flux_3_create_video","description":"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.","requestBody":"30589bee-e8c9-4fc7-ab88-a6ba3a7902b9","responses":{"200":"00830ab6-048f-4ef6-80f9-3ed4d4a985b6","400":"8f61d677-17ff-4b86-adbb-6841848e0619","401":"482764d1-6eb5-4234-b6ab-7f8d2738fc52"},"security":["25e8f409-b8e4-471d-8e6b-283e0eddedb5"],"x-codeSamples":[{"lang":"Shell","label":"Text-to-video","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string 'model=flux-3' \\\n --form-string 'prompt=A paper boat glides across a still pond while the camera moves forward.' \\\n --form-string 'seconds=5' \\\n --form-string 'size=1280x720'"},{"lang":"Python","label":"Text-to-video","source":"import os\n\nimport requests\n\nfields = [\n (\"model\", (None, \"flux-3\")),\n (\n \"prompt\",\n (\n None,\n \"A paper boat glides across a still pond while the \"\n \"camera moves forward.\",\n ),\n ),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n]\n\nresponse = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\n \"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]\n },\n files=fields,\n timeout=120,\n)\nresponse.raise_for_status()\nprint(response.json())\n"},{"lang":"JavaScript","label":"Text-to-video","source":"const form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\n \"prompt\",\n \"A paper boat glides across a still pond while the camera moves forward.\",\n);\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"lang":"Shell","label":"HTTPS image-to-video","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string 'model=flux-3' \\\n --form-string 'prompt=Animate the reference scene with a slow camera move and natural motion.' \\\n --form-string 'seconds=5' \\\n --form-string 'size=1280x720' \\\n --form-string 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png'"},{"lang":"Python","label":"HTTPS image-to-video","source":"import os\n\nimport requests\n\nfields = [\n (\"model\", (None, \"flux-3\")),\n (\n \"prompt\",\n (\n None,\n \"Animate the reference scene with a slow camera move and \"\n \"natural motion.\",\n ),\n ),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n (\n \"input_reference\",\n (None, \"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png\"),\n ),\n]\n\nresponse = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\n \"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]\n },\n files=fields,\n timeout=120,\n)\nresponse.raise_for_status()\nprint(response.json())\n"},{"lang":"JavaScript","label":"HTTPS image-to-video","source":"const form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\n \"prompt\",\n \"Animate the reference scene with a slow camera move and natural motion.\",\n);\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\"input_reference\", \"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png\");\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"lang":"Shell","label":"First and last frames from URLs","source":"image1=https://your-image-host/first-frame.png\nimage2=https://your-image-host/last-frame.png\n\ncurl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string model=flux-3 \\\n --form-string 'prompt=Move smoothly from the opening to the closing scene.' \\\n --form-string seconds=5 \\\n --form-string size=1280x720 \\\n --form-string \"first_frame=$image1\" \\\n --form-string \"last_frame=$image2\""},{"lang":"Python","label":"First and last frames from URLs","source":"import os\n\nimport requests\n\nurl1 = \"https://your-image-host/first-frame.png\"\nurl2 = \"https://your-image-host/last-frame.png\"\n\nprompt = \"Move smoothly from the opening to the closing scene.\"\n\nfields = [\n (\"model\", (None, \"flux-3\")),\n (\"prompt\", (None, prompt)),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n (\n \"first_frame\",\n (None, url1),\n ),\n (\n \"last_frame\",\n (None, url2),\n ),\n]\n\nresponse = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]},\n files=fields,\n timeout=120,\n)\n\nresponse.raise_for_status()\nprint(response.json())\n"},{"lang":"JavaScript","label":"First and last frames from URLs","source":"const form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\"prompt\", \"Move smoothly from the opening to the closing scene.\");\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\n \"first_frame\",\n \"https://your-image-host/first-frame.png\",\n);\nform.append(\n \"last_frame\",\n \"https://your-image-host/last-frame.png\",\n);\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: \"Bearer \" + process.env.COMETAPI_KEY },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"lang":"Shell","label":"First and last frames from files","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string model=flux-3 \\\n --form-string 'prompt=Move smoothly from the opening to the closing scene.' \\\n --form-string seconds=5 \\\n --form-string size=1280x720 \\\n --form 'first_frame=@/path/to/first-frame.png;type=image/png' \\\n --form 'last_frame=@/path/to/last-frame.png;type=image/png'"},{"lang":"Python","label":"First and last frames from files","source":"import os\nfrom contextlib import ExitStack\n\nimport requests\n\nprompt = (\n \"Move smoothly from the opening to the closing scene.\"\n)\n\nwith ExitStack() as stack:\n image_1 = stack.enter_context(open(\"/path/to/first-frame.png\", \"rb\"))\n image_2 = stack.enter_context(open(\"/path/to/last-frame.png\", \"rb\"))\n fields = [\n (\"model\", (None, \"flux-3\")),\n (\"prompt\", (None, prompt)),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n (\"first_frame\", (\"first-frame.png\", image_1, \"image/png\")),\n (\"last_frame\", (\"last-frame.png\", image_2, \"image/png\")),\n ]\n\n response = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]},\n files=fields,\n timeout=120,\n )\n\nresponse.raise_for_status()\nprint(response.json())\n"},{"lang":"JavaScript","label":"First and last frames from files","source":"import { readFile } from \"node:fs/promises\";\n\nconst image_1 = await readFile(\"/path/to/first-frame.png\");\nconst image_2 = await readFile(\"/path/to/last-frame.png\");\n\nconst form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\"prompt\", \"Move smoothly from the opening to the closing scene.\");\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\n \"first_frame\",\n new Blob([image_1], { type: \"image/png\" }),\n \"first-frame.png\",\n);\nform.append(\n \"last_frame\",\n new Blob([image_2], { type: \"image/png\" }),\n \"last-frame.png\",\n);\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: \"Bearer \" + process.env.COMETAPI_KEY },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"lang":"Shell","label":"Opening frame from a file","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string 'model=flux-3' \\\n --form-string 'prompt=Animate the opening frame with a slow camera move and natural motion.' \\\n --form-string 'seconds=5' \\\n --form-string 'size=1280x720' \\\n --form 'first_frame=@/path/to/reference.png;type=image/png'"},{"lang":"Python","label":"Opening frame from a file","source":"import os\n\nimport requests\n\nprompt = (\n \"Animate the opening frame with a slow camera move and \"\n \"natural motion.\"\n)\n\nwith open(\"/path/to/reference.png\", \"rb\") as reference:\n response = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\n \"Authorization\": \"Bearer \"\n + os.environ[\"COMETAPI_KEY\"]\n },\n data={\n \"model\": \"flux-3\",\n \"prompt\": prompt,\n \"seconds\": \"5\",\n \"size\": \"1280x720\",\n },\n files={\n \"first_frame\": (\n \"reference.png\",\n reference,\n \"image/png\",\n )\n },\n timeout=120,\n )\n\nresponse.raise_for_status()\nprint(response.json())\n"},{"lang":"JavaScript","label":"Opening frame from a file","source":"import { readFile } from \"node:fs/promises\";\n\nconst reference = await readFile(\"/path/to/reference.png\");\nconst form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\n \"prompt\",\n \"Animate the opening frame with a slow camera move and natural motion.\",\n);\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\n \"first_frame\",\n new Blob([reference], { type: \"image/png\" }),\n \"reference.png\",\n);\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"lang":"Shell","label":"Ordered keyframes from image URLs","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string 'model=flux-3' \\\n --form-string 'prompt=Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.' \\\n --form-string 'seconds=5' \\\n --form-string 'size=1280x720' \\\n --form-string 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png' \\\n --form-string 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png'"},{"lang":"Python","label":"Ordered keyframes from image URLs","source":"import os\n\nimport requests\n\nfields = [\n (\"model\", (None, \"flux-3\")),\n (\"prompt\", (None, \"Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.\")),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n (\"input_reference\", (None, \"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png\")),\n (\"input_reference\", (None, \"https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png\")),\n]\n\nresponse = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]},\n files=fields,\n timeout=120,\n)\nresponse.raise_for_status()\nprint(response.json())\n"},{"lang":"JavaScript","label":"Ordered keyframes from image URLs","source":"const form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\"prompt\", \"Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.\");\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\"input_reference\", \"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png\");\nform.append(\"input_reference\", \"https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png\");\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"}],"method":"post","type":"path","servers":["71b6bab9-1e23-49d0-bbe7-92833d4050e6"],"path":"/v1/videos","baseUrlOptions":["https://api.cometapi.com"],"title":"Create a Flux 3 video task","codeSamples":[{"label":"Text-to-video","lang":"Shell","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string 'model=flux-3' \\\n --form-string 'prompt=A paper boat glides across a still pond while the camera moves forward.' \\\n --form-string 'seconds=5' \\\n --form-string 'size=1280x720'"},{"label":"Text-to-video","lang":"Python","source":"import os\n\nimport requests\n\nfields = [\n (\"model\", (None, \"flux-3\")),\n (\n \"prompt\",\n (\n None,\n \"A paper boat glides across a still pond while the \"\n \"camera moves forward.\",\n ),\n ),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n]\n\nresponse = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\n \"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]\n },\n files=fields,\n timeout=120,\n)\nresponse.raise_for_status()\nprint(response.json())\n"},{"label":"Text-to-video","lang":"JavaScript","source":"const form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\n \"prompt\",\n \"A paper boat glides across a still pond while the camera moves forward.\",\n);\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"label":"HTTPS image-to-video","lang":"Shell","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string 'model=flux-3' \\\n --form-string 'prompt=Animate the reference scene with a slow camera move and natural motion.' \\\n --form-string 'seconds=5' \\\n --form-string 'size=1280x720' \\\n --form-string 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png'"},{"label":"HTTPS image-to-video","lang":"Python","source":"import os\n\nimport requests\n\nfields = [\n (\"model\", (None, \"flux-3\")),\n (\n \"prompt\",\n (\n None,\n \"Animate the reference scene with a slow camera move and \"\n \"natural motion.\",\n ),\n ),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n (\n \"input_reference\",\n (None, \"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png\"),\n ),\n]\n\nresponse = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\n \"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]\n },\n files=fields,\n timeout=120,\n)\nresponse.raise_for_status()\nprint(response.json())\n"},{"label":"HTTPS image-to-video","lang":"JavaScript","source":"const form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\n \"prompt\",\n \"Animate the reference scene with a slow camera move and natural motion.\",\n);\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\"input_reference\", \"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png\");\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"label":"First and last frames from URLs","lang":"Shell","source":"image1=https://your-image-host/first-frame.png\nimage2=https://your-image-host/last-frame.png\n\ncurl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string model=flux-3 \\\n --form-string 'prompt=Move smoothly from the opening to the closing scene.' \\\n --form-string seconds=5 \\\n --form-string size=1280x720 \\\n --form-string \"first_frame=$image1\" \\\n --form-string \"last_frame=$image2\""},{"label":"First and last frames from URLs","lang":"Python","source":"import os\n\nimport requests\n\nurl1 = \"https://your-image-host/first-frame.png\"\nurl2 = \"https://your-image-host/last-frame.png\"\n\nprompt = \"Move smoothly from the opening to the closing scene.\"\n\nfields = [\n (\"model\", (None, \"flux-3\")),\n (\"prompt\", (None, prompt)),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n (\n \"first_frame\",\n (None, url1),\n ),\n (\n \"last_frame\",\n (None, url2),\n ),\n]\n\nresponse = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]},\n files=fields,\n timeout=120,\n)\n\nresponse.raise_for_status()\nprint(response.json())\n"},{"label":"First and last frames from URLs","lang":"JavaScript","source":"const form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\"prompt\", \"Move smoothly from the opening to the closing scene.\");\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\n \"first_frame\",\n \"https://your-image-host/first-frame.png\",\n);\nform.append(\n \"last_frame\",\n \"https://your-image-host/last-frame.png\",\n);\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: \"Bearer \" + process.env.COMETAPI_KEY },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"label":"First and last frames from files","lang":"Shell","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string model=flux-3 \\\n --form-string 'prompt=Move smoothly from the opening to the closing scene.' \\\n --form-string seconds=5 \\\n --form-string size=1280x720 \\\n --form 'first_frame=@/path/to/first-frame.png;type=image/png' \\\n --form 'last_frame=@/path/to/last-frame.png;type=image/png'"},{"label":"First and last frames from files","lang":"Python","source":"import os\nfrom contextlib import ExitStack\n\nimport requests\n\nprompt = (\n \"Move smoothly from the opening to the closing scene.\"\n)\n\nwith ExitStack() as stack:\n image_1 = stack.enter_context(open(\"/path/to/first-frame.png\", \"rb\"))\n image_2 = stack.enter_context(open(\"/path/to/last-frame.png\", \"rb\"))\n fields = [\n (\"model\", (None, \"flux-3\")),\n (\"prompt\", (None, prompt)),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n (\"first_frame\", (\"first-frame.png\", image_1, \"image/png\")),\n (\"last_frame\", (\"last-frame.png\", image_2, \"image/png\")),\n ]\n\n response = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]},\n files=fields,\n timeout=120,\n )\n\nresponse.raise_for_status()\nprint(response.json())\n"},{"label":"First and last frames from files","lang":"JavaScript","source":"import { readFile } from \"node:fs/promises\";\n\nconst image_1 = await readFile(\"/path/to/first-frame.png\");\nconst image_2 = await readFile(\"/path/to/last-frame.png\");\n\nconst form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\"prompt\", \"Move smoothly from the opening to the closing scene.\");\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\n \"first_frame\",\n new Blob([image_1], { type: \"image/png\" }),\n \"first-frame.png\",\n);\nform.append(\n \"last_frame\",\n new Blob([image_2], { type: \"image/png\" }),\n \"last-frame.png\",\n);\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: \"Bearer \" + process.env.COMETAPI_KEY },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"label":"Opening frame from a file","lang":"Shell","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string 'model=flux-3' \\\n --form-string 'prompt=Animate the opening frame with a slow camera move and natural motion.' \\\n --form-string 'seconds=5' \\\n --form-string 'size=1280x720' \\\n --form 'first_frame=@/path/to/reference.png;type=image/png'"},{"label":"Opening frame from a file","lang":"Python","source":"import os\n\nimport requests\n\nprompt = (\n \"Animate the opening frame with a slow camera move and \"\n \"natural motion.\"\n)\n\nwith open(\"/path/to/reference.png\", \"rb\") as reference:\n response = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\n \"Authorization\": \"Bearer \"\n + os.environ[\"COMETAPI_KEY\"]\n },\n data={\n \"model\": \"flux-3\",\n \"prompt\": prompt,\n \"seconds\": \"5\",\n \"size\": \"1280x720\",\n },\n files={\n \"first_frame\": (\n \"reference.png\",\n reference,\n \"image/png\",\n )\n },\n timeout=120,\n )\n\nresponse.raise_for_status()\nprint(response.json())\n"},{"label":"Opening frame from a file","lang":"JavaScript","source":"import { readFile } from \"node:fs/promises\";\n\nconst reference = await readFile(\"/path/to/reference.png\");\nconst form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\n \"prompt\",\n \"Animate the opening frame with a slow camera move and natural motion.\",\n);\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\n \"first_frame\",\n new Blob([reference], { type: \"image/png\" }),\n \"reference.png\",\n);\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"},{"label":"Ordered keyframes from image URLs","lang":"Shell","source":"curl \\\n https://api.cometapi.com/v1/videos \\\n -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n --form-string 'model=flux-3' \\\n --form-string 'prompt=Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.' \\\n --form-string 'seconds=5' \\\n --form-string 'size=1280x720' \\\n --form-string 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png' \\\n --form-string 'input_reference=https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png'"},{"label":"Ordered keyframes from image URLs","lang":"Python","source":"import os\n\nimport requests\n\nfields = [\n (\"model\", (None, \"flux-3\")),\n (\"prompt\", (None, \"Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.\")),\n (\"seconds\", (None, \"5\")),\n (\"size\", (None, \"1280x720\")),\n (\"input_reference\", (None, \"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png\")),\n (\"input_reference\", (None, \"https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png\")),\n]\n\nresponse = requests.post(\n \"https://api.cometapi.com/v1/videos\",\n headers={\"Authorization\": \"Bearer \" + os.environ[\"COMETAPI_KEY\"]},\n files=fields,\n timeout=120,\n)\nresponse.raise_for_status()\nprint(response.json())\n"},{"label":"Ordered keyframes from image URLs","lang":"JavaScript","source":"const form = new FormData();\nform.append(\"model\", \"flux-3\");\nform.append(\"prompt\", \"Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.\");\nform.append(\"seconds\", \"5\");\nform.append(\"size\", \"1280x720\");\nform.append(\"input_reference\", \"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png\");\nform.append(\"input_reference\", \"https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png\");\n\nconst response = await fetch(\"https://api.cometapi.com/v1/videos\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },\n body: form,\n});\n\nif (!response.ok) {\n throw new Error(await response.text());\n}\n\nconsole.log(await response.json());\n"}],"requiredOnlyExamples":true,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.model":"flux-3","body.prompt":"A paper boat glides across a still pond while the camera moves forward.","body.seconds":5,"body.size":"1280x720"},{"body.model":"flux-3","body.prompt":"Animate the reference scene with a slow camera move and natural motion.","body.seconds":5,"body.size":"1280x720","body.input_reference.oneOf.0":"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png"},{"body.model":"flux-3","body.prompt":"Move smoothly from the opening to the closing scene.","body.seconds":5,"body.size":"1280x720","body.first_frame.oneOf.0":"https://your-image-host/first-frame.png","body.last_frame.oneOf.0":"https://your-image-host/last-frame.png"},{"body.model":"flux-3","body.prompt":"Move smoothly from the opening to the closing scene.","body.seconds":5,"body.size":"1280x720","body.first_frame.oneOf.1":"@/path/to/first-frame.png","body.last_frame.oneOf.1":"@/path/to/last-frame.png"},{"body.model":"flux-3","body.prompt":"Animate the opening frame with a slow camera move and natural motion.","body.seconds":5,"body.size":"1280x720","body.first_frame.oneOf.1":"@/path/to/reference.png"},{"body.model":"flux-3","body.prompt":"Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.","body.seconds":5,"body.size":"1280x720","body.input_reference.oneOf.1.items.0":"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png","body.input_reference.oneOf.1.items.1":"https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png"}]},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","description":"Flux 3 multipart request. Choose text, input_reference URLs, or first_frame and last_frame inputs. Keep reference-image and frame inputs separate.","required":["model","prompt"],"not":{"anyOf":[{"required":["input_reference","first_frame"]},{"required":["input_reference","last_frame"]}]},"properties":{"model":{"type":"string","const":"flux-3","default":"flux-3","description":"Model ID for this route. Use flux-3.","isRequired":true,"uniqueKey":"model","typeLabel":"string"},"prompt":{"type":"string","minLength":1,"description":"Text that describes the scene, motion, camera behavior, and visual details that the video should preserve.","default":"A paper boat glides across a still pond while the camera moves forward.","isRequired":true,"uniqueKey":"prompt","typeLabel":"string"},"seconds":{"type":"integer","minimum":5,"maximum":20,"description":"Requested clip duration in whole seconds. Set seconds explicitly to an integer from 5 through 20.","uniqueKey":"seconds","typeLabel":"integer"},"size":{"type":"string","enum":["1280x720","1920x1080"],"default":"1280x720","description":"Resolution preset in exact WxH form. Use 1280x720 for the 720p tier or 1920x1080 for the 1080p tier. Encoded dimensions can be codec-aligned; image-to-video framing can follow the reference image.","uniqueKey":"size","typeLabel":"enum\u003cstring>"},"input_reference":{"oneOf":[{"type":"string","description":"Reference image URLs. Send one publicly accessible HTTPS image URL per input_reference field. For multiple images, repeat the field in keyframe order, up to 10 URLs. This field accepts URLs only. Keep it separate from first_frame and last_frame.","format":"uri","pattern":"^https://","uniqueKey":"input_reference.oneOf.0","typeLabel":"string\u003curi>"},{"type":"array","items":{"type":"string","format":"uri","pattern":"^https://","uniqueKey":"input_reference.oneOf.1.items.[INDEX]","typeLabel":"string\u003curi>"},"description":"Reference image URLs. Send one publicly accessible HTTPS image URL per input_reference field. For multiple images, repeat the field in keyframe order, up to 10 URLs. This field accepts URLs only. Keep it separate from first_frame and last_frame.","maxItems":10,"minItems":1,"uniqueKey":"input_reference.oneOf.1","typeLabel":"string\u003curi>[]"}],"uniqueKey":"input_reference","typeLabel":"string\u003curi> | string\u003curi>[]"},"first_frame":{"oneOf":[{"type":"string","description":"Opening-frame image as one publicly accessible HTTPS URL or one PNG or JPEG file. Keep each file at or below 20 MiB (20 × 1024 × 1024 bytes). Send the field once, using either a URL or a file. Pair with last_frame to set both boundaries. Keep frame inputs separate from input_reference.","format":"uri","pattern":"^https://","conditionalRequirements":[{"when":[[{"property":"last_frame"}]]}],"uniqueKey":"first_frame.oneOf.0","typeLabel":"string\u003curi>"},{"type":"string","description":"Opening-frame image as one publicly accessible HTTPS URL or one PNG or JPEG file. Keep each file at or below 20 MiB (20 × 1024 × 1024 bytes). Send the field once, using either a URL or a file. Pair with last_frame to set both boundaries. Keep frame inputs separate from input_reference.","format":"binary","conditionalRequirements":[{"when":[[{"property":"last_frame"}]]}],"uniqueKey":"first_frame.oneOf.1","typeLabel":"file"}],"conditionalRequirements":[{"when":[[{"property":"last_frame"}]]}],"uniqueKey":"first_frame","typeLabel":"string\u003curi> | file"},"last_frame":{"oneOf":[{"type":"string","description":"Closing-frame image as one publicly accessible HTTPS URL or one PNG or JPEG file. Keep each file at or below 20 MiB (20 × 1024 × 1024 bytes). Send the field once, using either a URL or a file. To specify the closing image through this endpoint, send last_frame together with first_frame. Keep frame inputs separate from input_reference.","format":"uri","pattern":"^https://","uniqueKey":"last_frame.oneOf.0","typeLabel":"string\u003curi>"},{"type":"string","description":"Closing-frame image as one publicly accessible HTTPS URL or one PNG or JPEG file. Keep each file at or below 20 MiB (20 × 1024 × 1024 bytes). Send the field once, using either a URL or a file. To specify the closing image through this endpoint, send last_frame together with first_frame. Keep frame inputs separate from input_reference.","format":"binary","uniqueKey":"last_frame.oneOf.1","typeLabel":"file"}],"uniqueKey":"last_frame","typeLabel":"string\u003curi> | file"}},"additionalProperties":false,"conditionallyRequiredProperties":{"first_frame":[{"when":[[{"property":"last_frame"}]]}]},"uniqueKey":"","typeLabel":"object"},"encoding":{"input_reference":{"contentType":"text/plain","style":"form","explode":true},"first_frame":{"contentType":"image/png, image/jpeg, text/plain"},"last_frame":{"contentType":"image/png, image/jpeg, text/plain"}},"examples":{"text_to_video":{"title":"text_to_video","value":{"model":"flux-3","prompt":"A paper boat glides across a still pond while the camera moves forward.","seconds":5,"size":"1280x720"}},"https_image_to_video":{"title":"https_image_to_video","value":{"model":"flux-3","prompt":"Animate the reference scene with a slow camera move and natural motion.","seconds":5,"size":"1280x720","input_reference":"https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png"}},"first_last_frame_urls":{"title":"first_last_frame_urls","value":{"model":"flux-3","prompt":"Move smoothly from the opening to the closing scene.","seconds":5,"size":"1280x720","first_frame":"https://your-image-host/first-frame.png","last_frame":"https://your-image-host/last-frame.png"}},"first_last_frame_files":{"title":"first_last_frame_files","value":{"model":"flux-3","prompt":"Move smoothly from the opening to the closing scene.","seconds":5,"size":"1280x720","first_frame":"@/path/to/first-frame.png","last_frame":"@/path/to/last-frame.png"}},"opening_frame_file":{"title":"opening_frame_file","value":{"model":"flux-3","prompt":"Animate the opening frame with a slow camera move and natural motion.","seconds":5,"size":"1280x720","first_frame":"@/path/to/reference.png"}},"input_reference_url_pair":{"title":"input_reference_url_pair","value":{"model":"flux-3","prompt":"Move smoothly through the supplied reference images in their given order. Preserve recognizable subjects and visual details as the scene changes. Keep the camera movement gentle.","seconds":5,"size":"1280x720","input_reference":["https://apidoc.cometapi.com/images/image/gemini/6100640_569429.png","https://apidoc.cometapi.com/images/image/gemini/6100640_569420.png"]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"00830ab6-048f-4ef6-80f9-3ed4d4a985b6":{"description":"Task created. Store the returned id and poll GET /v1/videos/{task_id}.","content":{"application/json":{"schema":{"type":"object","required":["id","object","model","status","progress","created_at"],"properties":{"id":{"type":"string","description":"Task ID. Use this value as task_id in retrieve and content requests.","example":"\u003ctask_id>","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"type":"string","const":"video","description":"Object type for the asynchronous video task.","isRequired":true,"uniqueKey":"object","typeLabel":"string"},"model":{"type":"string","const":"flux-3","description":"Model ID that the task uses.","isRequired":true,"uniqueKey":"model","typeLabel":"string"},"status":{"type":"string","enum":["queued","in_progress","completed","failed"],"description":"Task lifecycle status. Poll until the value is completed or failed.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"Task progress as a coarse percentage.","isRequired":true,"uniqueKey":"progress","typeLabel":"integer"},"created_at":{"type":"integer","format":"int64","description":"Task creation time as a Unix timestamp in seconds.","isRequired":true,"uniqueKey":"created_at","typeLabel":"integer\u003cint64>"},"task_id":{"type":"string","description":"Compatibility alias for id. This field can be omitted from retrieve responses.","example":"\u003ctask_id>","uniqueKey":"task_id","typeLabel":"string"},"completed_at":{"type":"integer","format":"int64","description":"Task completion time as a Unix timestamp in seconds when the task provides one.","uniqueKey":"completed_at","typeLabel":"integer\u003cint64>"},"expires_at":{"type":"integer","format":"int64","description":"Result expiration time as a Unix timestamp in seconds when the task provides one.","uniqueKey":"expires_at","typeLabel":"integer\u003cint64>"},"video_url":{"type":"string","format":"uri","description":"Video delivery URL. This field appears on completed tasks.","example":"https://media.example.com/flux-3-result.mp4","uniqueKey":"video_url","typeLabel":"string\u003curi>"},"error":{"type":"object","description":"Failure details. This field appears when the task fails.","properties":{"message":{"type":"string","description":"Human-readable failure description.","uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Failure code when the task provides one.","uniqueKey":"error.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"error","typeLabel":"object"}},"additionalProperties":true,"uniqueKey":"","typeLabel":"object"},"example":{"id":"\u003ctask_id>","task_id":"\u003ctask_id>","object":"video","model":"flux-3","status":"queued","progress":0,"created_at":1779938152},"examples":{"Example":{"title":"Example","value":{"id":"\u003ctask_id>","task_id":"\u003ctask_id>","object":"video","model":"flux-3","status":"queued","progress":0,"created_at":1779938152}}},"exampleType":"examples"}},"exampleType":"examples"},"8f61d677-17ff-4b86-adbb-6841848e0619":{"description":"The request is missing a required field or contains an unsupported value.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"482764d1-6eb5-4234-b6ab-7f8d2738fc52":{"description":"The API key is missing or invalid.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"25e8f409-b8e4-471d-8e6b-283e0eddedb5":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Bearer authentication. Use your CometAPI API key.","scopes":[]}}},"servers":{"71b6bab9-1e23-49d0-bbe7-92833d4050e6":{"url":"https://api.cometapi.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer authentication. Use your CometAPI API key.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication. Use your CometAPI API key.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api/openapi/video/flux-3/post-create.openapi.json"},"subdomain":"cometapi","siteName":"CometAPI Documentation","title":"Create a Flux 3 video - CometAPI Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api/video/flux-3/create","matchLevel":0},"zh-Hans":{"href":"/zh-Hans/api/video/flux-3/create","matchLevel":1,"noindex":true},"zh-Hant":{"href":"/zh-Hant/api/video/flux-3/create","matchLevel":1,"noindex":true},"ja":{"href":"/ja/api/video/flux-3/create","matchLevel":1,"noindex":true},"ko":{"href":"/ko/api/video/flux-3/create","matchLevel":1,"noindex":true},"fr":{"href":"/fr/api/video/flux-3/create","matchLevel":1,"noindex":true},"de":{"href":"/de/api/video/flux-3/create","matchLevel":1,"noindex":true},"es":{"href":"/es/api/video/flux-3/create","matchLevel":1,"noindex":true},"it":{"href":"/it/api/video/flux-3/create","matchLevel":1,"noindex":true},"pt":{"href":"/pt/api/video/flux-3/create","matchLevel":1,"noindex":true},"ru":{"href":"/ru/api/video/flux-3/create","matchLevel":1,"noindex":true},"ar":{"href":"/ar/api/video/flux-3/create","matchLevel":1,"noindex":true},"vi":{"href":"/vi/api/video/flux-3/create","matchLevel":1,"noindex":true},"id":{"href":"/id/api/video/flux-3/create","matchLevel":1,"noindex":true},"tr":{"href":"/tr/api/video/flux-3/create","matchLevel":1,"noindex":true},"pl":{"href":"/pl/api/video/flux-3/create","matchLevel":1,"noindex":true},"nl":{"href":"/nl/api/video/flux-3/create","matchLevel":1,"noindex":true},"no":{"href":"/no/api/video/flux-3/create","matchLevel":1,"noindex":true},"uk":{"href":"/uk/api/video/flux-3/create","matchLevel":1,"noindex":true}}},"lastModified":"2026-09-09T11:58:37.605Z","gitLastModified":"2026-09-09T11:43:25.000Z","originalFileLocation":"api/video/flux-3/create.mdx","locale":"en"},"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=\"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.\">\u003cmeta data-mint-head name=\"application-name\" content=\"CometAPI Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cometapi/Jhcr00uAqm6Ci9Vs/_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/cometapi/Jhcr00uAqm6Ci9Vs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cometapi/Jhcr00uAqm6Ci9Vs/_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/cometapi/Jhcr00uAqm6Ci9Vs/_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/cometapi/Jhcr00uAqm6Ci9Vs/_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/cometapi/Jhcr00uAqm6Ci9Vs/_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/cometapi/Jhcr00uAqm6Ci9Vs/_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/cometapi/Jhcr00uAqm6Ci9Vs/_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/cometapi/Jhcr00uAqm6Ci9Vs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a Flux 3 video - CometAPI Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CometAPI Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://apidoc.cometapi.com/api/video/flux-3/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cometapi.mintlify.site/_mintlify/api/og/v2?division=Flux+3\u0026amp;title=Create+a+Flux+3+video\u0026amp;description=Create+a+Flux+3+video+from+text%2C+reference+images%2C+or+first+and+last+frames+with+a+720p+or+1080p+size+preset.\u0026amp;theme=d910b0d04a2d93f2b29ac00c\u0026amp;signature=81525cf5d0a81dd640f95ff19685861572d63668c7ba0dfa875d4aefb1c35f6f\">\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 Flux 3 video - CometAPI Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cometapi.mintlify.site/_mintlify/api/og/v2?division=Flux+3\u0026amp;title=Create+a+Flux+3+video\u0026amp;description=Create+a+Flux+3+video+from+text%2C+reference+images%2C+or+first+and+last+frames+with+a+720p+or+1080p+size+preset.\u0026amp;theme=d910b0d04a2d93f2b29ac00c\u0026amp;signature=81525cf5d0a81dd640f95ff19685861572d63668c7ba0dfa875d4aefb1c35f6f\">\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/cometapi/Jhcr00uAqm6Ci9Vs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CometAPI Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00ACE2\">\u003cmeta data-mint-head name=\"author\" content=\"CometAPI\">\u003cmeta data-mint-head name=\"copyright\" content=\"Copyright 2026 CometAPI\">\u003cmeta data-mint-head name=\"category\" content=\"Technology\">\u003cmeta data-mint-head name=\"distribution\" content=\"global\">\u003cmeta data-mint-head name=\"coverage\" content=\"Worldwide\">\u003clink data-mint-head rel=\"canonical\" href=\"https://apidoc.cometapi.com/api/video/flux-3/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/video/flux-3/create.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://apidoc.cometapi.com/#organization\",\"name\":\"CometAPI Documentation\",\"url\":\"https://apidoc.cometapi.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cometapi/cmhWX83dzrkf2F-2/logo/comet-light.svg?fit=max\u0026auto=format\u0026n=cmhWX83dzrkf2F-2\u0026q=85\u0026s=7ae2fde0df7785d111912bce23157ef2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://apidoc.cometapi.com#website\",\"name\":\"CometAPI Documentation\",\"url\":\"https://apidoc.cometapi.com\",\"publisher\":{\"@id\":\"https://apidoc.cometapi.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://apidoc.cometapi.com/api/video/flux-3/create#webpage\",\"url\":\"https://apidoc.cometapi.com/api/video/flux-3/create\",\"name\":\"Create a Flux 3 video\",\"description\":\"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.\",\"dateModified\":\"2026-09-09T11:43:25.000Z\",\"isPartOf\":{\"@id\":\"https://apidoc.cometapi.com#website\"},\"breadcrumb\":{\"@id\":\"https://apidoc.cometapi.com/api/video/flux-3/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://apidoc.cometapi.com/api/video/flux-3/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Video Models\",\"item\":\"https://apidoc.cometapi.com/api/video\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a Flux 3 video\",\"item\":\"https://apidoc.cometapi.com/api/video/flux-3/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://apidoc.cometapi.com/api/video/flux-3/create#apireference\",\"headline\":\"Create a Flux 3 video\",\"name\":\"Create a Flux 3 video\",\"description\":\"Create a Flux 3 video from text, reference images, or first and last frames with a 720p or 1080p size preset.\",\"url\":\"https://apidoc.cometapi.com/api/video/flux-3/create\",\"mainEntityOfPage\":{\"@id\":\"https://apidoc.cometapi.com/api/video/flux-3/create#webpage\"},\"dateModified\":\"2026-09-09T11:43:25.000Z\",\"keywords\":\"CometAPI, Flux 3, flux-3, video generation API, POST /v1/videos, text to video, image to video\",\"publisher\":{\"@id\":\"https://apidoc.cometapi.com/#organization\"},\"isPartOf\":{\"@id\":\"https://apidoc.cometapi.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CometAPI Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"CometAPI Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api/video/flux-3/create.md","siteName":"CometAPI Documentation","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API","groups":[{"group":"Text Models","icon":"message","root":{"title":"Text and chat APIs","sidebarTitle":"Text and chat APIs","href":"/api/text"},"expanded":false,"pages":[{"title":"Create a chat completion","sidebarTitle":"Create a chat completion","openapi":"api/openapi/text/post-chat.openapi.json POST /v1/chat/completions","href":"/api/text/chat"},{"title":"Create a model response","sidebarTitle":"Create a model response","openapi":"api/openapi/text/post-responses.openapi.json POST /v1/responses","href":"/api/text/responses"},{"title":"Create a Message","sidebarTitle":"Create a Message","openapi":"api/openapi/text/post-anthropic-messages.openapi.json POST /v1/messages","href":"/api/text/anthropic-messages"},{"title":"Generate content","sidebarTitle":"Generate content","openapi":"api/openapi/text/post-gemini-generating-content.openapi.json POST /v1beta/models/{model}:{operator}","href":"/api/text/gemini-generating-content"}]},{"group":"Image Models","icon":"image","root":{"title":"Image generation and editing APIs","sidebarTitle":"Image Models","href":"/api/image/index"},"expanded":false,"pages":[{"group":"OpenAI","pages":[{"title":"Create an image","sidebarTitle":"Create an image","openapi":"api/openapi/image/openai/post-images.openapi.json POST /v1/images/generations","href":"/api/image/openai/images"},{"title":"Retrieve an image generation task","sidebarTitle":"Retrieve image task","openapi":"api/openapi/image/openai/get-image-generation-task.openapi.json GET /v1/images/generations/{task_id}","href":"/api/image/openai/image-generation-task"},{"title":"Create image edit","sidebarTitle":"Create image edit","openapi":"api/openapi/image/openai/post-image-editing.openapi.json POST /v1/images/edits","href":"/api/image/openai/image-editing"}]},{"group":"Gemini","pages":[{"title":"Generate images with Gemini","sidebarTitle":"Generate images with Gemini","openapi":"api/openapi/image/gemini/post-gemini-generates-image.openapi.json POST /v1beta/models/{model}:generateContent","href":"/api/image/gemini/gemini-generates-image"},{"title":"Use Gemini image models","sidebarTitle":"Use Gemini image models","href":"/api/image/gemini/generate-image-guide"}]},{"group":"Grok","pages":[{"title":"Generate images with Grok","sidebarTitle":"Generate images","openapi":"api/openapi/image/grok/post-image-generation.openapi.json POST /v1/images/generations","href":"/api/image/grok/image-generation"},{"title":"Edit images with Grok","sidebarTitle":"Edit images","openapi":"api/openapi/image/grok/post-image-editing.openapi.json POST /v1/images/edits","href":"/api/image/grok/image-editing"}]},{"group":"Kling","pages":[{"title":"Generate images with Kling","sidebarTitle":"Generate images with Kling","openapi":"api/openapi/image/kling/post-image-generation.openapi.json POST /kling/v1/images/generations","href":"/api/image/kling/image-generation"},{"title":"Generate a Kling image from multiple images","sidebarTitle":"Generate a Kling image from multiple images","openapi":"api/openapi/image/kling/post-multi-image-to-image.openapi.json POST /kling/v1/images/multi-image2image","href":"/api/image/kling/multi-image-to-image"},{"title":"Expand an image with Kling","sidebarTitle":"Expand an image with Kling","openapi":"api/openapi/image/kling/post-image-expansion.openapi.json POST /kling/v1/images/editing/expand","href":"/api/image/kling/image-expansion"},{"title":"Create a Kling Omni image task","sidebarTitle":"Create a Kling Omni image task","openapi":"api/openapi/image/kling/post-omni-image.openapi.json POST /kling/v1/images/omni-image","href":"/api/image/kling/omni-image"},{"title":"Get a Kling Omni image task","sidebarTitle":"Get a Kling Omni image task","openapi":"api/openapi/image/kling/get-omni-image.openapi.json GET /kling/v1/images/omni-image/{task_id}","href":"/api/image/kling/omni-image-query"}]},{"group":"Midjourney","pages":[{"title":"Start with Midjourney API","sidebarTitle":"Start with Midjourney API","href":"/api/image/midjourney/midjourney-api-quick-start"},{"group":"Task fetching","pages":[{"title":"List Midjourney tasks","sidebarTitle":"List Midjourney tasks","openapi":"api/openapi/image/midjourney/task-fetching-api/post-list-by-condition.openapi.json POST /mj/task/list-by-condition","href":"/api/image/midjourney/task-fetching-api/list-by-condition"},{"title":"Fetch a Midjourney task","sidebarTitle":"Fetch a Midjourney task","openapi":"api/openapi/image/midjourney/task-fetching-api/get-fetch-single-task.openapi.json GET /mj/task/{id}/fetch","href":"/api/image/midjourney/task-fetching-api/fetch-single-task"}]},{"title":"Create a Midjourney imagine task","sidebarTitle":"Create a Midjourney imagine task","openapi":"api/openapi/image/midjourney/post-imagine.openapi.json POST /mj/submit/imagine","href":"/api/image/midjourney/imagine"},{"title":"Create a Midjourney video task","sidebarTitle":"Create a Midjourney video task","openapi":"api/openapi/image/midjourney/post-submit-video.openapi.json POST /mj/submit/video","href":"/api/image/midjourney/submit-video"},{"title":"Create a Midjourney editor task","sidebarTitle":"Create a Midjourney editor task","openapi":"api/openapi/image/midjourney/post-submit-editor.openapi.json POST /mj/submit/edits","href":"/api/image/midjourney/submit-editor"},{"title":"Create a Midjourney action task","sidebarTitle":"Create a Midjourney action task","openapi":"api/openapi/image/midjourney/post-action.openapi.json POST /mj/submit/action","href":"/api/image/midjourney/action"},{"title":"Create a Midjourney blend task","sidebarTitle":"Create a Midjourney blend task","openapi":"api/openapi/image/midjourney/post-blend.openapi.json POST /mj/submit/blend","href":"/api/image/midjourney/blend"},{"title":"Describe an image with Midjourney","sidebarTitle":"Describe an image with Midjourney","openapi":"api/openapi/image/midjourney/post-describe.openapi.json POST /mj/submit/describe","href":"/api/image/midjourney/describe"},{"title":"Create a Midjourney modal task","sidebarTitle":"Create a Midjourney modal task","openapi":"api/openapi/image/midjourney/post-modal.openapi.json POST /mj/submit/modal","href":"/api/image/midjourney/modal"}]},{"group":"Replicate","pages":[{"title":"Create a Replicate prediction","sidebarTitle":"Create a Replicate prediction","openapi":"api/openapi/image/replicate/post-create-predictions-general.openapi.json POST /replicate/v1/models/{models}/predictions","href":"/api/image/replicate/create-predictions-general"},{"title":"Get a Replicate prediction","sidebarTitle":"Get a Replicate prediction","openapi":"api/openapi/image/replicate/get-replicate-query.openapi.json GET /replicate/v1/predictions/{id}","href":"/api/image/replicate/replicate-query"}]},{"group":"Seedream","pages":[{"title":"Create a Seedream image task","sidebarTitle":"Create image task","openapi":"api/openapi/image/seededit-seedream/post-bytedance-image-generation.openapi.json POST /v1/images/generations","href":"/api/image/seededit-seedream/bytedance-image-generation"},{"title":"Retrieve a Seedream image task","sidebarTitle":"Retrieve image task","openapi":"api/openapi/image/seededit-seedream/get-bytedance-image-generation-task.openapi.json GET /v1/images/generations/{task_id}","href":"/api/image/seededit-seedream/bytedance-image-generation-task"}]},{"group":"Flux","pages":[{"title":"Generate a FLUX image","sidebarTitle":"Generate a FLUX image","openapi":"api/openapi/image/flux/post-flux-generate-image.openapi.json POST /flux/v1/{model}","href":"/api/image/flux/flux-generate-image"},{"title":"Get a FLUX image result","sidebarTitle":"Get a FLUX image result","openapi":"api/openapi/image/flux/get-flux-query.openapi.json GET /flux/v1/get_result","href":"/api/image/flux/flux-query"}]}]},{"group":"Video Models","icon":"video","root":{"title":"Video generation APIs","sidebarTitle":"Video Models","href":"/api/video/index"},"expanded":false,"pages":[{"group":"Seedance","pages":[{"title":"Create a Seedance video","sidebarTitle":"Create a Seedance video","openapi":"api/openapi/video/seedance/post-seedance-create.openapi.json POST /v1/videos","href":"/api/video/seedance/create"},{"title":"Retrieve a Seedance video","sidebarTitle":"Retrieve a Seedance video","openapi":"api/openapi/video/seedance/get-seedance-query.openapi.json GET /v1/videos/{id}","href":"/api/video/seedance/query"}]},{"group":"HappyHorse","pages":[{"title":"Create a HappyHorse video","sidebarTitle":"Create a HappyHorse video","openapi":"api/openapi/video/happyhorse/post-create.openapi.json POST /v1/videos","href":"/api/video/happyhorse/create"},{"title":"Retrieve a HappyHorse video","sidebarTitle":"Retrieve a HappyHorse video","openapi":"api/openapi/video/happyhorse/get-retrieve.openapi.json GET /v1/videos/{task_id}","href":"/api/video/happyhorse/retrieve"},{"title":"Download HappyHorse video content","sidebarTitle":"Download HappyHorse video content","openapi":"api/openapi/video/happyhorse/get-retrieve-content.openapi.json GET /v1/videos/{task_id}/content","href":"/api/video/happyhorse/retrieve-content"}]},{"group":"MiniMax H3","pages":[{"title":"Create a MiniMax H3 video","sidebarTitle":"Create a MiniMax H3 video","openapi":"api/openapi/video/minimax-h3/post-create.openapi.json POST /v1/videos","href":"/api/video/minimax-h3/create"},{"title":"Retrieve a MiniMax H3 video","sidebarTitle":"Retrieve a MiniMax H3 video","openapi":"api/openapi/video/minimax-h3/get-retrieve.openapi.json GET /v1/videos/{task_id}","href":"/api/video/minimax-h3/retrieve"},{"title":"Download MiniMax H3 video content","sidebarTitle":"Download MiniMax H3 video content","openapi":"api/openapi/video/minimax-h3/get-retrieve-content.openapi.json GET /v1/videos/{task_id}/content","description":"Download the completed MP4 file for a MiniMax H3 video task through the unified content route.","href":"/api/video/minimax-h3/retrieve-content"}]},{"group":"Flux 3","pages":[{"title":"Create a Flux 3 video","sidebarTitle":"Create a Flux 3 video","openapi":"api/openapi/video/flux-3/post-create.openapi.json POST /v1/videos","href":"/api/video/flux-3/create"},{"title":"Retrieve a Flux 3 video","sidebarTitle":"Retrieve a Flux 3 video","openapi":"api/openapi/video/flux-3/get-retrieve.openapi.json GET /v1/videos/{task_id}","description":"Retrieve a Flux 3 video task by task ID, including its status, progress, timestamps, result URL, or failure details.","href":"/api/video/flux-3/retrieve"},{"title":"Download Flux 3 video content","sidebarTitle":"Download Flux 3 video content","openapi":"api/openapi/video/flux-3/get-retrieve-content.openapi.json GET /v1/videos/{task_id}/content","href":"/api/video/flux-3/retrieve-content"}]},{"group":"Veo 3","pages":[{"title":"Create a Veo 3 video","sidebarTitle":"Create a Veo 3 video","openapi":"api/openapi/video/veo3/post-create.openapi.json POST /v1/videos","href":"/api/video/veo3/create"},{"title":"Retrieve a Veo 3 video","sidebarTitle":"Retrieve a Veo 3 video","openapi":"api/openapi/video/veo3/get-retrieve.openapi.json GET /v1/videos/{video_id}","href":"/api/video/veo3/retrieve"}]},{"group":"Wan","pages":[{"title":"Create a Wan video","sidebarTitle":"Create a Wan video","openapi":"api/openapi/video/wan/post-create.openapi.json POST /v1/videos","href":"/api/video/wan/create"},{"title":"Retrieve a Wan video","sidebarTitle":"Retrieve a Wan video","openapi":"api/openapi/video/wan/get-retrieve.openapi.json GET /v1/videos/{task_id}","href":"/api/video/wan/retrieve"},{"title":"Download Wan video content","sidebarTitle":"Download Wan video content","openapi":"api/openapi/video/wan/get-retrieve-content.openapi.json GET /v1/videos/{task_id}/content","href":"/api/video/wan/retrieve-content"}]},{"group":"xAI","pages":[{"title":"Create a video with Grok","sidebarTitle":"Create a Grok video","openapi":"api/openapi/video/xai/post-video-generation.openapi.json POST /grok/v1/videos/generations","href":"/api/video/xai/video-generation"},{"title":"Create an xAI video edit","sidebarTitle":"Create an xAI video edit","openapi":"api/openapi/video/xai/post-video-edit.openapi.json POST /grok/v1/videos/edits","href":"/api/video/xai/video-edit"},{"title":"Get xAI video results","sidebarTitle":"Get xAI video results","openapi":"api/openapi/video/xai/get-get-video-generation-results.openapi.json GET /grok/v1/videos/{request_id}","href":"/api/video/xai/get-video-generation-results"}]},{"group":"Vidu","pages":[{"title":"Create a Vidu video","sidebarTitle":"Create a Vidu video","openapi":"api/openapi/video/vidu/post-create.openapi.json POST /v1/videos","href":"/api/video/vidu/create"},{"title":"Retrieve a Vidu video","sidebarTitle":"Retrieve a Vidu video","openapi":"api/openapi/video/vidu/get-retrieve.openapi.json GET /v1/videos/{task_id}","href":"/api/video/vidu/retrieve"},{"title":"Download Vidu video content","sidebarTitle":"Download Vidu video content","openapi":"api/openapi/video/vidu/get-retrieve-content.openapi.json GET /v1/videos/{task_id}/content","href":"/api/video/vidu/retrieve-content"}]},{"group":"Omni","tag":"Beta","pages":[{"title":"Create an Omni video from text, image, or video","sidebarTitle":"Create an Omni video","openapi":"api/openapi/video/omni/post-create.openapi.json POST /v1/videos","href":"/api/video/omni/create"},{"title":"Retrieve an Omni video","sidebarTitle":"Retrieve an Omni video","openapi":"api/openapi/video/omni/get-retrieve.openapi.json GET /v1/videos/{task_id}","href":"/api/video/omni/retrieve"},{"title":"Download Omni video content","sidebarTitle":"Download Omni video content","openapi":"api/openapi/video/omni/get-retrieve-content.openapi.json GET /v1/videos/{task_id}/content","href":"/api/video/omni/retrieve-content"}]},{"group":"Kling","pages":[{"group":"Multimodal video editing","pages":[{"title":"Initialize a Kling editing session","sidebarTitle":"Initialize a Kling editing session","openapi":"api/openapi/video/kling/multimodal-video-editing/post-initialize-video-for-editing.openapi.json POST /kling/v1/videos/multi-elements/init-selection","href":"/api/video/kling/multimodal-video-editing/initialize-video-for-editing"},{"title":"Add Kling video selection","sidebarTitle":"Add Kling video selection","openapi":"api/openapi/video/kling/multimodal-video-editing/post-add-video-selection.openapi.json POST /kling/v1/videos/multi-elements/add-selection","href":"/api/video/kling/multimodal-video-editing/add-video-selection"},{"title":"Delete Kling video selection","sidebarTitle":"Delete Kling video selection","openapi":"api/openapi/video/kling/multimodal-video-editing/post-delete-video-selection.openapi.json POST /kling/v1/videos/multi-elements/delete-selection","href":"/api/video/kling/multimodal-video-editing/delete-video-selection"},{"title":"Clear Kling video selection","sidebarTitle":"Clear Kling video selection","openapi":"api/openapi/video/kling/multimodal-video-editing/post-clear-video-selection.openapi.json POST /kling/v1/videos/multi-elements/clear-selection","href":"/api/video/kling/multimodal-video-editing/clear-video-selection"},{"title":"Preview Kling video selection","sidebarTitle":"Preview Kling video selection","openapi":"api/openapi/video/kling/multimodal-video-editing/post-preview-selected-video-area.openapi.json POST /kling/v1/videos/multi-elements/preview-selection","href":"/api/video/kling/multimodal-video-editing/preview-selected-video-area"},{"title":"Create a Kling multimodal edit task","sidebarTitle":"Create a Kling multimodal edit task","openapi":"api/openapi/video/kling/multimodal-video-editing/post-create-task.openapi.json POST /kling/v1/videos/multi-elements","href":"/api/video/kling/multimodal-video-editing/create-task"}]},{"group":"Model routes","pages":[{"title":"Create a Kling text-to-video task by model","sidebarTitle":"Text to video","openapi":"api/openapi/video/kling/model-routes/post-text-to-video.openapi.json POST /text-to-video/{model}","href":"/api/video/kling/model-routes/text-to-video"},{"title":"Create a Kling image-to-video task by model","sidebarTitle":"Image to video","openapi":"api/openapi/video/kling/model-routes/post-image-to-video.openapi.json POST /image-to-video/{model}","href":"/api/video/kling/model-routes/image-to-video"},{"title":"Create a Kling Omni video","sidebarTitle":"Omni video","openapi":"api/openapi/video/kling/model-routes/post-omni-video.openapi.json POST /omni-video/{model}","href":"/api/video/kling/model-routes/omni-video"},{"title":"Create a Kling motion-control video","sidebarTitle":"Motion control","openapi":"api/openapi/video/kling/model-routes/post-motion-control.openapi.json POST /motion-control/{model}","href":"/api/video/kling/model-routes/motion-control"},{"title":"Get a Kling model-route task","sidebarTitle":"Get a Kling task","openapi":"api/openapi/video/kling/model-routes/get-tasks.openapi.json GET /tasks","href":"/api/video/kling/model-routes/tasks"}]},{"title":"Create a Kling text-to-video task","sidebarTitle":"Create a Kling text-to-video task","openapi":"api/openapi/video/kling/post-text-to-video.openapi.json POST /kling/v1/videos/text2video","href":"/api/video/kling/text-to-video"},{"title":"Create a Kling image-to-video task","sidebarTitle":"Create a Kling image-to-video task","openapi":"api/openapi/video/kling/post-image-to-video.openapi.json POST /kling/v1/videos/image2video","href":"/api/video/kling/image-to-video"},{"title":"Create a Kling Motion Control task","sidebarTitle":"Create a Kling Motion Control task","openapi":"api/openapi/video/kling/post-motion-control.openapi.json POST /kling/v1/videos/motion-control","href":"/api/video/kling/motion-control"},{"title":"Create a Kling multi-image video task","sidebarTitle":"Create a Kling multi-image video task","openapi":"api/openapi/video/kling/post-multi-image-to-video.openapi.json POST /kling/v1/videos/multi-image2video","href":"/api/video/kling/multi-image-to-video"},{"title":"Extend a Kling video","sidebarTitle":"Extend a Kling video","openapi":"api/openapi/video/kling/post-video-extension.openapi.json POST /kling/v1/videos/video-extend","href":"/api/video/kling/video-extension"},{"title":"Create Kling speech","sidebarTitle":"Create Kling speech","openapi":"api/openapi/video/kling/post-tts.openapi.json POST /kling/v1/audio/tts","href":"/api/video/kling/tts"},{"title":"Create a Kling avatar video","sidebarTitle":"Create a Kling avatar video","openapi":"api/openapi/video/kling/post-avatar.openapi.json POST /kling/v1/videos/avatar/image2video","href":"/api/video/kling/avatar"},{"title":"Identify faces for Kling lip-sync","sidebarTitle":"Identify faces for Kling lip-sync","openapi":"api/openapi/video/kling/post-lip-sync.openapi.json POST /kling/v1/videos/identify-face","href":"/api/video/kling/lip-sync"},{"title":"Create a Kling advanced lip-sync task","sidebarTitle":"Create a Kling advanced lip-sync task","openapi":"api/openapi/video/kling/post-counterpart-creating-tasks.openapi.json POST /kling/v1/videos/advanced-lip-sync","href":"/api/video/kling/counterpart-creating-tasks"},{"title":"Apply Kling video effects","sidebarTitle":"Apply Kling video effects","openapi":"api/openapi/video/kling/post-video-effects.openapi.json POST /kling/v1/videos/effects","href":"/api/video/kling/video-effects"},{"title":"Create Kling text-to-audio","sidebarTitle":"Create Kling text-to-audio","openapi":"api/openapi/video/kling/post-text-to-audio.openapi.json POST /kling/v1/audio/text-to-audio","href":"/api/video/kling/text-to-audio"},{"title":"Create Kling video-to-audio","sidebarTitle":"Create Kling video-to-audio","openapi":"api/openapi/video/kling/post-video-to-audio.openapi.json POST /kling/v1/audio/video-to-audio","href":"/api/video/kling/video-to-audio"},{"title":"Recognize images with Kling","sidebarTitle":"Recognize images with Kling","openapi":"api/openapi/video/kling/post-image-recognize.openapi.json POST /kling/v1/videos/image-recognize","href":"/api/video/kling/image-recognize"},{"title":"Get a Kling task","sidebarTitle":"Get a Kling task","openapi":"api/openapi/video/kling/get-individual-queries.openapi.json GET /kling/v1/{action}/{action2}/{task_id}","href":"/api/video/kling/individual-queries"},{"title":"Create a Kling Omni video","sidebarTitle":"Create a Kling Omni video","openapi":"api/openapi/video/kling/post-omni-video.openapi.json POST /kling/v1/videos/omni-video","href":"/api/video/kling/omni-video"},{"title":"Get a Kling Omni video","sidebarTitle":"Get a Kling Omni video","openapi":"api/openapi/video/kling/get-omni-query.openapi.json GET /kling/v1/videos/omni-video/{task_id}","href":"/api/video/kling/omni-query"},{"title":"Use Kling callback URLs","sidebarTitle":"Use Kling callback URLs","href":"/api/video/kling/callback_url"}]},{"group":"Runway","pages":[{"title":"Runway API overview","sidebarTitle":"Overview","href":"/api/video/runway/overview"},{"group":"Images","pages":[{"title":"Create a Runway image","sidebarTitle":"Create a Runway image","openapi":"api/openapi/video/runway/official-format/post-generate-an-image-from-text.openapi.json POST /runwayml/v1/text_to_image","href":"/api/video/runway/official-format/generate-an-image-from-text"}]},{"group":"Videos","pages":[{"title":"Create a Runway image-to-video task","sidebarTitle":"Create a Runway image-to-video task","openapi":"api/openapi/video/runway/official-format/post-runway-images-raw-video.openapi.json POST /runwayml/v1/image_to_video","href":"/api/video/runway/official-format/runway-images-raw-video"},{"title":"Create a Runway text-to-video task","sidebarTitle":"Create a Runway text-to-video task","openapi":"api/openapi/video/runway/official-format/post-generate-a-video-from-text.openapi.json POST /runwayml/v1/text_to_video","href":"/api/video/runway/official-format/generate-a-video-from-text"},{"title":"Create a Runway video-to-video task","sidebarTitle":"Create a Runway video-to-video task","openapi":"api/openapi/video/runway/official-format/post-generate-a-video-from-a-video.openapi.json POST /runwayml/v1/video_to_video","href":"/api/video/runway/official-format/generate-a-video-from-a-video"},{"title":"Create a Runway character performance","sidebarTitle":"Create a Runway character performance","openapi":"api/openapi/video/runway/official-format/post-control-a-character.openapi.json POST /runwayml/v1/character_performance","href":"/api/video/runway/official-format/control-a-character"},{"title":"Upscale a Runway video","sidebarTitle":"Upscale a Runway video","openapi":"api/openapi/video/runway/official-format/post-upscale-a-video.openapi.json POST /runwayml/v1/video_upscale","href":"/api/video/runway/official-format/upscale-a-video"}]},{"group":"Audio","pages":[{"title":"Generate Runway sound effects","sidebarTitle":"Generate Runway sound effects","openapi":"api/openapi/video/runway/official-format/post-generate-sound-effects.openapi.json POST /runwayml/v1/sound_effect","href":"/api/video/runway/official-format/generate-sound-effects"},{"title":"Generate Runway speech from text","sidebarTitle":"Generate Runway speech from text","openapi":"api/openapi/video/runway/official-format/post-generate-speech-from-text.openapi.json POST /runwayml/v1/text_to_speech","href":"/api/video/runway/official-format/generate-speech-from-text"},{"title":"Convert Runway speech","sidebarTitle":"Convert Runway speech","openapi":"api/openapi/video/runway/official-format/post-convert-speech.openapi.json POST /runwayml/v1/speech_to_speech","href":"/api/video/runway/official-format/convert-speech"},{"title":"Dub Runway audio","sidebarTitle":"Dub Runway audio","openapi":"api/openapi/video/runway/official-format/post-dub-audio.openapi.json POST /runwayml/v1/voice_dubbing","href":"/api/video/runway/official-format/dub-audio"},{"title":"Isolate a Runway voice","sidebarTitle":"Isolate a Runway voice","openapi":"api/openapi/video/runway/official-format/post-isolate-voice.openapi.json POST /runwayml/v1/voice_isolation","href":"/api/video/runway/official-format/isolate-voice"}]},{"group":"Tasks","pages":[{"title":"Get a Runway task","sidebarTitle":"Get a Runway task","openapi":"api/openapi/video/runway/official-format/get-runway-to-get-task-details.openapi.json GET /runwayml/v1/tasks/{id}","href":"/api/video/runway/official-format/runway-to-get-task-details"}]}]}]},{"group":"Audio Models","icon":"volume-high","root":{"title":"Audio APIs","sidebarTitle":"Audio Models","href":"/api/audio/index"},"expanded":false,"pages":[{"title":"Create speech","sidebarTitle":"Create speech","openapi":"api/openapi/audio/post-create-speech.openapi.json POST /v1/audio/speech","href":"/api/audio/create-speech"},{"title":"Create transcription","sidebarTitle":"Create transcription","openapi":"api/openapi/audio/post-create-transcription.openapi.json POST /v1/audio/transcriptions","href":"/api/audio/create-transcription"},{"title":"Create translation","sidebarTitle":"Create translation","openapi":"api/openapi/audio/post-create-translation.openapi.json POST /v1/audio/translations","href":"/api/audio/create-translation"}]},{"group":"Embeddings","icon":"database","root":{"title":"Embeddings API","sidebarTitle":"Embeddings","href":"/api/embeddings/index"},"expanded":false,"pages":[{"title":"Create embeddings","sidebarTitle":"Create embeddings","openapi":"api/openapi/text/post-embeddings.openapi.json POST /v1/embeddings","href":"/api/text/embeddings"}]},{"group":"Content moderation","icon":"shield-check","expanded":false,"pages":[{"title":"Create a moderation","sidebarTitle":"Create a moderation","openapi":"api/openapi/content-moderation/create-moderation.openapi.json POST /v1/moderations","href":"/api/content-moderation/create-moderation"}]},{"group":"API keys","icon":"key","expanded":false,"pages":[{"title":"Get current API key","sidebarTitle":"Get current API key","openapi":"api/openapi/api-keys/get-current-api-key.openapi.json GET /api/usage/token","href":"/api/api-keys/get-current-api-key"},{"title":"List API keys","sidebarTitle":"List API keys","openapi":"api/openapi/api-keys/list-api-keys.openapi.json GET /api/token/","href":"/api/api-keys/list-api-keys"},{"title":"Create an API key","sidebarTitle":"Create an API key","openapi":"api/openapi/api-keys/create-api-key.openapi.json POST /api/token/","href":"/api/api-keys/create-api-key"},{"title":"Retrieve an API key","sidebarTitle":"Retrieve an API key","openapi":"api/openapi/api-keys/get-api-key.openapi.json GET /api/token/{id}","href":"/api/api-keys/get-api-key"},{"title":"Delete an API key","sidebarTitle":"Delete an API key","openapi":"api/openapi/api-keys/delete-api-key.openapi.json DELETE /api/token/{id}","href":"/api/api-keys/delete-api-key"},{"title":"Update an API key","sidebarTitle":"Update an API key","openapi":"api/openapi/api-keys/update-api-key.openapi.json PUT /api/token/","href":"/api/api-keys/update-api-key"}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations"}]}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-Hans/api/video/flux-3/create"}]},{"language":"zh-Hant","pages":[{"title":"zh-Hant","href":"/zh-Hant/api/video/flux-3/create"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/api/video/flux-3/create"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/api/video/flux-3/create"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/api/video/flux-3/create"}]},{"language":"de","pages":[{"title":"de","href":"/de/api/video/flux-3/create"}]},{"language":"es","pages":[{"title":"es","href":"/es/api/video/flux-3/create"}]},{"language":"it","pages":[{"title":"it","href":"/it/api/video/flux-3/create"}]},{"language":"pt","pages":[{"title":"pt","href":"/pt/api/video/flux-3/create"}]},{"language":"ru","pages":[{"title":"ru","href":"/ru/api/video/flux-3/create"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/api/video/flux-3/create"}]},{"language":"vi","pages":[{"title":"vi","href":"/vi/api/video/flux-3/create"}]},{"language":"id","pages":[{"title":"id","href":"/id/api/video/flux-3/create"}]},{"language":"tr","pages":[{"title":"tr","href":"/tr/api/video/flux-3/create"}]},{"language":"pl","pages":[{"title":"pl","href":"/pl/api/video/flux-3/create"}]},{"language":"nl","pages":[{"title":"nl","href":"/nl/api/video/flux-3/create"}]},{"language":"no","pages":[{"title":"no","href":"/no/api/video/flux-3/create"}]},{"language":"uk","pages":[{"title":"uk","href":"/uk/api/video/flux-3/create"}]}]},"basePath":"","title":"Create a Flux 3 video - CometAPI Documentation","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-DTNSD-0M.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}