Seedance 2.5 API reference
ByteDance's newest: 30-second clips with native audio
Call Seedance 2.5 from your own code with one PopNow API key. Below are the exact model IDs to send, every input field the model accepts, what each request costs in credits, and a request you can paste into a terminal.
At a glance
- Made by
- ByteDance
- Output
- Video
- From
- 11.07 credits per second of output ($0.1107)
- Typical time
- about 279 s
1 credit = $0.01. A task holds the highest possible charge when it is accepted and settles the real amount when it finishes, rounded up to whole credits; failed tasks are not charged. Ask POST /api/v1/jobs/quote for the exact figure before you run.
Create Video
bytedance/seedance-2.5/text-to-video
Price
| Option | Credits (per second of output) | US dollars |
|---|---|---|
generate_audio = false, resolution = 480p | 18.51 | $0.1851 |
generate_audio = true, resolution = 480p | 18.51 | $0.1851 |
generate_audio = false, resolution = 720p | 41.6 | $0.416 |
generate_audio = true, resolution = 720p | 41.6 | $0.416 |
generate_audio = false, resolution = 1080p | 102.35 | $1.0235 |
generate_audio = true, resolution = 1080p | 102.35 | $1.0235 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | — | What to generate: subject, action, camera movement and mood. |
aspect_ratioOptional | string | adaptive | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive | Aspect ratio of the generated video. |
resolutionOptional | string | 720p | 480p, 720p, 1080p | Output resolution. Super-resolution tiers are not offered. |
duration_secondsOptional | integer | 5 | 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, … (+13) | Clip length in seconds. This is the billed quantity. |
generate_audioOptional | boolean | true | — | Generate a native soundtrack synchronised to the picture. |
output_formatOptional | string | mp4 | mp4, mov | Container of the returned video. |
enable_web_searchOptional | boolean | false | — | Let the model search the web for information related to the prompt before rendering. |
seedOptional | integer | — | 0 to 2147483647 | Random seed. Omit to let the model pick one. |
return_last_frameOptional | boolean | false | — | Also return the clip’s final frame as a separate image. |
watermarkOptional | boolean | false | — | Ask the model to watermark the video as AI-generated. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "bytedance/seedance-2.5/text-to-video",
"input": {
"prompt": "A paper boat drifts down a rain-soaked street at dusk, neon signs reflecting in the water, slow tracking shot at ground level",
"generate_audio": true,
"duration_seconds": 5,
"resolution": "720p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"Image to Video
bytedance/seedance-2.5/image-to-video
Price
| Option | Credits (per second of output) | US dollars |
|---|---|---|
generate_audio = false, resolution = 480p | 18.51 | $0.1851 |
generate_audio = true, resolution = 480p | 18.51 | $0.1851 |
generate_audio = false, resolution = 720p | 41.6 | $0.416 |
generate_audio = true, resolution = 720p | 41.6 | $0.416 |
generate_audio = false, resolution = 1080p | 102.35 | $1.0235 |
generate_audio = true, resolution = 1080p | 102.35 | $1.0235 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
image_urlRequired | string | — | — | URL of the image used as the first frame. |
promptOptional | string | — | — | What to generate: subject, action, camera movement and mood. |
last_image_urlOptional | string | — | — | URL of the image used as the closing frame. Only accepted together with image_url. |
aspect_ratioOptional | string | adaptive | adaptive | Aspect ratio of the generated video. Seedance 2.5 frames an image-to-video clip on the first frame, so adaptive is the only accepted value. |
resolutionOptional | string | 720p | 480p, 720p, 1080p | Output resolution. Super-resolution tiers are not offered. |
duration_secondsOptional | integer | 5 | 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, … (+13) | Clip length in seconds. This is the billed quantity. |
generate_audioOptional | boolean | true | — | Generate a native soundtrack synchronised to the picture. |
output_formatOptional | string | mp4 | mp4, mov | Container of the returned video. |
enable_web_searchOptional | boolean | false | — | Let the model search the web for information related to the prompt before rendering. |
seedOptional | integer | — | 0 to 2147483647 | Random seed. Omit to let the model pick one. |
return_last_frameOptional | boolean | false | — | Also return the clip’s final frame as a separate image. |
watermarkOptional | boolean | false | — | Ask the model to watermark the video as AI-generated. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
The example uses PopNow sample files in image_url. Replace them with your own public HTTPS links, uploads or saved assets.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "bytedance/seedance-2.5/image-to-video",
"input": {
"prompt": "He lands softly on the rooftop, laughs and turns toward the camera while the balloons sway in the evening breeze; slow push-in",
"image_url": "https://media.popnow.ai/influencer/examples/marco.webp",
"generate_audio": true,
"duration_seconds": 5,
"resolution": "720p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"Reference to Video
bytedance/seedance-2.5/reference-to-video
Price
| Option | Credits (per second of output) | US dollars |
|---|---|---|
generate_audio = false, resolution = 480p, with_video = true | 11.07 | $0.1107 |
generate_audio = true, resolution = 480p, with_video = true | 11.07 | $0.1107 |
generate_audio = false, resolution = 480p, with_video = false | 18.51 | $0.1851 |
generate_audio = true, resolution = 480p, with_video = false | 18.51 | $0.1851 |
generate_audio = false, resolution = 720p, with_video = true | 24.89 | $0.2489 |
generate_audio = true, resolution = 720p, with_video = true | 24.89 | $0.2489 |
generate_audio = false, resolution = 720p, with_video = false | 41.6 | $0.416 |
generate_audio = true, resolution = 720p, with_video = false | 41.6 | $0.416 |
generate_audio = false, resolution = 1080p, with_video = true | 61.23 | $0.6123 |
generate_audio = true, resolution = 1080p, with_video = true | 61.23 | $0.6123 |
generate_audio = false, resolution = 1080p, with_video = false | 102.35 | $1.0235 |
generate_audio = true, resolution = 1080p, with_video = false | 102.35 | $1.0235 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | — | What to generate: subject, action, camera movement and mood. |
reference_image_urlsOptional | array<string> | — | up to 30 items | Reference image URLs that carry over characters, style or scene composition. Up to 30 images. Cannot be combined with a first-frame image. |
reference_video_urlsOptional | array<string> | — | up to 10 items | Reference video URLs that carry over motion and pacing. Up to 10 clips, 2-30 seconds each and 30 seconds in total. Reference footage is added to the billed duration. |
reference_audio_urlsOptional | array<string> | — | up to 10 items | Reference audio URLs the generated soundtrack follows, for beat matching or lip sync. Up to 10 clips, 2-30 seconds each and 30 seconds in total. |
aspect_ratioOptional | string | adaptive | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive | Aspect ratio of the generated video. |
resolutionOptional | string | 720p | 480p, 720p, 1080p | Output resolution. Super-resolution tiers are not offered. |
duration_secondsOptional | integer | 5 | 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, … (+13) | Clip length in seconds. This is the billed quantity. |
generate_audioOptional | boolean | true | — | Generate a native soundtrack synchronised to the picture. |
output_formatOptional | string | mp4 | mp4, mov | Container of the returned video. |
enable_web_searchOptional | boolean | false | — | Let the model search the web for information related to the prompt before rendering. |
seedOptional | integer | — | 0 to 2147483647 | Random seed. Omit to let the model pick one. |
return_last_frameOptional | boolean | false | — | Also return the clip’s final frame as a separate image. |
watermarkOptional | boolean | false | — | Ask the model to watermark the video as AI-generated. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
The example uses PopNow sample files in reference_image_urls. Replace them with your own public HTTPS links, uploads or saved assets.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "bytedance/seedance-2.5/reference-to-video",
"input": {
"prompt": "The man from the reference image jogs across a sunlit rooftop at golden hour and smiles at the camera; smooth tracking shot",
"reference_image_urls": [
"https://media.popnow.ai/influencer/examples/ava.webp"
],
"generate_audio": true,
"duration_seconds": 5,
"resolution": "720p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"Extend Video
bytedance/seedance-2.5/video-extend
Price
| Option | Credits (per second of output) | US dollars |
|---|---|---|
generate_audio = false, resolution = 480p, with_video = true | 11.07 | $0.1107 |
generate_audio = true, resolution = 480p, with_video = true | 11.07 | $0.1107 |
generate_audio = false, resolution = 480p, with_video = false | 18.51 | $0.1851 |
generate_audio = true, resolution = 480p, with_video = false | 18.51 | $0.1851 |
generate_audio = false, resolution = 720p, with_video = true | 24.89 | $0.2489 |
generate_audio = true, resolution = 720p, with_video = true | 24.89 | $0.2489 |
generate_audio = false, resolution = 720p, with_video = false | 41.6 | $0.416 |
generate_audio = true, resolution = 720p, with_video = false | 41.6 | $0.416 |
generate_audio = false, resolution = 1080p, with_video = true | 61.23 | $0.6123 |
generate_audio = true, resolution = 1080p, with_video = true | 61.23 | $0.6123 |
generate_audio = false, resolution = 1080p, with_video = false | 102.35 | $1.0235 |
generate_audio = true, resolution = 1080p, with_video = false | 102.35 | $1.0235 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | — | Required. Describe what happens next: the action that follows, the camera move and the sound. |
video_urlRequired | string (uri) | — | — | The clip to continue: MP4, MOV or WebM, 2 to 60 seconds. Its last 30 seconds at most become reference footage for the new segment and are billed as reference seconds; anything earlier is only joined back on. |
resolutionOptional | string | 720p | 480p, 720p, 1080p | Size of the new segment. Match your source; it only sets the quality of the new segment. |
duration_secondsOptional | integer | 5 | 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, … (+13) | Length of the new segment in seconds. The reference seconds taken from your clip are billed on top. |
generate_audioOptional | boolean | true | — | Generate sound for the new segment. The sound of your source is kept either way. |
enable_web_searchOptional | boolean | false | — | Let the model search the web for information related to the prompt before rendering. |
seedOptional | integer | — | 0 to 2147483647 | Random seed. Omit to let the model pick one. |
watermarkOptional | boolean | false | — | Ask the model to watermark the new segment as AI-generated. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
The example uses PopNow sample files in video_url. Replace them with your own public HTTPS links, uploads or saved assets.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "bytedance/seedance-2.5/video-extend",
"input": {
"prompt": "The flowers keep opening while the camera slowly pulls back to reveal a sunlit meadow",
"video_url": "https://media.popnow.ai/effects/flower-bloom-1abd6efb.mp4",
"generate_audio": true,
"duration_seconds": 5,
"resolution": "720p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"
