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-fast"' \
  -F 'seconds="5"' \
  -F 'size="16:9"' \
  -F 'resolution="720p"'
{
  "id": "task_abc123",
  "task_id": "task_abc123",
  "object": "video",
  "model": "doubao-seedance-2-0-fast",
  "status": "SUBMITTED",
  "progress": 0,
  "created_at": 1776681149
}
Use this endpoint to start a ByteDance Seedance video job. All Seedance model tiers share the same request shape; you choose the model by setting the model field. The call returns a task id immediately and the render continues in the background.

Choose a model

Model idTierNotes
doubao-seedance-2-02.0Highest quality output in the 2.0 family.
doubao-seedance-2-0-fast2.0Faster variant of 2.0 for quick iteration and previews.
doubao-seedance-1-5-pro1.5 ProSupports 1080p. Text-to-video only.
doubao-seedance-1-0-pro1.0 ProSupports 1080p and shorter clips from 2 seconds. Text-to-video only.
See the Models page for live availability.

Parameter ranges

FieldTypeRequiredDefaultAllowed values
promptstringyesany text
modelstringyesdoubao-seedance-2-0, doubao-seedance-2-0-fast, doubao-seedance-1-5-pro, doubao-seedance-1-0-pro
secondsintegerno5depends on model (see below)
sizestringno16:921:9, 16:9, 4:3, 1:1, 3:4, 9:16
resolutionstringno720p480p, 720p for 2.0 models; 480p, 720p, 1080p for 1.5 Pro and 1.0 Pro
input_referencefilenoJPEG, PNG, or WebP. Accepted only by the 2.0 models.

Duration range by model

Modelseconds range
doubao-seedance-2-0, doubao-seedance-2-0-fast4 to 15
doubao-seedance-1-5-pro4 to 12
doubao-seedance-1-0-pro2 to 10
Sending a value outside the model range returns HTTP 400 with code: "InvalidParameter" and a message about duration.

Image-to-video support

Only the 2.0 models accept an input_reference file. Sending input_reference with doubao-seedance-1-5-pro or doubao-seedance-1-0-pro returns HTTP 400 with a message of the form the specified task_type r2v does not support model seedance-1-5-pro. Use those models for text-to-video only.

Upload a reference image

The request body is multipart/form-data. To run image-to-video on a 2.0 model, attach the image as the input_reference part in the same request:
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="5"' \
  -F 'size="16:9"' \
  -F 'resolution="720p"' \
  -F 'input_reference=@/path/to/reference.jpg'
Replace /path/to/reference.jpg with the absolute or relative path to the image you want to use as the first-frame anchor. Supported formats are JPEG, PNG, and WebP.

Task flow

1

Submit the task

Send a POST request with at least prompt and model. Save the returned id for the next step.
2

Poll the task

Call Retrieve a Seedance video every 10 to 20 seconds.
3

Download the output

When status becomes SUCCESS, download the file at video_url and re-host it if you need long-term access. The URL is signed and expires after a limited window.

Error responses

The endpoint returns HTTP 400 when a required field is missing, a value falls outside the accepted range, or input_reference is sent to a model that does not support image-to-video. It returns HTTP 401 when the bearer token is missing or invalid. The error body uses one of two shapes; see the 400 and 401 examples in the playground for the exact fields.

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.

Example:

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

model
enum<string>
required

Seedance model id. Choose doubao-seedance-2-0 for the highest quality 2.0 output, doubao-seedance-2-0-fast for quick iteration on 2.0, doubao-seedance-1-5-pro for the 1.5 Pro tier, or doubao-seedance-1-0-pro for the 1.0 Pro tier. 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-fast"

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
enum<string>
default:16:9

Output aspect ratio. All Seedance models accept the same set of values.

Available options:
21:9,
16:9,
4:3,
1:1,
3:4,
9:16
Example:

"16:9"

resolution
enum<string>
default:720p

Output resolution. 480p and 720p are accepted by every model; 1080p is supported only by doubao-seedance-1-5-pro and doubao-seedance-1-0-pro.

Available options:
480p,
720p,
1080p
Example:

"720p"

input_reference
file

Optional reference image. When included, the job runs in image-to-video mode and uses the image as the visual anchor. 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. A newly created task is returned as SUBMITTED.

Available options:
SUBMITTED,
IN_PROGRESS,
SUCCESS,
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.