Seedance 2.5
{BASE_URL} is https://api.uniall.ai throughout this page.
Updated: 2026-08-12
Overview
UniAll exposes Seedance 2.5 through one stable public model ID: seedance2.5. It supports text-to-video, first-frame and first-and-last-frame generation, multimodal references, video editing, video extension, reusable asset:// media, and optional web search.
| Capability | Required input | Key rule |
|---|---|---|
| Text-to-video | Prompt | Set resolution and duration. |
| First-frame video | One first-frame image | Omit aspect_ratio or use auto. |
| First-and-last-frame video | One first-frame and one last-frame image | Omit aspect_ratio or use auto. |
| Multimodal reference | Images, videos, or audio | Text is optional; audio-only reference requests are allowed. |
| Video editing | Prompt and one video | Set operation: "edit_video" and duration: "auto". |
| Video extension | Prompt and one video | Set operation: "extend_video" explicitly. |
Endpoints And Authentication
| Action | Method | Path |
|---|---|---|
| Create task | POST | /v1/videos |
| Query task | GET | /v1/videos/{task_id} |
| Download completed video | GET | /v1/videos/{task_id}/content |
Compatible creation and query aliases remain available to existing clients:
POST /v1/videos/generations
POST /v1/video/generations
GET /v1/videos/generations/{task_id}
GET /v1/video/generations/{task_id}
New integrations should use /v1/videos and /v1/videos/{task_id}.
Authorization: Bearer sk-***
Content-Type: application/json
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Must be seedance2.5. |
resolution | string | Yes | 480p or 720p. |
size | string | No | Compatibility alias for resolution. If both are present, they must match. |
duration | integer/string | Yes | Integer from 4 through 30, or auto. Operation-specific rules apply. |
prompt | string | Conditional | Text instruction. Required for text generation, editing, and extension; optional for media-only reference requests. |
aspect_ratio | string | No | auto, 21:9, 16:9, 4:3, 1:1, 3:4, or 9:16. |
ratio | string | No | Compatibility alias for aspect_ratio; adaptive is normalized to auto. |
output_format | string | No | mp4 or mov; default mp4. Compatible clients may use extra_body.output_format. |
content | object[] | No | Multimodal image, video, and audio items with explicit roles. |
operation | string | Conditional | Explicitly required for edit_video and extend_video; use reference_to_video for multimodal reference generation when an operation is sent. |
generate_audio | boolean | No | Whether the task should generate audio. |
seed | integer | No | Random seed for reproducible variation where supported. |
watermark | boolean | No | Whether to add a watermark. |
return_last_frame | boolean | No | Whether to return the final generated frame when available. |
tools | object[] | No | Only [{"type":"web_search"}] is accepted. |
The following fields are not part of the public Seedance 2.5 contract and are rejected: draft, frames, camera_fixed, and service_tier: "flex".
Minimal Text-To-Video Request
curl -X POST "{BASE_URL}/v1/videos" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2.5",
"prompt": "A cinematic city street after rain",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"output_format": "mp4"
}'
Media Inputs
Use content[] for new multimodal integrations. Each item carries one media type and an explicit role.
| Item type | URL field | Supported 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 |
Media URLs may be public HTTP(S) URLs or valid asset:// references. HTTP(S) media must remain reachable by the UniAll service without cookies or custom request headers. See the Seedance Material Library for creating reusable asset:// inputs.
The compatibility fields image, images, video, videos, audios, and last_image remain accepted. Do not send conflicting values through both content[] and compatibility fields.
Media Limits
- Up to
30images. - Up to
10videos. - Up to
10audio files. - Up to
50media items in total. - A multimodal request may omit text.
- An audio-only reference request is valid.
Operation Rules
| Mode | operation | duration | aspect_ratio |
|---|---|---|---|
| Text-to-video | Omit | auto or integer 4..30 | Any supported value |
| First-frame video | Omit | auto or integer 4..30 | Omit or auto |
| First-and-last-frame video | Omit | auto or integer 4..30 | Omit or auto |
| Multimodal reference | reference_to_video when specified | auto or integer 4..30 | Follow the media mode; frame inputs require auto |
| Video editing | edit_video required | auto only | Omit or auto |
| Video extension | extend_video required | auto or integer 4..30 | Omit or auto |
Do not rely on prompt keywords to select editing or extension. Those requests must carry an explicit operation.
Request Examples
First-And-Last-Frame Video
{
"model": "seedance2.5",
"prompt": "Move naturally from the first composition to the last while preserving the subject.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "auto",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/first.png"
},
"role": "first_frame"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/last.png"
},
"role": "last_frame"
}
]
}
For a single first frame, send only the first_frame item. In both frame modes, fixed aspect ratios are rejected because the source frame determines the composition.
Multimodal Reference
{
"model": "seedance2.5",
"operation": "reference_to_video",
"resolution": "720p",
"duration": 12,
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/product.png"
},
"role": "reference_image"
},
{
"type": "video_url",
"video_url": {
"url": "https://example.com/motion.mp4"
},
"role": "reference_video"
},
{
"type": "audio_url",
"audio_url": {
"url": "https://example.com/music.mp3"
},
"role": "reference_audio"
}
]
}
Video Editing
{
"model": "seedance2.5",
"prompt": "Replace the sky and preserve the subject",
"video": "https://example.com/source.mp4",
"operation": "edit_video",
"resolution": "720p",
"duration": "auto",
"aspect_ratio": "auto"
}
Video Extension
{
"model": "seedance2.5",
"prompt": "Continue the camera movement into the illuminated square.",
"video": "asset://mat_xxxxxxxxxxxxx",
"operation": "extend_video",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "auto",
"output_format": "mov"
}
Web Search
{
"model": "seedance2.5",
"prompt": "Create a concise visual recap of the latest public spaceflight milestone.",
"resolution": "720p",
"duration": 8,
"tools": [
{
"type": "web_search"
}
]
}
Web search can be combined with media inputs. No other tools shape is accepted.
Create Response And Task Lifecycle
{
"id": "task_xxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxx",
"object": "video.generation.job",
"model": "seedance2.5",
"status": "queued",
"progress": 0,
"created_at": 1786492800
}
Store the public id or task_id. Poll GET /v1/videos/{task_id} every 2 to 5 seconds and stop when status is completed or failed. A completed task returns a public result URL; you can also retrieve the file through the authenticated /v1/videos/{task_id}/content endpoint.
See Video Generation Overview for public status fields, completed and failed response examples, and download handling. Client applications should use only the public task ID, status, result, usage, and error fields documented by UniAll.
Billing Notes
Seedance 2.5 is settled by valid completion Token usage after the task finishes. Any pre-deduction is an estimate; use the completed task's effective usage and settlement record as the final amount.
| Input type | Reference base rate per 1 million completion Tokens |
|---|---|
| Request without video input | About $10.294117647 (70 CNY / 6.8) |
| Request containing video input | About $6.176470588 (42 CNY / 6.8) |
480pand720puse the same Token unit rate.- These values are completion-Token reference rates, not fixed per-second prices.
- Account and pricing-group rules can change the final user price. Use the current UniAll pricing page and task settlement record as the authoritative source.
Common Errors
| Error | Cause | Fix |
|---|---|---|
| Missing parameter | resolution or duration is absent | Send both required fields. |
| Invalid resolution | 1080p, 4k, or another unsupported value was sent | Use 480p or 720p. |
| Conflicting aliases | resolution and size contain different values | Remove size or make the values identical. |
| Invalid edit duration | edit_video uses an integer duration | Set duration to auto. |
| Invalid aspect ratio | A frame, edit, or extension request uses a fixed ratio | Omit aspect_ratio or set it to auto. |
| Media limit exceeded | Per-type or total media limits were exceeded | Reduce media to the documented limits. |
| Media unavailable | A URL is private, expired, or unreachable from the public internet | Use a stable public URL or an available asset:// material. |
| Invalid tools | tools is not exactly the supported web-search structure | Send [{"type":"web_search"}] or omit tools. |
| Unsupported field | draft, frames, camera_fixed, or service_tier: "flex" was sent | Remove the unsupported field. |