PiAPI
HomeWorkspace
HomeWorkspace
Join Discord
  1. Seedance
  • Get Started
    • Overview
    • Quickstart
    • Make Instruction: How to Use PiAPI to Build a Workflow on Make?
  • Endpoints
    • Flux
      • Flux with LoRA and Controlnet
      • Available LoRA and Controlnet
      • Flux API with Redux Variation, Fill, Inpaint and Outpaint
      • Create Task
        • Text to Image
        • Image to Image
        • Kontext
      • Get task
    • Gemini
      • Gemini-2.5-flash-image
      • Nano Banana Pro
      • Nano Banana 2
      • Get task
    • Qwen Image
      • Text to Image
      • Image Edit
      • Get task
    • Z-Image
      • Text to Image
      • Get task
    • Seedream
      • Seedream 5 Lite
      • Get Task
    • Faceswap
      • Multi Faceswap
      • Image Faceswap
      • Video Faceswap
      • Get Task
    • Kling
      • Lipsync With PiAPI Kling API Examples
      • Motion Brush With PiAPI Kling API Example
      • Kling Elements Video Generation API
      • Kling Effects Video Generation
      • Cancel Task
        • Cancel Task
        • Cancel Tasks
      • Get Task
      • Create Task
      • Kling Virtual Try-On
      • Kling Effects
      • Kling Sound
      • Kling Avatar
      • Kling Motion Control
      • Kling Turbo
      • Kling 3.0
    • Kling omni
      • Kling o1
      • Kling 3.0 omni
      • Get Task
    • Omni Human
      • OmniHuman 1.5
      • Get task
    • Seedance
      • Less-Restriction Models Guide
      • Private Asset Library
      • Seedance 2
        POST
      • Video Watermark Remover
        POST
      • Get task
        GET
    • Veo3
      • Veo3 Text to Video
      • Veo3 Image to Video
      • Veo3.1 Text to Video
      • Veo3.1 Image to Video
      • Get task
    • Sora2
      • Sora2-preview Text to Video
      • Sora2 Text to Video
      • Sora2-Pro Text to Video
      • Sora2 Remove Watermark
      • Get task
    • WanX
      • Generate WanX Task with LoRA Using PiAPI
      • Available LoRA Types for Wanx
      • Use Cases for Wanx LoRA
      • Use Cases for Wanx Control Camera
      • Create Task
      • Get Task
    • Wan
      • Wan2.6 Text to Video
      • Wan2.6 Image to Video
      • Get task
    • Hailuo
      • Generate Video
      • Get Task
    • Skyreels
      • Create Task
      • Get Task
    • Framepack
      • Create Task
      • Get Task
    • Hunyuan Video
      • How to Make a Hunyuan API Call
      • Available Hunyuan Lora models
      • Get Task
      • Generate Video
    • Luma Dream Machine
      • Create Task
      • Get Task
    • LLM
      • How To Avoid Timeouts in Completion API
      • LLM API | Basic Completions
    • Suno(service stopped)
      • Music(service stopped)
      • Lyrics(service stopped)
      • Get task
    • Song(Udio)
      • Song API Task Creation Examples
      • [Udio] Song Extend
      • Get Task
      • Create Task
      • [Udio] Generate Lyrics
    • Mmaudio
      • Get Task
      • Generate Audio
    • DiffRhythm
      • Generate Audio
      • Get Task
    • Ace Step
      • Create Task
        • Text to Audio
        • Audio to Audio
        • Audio Edit
        • Audio Extend
      • Get Task
    • TTS
      • Zeroshot Text-to-Speech F5-TTS
      • Get Task
    • Trellis
      • Trellis Create Task
      • Trellis2 Create Task
      • Get Task
    • Pixal3D
      • Pixal3D Create Task
      • Get Task
    • Joycaption
      • Image Caption
      • Get Task
    • Midjourney
      • PiAPI Penalties on Midjourney Usage
      • Detailed Explaination on Midjourney Task Result
      • Midjourney V7 API Instructions
      • Create Task
        • Imagine
        • Upscale
        • Variation
        • Reroll
        • Describe
        • Seed
        • Blend
        • Inpaint
        • Outpaint
        • Pan
      • Cancel Task
        • Cancel Task
        • Cancel Tasks
      • Get Task
    • AI Hug
      • Get Task
      • Create Task
    • Tools
      • File Upload API
      • Remove Background API
      • Remove Background-Get Task
      • Segment With Prompt API
      • Segment With Prompt API-Get Task
      • Image Upscale(Super Resolution) API
      • Image Upscale-Get Task
      • Video Upscale
      • Video Upscale-Get Task
      • Video Remove Background
      • Video Remove Background-Get task
    • PiAPI Account Management
      • PiAPI Account Info
      • Task List Info
      • User Task History
    • GPT image
      • GPT-image API
    • Claude Code
      • Claude Code Usage Guide
  • Resources
    • Change Log
    • Output Storage
    • Unified API Schema
    • Webhook
    • Bulk Generation Service
    • Billings
    • PiAPI MCP Server
    • Workspace Manual
      • Host-your-account (HYA) | Back-up Account
      • Host-your-account (HYA) | Debug Checklist
      • Host-your-account (HYA) | Connected Account Status
    • Announcements
      • PiAPI 2025 January 1st Pricing Update
      • The discontinued support for midjourney
      • Sunsetting Suno
  • Schemas
    • Schemas
      • motion brush
      • Create Task
      • camera control
      • Cancel Params
      • Float2 Point
      • Control Points
      • txt2video-1.3b
      • txt2video-14b
      • txt2video-14b-lora
      • img2video-14b
      • img2video-14b-lora
      • img2video-14b-keyframe
      • img2video-14b-control-camera
      • wan22-txt2video-14b
      • wan22-img2video-14b
      • hunyuan-txt2video-lora
      • Trellis API/text-to-3D
      • Trellis API/image-to-3D
      • Trellis2 API/image-to-3D
      • Kling omni multi shot
      • VideoGenerationRequest
      • TaskRequest
      • VideoGenerationResponse
      • TaskConfig
      • TaskInput
      • TaskResponse
      • ErrorResponse
    • Response
      • Unified-Task-Response
    • RequestBodies
      • Unified-Task-Request-Body
    • config
    • control_net_setting
    • lora_setting
    • Pixal3D API/image-to-3D
  1. Seedance

