Seedance 2.5 AI Video Generator API documentation
Generate videos with Seedance 2.5 AI Video Generator (ByteDance). Supports both text and image input modes. The reference mode accepts image, video, audio inputs.
Endpoints
| Contract item | Value |
|---|---|
| Capability | seedance-2-5-ai-video-generator |
| Submit | POST https://vidmage.ai/api/v1/seedance-2-5-ai-video-generator/submit |
| Query | POST https://vidmage.ai/api/v1/seedance-2-5-ai-video-generator/query |
| Task identifier | taskId |
| Result field | videoUrl |
Authenticate with Authorization: Bearer YOUR_API_KEY. Save the task identifier and query the same capability. Use a stable Idempotency-Key for submission retries.
Product guide: Seedance 2.5 API
Parameters and input rules
| Field | Type | Required | Default | Meaning and limits |
|---|---|---|---|---|
prompt | string | No | Not specified | Text prompt describing the video to generate (max 20480 chars). Optional only in provider modes whose image input fully defines the generation. Maximum characters: 20480 |
imageUrl | string | No | Not specified | Optional input image URL. When provided, the task runs in image-to-video mode. |
imageUrls | string[] | No | Not specified | Optional multimodal reference images. Public URLs only; 50 MB per file. Maximum items: 30 |
videoUrls | string[] | No | Not specified | Optional multimodal reference videos. Each video is 4–30 seconds and 50 MB max. Maximum items: 10 |
audioUrls | string[] | No | Not specified | Optional multimodal reference audio. Each audio is 2–30 seconds and 50 MB max. Maximum items: 10 |
lastFrameUrl | string | No | Not specified | Optional public URL for the final frame in image-to-video mode. |
duration | string | No | "5" | Video duration in seconds. Values: "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30" |
aspectRatio | string | No | "adaptive" | Output aspect ratio. Values: "adaptive", "16:9", "4:3", "1:1", "3:4", "9:16", "21:9" |
resolution | string | No | "720p" | Output resolution tier. Values: "480p", "720p", "1080p", "2k", "4k" |
sound | boolean | No | true | Generate synchronized audio along with the video. No separate sound surcharge is configured. |
webSearch | boolean | No | false | Enable web-search enhancement for text-to-video generation. |
returnLastFrame | boolean | No | false | Return the generated video's last frame as an additional output. |
bitrateMode | string | No | "standard" | Output bitrate. High mode produces a file approximately 3–5 times larger than standard. Values: "standard", "high" |
seed | integer | No | -1 | Seed for reproducible generation. Use -1 for a random seed. Minimum: -1Maximum: 2147483647Multiple of: 1 |
outputFormat | string | No | "mp4" | Output video format. MP4 offers broad compatibility; MOV preserves higher color precision for editing. Values: "mp4", "mov" |
realPersonMode | boolean | No | true | Allow the provider to convert supported real-person references into generation assets. |
conversionSlots | string[] | No | ["all"] | Choose which image slots should be converted into real-person assets. Maximum items: 41Item values: "all", "firstFrameUrl", "lastFrameUrl", "image1", "image2", "image3", "image4", "image5", "image6", "image7", "image8", "image9", "image10", "image11", "image12", "image13", "image14", "image15", "image16", "image17", "image18", "image19", "image20", "image21", "image22", "image23", "image24", "image25", "image26", "image27", "image28", "image29", "image30", "video1", "video2", "video3", "video4", "video5", "video6", "video7", "video8", "video9", "video10" |
omniReferenceTaskType | string | No | "auto" | Fixed-duration reference generation. Video editing and extension are temporarily unavailable. Values: "auto", "reference" |
text to video
These are public VidMage field names. The server maps them to provider fields. Input media selects the mode; use its limits together with the parameter table.
| Control | Mode-specific rule |
|---|---|
prompt | Required; 1–20480 characters. |
duration | JSON string. Values: "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30". Default: 5. |
aspectRatio | Values: "adaptive", "16:9", "4:3", "1:1", "3:4", "9:16", "21:9". Default: adaptive. |
resolution | Values: "480p", "720p", "1080p", "2k", "4k". Default: 720p. |
sound | Boolean. Default: true. |
webSearch | Enable web-search enhancement for text-to-video generation. Default: false |
returnLastFrame | Return the generated video's last frame as an additional output. Default: false |
bitrateMode | Output bitrate. High mode produces a file approximately 3–5 times larger than standard. Values: "standard", "high"Default: "standard" |
seed | Seed for reproducible generation. Use -1 for a random seed. Minimum: -1Maximum: 2147483647Multiple of: 1Default: -1 |
outputFormat | Output video format. MP4 offers broad compatibility; MOV preserves higher color precision for editing. Values: "mp4", "mov"Default: "mp4" |
image to video
These are public VidMage field names. The server maps them to provider fields. Input media selects the mode; use its limits together with the parameter table.
| Control | Mode-specific rule |
|---|---|
prompt | Optional; 0–20480 characters. |
duration | JSON string. Values: "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30". Default: 5. |
aspectRatio | Values: "adaptive". Default: adaptive. |
resolution | Values: "480p", "720p", "1080p", "2k", "4k". Default: 720p. |
sound | Boolean. Default: true. |
imageUrl | Formats: jpg, jpeg, png, webp, bmp, tiff, gif, heic, heif. |
lastFrameUrl | Optional final-frame image. |
returnLastFrame | Return the generated video's last frame as an additional output. Default: false |
bitrateMode | Output bitrate. High mode produces a file approximately 3–5 times larger than standard. Values: "standard", "high"Default: "standard" |
seed | Seed for reproducible generation. Use -1 for a random seed. Minimum: -1Maximum: 2147483647Multiple of: 1Default: -1 |
outputFormat | Output video format. MP4 offers broad compatibility; MOV preserves higher color precision for editing. Values: "mp4", "mov"Default: "mp4" |
realPersonMode | Allow the provider to convert supported real-person references into generation assets. Default: true |
conversionSlots | Choose which image slots should be converted into real-person assets. Maximum items: 3Item values: "all", "firstFrameUrl", "lastFrameUrl"Default: ["all"] |
multimodal video
These are public VidMage field names. The server maps them to provider fields. Input media selects the mode; use its limits together with the parameter table.
| Control | Mode-specific rule |
|---|---|
prompt | Required; 1–20480 characters. |
duration | JSON string. Values: "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30". Default: 25. |
aspectRatio | Values: "adaptive", "16:9", "4:3", "1:1", "3:4", "9:16", "21:9". Default: adaptive. |
resolution | Values: "480p", "720p", "1080p", "2k", "4k". Default: 720p. |
sound | Boolean. Default: true. |
imageUrls | Up to 30 files. Maximum 50 MB per file. Formats: jpg, jpeg, png, webp, bmp, tiff, gif, heic, heif. |
videoUrls | Up to 10 files. Maximum 50 MB per file. Formats: mp4, mov. 4–30 seconds per file. Maximum total duration: 30 seconds. |
audioUrls | Up to 10 files. Maximum 50 MB per file. Formats: mp3, wav. 2–30 seconds per file. Maximum total duration: 30 seconds. |
returnLastFrame | Return the generated video's last frame as an additional output. Default: false |
bitrateMode | Output bitrate. High mode produces a file approximately 3–5 times larger than standard. Values: "standard", "high"Default: "standard" |
seed | Seed for reproducible generation. Use -1 for a random seed. Minimum: -1Maximum: 2147483647Multiple of: 1Default: -1 |
outputFormat | Output video format. MP4 offers broad compatibility; MOV preserves higher color precision for editing. Values: "mp4", "mov"Default: "mp4" |
realPersonMode | Allow the provider to convert supported real-person references into generation assets. Default: true |
conversionSlots | Choose which multimodal reference slots should be converted into real-person assets. Maximum items: 41Item values: "all", "image1", "image2", "image3", "image4", "image5", "image6", "image7", "image8", "image9", "image10", "image11", "image12", "image13", "image14", "image15", "image16", "image17", "image18", "image19", "image20", "image21", "image22", "image23", "image24", "image25", "image26", "image27", "image28", "image29", "image30", "video1", "video2", "video3", "video4", "video5", "video6", "video7", "video8", "video9", "video10"Default: ["all"] |
omniReferenceTaskType | Fixed-duration reference generation. Video editing and extension are temporarily unavailable. Values: "auto", "reference"Default: "auto" |
Example request
{
"prompt": "A cinematic tea-garden commercial at dusk, with a slow camera drift and native audio for wind in the leaves",
"duration": "5",
"aspectRatio": "adaptive",
"resolution": "720p",
"sound": true,
"webSearch": false,
"returnLastFrame": false,
"bitrateMode": "standard",
"seed": -1,
"outputFormat": "mp4"
}# Set VIDMAGE_IDEMPOTENCY_KEY to a unique value for this task; preserve it for transport retries.
curl -X POST "https://vidmage.ai/api/v1/seedance-2-5-ai-video-generator/submit" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
-H "Content-Type: application/json" \
-d '{"prompt":"A cinematic tea-garden commercial at dusk, with a slow camera drift and native audio for wind in the leaves","duration":"5","aspectRatio":"adaptive","resolution":"720p","sound":true,"webSearch":false,"returnLastFrame":false,"bitrateMode":"standard","seed":-1,"outputFormat":"mp4"}'
# -> { "success": true, "taskId": "...", "creditsConsumed": ... }Task results and recovery
URL of the generated video. When requested, query also returns the generated last frame as lastFrameUrl. Read videoUrl from the completed query response. Preserve taskId while the task is running.
curl -X POST "https://vidmage.ai/api/v1/seedance-2-5-ai-video-generator/query" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "taskId": "TASK_ID_FROM_SUBMIT" }'
# -> { "success": true, "data": { "status": "...", "videoUrl": "https://..." } }Submission and task queries report the available task and usage information. A timeout is not a confirmed failure. Recover the existing task instead of resubmitting.
For face selection and error recovery, follow Task lifecycle. MCP uses the normalized taskId argument in get_task_result, including capabilities whose REST identifier is requestId.
Credits
| Component / option | Rate | Minimum |
|---|---|---|
| 480p | 30 credits / second | — |
| 720p | 60 credits / second | — |
| 1080p | 75 credits / second | — |
| 2k | 90 credits / second | — |
| 4k | 105 credits / second | — |
Base charge = duration × the selected resolution rate.
Use the Playground or the MCP credit estimator for your exact inputs. Credits and billing.
