API

Manage your API access and requests.

Wan 3.0 · Documentation
Docs Models

Wan 3.0

Generate videos from text, frames, or multimodal references.

POST
/api/v1/generations

Example request

Set your FLUX_API_KEY before running. See the parameters below for supported settings.

cURL
curl https://api.flux-context.org/api/v1/generations \
  -H "Authorization: Bearer $FLUX_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "wan3",
  "input": {
    "mode": "text-to-video",
    "prompt": "A calm seaside sunrise with gentle camera movement",
    "resolution": "480p",
    "duration": 4,
    "sound": false,
    "aspect_ratio": "16:9"
  }
}'

Parameters

Set model to wan3. These fields belong inside input.

ParameterDescription
resolution
string · Optional
Output resolution tier. Values are case-sensitive.
480p720p1080p
Default: 720p
aspect_ratio
string · Optional
Output proportions; see mode constraints below.
auto16:94:31:13:49:16
Default: auto
sound
boolean · Optional
Generate sound with the video. This is not a reference audio input.
Default: true
watermark
boolean · Optional
Whether to request a watermark.
Default: false
mode
string · Required
Choose a supported generation mode.
text-to-videoimage-to-videoreference-to-video
prompt
string · Optional
Describe the desired output. Maximum 5,000 characters.
Default:
image_urls
string[] · Optional
Public HTTPS reference images. Video image order and count depend on mode. Up to 10 items.
video_urls
string[] · Optional
Public HTTPS MP4 or MOV references. Flux measures duration before charging. Maximum file size 200 MiB. Up to 5 items.
audio_urls
string[] · Optional
Public HTTPS MP3, WAV or M4A references. Flux measures duration before charging. Maximum file size 15 MiB. Audio is not billed separately. Up to 5 items.
reference_intent
string · Optional
Generate new content or edit a reference video. See model constraints for duration behavior.
generateedit
Default: generate
duration
integer · Optional
Output duration in seconds. See model constraints for editing and automatic duration. Range: 2–30.
Default: 5
seed
integer · Optional
Optional random seed; repeatability is not guaranteed. Range: 0–2147483647.

Reference media

Use your own publicly accessible HTTPS media URLs. Links must remain valid throughout queueing and generation. Base64 and file upload bodies are not supported by this endpoint.

image-to-video

cURL
curl https://api.flux-context.org/api/v1/generations \
  -H "Authorization: Bearer $FLUX_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "wan3",
  "input": {
    "mode": "image-to-video",
    "prompt": "A calm seaside sunrise with gentle camera movement",
    "resolution": "480p",
    "duration": 4,
    "sound": false,
    "aspect_ratio": "auto",
    "image_urls": [
      "https://example.com/front.jpg",
      "https://example.com/back.jpg"
    ]
  }
}'

reference-to-video

cURL
curl https://api.flux-context.org/api/v1/generations \
  -H "Authorization: Bearer $FLUX_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "wan3",
  "input": {
    "mode": "reference-to-video",
    "prompt": "A calm seaside sunrise with gentle camera movement",
    "resolution": "480p",
    "duration": 4,
    "sound": false,
    "aspect_ratio": "auto",
    "image_urls": [
      "https://example.com/front.jpg",
      "https://example.com/back.jpg"
    ]
  }
}'

Video and audio references

cURL
curl https://api.flux-context.org/api/v1/generations \
  -H "Authorization: Bearer $FLUX_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "wan3",
  "input": {
    "mode": "reference-to-video",
    "prompt": "A calm seaside sunrise with gentle camera movement",
    "resolution": "480p",
    "duration": 4,
    "sound": false,
    "aspect_ratio": "auto",
    "image_urls": [
      "https://example.com/front.jpg"
    ],
    "video_urls": [
      "https://example.com/reference.mp4"
    ],
    "audio_urls": [
      "https://example.com/reference.mp3"
    ]
  }
}'

Edit a video

cURL
curl https://api.flux-context.org/api/v1/generations \
  -H "Authorization: Bearer $FLUX_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "wan3",
  "input": {
    "mode": "reference-to-video",
    "prompt": "Edit the video to use a warm sunset background",
    "resolution": "480p",
    "duration": 4,
    "sound": false,
    "aspect_ratio": "auto",
    "image_urls": [
      "https://example.com/front.jpg"
    ],
    "video_urls": [
      "https://example.com/reference.mp4"
    ],
    "audio_urls": [
      "https://example.com/reference.mp3"
    ],
    "reference_intent": "edit"
  }
}'

Credits

ResolutionCredits / second
480p10
720p18
1080p36

Video reference seconds are included in the billable duration. See the model-specific rounding and editing rules below. Sound does not change the price. Confirmed failed requests are refunded.

Credits = ceil((fixed output seconds + measured input video seconds, rounded to 3 decimals) × rate). Reference audio is not billed separately. Editing derives a fixed output duration before charging.

Constraints

A prompt is required for text-to-video and optional with media. Image-to-video accepts 1–2 frames. Reference mode supports up to 10 images, 5 videos and 5 audio files.

Each video/audio must be 1–15 seconds; video total and audio total must each be at most 15 seconds. Output plus input video duration must not exceed 30 seconds.

With reference_intent edit, a prompt is required and aspect_ratio is set to auto. Flux derives a fixed output duration: min(max(2, ceil(input video seconds + 1)), floor(30 - input video seconds)); the supplied duration is replaced. Automatic duration -1, file_urls and link_urls are not supported.

Use returned dimensions when available. Unverified video dimensions are null. Videos are delivered as MP4. Reference and editing rules depend on the model.

Response

A successful submission returns HTTP 202 and a request ID. Response excerpt:

JSON
{
  "id": "REQUEST_ID",
  "model": "wan3",
  "status": "processing"
}
Continue readingPoll & download