Seedance 2

POST
https://api.piapi.ai/api/v1/task

Overview#

Seedance 2.0 provides high-quality video generation from text prompts, with multiple modes supporting text-to-video, first/last frame control, and multi-modal omni references (images / videos / audio). This document describes the available models, pricing, modes, usage guidelines, and the syntax for referencing media in your prompts.

Currently available models#

Three tiers. The Pro and Fast tiers each have a standard (strict moderation) and a less-restriction variant; the Mini tier is currently a single strict-moderation entry:
ModelTierContent moderation
seedance-2Pro, higher qualityStrict
seedance-2-fastFast, lower costStrict
seedance-2-miniMini, lowest cost (720p only, no video/audio references)Strict
seedance-2-less-restrictionProLess restrictive
seedance-2-fast-less-restrictionFastLess restrictive
The -less-restriction variants apply a more permissive content review. They accept exactly the same input schema as the strict variants but bill at a +25% markup (see Pricing). They are not retried on content rejection — see Content Moderation below.
seedance-2-mini does not currently have a -less-restriction variant, does not accept video or audio references, and outputs only 720p. Use it when cost matters more than the higher resolutions or reference-driven modes offered by the Pro / Fast tiers.

Deprecated task types (auto-redirected)#

The following legacy task types continue to be accepted for backwards compatibility and are silently redirected to the strict formal models. Please migrate to the active models above:
Deprecated task typeNow equivalent to
seedance-2-previewseedance-2
seedance-2-fast-previewseedance-2-fast
seedance-2-preview-vipseedance-2
seedance-2-fast-preview-vipseedance-2-fast
Existing clients sending the deprecated task types will continue to work without code changes. Note that the formal models default to 480p resolution; if you previously relied on the preview-vip default of 720p, pass resolution: "720p" explicitly to preserve output quality.

Pricing#

ModelResolutionPrice per second
seedance-2480p$0.10
seedance-2720p$0.20
seedance-21080p$0.50
seedance-2-fast480p$0.08
seedance-2-fast720p$0.16
seedance-2-mini720p$0.15
seedance-2-less-restriction480p$0.11
seedance-2-less-restriction720p$0.22
seedance-2-less-restriction1080p$0.55
seedance-2-fast-less-restriction480p$0.088
seedance-2-fast-less-restriction720p$0.176
The -less-restriction variants are priced at a +10% markup over the matching strict tier and resolution.
seedance-2-fast / seedance-2-fast-less-restriction do not support 1080p output.
seedance-2-mini outputs only 720p; 480p and 1080p requests are rejected. Mini does not accept input videos, so the cost formula collapses to unit_price × output_duration.
Cost calculation:
Without input videos: credits = unit_price × output_duration
With input videos: credits = unit_price × output_duration + (unit_price / 2) × total_input_video_duration

Duration Limits#

Maximum output duration: 15 seconds (API enforces integer 4–15).
Maximum total input video duration: 15.4 seconds (sum of all reference videos).

Modes#

