Seedance 2.5 Official
Use the ByteDance-native Contents Generations task protocol with this exact model identifier:
bytedance/seedance/2.5-officialChoose this model when you need up to 1080p output. It supports 480p, 720p, and 1080p generation with text, image, video, and audio references.
Use reusable media
Seedance accepts public HTTP(S) references directly. It also supports the official-compatible Asset protocol: register the media URL with /v1/assets, then pass the returned asset:// reference through unchanged in the same native content shape:
{
"model": "bytedance/seedance/2.5-official",
"content": [
{"type": "text", "text": "Keep the product appearance and add a slow cinematic camera orbit"},
{
"type": "image_url",
"image_url": {"url": "asset://asset-20260710150403-hx4hf"},
"role": "reference_image"
}
],
"ratio": "16:9",
"resolution": "1080p",
"duration": 5
}See Media Assets for Seedance for the complete registration, readiness, and generation workflow, including image, video, and audio roles.
Create a task
curl -X POST https://api.sandbase.ai/api/v3/contents/generations/tasks \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance/2.5-official",
"content": [
{"type": "text", "text": "A cinematic aerial shot over an alpine lake at sunrise"}
],
"ratio": "16:9",
"resolution": "1080p",
"duration": 5,
"generate_audio": true
}'The create response contains the task identifier:
{ "id": "158d2649-e01d-45b9-b88a-ef3c450c601c" }Query the task result
Poll the task every 5 to 10 seconds with the same API key:
curl https://api.sandbase.ai/api/v3/contents/generations/tasks/158d2649-e01d-45b9-b88a-ef3c450c601c \
-H "Authorization: Bearer $SANDBASE_API_KEY"While generation is in progress, status is queued or running. A completed task returns the generated video in content.video_url:
{
"id": "158d2649-e01d-45b9-b88a-ef3c450c601c",
"model": "bytedance/seedance/2.5-official",
"status": "succeeded",
"content": {
"video_url": "https://media.sandbase.ai/files/158d2649.../0.mp4"
},
"usage": {
"completion_tokens": 108900,
"total_tokens": 108900
}
}Stop polling when status is succeeded, failed, expired, or cancelled. See Official Native API for every input workflow, parameter, response field, status, and error.