Flux 3 icon

Flux 3 API

Black Forest Labs' first video model through one unified API. Up to 20 seconds of 720p or 1080p video with synchronized audio, from a prompt, up to 10 images, or a clip you want to continue. A single REST endpoint, async jobs, and webhooks.

Integrate Flux 3 with a single API call — one key, one unified endpoint, and shared billing across every model on Apiframe.

model: "flux-3"

What's special about Flux 3

Pay per second of video

Billing scales with the clip you ask for: 29 credits ($0.29) per second at 720p and 49 credits ($0.49) per second at 1080p, audio included. A 5-second 720p clip is 145 credits ($1.45); a 10-second 1080p clip is 490 credits ($4.90).

Audio in the same pass

Ambient sound, speech, and effects are generated with the video and synchronized to it, at no extra cost. Turn it off with a single flag when you want a silent clip.

Up to 20 seconds in one generation

Ask for any whole number of seconds from 5 to 20, or let the model choose a length that fits the content.

Storyboard from up to 10 images

One image opens the clip pixel for pixel, two set the first and last frame, and three or more become keyframes spread evenly across the timeline.

Continue a shot, then chain it

Pass a finished mp4 as start_video and Flux 3 picks up from its final frames, so you can build sequences well past the 20-second per-generation limit.

Cheap drafts while you iterate

Draft mode returns a fast 720p preview at 10 credits ($0.10) per second — roughly a third of the full-quality rate — so you can test prompts before paying for final quality.

Prompts to try with Flux 3

Example prompts you can run through the Flux 3 API on Apiframe.

A lighthouse keeper climbs the spiral stairs at dawn, waves crashing below, wind and gulls in the background

A street food vendor plates noodles under warm lamplight, steam rising, sizzle and chatter around the stall

A slow dolly through an empty theatre as the house lights fade up, dust in the beams, distant orchestra tuning

Aerial shot rising over pine forest into low cloud, wind building on the soundtrack

Overview

Endpoint
POST /v2/videos/generate
Model ID
flux-3
Params key
flux3Params
Modality
Video
Provider
Black Forest Labs
Avg. completion
~240s

Capabilities

Aspect ratiosauto, 16:9, 21:9, 2:1, 4:3, 1:1, 3:4, 9:16
Resolutions720p, 1080p
Durations5s, 6s, 7s, 8s, 9s, 10s, 11s, 12s, 13s, 14s, 15s, 16s, 17s, 18s, 19s, 20s
Image inputSupported
AudioSupported
Avg. time~240s

Quick start

Send a single POST /v2/videos/generate request with your API key to generate with Flux 3. The call returns a jobId you can poll or receive via webhook.

curl -X POST https://api.apiframe.ai/v2/videos/generate \
  -H "X-API-Key: afk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
        "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
        "model": "flux-3",
        "flux3Params": {
            "images": [
                "https://example.com/input.jpg"
            ],
            "start_video": "https://example.com/input.jpg",
            "resolution": "720p",
            "generate_audio": true
        }
    }'
import requests

response = requests.post(
    "https://api.apiframe.ai/v2/videos/generate",
    headers={
        "X-API-Key": "afk_your_api_key_here",
        "Content-Type": "application/json",
    },
    json={
        "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
        "model": "flux-3",
        "flux3Params": {
            "images": [
                "https://example.com/input.jpg"
            ],
            "start_video": "https://example.com/input.jpg",
            "resolution": "720p",
            "generate_audio": True
        }
    },
)
print(response.json())  # { "jobId": "...", "status": "QUEUED" }
const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
  method: "POST",
  headers: {
    "X-API-Key": "afk_your_api_key_here",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
    "model": "flux-3",
    "flux3Params": {
      "images": [
        "https://example.com/input.jpg"
      ],
      "start_video": "https://example.com/input.jpg",
      "resolution": "720p",
      "generate_audio": true
    }
  }),
});
const { jobId } = await response.json();
console.log(jobId);

Response & job lifecycle

Generation is asynchronous. A successful submission returns 202 Accepted with a jobId. Poll GET /v2/jobs/{id} (or supply a webhook_url) until the status is COMPLETED; the result field then holds the output URL(s).

1. Submission response (202)

{
  "jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
  "status": "QUEUED"
}

2. Poll for the result

curl https://api.apiframe.ai/v2/jobs/JOB_ID \
  -H "X-API-Key: afk_your_api_key_here"
import requests, time

while True:
    job = requests.get(
        "https://api.apiframe.ai/v2/jobs/JOB_ID",
        headers={"X-API-Key": "afk_your_api_key_here"},
    ).json()
    if job["status"] in ("COMPLETED", "FAILED"):
        break
    time.sleep(2)
print(job["result"])
let job;
do {
  await new Promise((r) => setTimeout(r, 2000));
  job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
    headers: { "X-API-Key": "afk_your_api_key_here" },
  }).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);

Input schema

Request parameters accepted by the Flux 3 endpoint. Model-specific options are nested under the params object shown below.

Parameter Type Required Default Allowed / range Description
prompt string required Text description of what to generate.
model string required "flux-3" "flux-3" The model identifier for this endpoint.
flux3Params.images string[] (URLs) optional None = text-to-video, one opens the clip, two start and end it, three or more become a storyboard (pick a duration).
flux3Params.start_video string (URL) optional Continue a clip from its final frames. Cannot be combined with images.
flux3Params.resolution string optional "720p" "720p", "1080p" Resolution
flux3Params.generate_audio boolean optional true Synchronized ambient sound, speech, and effects. On by default.
flux3Params.draft boolean optional false Fast, low-cost 720p preview for iterating on a prompt.

Frequently Asked Questions

Common questions about the Flux 3 API.

How long can a Flux 3 video be?

Any whole number of seconds from 5 to 20 in a single generation. Omit the duration and the model picks a length that fits your prompt — that request is billed at the 20-second maximum, so pass an explicit duration for exact pricing. To go longer, pass a finished clip as start_video and chain generations together.

What does Flux 3 cost on Apiframe?

It is billed per second of video: 29 credits ($0.29) per second at 720p and 49 credits ($0.49) per second at 1080p, with audio included. Draft previews are 10 credits ($0.10) per second. Continuing an existing video costs 70 credits ($0.70) per second at 720p and 90 credits ($0.90) per second at 1080p. Omitting the duration is billed at the 20-second maximum.

Does it generate audio?

Yes. Synchronized ambient sound, speech, and effects are produced in the same pass as the video and are on by default, at no extra charge. Set generate_audio to false for a silent clip.

How do I control the first and last frame?

Pass images in flux3Params. One image opens the clip as its first frame, shown pixel for pixel. Two images set the start and the end. Three or more (up to 10) act as a storyboard, evenly spaced across the clip — that mode needs an explicit duration.

Can I extend a video I already generated?

Yes. Pass its URL as flux3Params.start_video and Flux 3 continues from the final frames. The input must be an mp4 of at most 50MB and 15 seconds, and it cannot be combined with images.

How is Flux 3 different from Flux 2?

Flux 2 is an image model. Flux 3 is Black Forest Labs’ multimodal model built on their Self-Flow architecture, trained across images, video, and audio, and it outputs video with sound.

What resolutions and aspect ratios does it support?

720p or 1080p, in 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, or 9:16. Leave the aspect ratio on auto and the model picks one from your prompt and inputs.

Still have questions?

Start building with the Flux 3 API

Get your API key and integrate Flux 3 in minutes — Pay-as-you-go.

Free credits to start
One API for every model
Webhooks, SDKs & idempotency
No provider account required

Questions? Join our Discord or contact sales.