Skip to main content
POST
/
v1
/
videos
curl https://api.cometapi.com/v1/videos \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -F 'prompt="A slow cinematic camera push across a coastal landscape at sunrise"' \
  -F 'model="doubao-seedance-2-0"' \
  -F 'seconds="4"' \
  -F 'size="16:9"'
{
  "id": "task_abc123",
  "task_id": "task_abc123",
  "object": "video",
  "model": "doubao-seedance-2-0",
  "status": "queued",
  "progress": 0,
  "created_at": 1776681149
}
The size field accepts exact WxH values and ratio preset labels. Ratio preset labels map to the model-specific default WxH values in the table below. If you need a specific 720p or 1080p output, pass the exact WxH value instead of only a ratio preset. Exact WxH support remains model-dependent, so use a documented size entry for the target model when the rendered resolution must stay fixed.

Use reference images

Only the Seedance 2.0 models accept input_reference. Add one input_reference file for image-guided generation. For advanced multi-reference prompts, repeat the same multipart field in upload order. Seedance 2.0 is sensitive to how the prompt connects each reference image to the scene. Refer to the uploaded files by order, such as [Image 1], [Image 2], and [Image 3], then assign each image a clear role:
  • Use [Image 1] for the main subject, character, or product.
  • Use [Image 2] for a secondary subject, prop, or companion.
  • Use [Image 3] for the background, setting, lighting, or style.
Describe what should stay recognizable, what can change, the action, camera motion, visual style, and scene. A vague prompt can make the generated video look like the reference image was not used, even when the upload was accepted. This prompt structure is more reliable than only listing images:
Use the uploaded images in order: keep the boy wearing glasses and a blue T-shirt from [Image 1], add the corgi puppy from [Image 2], and use the lawn from [Image 3] as the setting. Create a 4-second 3D cartoon video with the boy and puppy sitting together, a slow camera push-in, soft daylight, and no extra characters.

Duration by model

If you omit seconds, CometAPI requests a 5-second clip. Send seconds as a string when you need a specific duration.
Model familySupported secondsDefaultBoundary behavior
Seedance 2.0 and Seedance 2.0 Fast4-155Use integer seconds in range.
Seedance 1.5 Pro4-125Use integer seconds in range.
Seedance 1.0 Pro2-105Use integer seconds in range.

Size support by model

The table below follows the official Seedance resolution mapping and keeps the published size values in one place. For 1080p, the rightmost column lists the documented Seedance 1.5 Pro and Seedance 2.0 values. Seedance 2.0 Fast is not listed in that official 1080p table.
ResolutionAspect ratioPixel values for Seedance 1.0 seriesPixel values for Seedance 1.5 Pro / Seedance 2.0 / Seedance 2.0 Fast
480p16:9864x480864x496
4:3736x544752x560
1:1640x640640x640
3:4544x736560x752
9:16480x864496x864
21:9960x416992x432
720p16:91248x7041280x720
4:31120x8321112x834
1:1960x960960x960
3:4832x1120834x1112
9:16704x1248720x1280
21:91504x6401470x630
1080p16:91920x10881920x1080
4:31664x12481664x1248
1:11440x14401440x1440
3:41248x16641248x1664
9:161088x19201080x1920
21:92176x9282206x946

How ratio presets differ from exact WxH

Use a ratio preset when the model-specific default output size is acceptable. For the doubao-seedance-1-5-pro family, ratio-only requests use the 720p row from the table above:
Ratio presetDefault rendered size
16:91280x720
4:31112x834
1:1960x960
3:4834x1112
9:16720x1280
21:91470x630
Use exact WxH when the rendered resolution must stay fixed. Exact WxH remains model-dependent, so inspect the completed media before relying on an undocumented size.

Authorizations

Authorization
string
header
required

Bearer token authentication. Use your CometAPI key.

Body

multipart/form-data
prompt
string
required

Text prompt that describes the video. Required. When using reference images, describe what each uploaded image should control, such as the subject from [Image 1], the secondary object from [Image 2], and the background or style from [Image 3]. Also state the action, camera motion, visual style, and scene.

Example:

"A slow cinematic camera push across a coastal landscape at sunrise."

model
enum<string>
required

Seedance model id. Only the two 2.0 models accept input_reference.

Available options:
doubao-seedance-2-0,
doubao-seedance-2-0-fast,
doubao-seedance-1-5-pro,
doubao-seedance-1-0-pro
Example:

"doubao-seedance-2-0"

seconds
integer
default:5

Video duration in seconds. The accepted range depends on the model: doubao-seedance-2-0 and doubao-seedance-2-0-fast accept 4 to 15, doubao-seedance-1-5-pro accepts 4 to 12, and doubao-seedance-1-0-pro accepts 2 to 10. The default is 5 for every model.

Required range: 2 <= x <= 15
Example:

5

size
string

Output size. Use either a ratio preset label such as 16:9, 4:3, 1:1, 3:4, 9:16, or 21:9, or an exact WxH value such as 1280x720. Ratio preset labels map to model-specific default render sizes. If you need a fixed 720p or 1080p output, pass the exact WxH value instead of only a ratio preset. Exact WxH support remains model-dependent, and an undocumented or unsupported raw WxH value can normalize to another size or fail.

Pattern: ^(16:9|4:3|1:1|3:4|9:16|21:9|[1-9]\d{2,3}x[1-9]\d{2,3})$
Examples:

"16:9"

"1280x720"

"1920x1080"

"4:3"

"1112x834"

"1:1"

"960x960"

"3:4"

"834x1112"

"9:16"

"720x1280"

"1080x1920"

"21:9"

"1470x630"

input_reference
file

Optional reference image uploaded as a multipart file. Repeat this field to send multiple reference images; the order of repeated fields is the order you should reference in the prompt as [Image 1], [Image 2], and so on. Use JPEG or PNG files for best compatibility. Only doubao-seedance-2-0 and doubao-seedance-2-0-fast accept this field; sending it with a 1.0 Pro or 1.5 Pro model returns HTTP 400.

Response

Task created. Save the returned id and poll GET /v1/videos/{id}.

id
string
required

Task id. Use it as the path parameter for GET /v1/videos/{id}.

object
string
required

Object type, always video.

model
string
required

Echo of the requested model id.

status
enum<string>
required

Initial task status. Newly created tasks are returned as queued.

Available options:
queued,
in_progress,
completed,
failed,
error
progress
integer
required

Completion percentage. 0 at creation.

Required range: 0 <= x <= 100
created_at
integer
required

Task creation time as a Unix timestamp in seconds.

task_id
string

Alias of id returned for compatibility. The value matches id.