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":"Premium beverage product film, one continuous five-second shot. A single tall clear glass filled with sparkling orange citrus drink and clear ice cubes stands on a pale gray stone pedestal, a small lemon wedge on the left and one green leaf on the right, clean muted turquoise studio background. Soft daylight from upper left glints through the glass. The camera makes a slow, subtle clockwise orbit while keeping the entire glass centered. Tiny bubbles rise naturally and condensation glistens. Preserve the glass shape and orange drink color throughout. No cuts, no hands, no text, no logos, no music, no speech. Silent video.","metadata":{"content":[{"type":"image_url","role":"first_frame","image_url":{"url":"https://image.requestbeam.com/generated/364459846248173568/0.png"}}]}}'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.