メインコンテンツへスキップ
POST
Main changes vs 2.0: max duration 15s → 30s; references 9 images + 3 videos + 3 audios → 30 images + 10 videos + 10 audios; audio-only reference supported; mov output added.
Note: resolution supports 480p / 720p / 1080p (2.0’s 4k is not available on 2.5).

Authentication

string
必須
Bearer token auth. Get a key from the API Key page.

Request parameters

string
必須
Fixed value: seedance-2.5
boolean
デフォルト:"false"
動画タスクを送信する前にコンテンツモデレーションを実行するかどうかを指定します。
  • true:omni-moderation-latest でプロンプトと入力画像を審査
  • false または省略:審査リクエストを行わず、審査コストや遅延を追加しない(デフォルト)
審査対象:
  • テキスト:prompt、negative_prompt
  • 画像:image_urls、image_with_roles[].url、first_frame_image、last_frame_image
  • 画像形式の非公開 asset:// 素材:元の公開 URL を解決して審査
  • Base64 画像:公開 URL に変換後に審査
video_urls、audio_urls、動画/音声形式の非公開素材は、審査モデルが動画と音声に対応していないため審査されません。審査呼び出し自体は、動画リクエストを送信したユーザーには課金されません。
  • 検出時は HTTP 400(nsfw_content_detected)を同期的に返します。タスクと task_id は作成されず、動画生成枠も消費されません
  • 審査サービスが利用できない、タイムアウトする、または応答が不正な場合は fail-open となり、生成リクエストは続行されます。このオプションを絶対的な安全保証として使用しないでください
  • 公開画像 URL に解決できない入力はスキップされます
使用例:
検出時の応答:
boolean
true にすると 480p の試作動画を生成します。seedance-2.5 のみ対応。省略時は通常生成になります。
  • resolution は 480p のみ。省略時も 480p
  • draft_task_id と併用不可
  • 試作動画は作成から 3 日間有効。成功後に 1080p の完成動画を生成可能
手順は 試作モード を参照してください。
string
完成済みの試作動画から 1080p の完成動画を生成します。動画 URL ではなく、試作の送信レスポンスにある APIMart タスク ID(data[0].task_id)を指定します。
  • seedance-2.5 のみ対応。試作と同じモデルを使用
  • 現在の API Key のユーザーが所有し、成功済みかつ作成から 3 日以内の試作が必要
  • resolution は 1080p のみ。省略時も 1080p
  • draft: true と併用不可。prompt、参照素材、長さなどの継承フィールドを再送しないこと
変更可能な項目と制限は 試作モード を参照してください。
string
通常生成・試作では必須。draft_task_id で完成動画を生成する場合は送信禁止で、試作のプロンプトを自動継承します。Prompt. Reference media with @图片1 / @视频1 / @音频1 (1-based index matching array order). English aliases in prompts may also be used depending on model behavior; keep indices aligned with arrays.Example: "Use @视频1 for first-person framing throughout, @音频1 as BGM, first frame is @图片1"
string
デフォルト:"720p"
Resolution — only:
  • 480p
  • 720p (default)
  • 1080p
Unsupported values like 2k / 4k return a sync 400.試作モードの例外:draft: true は 480p のみ(省略時も同じ)、draft_task_id は 1080p のみ(省略時も同じ)。
string
デフォルト:"adaptive"
Aspect ratio (field name aspect_ratio is also accepted).Values: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive (default)
Edit, extend, and first/last-frame jobs have hard size constraints — see Task types and constraints.
integer
デフォルト:"5"
Duration in seconds:
  • 4 ~ 30
  • -1: model picks duration (pre-charge at the 30s cap; settle to actual length after completion)
If omitted: generate and bill 5 seconds.
boolean
デフォルト:"true"
Whether to generate audio (alias field name: audio).
  • true: with audio (default)
  • false: silent video
boolean
デフォルト:"false"
Add an “AI generated” watermark. Default false.
integer
Random seed. Different seeds usually yield different results for the same request; the same seed is similar but not guaranteed identical.
string
デフォルト:"mp4"
Output container:
  • mp4 (default)
  • mov: higher color precision — recommended for edit / extend workflows
string
デフォルト:"auto"
Sub-task type hint: auto / reference / edit / extend.Passing reference / edit / extend validates that type’s constraints at submit time. Invalid requests return 400, create no task, and charge nothing. See Task types and constraints.
array<string>
Reference image URLs, all treated as reference_image.Supports:
  • Public URL: https://example.com/pic.jpg
  • Private asset: asset://cm9xxxxxxxx
