Skip to main content
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2-mini",
    "client_business_id": "order_20260616_001",
    "prompt": "Keep the character from image 1, follow the camera motion of video 1, and match the rhythm of audio 1 for a short indoor product clip.",
    "duration": 10,
    "aspect_ratio": "16:9",
    "image_with_roles": [
      {"url": "https://example.com/ref-image-1.jpg", "role": "reference_image"}
    ],
    "video_with_roles": [
      {"url": "https://example.com/ref-video-1.mp4", "role": "reference_video"}
    ],
    "audio_with_roles": [
      {"url": "https://example.com/ref-audio-1.mp3", "role": "reference_audio"}
    ],
    "resolution": "480p"
  }'
{
  "id": "tsk_vid_xxx",
  "client_business_id": "order_20260616_001",
  "object": "generation.task",
  "model": "seedance-2-mini",
  "status": "in_progress",
  "progress": 10,
  "created_at": 1781577600
}
  • Supports seedance-2, seedance-2-fast, and seedance-2-mini
  • Supports text-to-video and multimodal reference-to-video; seedance-2 and seedance-2-fast also support first-frame / first-last-frame workflows
  • Supports combined image, video, and audio references; seedance-2-mini allows up to 9 images, 3 videos, and 3 audios
  • Async task workflow: the submit API returns generation.task, and the completed result is fetched from the task status API

Authorizations

Authorization
string
required
All requests require Bearer Token authentication.Get your API Key from the API Key Management Page.
Authorization: Bearer YOUR_API_KEY

Body

model
string
default:"seedance-2"
required
Video generation model name.Available models:
  • seedance-2 - Standard version for higher quality output and the broader Seedance 2 workflow
  • seedance-2-fast - Faster version for previews and lower-latency iteration
  • seedance-2-mini - Lightweight version for lower-cost drafts and multimodal reference workflows, currently fixed to 1 result per request
prompt
string
Video prompt.We recommend clearly describing the scene, camera motion, subject action, style, and audio mood.
client_business_id
string
Your business-side ID, such as an order number or internal job ID. Once submitted, it is stored with the task and can be used later for status lookup: GET /v1/videos/generations/{client_business_id}.metadata.client_business_id is also accepted, but the top-level field is recommended.
duration
integer
default:0
Video duration in seconds.Rules:
  • seedance-2: 4-15
  • seedance-2-fast: 4-15
  • seedance-2-mini: 4-15
  • 0: auto duration (seedance-2 / seedance-2-fast only)
  • -1: auto duration (seedance-2 / seedance-2-fast only)
aspect_ratio
string
Video aspect ratio.Options:
  • 21:9
  • 16:9
  • 4:3
  • 1:1
  • 3:4
  • 9:16
image_urls
string[]
Compatibility image URL array.We recommend using image_with_roles instead so you can explicitly mark first_frame, last_frame, or reference_image.
  • Do not use image_urls together with image_with_roles.
  • seedance-2-mini does not support frame mode. Use image_with_roles with reference_image instead.
image_with_roles
array
Image list with explicit roles.Supported patterns:
  • seedance-2 / seedance-2-fast
    • first_frame for first-frame image-to-video
    • first_frame + last_frame for first-last-frame video generation
    • reference_image for multimodal reference generation
  • seedance-2-mini
    • reference_image only
  • Maximum 1 first_frame
  • Maximum 1 last_frame
  • Maximum 9 reference_image
  • Frame mode and reference mode cannot be mixed
  • seedance-2-mini supports reference_image only
video_with_roles
array
Video list with roles.Only reference_video is currently supported in multimodal reference mode.Limits:
  • seedance-2-mini: up to 3 reference videos
audio_with_roles
array
Audio list with roles.Only reference_audio is currently supported in multimodal reference mode.Limits:
  • seedance-2-mini: up to 3 reference audios
