Skip to main content

Seedance 2.5

{BASE_URL} is https://api.uniall.ai throughout this page.

Updated: 2026-10-19

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, optional web search, and 480p Draft previews followed by 1080p finalization.

CapabilityRequired inputKey rule
Text-to-videoPromptDefaults to 720p and automatic duration; explicit controls are optional.
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 omni_reference_task_type: "edit" and use automatic duration.
Video extensionPrompt and one videoSet omni_reference_task_type: "extend" explicitly.
Draft to final videoYour completed Draft task IDCreate a 480p preview, then finalize it at 1080p within seven days using inherited settings.

Endpoints And Authentication​

ActionMethodPath
Create taskPOST/v1/videos
Query taskGET/v1/videos/{task_id}

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 <UNIAI_API_KEY>
Content-Type: application/json

Request Parameters​

ParameterTypeRequiredDescription
modelstringYesseedance2.5.
promptstringConditionalText instruction. Required for text-only generation, editing, and extension. May be omitted with image, video, or audio references; omit when finalizing a Draft.
resolutionstringNo480p, 720p, or 1080p. Ordinary requests default to 720p; Draft defaults to and requires 480p; Draft finalization defaults to and requires 1080p.
durationinteger/stringNo"auto", -1, or an integer from 4 to 30. Defaults to automatic duration. Editing requires automatic duration; omit when finalizing a Draft.
aspect_ratiostringNoauto, 21:9, 16:9, 4:3, 1:1, 3:4, or 9:16. Frame inputs, editing, and extension require omission or auto. Omit when finalizing a Draft.
contentobject[]NoText, image, video, or audio parts. A text part uses {"type":"text","text":"..."}. See media roles below.
omni_reference_task_typestringNoauto, reference, edit, or extend. Set edit or extend explicitly for those workflows; omit when finalizing a Draft.
draftbooleanNotrue creates a 480p preview; defaults to false. Do not set true when finalizing a Draft.
draft_task_idstringConditionalThe completed Draft's UniAI task ID, owned by the same user and created less than seven days ago. Use it to create the 1080p final video.
output_formatstringNomp4 or mov; defaults to mp4.
generate_audiobooleanNoWhether to generate audio. Explicit false is preserved. Inherited during Draft finalization; omit it then.
watermarkbooleanNoWhether to add a watermark. Explicit false is preserved.
return_last_framebooleanNoWhether to return the generated last frame when available. Explicit false is preserved.
seedintegerNo-1 to 2147483647. Omit when finalizing a Draft.
priorityintegerNo0 to 9; explicit 0 is preserved.
execution_expires_afterintegerNoExecution expiry in seconds, from 3600 to 259200.
safety_identifierstringNo1 to 64 visible ASCII characters, without spaces or control characters. Use a non-sensitive identifier.
toolsobject[]NoWeb search uses [{"type":"web_search"}]. Omit when finalizing a Draft.
service_tierstringNoOnly default is supported. flex is unavailable.
sizestringNoCompatibility alias for resolution; if both are present, they must describe the same resolution. Prefer resolution.
secondsinteger/stringNoCompatibility alias for duration. Prefer duration. Omit when finalizing a Draft.
ratiostringNoCompatibility alias for aspect_ratio; adaptive is normalized to auto. Omit when finalizing a Draft.
operationstringNoCompatible workflow selector: reference_to_video, edit_video, or extend_video. Prefer omni_reference_task_type in new examples and avoid conflicting selectors. Omit when finalizing a Draft.

Use top-level parameters. Compatible clients may use extra_body for controls; any field present both there and at the top level must have identical values. Explicit false and 0 are values, not omitted settings.

4K, frames, camera_fixed, and the flex service tier are unsupported.

Minimal Text-To-Video Request​

curl -X POST "https://api.uniall.ai/v1/videos" \
-H "Authorization: Bearer <UNIAI_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2.5",
"prompt": "A mechanical bird unfolds its wings on a wooden table."
}'

Omitting resolution and duration uses 720p and automatic duration for ordinary generation. To choose explicit output settings and advanced controls:

{
"model": "seedance2.5",
"prompt": "A mechanical bird unfolds its wings on a wooden table.",
"resolution": "1080p",
"duration": 4,
"aspect_ratio": "16:9",
"output_format": "mp4",
"generate_audio": true,
"watermark": false,
"return_last_frame": true,
"seed": 250628,
"priority": 0,
"execution_expires_after": 86400,
"safety_identifier": "video-demo-01"
}

Media Inputs​

Use content[] for new multimodal integrations. Each item carries one media type and an explicit role.

Item typeURL fieldSupported roles
texttextGeneration or editing instruction
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. Wait for available, then copy the returned uri; do not construct it from mat_*. Use the material before expires_at.

The image and audio compatibility fields image, images, audios, and last_image remain accepted. Do not send conflicting values through both content[] and compatibility fields.

For video reference, use a content[] item with type: "video_url" and role: "reference_video". Top-level video / video_url fields use editing or extension semantics and cannot directly replace a reference-video item. For editing or extension, explicitly set omni_reference_task_type to edit or extend.

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​

Modeomni_reference_task_typedurationaspect_ratio
Text-to-videoOmit or autoOmit, "auto", -1, or integer 4..30Any supported value
First-frame / first-and-last-frame videoOmit or autoOmit, "auto", -1, or integer 4..30Omit or auto
Multimodal referencereference when specifiedOmit, "auto", -1, or integer 4..30Follow the media mode; frame inputs require auto
Video editingedit requiredOmit, "auto", or -1Omit or auto
Video extensionextend requiredOmit, "auto", -1, or integer 4..30Omit or auto
Draft finalizationOmit; inheritedOmit; inheritedOmit; inherited