For first/last frames use image_with_roles.
  • Max 30 images
  • Prefer image_with_roles for first/last-frame roles
array<object>
Images with explicit roles.Example:
If video_urls / audio_urls are present, first_frame / last_frame are auto-converted to reference_image (multimodal reference job).
array<string>
Reference videos (reference_video).Input: video URL or asset ID (asset://...).See Reference video specs.
array<string>
Reference audio URLs (reference_audio). Public URLs or asset://....Max 10; total duration ≤ 30s (each clip 2~30s).
2.5 supports audio-only reference (no image/video required).
boolean
デフォルト:"false"
When true, the successful result also includes the last-frame image for chaining.
array<object>
Tool list for enhancements such as web search.Example:

Media limits

Reference video specs

  • Input: video URL or asset ID (asset://...)
  • Container: mp4, mov — codecs in the table below
  • Resolution: 480p, 720p, 1080p
  • Duration: each clip [2, 30] s; up to 10 reference videos; total duration of all videos ≤ 30s
  • Per-video dimensions:
    • Aspect ratio (width/height): [0.4, 2.5]
    • Side length (px): [300, 6000]
    • Total pixels: [640×640=409600, 3326×2494=8295044], i.e. width × height must fall in [409600, 8295044]
  • Size: each video ≤ 200 MB
  • Frame rate (FPS): [24, 60]

Supported codecs

Task types and constraints

The service infers task type from references and prompt intent. The last three types hard-constrain size / duration; violations fail asynchronously after the job starts (e.g. InvalidParameter.TaskTypeConstraint):

Turn async errors into sync errors with omni_reference_task_type

Passing reference / edit / extend declares the sub-task type so its constraints are validated at submit time. Invalid requests return 400 immediately: no task is created and nothing is charged — you do not have to poll until failed. Notes:
  • If edit omits duration, the platform sets it to -1. Omitting duration otherwise defaults to 5 seconds, which conflicts with the upstream edit requirement of -1. The trade-off is a 30-second prepaid hold (same as duration: -1); unused amount is refunded after completion. For a smaller hold, skip edit and use default auto.
  • If edit sends duration explicitly, it must be -1. Any other value returns 400 (output length follows the source video).
  • ⚠️ You can still fail asynchronously with InvalidParameter.TaskTypeMismatch. Upstream re-classifies the job from the prompt; a mismatch with your declared type is rejected. Keep prompt wording aligned (edit: “edit / delete / replace…”; extend: “extend forward/backward / continue…”).
  • All Seedance 2.5 channels share the same validation and upstream payload; switching channels does not change this behavior.

Asset library

You can pass public URLs as references, or upload into the library first and use asset://. Prefer the library when:
  1. Real human faces must use the library — raw URLs are blocked by content moderation; only approved library assets can be used
  2. Assets are reused often — upload once, skip repeated moderation on later jobs, faster submits
  3. URLs are signed temporary links — the platform stores a durable copy on ingest so later use does not depend on the original URL staying alive
  4. Library assets are synced to all available channels so multi-channel routing can use them wherever the job lands
The library is shared with the 2.0 family; approved asset:// IDs work in both 2.0 and 2.5 generation requests. Full submit fields: also see Private avatar assets.

Upload assets

The response includes a local task id. Poll with Get task status (GET /v1/tasks/{id}). After approval, list assets to obtain the asset:// ID.

Media limits (validated at submit)

Violations return 400 immediately (which asset index and which rule), without starting moderation or consuming moderation quota: Error example:
For 30s video assets, submit with "model": "seedance-2.5" (2.0 cannot use assets longer than 15s).
If the platform cannot probe the media (e.g. network blip), it may pass through and leave the decision to moderation.

Use in generation requests

Reference approved assets with asset:// in image_urls / image_with_roles / video_urls / audio_urls:
Multi-channel: after ingest, assets sync to all available channels so any routed channel can use them. If a channel’s copy is missing, the platform may re-upload from the original URL as a fallback (if that URL is already expired, that channel is skipped and another takes over).

Management APIs (quick reference)

Asset APIs are free of charge (auth + rate limits only); they do not create billing records.

FAQ

Q: How long does moderation take?
Images usually seconds; video and real-person assets may take minutes. Poll the task id until a terminal status.
Q: Moderation failed with no clear reason?
Some failures omit a detailed reason (often a transient fetch failure). The platform already retries once; if it still fails, change the URL (ensure it is publicly downloadable) and resubmit.
Q: Same asset for both 2.0 and 2.5 — upload twice?
No. Upload once; asset:// works for both generations. Cross-channel / cross-model sync is handled by the platform.
Q: Can I pass a real-person face as a raw URL?
Real-person assets must go through the library first.

Billing

以下は通常生成と試作の料金です。試作から生成する完成動画は 試作モードの料金 を参照してください。
  • Billed by seconds × resolution tier.
  • With reference video input: billable seconds = total input video duration (≤30s) + output duration, at the input-reference rate tier.
  • duration = -1 (auto): pre-charge at the 30s cap; settle to actual output after completion.
  • Omit duration: generate and bill 5 seconds.
  • Failed jobs or content moderation blocks: full refund (charge only on successful output).

試作モード

まず 480p の試作動画で映像を確認し、そのタスク ID から 1080p の完成動画を生成します。完成動画は試作のプロンプト、参照素材、長さ、縦横比、seed、音声設定、タスク種別を再利用し、試作の映像に合わせます。

ステップ 1:480p の試作動画を生成

通常の生成リクエストに "draft": true を追加します。素材とタスク種別の制限は同じです。resolution 省略時は 480p、720p や 1080p は 400 になります。
data[0].task_id から試作タスク ID を取得し、タスク状態 をポーリングします。data.status が completed になってから完成動画を送信してください。
5~15 秒ごとの照会を推奨します。pending は待機、processing は生成中、completed は成功、failed は失敗です。動画 URL は data.result.videos[].url 配列の url[0] から取得します。

ステップ 2:1080p の完成動画を生成

ステップ 1 の ID を draft_task_id に指定します。resolution 省略時は 1080p、それ以外は 400 になります。
完成動画には新しいタスク ID が返ります。結果は GET /v1/tasks/{task_id} で照会します。 次のフィールドは試作から継承します。同じ値でも再送すると 400 になるため、送信しないでください。 prompt, image_urls, image_with_roles, video_urls, audio_urls, duration, size, aspect_ratio, seed, generate_audio, audio, omni_reference_task_type, generation_type, camerafixed, web_search, tools. 次の出力オプションは変更できます。
draft: true と draft_task_id は排他的です。試作・完成動画とも service_tier は非対応です。試作は作成から 3 日間有効です。タスクが存在しない、別ユーザー所有、未成功、試作ではない、期限切れの場合は、完成動画の送信時に 400 となり、タスク作成・課金は行いません。
完成動画は試作生成時と同じ経路を使用し、システムが自動で関連付けます。その経路が一時利用不可の場合は 400 になります。同じ draft_task_id で後から再試行してください。 有効期限内の試作から完成動画を複数回生成できます。それぞれ独立したタスクとして個別に課金されます。

試作モードの料金

試作は通常の 480p 動画として課金します。参照動画の入力時間も通常どおり含み、合計最大 30 秒です。 完成動画は 1080p で課金されます。ステップ 1 に元の参照動画が含まれていた場合は 1080P-input、含まれていなかった場合は通常の 1080P の料金区分を選択し、その区分のトークン単価で精算します。 完成動画の課金対象となる入力秒数は、ステップ 1 で使用した元の参照動画の合計時間で、最大 30 秒です。生成された Draft 動画自体は動画入力に含めません。 完成動画の POST は引き続き draft_task_id を参照し、参照素材やその他の継承フィールドを再送してはいけません。素材の再送が不要でも、元の参照動画の時間は課金計算に含まれます。 例えば、ステップ 1 で 22 秒の元の参照動画を使って 11 秒の出力を指定した場合、完成動画のトークン数は 11 + 22 = 33 秒と 1080P-input 区分のトークン単価で見積もります。 成功後に実際のトークン使用量で精算し、差額を返金または追加請求します。失敗時は全額返金。単価と割引はモデル料金に従います。
幅・高さは各タスクの出力ピクセル寸法です。成功後の data.usage.completion_tokens で精算トークン数を確認できます。

Request examples

Text-to-video (30s)

Multimodal reference (image + video + audio)

Video edit

First–last frame

Private asset

Common errors

Response (submit)

integer
Status code; 200 on success
array
Submit response with status / task_id

Completed task (GET /v1/tasks/{task_id})

After submit, poll with Get task status. When status is completed, the payload looks like this.

Completed response example

Completed fields

Notes

  • Failed tasks (status=failed): cost is always 0 (pre-charge fully refunded); reason in data.error.message
  • usage may be missing for a few seconds after completion (settlement lag); query again shortly

Differences from 2.0