▥ Seedance 2.5 is here! ›
Video API

Generate videos

Run Seedance 2.5, Seedance 2.0, Seedance 2.0 Fast, Seedance 2.0 Mini, Wan 3.0, Wan 3.0 Prime, HappyHorse 1.1, HappyHorse 1.0, HappyHorse 1.0 Video Edit, Grok Imagine Video 1.5, Grok Imagine Video 1.5 Lite, Kling 4.0, MiniMax H3, MiniMax H3 Max, MiniMax H3 Max Turbo, Video Upscale, Video Frame Interpolation. Every video request creates a task that you poll or receive by webhook.

Generation modes

Set mode to choose a workflow. It defaults to text_to_video. Select a mode to update the example below.

Request example

POSThttps://api.mlmux.com/v1/videos/generations
curl https://api.mlmux.com/v1/videos/generations \
  -H "Authorization: Bearer $MLMUX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "bytedance/seedance-2.5",
  "prompt": "A cinematic tracking shot along a coastal road at sunrise, warm backlight, gentle camera drift",
  "mode": "text_to_video",
  "ratio": "16:9",
  "resolution": "720p",
  "duration": 8,
  "generate_audio": true,
  "route_mode": "official-cheap"
}'

Parameters

FieldTypeRequiredDescription
modelstringYesA model ID from the table below.
promptstringYesScene, subject, motion, camera, lighting, and sound direction.
modestringNotext_to_video (default), image_to_video, first_last_frame, or multi_ref.
ratiostringNo16:9, 9:16, 4:3, 3:4, 1:1, 21:9, or adaptive where listed. Defaults to adaptive.
resolutionstringNo480p, 720p, 1080p, or 4K, as listed for the model. Defaults to 720p.
durationintegerNoClip length in seconds, within the model's range. Defaults to 5. Use -1 to let the model choose.
generate_audiobooleanNoGenerate synchronized audio with the clip.
route_modestringNoofficial or official-cheap. Defaults to the key's route mode, then official-cheap.
image_urlstringConditionalRequired for image_to_video: the start frame.
first_frame_url
last_frame_url
stringConditionalRequired for first_last_frame. You can send two ordered image_urls instead.
image_urlsstring[]ConditionalReference images for multi_ref.
video_urls
audio_urls
string[]ConditionalReference videos and audio for multi_ref.

multi_ref needs at least one reference. Seedance 2.5 accepts up to 30 images, 10 videos, and 10 audio files (50 in total); the other models accept up to 9 images, 3 videos, and 3 audio files (12 in total). Use public https URLs, or upload files first with POST /v1/uploads.

Models

ModelModel IDResolutionRatioDuration
Seedance 2.5bytedance/seedance-2.5480p · 720p · 1080padaptive · 16:9 · 21:9 · 4:3 · 1:1 · 3:4 · 9:164–30 s
Seedance 2.0bytedance/seedance-2.0480p · 720p · 1080p · 4Kadaptive · 16:9 · 21:9 · 4:3 · 1:1 · 3:4 · 9:164–15 s
Seedance 2.0 Fastbytedance/seedance-2.0-fast480p · 720padaptive · 16:9 · 21:9 · 4:3 · 1:1 · 3:4 · 9:164–15 s
Seedance 2.0 Minibytedance/seedance-2.0-mini480p · 720padaptive · 16:9 · 21:9 · 4:3 · 1:1 · 3:4 · 9:164–15 s
Wan 3.0alibaba/wan-3.0480p · 720p · 1080padaptive · 16:9 · 9:16 · 1:1 · 4:3 · 3:42–15 s
Wan 3.0 Primealibaba/wan-3.0-prime480p · 720p · 1080padaptive · 16:9 · 9:16 · 1:1 · 4:3 · 3:42–15 s
HappyHorse 1.1alibaba/happyhorse-1.1480p · 720p · 1080p16:9 · 9:16 · 1:1 · 4:3 · 3:43–15 s
HappyHorse 1.0alibaba/happyhorse-1.0720p · 1080p16:9 · 9:16 · 1:1 · 4:3 · 3:43–15 s
HappyHorse 1.0 Video Editalibaba/happyhorse-1.0-video-edit720p · 1080p—Same as the source
Grok Imagine Video 1.5xai/grok-imagine-video-1.5480p · 720p · 1080p16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 3:2 · 2:3 · 21:91–15 s
Grok Imagine Video 1.5 Litexai/grok-imagine-video-1.5-lite480p · 720p · 1080p16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 3:2 · 2:3 · 21:91–15 s
Kling 4.0kwaivgi/kling-4.0720p · 1080p16:9 · 9:16 · 1:1 · 21:93–30 s
MiniMax H3minimax/h3480p · 768p · 2K16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:95–15 s
MiniMax H3 Maxminimax/h3-max480p · 768p16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:95–15 s
MiniMax H3 Max Turbominimax/h3-max-turbo480p · 768p16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:95–15 s
Video Upscalemlmux/video-upscale720p · 1080p · 2K · 4K—Same as the source
Video Frame Interpolationmlmux/video-fps-increase—Same as the source

For Seedance, ratio, resolution, and duration are optional and fall back to each model's defaults.

Wan, HappyHorse, Grok Imagine, Kling, and MiniMax read the inputs rather than mode: send a start image as image_url, keyframes as first_frame_url and last_frame_url, and reference images, videos, and audio as image_urls, video_urls, and audio_urls. They are billed per second of output at the chosen resolution; Wan and MiniMax also bill the seconds of reference videos.

HappyHorse 1.0 Video Edit, Video Upscale, and Video Frame Interpolation take a source video as video_url, and the output is as long as the source. Video Upscale takes a target resolution; the two tools need no prompt.

Task lifecycle

Creating a video always returns HTTP 202 with a task. Save its id and poll poll_url. When status is succeeded, the response includes video, usage, and actual_charge_credits.

GEThttps://api.mlmux.com/v1/videos/generations/{task_id}
202 Accepted
{
  "id": "task_01a9...",
  "object": "video.generation.task",
  "status": "queued",
  "created": 1767225600,
  "model": "bytedance/seedance-2.5",
  "api_method": "videos.generations.create",
  "poll_url": "/v1/videos/generations/task_01a9...",
  "progress": 0,
  "message": "queued",
  "estimated_charge_credits": 1.84
}
Succeeded
{
  "id": "task_01a9...",
  "object": "video.generation.task",
  "status": "succeeded",
  "progress": 100,
  "message": "completed",
  "video": "https://.../generated/01a9....mp4",
  "last_frame_image": "https://.../generated/01a9....jpg",
  "usage": {
    "output_tokens": 172800,
    "video_seconds": 8,
    "video_resolution": "720p"
  },
  "estimated_charge_credits": 1.84,
  "actual_charge_credits": 1.79
}

A failed task has status failed and the reason in message. Output URLs are hosted by MLMux; download the files you want to keep.

Webhooks

Instead of polling, subscribe to request.succeeded and request.failed. See Webhooks for the payload and signature check.