audio_with_roles cannot be used alone. At least one visual input is required.
resolution
string
default:"720p"
Video resolution.Options:
  • seedance-2: 480p, 720p, 1080p, 4k
  • seedance-2-fast: 480p, 720p
  • seedance-2-mini: 480p, 720p
generate_audio
boolean
default:true
Whether to generate synced audio.
seedance-2-mini does not expose generate_audio. Do not send this field for mini requests.
seed
integer
Random seed for generation control.
callback_url
string
Async callback URL.
trace_id
string
Your pass-through trace ID. Effective when used together with callback_url.

Use Uploaded Assets

If you already uploaded private assets and obtained a usable asset_id, you do not need to send the original media URL again. Use:
  • asset://<ASSET_ID>
Asset inputs can be used as:
  • Images: first_frame, last_frame, reference_image
  • Videos: reference_video
  • Audios: reference_audio
Before use, make sure the asset has reached active status. Related guides:

Input Combinations

Typical supported combinations:
  • Text only: text-to-video
  • Text + first frame: first-frame image-to-video (seedance-2 / seedance-2-fast only)
  • Text + first frame + last frame: first-last-frame generation (seedance-2 / seedance-2-fast only)
  • Text + reference images: multimodal reference generation
  • Text + reference video: video-reference generation
  • Text + reference images + reference audio: multimodal reference generation
  • Text + reference images + reference video + reference audio: multimodal reference generation
seedance-2-mini supports reference mode only. It does not support first_frame or last_frame.

Capabilities

Itemseedance-2seedance-2-fastseedance-2-mini
PositioningHigher quality and longer runsFaster generation and lower latencyLower-cost drafts and multimodal reference
Duration4-15 seconds, auto duration supported4-15 seconds, auto duration supported4 / 8 / 10 / 12 / 15 seconds
Resolution480p / 720p / 1080p / 4k480p / 720p480p / 720p
Image rolesfirst_frame / last_frame / reference_imagefirst_frame / last_frame / reference_imagereference_image
Video rolesreference_videoreference_videoreference_video
Audio rolesreference_audioreference_audioreference_audio
Frame modeSupportedSupportedNot supported
Reference image limit999
Reference video limitDepends on the routed channelDepends on the routed channel3
Reference audio limitDepends on the routed channelDepends on the routed channel3
Synced audio fieldgenerate_audiogenerate_audioNot exposed
Callbackcallback_url + trace_idcallback_url + trace_idcallback_url + trace_id
seedance-2-mini is currently fixed to 1 output per request and does not expose count / n. It also does not support media_mode=frame, first_frame, last_frame, or return_last_frame.

Response

id
string
Task ID for status queries.
client_business_id
string
Your business-side ID. Returned only when client_business_id was provided in the request.
object
string
Object type, always generation.task.
model
string
Model name used for this request.
status
string
Task status: queued, in_progress, completed, or failed.
progress
integer
Task progress percentage (0-100).
created_at
integer
Task creation timestamp.
The submit API returns the base task object. After completion, use Get Video Task Status to fetch completed_at, expires_at, and result.type = "video" with result.data[].url and result.data[].format.
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2-mini",
    "client_business_id": "order_20260616_001",
    "prompt": "Keep the character from image 1, follow the camera motion of video 1, and match the rhythm of audio 1 for a short indoor product clip.",
    "duration": 10,
    "aspect_ratio": "16:9",
    "image_with_roles": [
      {"url": "https://example.com/ref-image-1.jpg", "role": "reference_image"}
    ],
    "video_with_roles": [
      {"url": "https://example.com/ref-video-1.mp4", "role": "reference_video"}
    ],
    "audio_with_roles": [
      {"url": "https://example.com/ref-audio-1.mp3", "role": "reference_audio"}
    ],
    "resolution": "480p"
  }'
{
  "id": "tsk_vid_xxx",
  "client_business_id": "order_20260616_001",
  "object": "generation.task",
  "model": "seedance-2-mini",
  "status": "in_progress",
  "progress": 10,
  "created_at": 1781577600
}