Seedance 2.5 API reference
Check Seedance 2.5 availability, inputs, parameters, file requirements, credit pricing, and request examples for Rivya Public API v1. Model ID: seedance-2-5.
seedance-2-5
text, file
Required for reference modes
Credit rate: 17–158 per second of total video duration (input + output) The final cost is rounded up to whole credits.
Video
METERED
20480 characters
Request fields
Set model at the top level. Put model-specific controls and reference inputs in params, using the format documented for this model.
| Key | Type | Required | Default | Description |
|---|---|---|---|---|
| model | string | Yes | seedance-2-5 | Set model to seedance-2-5. |
| prompt | string | No | - | Maximum 20480 characters for this model. |
| params | object | No | - | The model-specific params object. Use the documented keys and reference-file format for this model. |
| client_request_id | string | No | - | Optional ID for tracing this request in your system. It does not replace Idempotency-Key. |
Model parameters
| Key | Type | Required | Default | Range | Options | Description |
|---|---|---|---|---|---|---|
| seedance_scene | select | No | text | - | text, frames, reference | Choose text, guide frames, or references before uploading. Each scene accepts a separate set of inputs. |
| resolution | select | No | 720p | - | 480p, 720p, 1080p | Each resolution has separate rates for requests with and without video input. |
| aspect_ratio | select | No | adaptive | - | 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive | Aspect ratio |
| duration | number | No | 5 | min -1 / max 30 / step 1 | - | Choose -1 for automatic duration or a whole number from 4 through 30 seconds. Automatic duration reserves 30 output seconds before the run. |
| output_format | select | No | mp4 | - | mp4, mov | Output format |
| generate_audio | select | No | true | - | true, false | Request generated audio with the output clip. |
| return_last_frame | select | No | false | - | false, true | Request the final video frame as a still from the provider. The video result view does not provide a separate still-frame handoff. |
| web_search | select | No | false | - | false, true | Allow the model to use its optional web-search control for this run. |
| nsfw_checker | select | No | true | - | false, true | Enable the model's optional content filter. No automated filter can guarantee complete coverage. |
Upload policy
Upload reference files through Files API first. Keep the original URLs, verified metadata, and tokens. Follow this model's request example: some models use params.referenceMediaItems, while others use different fields.
Guide frames or image, video, and audio references: Frames accepts 1 or 2 JPEG/PNG/WebP images up to 30 MB each. Reference accepts up to 30 images, 10 MP4/MOV videos up to 95 MB and 2–30 seconds each, and 10 MP3/WAV audio files up to 15 MB and 2–30 seconds each. Video and audio totals are each capped at 30 seconds, with no more than 50 files overall.
50
image, video, audio
When duration verification is required, use duration_token from /api/v1/files as durationToken in the request. Keep any additional signed metadata this model requires.
| kind | Max size | MIME types |
|---|---|---|
| image | 30 MB | image/jpeg, image/png, image/webp |
| video | 95 MB | video/mp4, video/quicktime |
| audio | 15 MB | audio/mpeg, audio/wav, audio/x-wav |
Minimal request
{
"model": "seedance-2-5",
"prompt": "A camera slowly circles a product bottle on a studio table.",
"params": {
"seedance_scene": "text",
"resolution": "720p",
"aspect_ratio": "adaptive",
"duration": 5,
"output_format": "mp4",
"generate_audio": "true",
"return_last_frame": "false",
"web_search": "false",
"nsfw_checker": "true"
}
}Reference-file request
{
"model": "seedance-2-5",
"prompt": "A camera slowly circles a product bottle on a studio table.",
"params": {
"seedance_scene": "reference",
"resolution": "720p",
"aspect_ratio": "adaptive",
"duration": 5,
"output_format": "mp4",
"generate_audio": "true",
"return_last_frame": "false",
"web_search": "false",
"nsfw_checker": "true",
"referenceMediaItems": [
{
"url": "https://cdn.example.com/reference-video.mp4",
"kind": "video",
"name": "reference-video.mp4",
"mimeType": "video/mp4",
"durationSeconds": 8,
"durationToken": "video_duration_token_from_files_api",
"width": 1280,
"height": 720,
"sizeBytes": 8388608,
"framesPerSecond": 30,
"videoBitrateMbps": 8,
"videoMetadataToken": "video_metadata_token_from_original_files_api_upload_response"
}
]
}
}Example response
An accepted generation request returns a task ID. Poll the status endpoint until the task succeeds or fails. A status request failure does not mean generation failed.
{
"id": "task_seedance_2_5_example",
"status": "queued",
"model": "seedance-2-5",
"reserved_credits": 315,
"final_credits": 0,
"settlement_status": "RESERVED",
"created_at": "2026-05-11T00:00:00.000Z",
"updated_at": "2026-05-11T00:00:00.000Z",
"result": null,
"error": null
}Common errors
validation_failed, insufficient_credits, idempotency_conflict, rate_limited, not_found
Some modes require Files API reference uploads.