Editing and extension require both a prompt and a source video. Do not rely on prompt keywords to select the workflow. Existing operation selectors remain compatible; new examples use omni_reference_task_type.

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",
"omni_reference_task_type": "reference",
"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"
}
]
}

Audio-Only Reference Without A Prompt​

{
"model": "seedance2.5",
"resolution": "480p",
"duration": 4,
"content": [
{
"type": "audio_url",
"audio_url": {
"url": "https://example.com/reference.wav"
},
"role": "reference_audio"
}
]
}

Video Editing​

{
"model": "seedance2.5",
"prompt": "Replace the sky and preserve the subject",
"video": "https://example.com/source.mp4",
"omni_reference_task_type": "edit",
"resolution": "720p",
"duration": "auto",
"aspect_ratio": "auto"
}

Video Extension​

{
"model": "seedance2.5",
"prompt": "Continue the camera movement into the illuminated square.",
"video": "asset://asset-EXAMPLE",
"omni_reference_task_type": "extend",
"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.

Draft Preview To 1080p Final Video​

1. Create A 480p Draft​

Set draft: true. Omitting resolution selects 480p; any other explicit tier is rejected. A Draft may also use the media-reference inputs on this page.

curl -X POST "https://api.uniall.ai/v1/videos" \
-H "Authorization: Bearer <UNIAI_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2.5",
"prompt": "A mechanical bird unfolds its wings on a wooden table.",
"draft": true,
"duration": 4,
"aspect_ratio": "16:9",
"generate_audio": true,
"seed": 250628
}'

2. Save The UniAI Task ID And Wait For Completion​

Poll using the create response's id or task_id until status is completed. Replace the placeholder task_YOUR_COMPLETED_DRAFT below with the actual UniAI task ID you received.

curl "https://api.uniall.ai/v1/videos/task_YOUR_COMPLETED_DRAFT" \
-H "Authorization: Bearer <UNIAI_API_KEY>"

3. Create The Final Video​

The parent must be a completed Seedance 2.5 Draft owned by the same UniAI user and created less than seven days ago. Pending, failed, expired, non-Draft, or another user's tasks cannot be reused.

curl -X POST "https://api.uniall.ai/v1/videos" \
-H "Authorization: Bearer <UNIAI_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2.5",
"draft_task_id": "task_YOUR_COMPLETED_DRAFT",
"output_format": "mov",
"watermark": false,
"return_last_frame": true,
"priority": 0
}'

Finalization defaults to 1080p; you may explicitly set resolution: "1080p". Other resolutions are rejected. A successful submission returns a new final-video task ID; poll it in the same way.

The final video inherits the Draft's prompt, all media, duration, aspect ratio, seed, generate_audio, and task type. Omit these fields instead of repeating or overriding them; also omit tools, operation, and omni_reference_task_type. Do not repeat the original content or resend even generate_audio: false.

You may separately set output_format, watermark, return_last_frame, priority, execution_expires_after, and safety_identifier. Do not set draft: true.

A content array containing exactly one Draft reference is also accepted:

{
"model": "seedance2.5",
"content": [
{
"type": "draft_task",
"draft_task": {
"id": "task_YOUR_COMPLETED_DRAFT"
}
}
]
}

Its id must also be the public task ID returned by UniAI. Do not mix it with text or media parts. If draft_task_id is also present, both IDs must match.

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": 1792368000
}

Store the public id or task_id and poll GET /v1/videos/{task_id} every 2 to 5 seconds until status is completed or failed. After completion, prefer the returned video_url to download the video; compatible responses may also expose it in result.video_url or result.outputs. Do not treat result URLs as permanent storage.

Query an ordinary task in the same way:

curl "https://api.uniall.ai/v1/videos/task_YOUR_VIDEO" \
-H "Authorization: Bearer <UNIAI_API_KEY>"

If you requested return_last_frame: true, read the returned last-frame result when available. 1080p output uses HEVC/10bit and needs a compatible player. MP4 and MOV select the output container.

Do not automatically retry Seedance 2.5 creation requests after failure, a client timeout, or an uncertain outcome. If you have a task ID, continue querying that task. If no ID was received, establish the original request's outcome first. This rule also applies to Draft finalization.

See Video Generation Overview for public status fields, completed/failed responses, and error handling. This model's no-automatic-retry rule takes precedence over general retry guidance.

Billing Notes​

Use each task's actual Token usage and final settlement record; pre-deduction is only an estimate. A Draft and its final video are separate billable tasks. The Draft does not offset the final video and is not counted again as an input video for finalization. Check the current UniAll price available to your account.

Common Errors​

ErrorCauseFix
Missing inputNo prompt, media, or valid Draft referenceSupply the required input for the selected workflow.
Invalid resolution4K or a mismatched Draft/final-video tierUse 480p/720p/1080p for ordinary tasks, only 480p for Drafts, and only 1080p for finalization.
Conflicting aliasesresolution and size contain different valuesRemove size or make the values identical.
Invalid edit durationEditing uses an integer durationOmit duration or use "auto"/-1.
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 fieldframes, camera_fixed, or service_tier: "flex" was sentRemove the unsupported field.
Invalid Draft referenceMissing, incomplete, non-Draft, expired, or another user's taskUse your completed Draft's UniAI task ID within seven days of creation.
Repeated inherited fieldsFinalization resends the prompt, media, duration, ratio, seed, audio, or task typeOmit inherited fields; send the Draft ID and permitted output controls only.
Invalid parameter type or rangeString booleans or out-of-range priority, seed, or expiryUse JSON booleans and the integer ranges in the parameter table.