Skip to main content

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.

CapabilityRequired inputKey rule
Text-to-videoPromptSet resolution and duration.
First-frame videoOne first-frame imageOmit aspect_ratio or use auto.
First-and-last-frame videoOne first-frame and one last-frame imageOmit aspect_ratio or use auto.
Multimodal referenceImages, videos, or audioText is optional; audio-only reference requests are allowed.
Video editingPrompt and one videoSet operation: "edit_video" and duration: "auto".
Video extensionPrompt and one videoSet operation: "extend_video" explicitly.

Endpoints And Authentication

ActionMethodPath
Create taskPOST/v1/videos
Query taskGET/v1/videos/{task_id}
Download completed videoGET/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

ParameterTypeRequiredDescription
modelstringYesMust be seedance2.5.
resolutionstringYes480p or 720p.
sizestringNoCompatibility alias for resolution. If both are present, they must match.
durationinteger/stringYesInteger from 4 through 30, or auto. Operation-specific rules apply.
promptstringConditionalText instruction. Required for text generation, editing, and extension; optional for media-only reference requests.
aspect_ratiostringNoauto, 21:9, 16:9, 4:3, 1:1, 3:4, or 9:16.
ratiostringNoCompatibility alias for aspect_ratio; adaptive is normalized to auto.
output_formatstringNomp4 or mov; default mp4. Compatible clients may use extra_body.output_format.
contentobject[]NoMultimodal image, video, and audio items with explicit roles.
operationstringConditionalExplicitly required for edit_video and extend_video; use reference_to_video for multimodal reference generation when an operation is sent.
generate_audiobooleanNoWhether the task should generate audio.
seedintegerNoRandom seed for reproducible variation where supported.
watermarkbooleanNoWhether to add a watermark.
return_last_framebooleanNoWhether to return the final generated frame when available.
toolsobject[]NoOnly [{"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 typeURL fieldSupported roles
image_urlimage_url.urlfirst_frame, last_frame, reference_image
video_urlvideo_url.urlreference_video
audio_urlaudio_url.urlreference_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 30 images.
  • Up to 10 videos.
  • Up to 10 audio files.
  • Up to 50 media items in total.
  • A multimodal request may omit text.
  • An audio-only reference request is valid.

Operation Rules

Modeoperationdurationaspect_ratio
Text-to-videoOmitauto or integer 4..30Any supported value
First-frame videoOmitauto or integer 4..30Omit or auto
First-and-last-frame videoOmitauto or integer 4..30Omit or auto
Multimodal referencereference_to_video when specifiedauto or integer 4..30Follow the media mode; frame inputs require auto
Video editingedit_video requiredauto onlyOmit or auto
Video extensionextend_video requiredauto or integer 4..30Omit 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"
}
{
"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 typeReference base rate per 1 million completion Tokens
Request without video inputAbout $10.294117647 (70 CNY / 6.8)
Request containing video inputAbout $6.176470588 (42 CNY / 6.8)
  • 480p and 720p use 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

ErrorCauseFix
Missing parameterresolution or duration is absentSend both required fields.
Invalid resolution1080p, 4k, or another unsupported value was sentUse 480p or 720p.
Conflicting aliasesresolution and size contain different valuesRemove size or make the values identical.
Invalid edit durationedit_video uses an integer durationSet duration to auto.
Invalid aspect ratioA frame, edit, or extension request uses a fixed ratioOmit aspect_ratio or set it to auto.
Media limit exceededPer-type or total media limits were exceededReduce media to the documented limits.
Media unavailableA URL is private, expired, or unreachable from the public internetUse a stable public URL or an available asset:// material.
Invalid toolstools is not exactly the supported web-search structureSend [{"type":"web_search"}] or omit tools.
Unsupported fielddraft, frames, camera_fixed, or service_tier: "flex" was sentRemove the unsupported field.