Skip to main content
POST
FLUX 3 Video
FLUX 3 Video is Black Forest Labs’ video model. It generates 5–20 second clips with synchronized audio from text, from 1–10 ordered keyframes, or from a continuation video. This page covers the standard tier flux-3-video and the draft tier flux-3-video-draft: the two take the same generation parameters, and the draft tier is hd only, lower quality and cheaper. A finished draft can be turned into the final video with finalize on flux-3-video.

Quick start

A successful submission returns a task_id. Poll GET /v1/tasks/{task_id} for the result, wait inside the call with Prefer: wait, or configure a webhook. Chaining a final render: submit action: "generate" on flux-3-video-draft and keep the task_id; once it is completed, pass that task_id as ref_task_id on an action: "finalize" request to flux-3-video. Prompt, duration, aspect ratio and assets come from the draft; only resolution can change.

Request parameters

string
required
One of two: flux-3-video or flux-3-video-draft.
string
default:"generate"
  • generate — generate a video, on both tiers. Text, keyframe and continuation modes follow the assets you send.
  • finalize — turn a draft into the final video, flux-3-video only; ref_task_id is required.
string
Description of the video; required under action: "generate"; cannot be sent under action: "finalize".
string[]
Keyframe images, 1–10, where order carries meaning: one image is the start frame, two are start and end frames, and with 3–10 the first and last are start and end while the middle frames are spaced evenly in time. Cannot be combined with video_urls. Cannot be sent under action: "finalize".
string[]
Continuation video, at most one clip, up to 20 seconds. With it set, the model continues from that clip. Cannot be sent under action: "finalize".
string
default:"hd"
Output resolution. flux-3-video supports hd and fhd (also under finalize); flux-3-video-draft supports hd only.
integer
default:"5"
Output length in seconds, any integer 5–20. Cannot be sent under action: "finalize", which keeps the draft’s length.
string
default:"auto"
Aspect ratio: 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16, or auto (the model chooses from the prompt and assets).
boolean
default:"true"
Whether to generate synchronized audio. Set false for a silent video; the price is the same.
integer
default:"2"
Safety tolerance 0–4; higher is more permissive. action: "generate" only.
string
The draft to turn into the final video; required under action: "finalize". Use the task_id of a completed flux-3-video-draft task in your account.
See Submit Task for callback_url, callback_events, Prefer: wait, Idempotency-Key, and the maximum-cost header. Neither tier supports n, seed, quality, negative_prompt, first_frame_image or audio_urls. Any other parameter returns 400 and is not billed. Under action: "finalize", aspect_ratio and generate_audio have no effect.

Limits

Pricing

Both tiers are billed by resolution tier × output seconds. With video_urls (continuation), the same resolution’s continuation tier applies instead, which is above the plain tier; the continuation video’s own seconds are not billed. finalize is charged as its own final render; the draft fee is not credited. generate_audio, aspect_ratio, keyframe count and prompt length do not affect the price.
Per-model rates are in price_config on GET /v1/models, and in the console’s Model Market.What a single call actually cost is the cost field on the task response — an integer quota at 500,000 quota = 1 USD.
You are only billed for a successfully generated video. Failed and cancelled tasks, and tasks that return no usable video, are refunded in full. The final charge is the cost field on the task response — an integer quota, not dollars.

Response

Completed task
Generated videos are returned in result.videos; url is an array and expires_at is when the video link expires. See Query Task Status for the full field reference.

Available models