Seedance 2.0 API specification and requests
Seedance 2.0 API quickstart
seedance-2.0Video generationPOST /v1/video/seedance
curl -X POST "https://api.requestbeam.com/v1/video/seedance" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"model":"seedance-2.0","duration":5,"resolution":"720p","aspectRatio":"16:9","generateAudio":false,"prompt":"Use the supplied reference image to preserve the exact clear highball glass, orange citrus drink, ice, stone pedestal, lemon wedge and green leaf. Use the reference video only for its slow clockwise camera orbit and soft lighting rhythm. Create a fresh five-second premium beverage product shot in the same muted turquoise studio setting. Begin with the whole glass centered, make a small smooth clockwise orbit and finish slightly closer while retaining the entire glass. Keep the liquid level and glass shape consistent with the image; tiny bubbles rise naturally. One continuous shot, no cuts, no added objects, no text, no logos. Silent video, no music or speech.","metadata":{"content":[{"type":"image_url","role":"reference_image","image_url":{"url":"https://image.requestbeam.com/generated/364460494205222912/0.png"}},{"type":"video_url","role":"reference_video","video_url":{"url":"https://image.requestbeam.com/examples/seedance-2-0/2026-10-03/364460440891424768-text-to-video.mp4"}}]}}'Family and protocol reference
Seedance 2.0 Video Generation
Full API documentationSeedance 2.0 text, first/last-frame, multimodal, and audio generation parameters.
https://api.requestbeam.com/v1/video/seedanceCreate an asynchronous Seedance 2.0 job. For Seedance 2.5, use its separate parameter reference.
Authentication
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonBody
modelstringrequiredseedance-2.0 or its alias seedance-2-0.
promptstringVideo prompt. Required for text-only generation; may be omitted or blank when image or video references are supplied. Audio alone is not a valid input. Text items inside metadata.content are discarded; only this top-level prompt is used.
secondsstringDefault: 5Integer string from "4" through "15". The numeric duration alias is also accepted. If both are supplied, they must agree. Automatic duration (-1) is not supported.
sizestringDefault: 720pOutput resolution: 480p, 720p, 1080p, or 4k. Not an aspect ratio. Resolution precedence: metadata.resolution, size, then resolution.
aspectRatiostringDefault: 16:916:9, 9:16, 1:1, 4:3, 3:4, 21:9, or adaptive. aspect_ratio and ratio are aliases; metadata.ratio takes precedence. Use one alias for each setting.
metadataobjectAccepts resolution, ratio, content, and generate_audio. Set generate_audio to a boolean to control generated audio. Top-level generateAudio / generate_audio are aliases; supply only one audio control.
imagesstring[]Image shorthand: the first image is the first frame and the second is the last frame. For precise roles, use metadata.content. Existing imageUrls, imageUrl, image_urls, and image_url aliases remain accepted with the same frame semantics.
imageWithRolesobject[]Images with url and role: first_frame, last_frame, or reference_image. image_with_roles is an alias. Both versions also accept typed metadata.content.
videoUrlsstring[]Reference videos. videoUrl, video_urls, and video_url are aliases.
audioUrlsstring[]Reference audio. audioUrl, audio_urls, and audio_url are aliases. Requires an image or video reference in the same request.
callback_urlstringOptional native callback URL. Availability depends on the selected channel; use GET https://api.requestbeam.com/v1/jobs/{jobId} as the authoritative result.
Multimodal Content
Each metadata.content media item contains its matching nested URL object. Media URLs may use public HTTP(S) URLs or existing asset:// identifiers.
| Type | URL field | Roles |
|---|---|---|
image_url | image_url.url | first_frame, last_frame, reference_image |
video_url | video_url.url | reference_video |
audio_url | audio_url.url | reference_audio |
Up to 9 images, 3 videos, and 3 audio files are accepted, including shorthand and typed content. Audio requires an image or video. draft_task is not supported. Use top-level prompt instead of type: "text" content items. Top-level first_frame_url, last_frame_url, reference_image_urls, reference_video_urls, and reference_audio_urls are role-specific shorthand. Unlisted fields inside content items are not forwarded.
Unsupported controls such as negativePrompt, seed, returnLastFrame, nsfwCheck, tools, webhook, watermark, outputFormat, and their snake-case aliases are rejected. width, height, fps, cfgScale, steps, and style are not supported.
Request Examples
Text-to-Video
{
"model": "seedance-2-0",
"prompt": "A quiet city street at dawn, slow forward camera movement",
"seconds": "5",
"size": "720p",
"metadata": {"ratio": "16:9", "generate_audio": true}
}First and Last Frames
{
"model": "seedance-2.0",
"seconds": "5",
"metadata": {
"resolution": "720p",
"ratio": "9:16",
"content": [
{"type": "image_url", "image_url": {"url": "https://example.com/first.jpg"}, "role": "first_frame"},
{"type": "image_url", "image_url": {"url": "https://example.com/last.jpg"}, "role": "last_frame"}
]
}
}Image and Audio References
{
"model": "seedance-2.0",
"prompt": "Animate the scene to match the rhythm",
"metadata": {
"resolution": "720p",
"generate_audio": true,
"content": [
{"type": "image_url", "image_url": {"url": "asset://existing-image-id"}, "role": "reference_image"},
{"type": "audio_url", "audio_url": {"url": "https://example.com/beat.mp3"}, "role": "reference_audio"}
]
}
}Submission and Result
Response data contains jobId, status, model, and message. Submission success means the job was accepted, not completed. Poll GET https://api.requestbeam.com/v1/jobs/{jobId} with the same account's API Key. See Get Async Job.
When status is COMPLETED, read data.outputResult. Accept both a string url and an array of URLs in each result object. Charges depend on actual completion tokens and output resolution; video references select the video-input rate, while image/audio-only references do not.