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
      • 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
    • 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
  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#

Two tiers, each with a standard (strict moderation) and a less-restriction variant:
ModelTierContent moderation
seedance-2Pro, higher qualityStrict
seedance-2-fastFast, lower costStrict
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.

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-less-restriction480p$0.125
seedance-2-less-restriction720p$0.25
seedance-2-less-restriction1080p$0.625
seedance-2-fast-less-restriction480p$0.10
seedance-2-fast-less-restriction720p$0.20
The -less-restriction variants are priced at a +25% markup over the matching strict tier and resolution.
seedance-2-fast / seedance-2-fast-less-restriction do not support 1080p output.
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–12 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 12.

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 12 max)
video_urlsNot allowedNot allowedoptional (shared 12 max)
audio_urlsNot allowedNot allowedoptional (shared 12 max)

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.

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 four 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.

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.

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-01 10:39:22
Previous
Less-Restriction Models Guide
Next
Video Watermark Remover