The mode parameter determines how references are used and which parameters take effect.
mode is optional — when omitted, it is automatically inferred from the input:
No references → text_to_video
1–2 images only (no videos, no audios) → first_last_frames
Any other combination of references → omni_reference
You may also pass mode explicitly to enforce strict validation.

text_to_video#

Pure text-to-video generation. No references accepted.
duration: user-controlled (4–15s)
aspect_ratio: user-controlled (6 options)

first_last_frames#

Use 1–2 images as the first and/or last frame of the generated video.
image_urls: 1–2 images required. Only images accepted — video and audio URLs are rejected.
duration: user-controlled (4–15s)
aspect_ratio: user-controlled (6 options), or auto to derive from the first image
Supported image formats: jpg, jpeg, png, webp, bmp

omni_reference#

Use 1–9 mixed references (images, videos, audio) for flexible multi-modal generation.
image_urls: optional, images as style/content references
video_urls: optional, videos as motion/style references (formats: mp4, mov)
audio_urls: optional, audio as soundtrack (mp3/wav only, must be ≤15 seconds total)
duration: user-controlled (4–15s)
aspect_ratio: user-controlled (6 options)
Audio-only is not allowed — at least one image or video reference must be provided alongside audio.
Total references (images + videos + audios) must be between 1 and 9.
Not available on seedance-2-mini — Mini supports only text_to_video and first_last_frames; any request containing video_urls or audio_urls is rejected.

Important Notes & Special Cases#

Parameter behavior by mode#

Parametertext_to_videofirst_last_framesomni_reference
durationUser input (4–15)User input (4–15)User input (4–15)
aspect_ratioUser input (6 options)User input or auto (from image)User input (6 options)
image_urlsNot allowed1–2 requiredoptional (shared 9 max)
video_urlsNot allowedNot allowedoptional (shared 9 max)
audio_urlsNot allowedNot allowedoptional (shared 9 max)
On seedance-2-mini, the omni_reference column does not apply — Mini only handles text_to_video and first_last_frames.

Aspect ratio#

Supported values: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. The value auto is only available in first_last_frames mode (derives from the first image).
Default: 16:9 (auto becomes 16:9 if no image is provided).

Duration#

Range: 4 to 15 seconds (any integer).
Default: 5 seconds (when omitted or out of range).

Resolution#

Supported values: 480p (default), 720p, 1080p.
1080p is not supported on the seedance-2-fast / seedance-2-fast-less-restriction tiers.
seedance-2-mini supports only 720p. The resolution defaults to 720p when omitted; passing any other value returns a 4xx error (the rejection echoes the offending value).

Audio constraints#

Audio references are only accepted in omni_reference mode.
Supported formats: mp3, wav only.
Maximum total audio duration: 15 seconds. The upstream silently rejects longer audio (the upload will time out with no explicit error message); the API pre-validates duration to surface this early.
Audio-only submissions are rejected — at least one image or video must accompany any audio references.

Content moderation#

All models apply content moderation. Submissions found to contain disallowed content are rejected and your credits are refunded.
seedance-2 / seedance-2-fast (strict): on a content rejection, the task may be retried once via an alternate review path that typically resolves prompts flagged for style / advertising / character intent.
seedance-2-less-restriction / seedance-2-fast-less-restriction: the primary review is itself less restrictive, and there is no further retry on rejection — a rejection is final, your credits are refunded, and the task ends with a content-violation error.
seedance-2-mini: single review path with no retry on rejection — a content rejection refunds credits and ends the task.

Peak hours#

From 09:00 to 15:00 GMT, Seedance experiences high traffic. Queue times may extend to several hours during this period.

Using References in Prompts#

When you include references, you can mention them in the prompt using @-syntax.

Syntax#

@image1, @image2, … — reference images by position in image_urls (1-based)
@video1, @video2, … — reference videos by position in video_urls (1-based)
@audio1, @audio2, … — reference audios by position in audio_urls (1-based)
Chinese format also supported: @图片1, @视频1, @音频1 (with or without _ between the type and the number)

Examples#

Single image#

The cat in @image1 walks through a garden

Image + video + audio#

Apply @image1 artistic style with @video1 motion and @audio1 soundtrack

Morphing#

@image1 transforms into @image2

Validation#

If your prompt references a material that was not provided (e.g. @image3 but only 2 images supplied), the request is rejected with a descriptive error message. The same applies to @videoN and @audioN.

Using Private Assets#

The Private Asset Library lets you reference uploaded characters, products, scenes, or audio across tasks instead of re-fetching the same URL every time. It also unlocks a one-call submission flow where the service uploads your inputs for you.
Available on seedance-2-less-restriction and seedance-2-fast-less-restriction only. Strict variants do not accept asset references — they will reject the request with HTTP 422.

Two modes#

ModeHow you reference inputsWhen to use
ManualUpload to the library once (see Private Asset Library guide), then pass asset://<asset_id> strings in image_urls / video_urls / audio_urls.A stable cast / product library reused across many tasks. The asset is pre-vetted once and referenced for free thereafter.
Auto-uploadSet auto_upload_assets: true and pass raw URLs as you would normally. The service uploads each non-asset:// URL as an ephemeral asset, runs the task, and cleans up afterwards.Each task uses fresh references (on-demand user content, throwaway avatars). No manual upload / delete bookkeeping.
Both modes can be mixed in the same request. Explicit asset:// items pass through untouched while raw URLs are auto-ingested.

Quick reference — auto-upload#

{
  "model": "seedance",
  "task_type": "seedance-2-fast-less-restriction",
  "input": {
    "prompt": "A cinematic 5-second scene blending Image 1 and Image 2",
    "image_urls": [
      "https://your-cdn.com/character-a.png",
      "https://your-cdn.com/character-b.png"
    ],
    "auto_upload_assets": true,
    "asset_retention_hours": 3,
    "aspect_ratio": "16:9",
    "duration": 5,
    "resolution": "720p"
  }
}
The task starts with a brief ingestion phase (typically 30–90 s for the first reference) before generation begins.

Quick reference — manual + mixed#

{
  "model": "seedance",
  "task_type": "seedance-2-fast-less-restriction",
  "input": {
    "prompt": "Image 1 walks through Image 2 at sunset",
    "image_urls": [
      "asset://asset-20260608154633-rv7g2",
      "https://your-cdn.com/scene-today.png"
    ],
    "auto_upload_assets": true,
    "aspect_ratio": "16:9",
    "duration": 5
  }
}
The asset:// item is referenced as-is; the raw URL becomes an ephemeral asset for this task only.

Things to know#

The two ephemeral parameters (auto_upload_assets, asset_retention_hours) are ignored on strict task types — strict requests with raw URLs continue to behave exactly as before.
Strict task types reject any asset:// reference (HTTP 422). Switch to a -less-restriction variant if you need asset references.
Ephemeral assets do not consume your manual per-plan quota — they use a separate per-plan concurrency cap. See the Private Asset Library guide for the full lifecycle, quotas, and error codes.

Tips#

Use publicly accessible URLs (e.g. hosted on a CDN or cloud storage). Signed / expiring URLs may fail.
Keep input videos short (5–15 seconds) for best results.
Describe the desired output clearly in your prompt.

Request

Header Params

Body Params application/json

Examples
{
    "model": "seedance",
    "task_type": "seedance-2-fast",
    "input": {
        "prompt": "A woman sings and strums her guitar",
        "mode": "text_to_video",
        "duration": 5,
        "aspect_ratio": "16:9"
    },
    "config": {
        "webhook_config": {
            "endpoint": "https://your-webhook-endpoint.example.com/callback",
            "secret": ""
        }
    }
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location 'https://api.piapi.ai/api/v1/task' \
--header 'X-API-Key;' \
--header 'Content-Type: application/json' \
--data '{
    "model": "seedance",
    "task_type": "seedance-2-fast",
    "input": {
        "prompt": "A woman sings and strums her guitar",
        "mode": "text_to_video",
        "duration": 5,
        "aspect_ratio": "16:9"
    },
    "config": {
        "webhook_config": {
            "endpoint": "https://your-webhook-endpoint.example.com/callback",
            "secret": ""
        }
    }
}'

Responses

🟢200Success
application/json
Bodyapplication/json

Examples
{
    "code": 200,
    "data": {
        "task_id": "07ed43de-465d-43b1-b62c-44249b14d818",
        "model": "seedance",
        "task_type": "seedance-2-fast",
        "status": "pending",
        "config": {
            "service_mode": "",
            "webhook_config": {
                "endpoint": "",
                "secret": ""
            }
        },
        "input": {
            "prompt": "A woman sings and strums her guitar",
            "mode": "text_to_video",
            "duration": 5,
            "aspect_ratio": "16:9"
        },
        "output": null,
        "meta": {
            "created_at": "2026-04-05T13:33:26.10346684Z",
            "started_at": "0001-01-01T00:00:00Z",
            "ended_at": "0001-01-01T00:00:00Z",
            "usage": {
                "type": "point",
                "frozen": 4000000,
                "consume": 0
            },
            "is_using_private_pool": false
        },
        "detail": null,
        "logs": [],
        "error": {
            "code": 0,
            "raw_message": "",
            "message": "",
            "detail": null
        }
    },
    "message": "success"
}
Modified at 2026-06-24 14:30:24
Previous
Private Asset Library
Next
Video Watermark Remover