Application Process
To use the API, you need to first apply for the corresponding service on the SeeDance Videos Generation API page. After entering the page, click the “Acquire” button, as shown in the image below:
If you are not logged in or registered, you will be automatically redirected to the login page inviting you to register and log in. After logging in or registering, you will be automatically returned to the current page.
There is a free quota available for first-time applicants, allowing you to use the API for free.
Basic Usage
First, understand the basic usage method, which is to input the promptcontent.text, type content.type=text, and model model to obtain the processed result. The specific content is as follows:

accept: the format of the response result you want to receive, here filled in asapplication/json, which means JSON format.authorization: the key to call the API, which can be selected directly after application.
model: the model for generating videos, optional values:doubao-seedance-1-0-pro-250528,doubao-seedance-1-0-pro-fast-251015,doubao-seedance-1-5-pro-251215,doubao-seedance-1-0-lite-t2v-250428,doubao-seedance-1-0-lite-i2v-250428.content: an array of input content,typecan betextorimage_url.resolution: output resolution, optional480p/720p/1080p.ratio: aspect ratio, optional16:9/4:3/1:1/3:4/9:16/21:9/adaptive.duration: video duration (seconds), range 2–12.seed: random seed, integer, -1 to 4294967295.camerafixed: whether to fix the camera,true/false.watermark: whether to add a watermark,true/false.generate_audio: whether to generate a video with sound,true/false, onlydoubao-seedance-1-5-pro-251215supports.service_tier: inference mode,default(online) orflex(offline, priced at 50% of online).return_last_frame: whether to return the URL of the last frame image in the result.execution_expires_after: task timeout (seconds), range 3600–259200.callback_url: asynchronous callback address, after setting, the API will immediately returntask_id, and when the task is completed, it will POST the result to this address.

success, the status of the video generation task at this time.task_id, the ID of the video generation task at this time.trace_id, the tracking ID of the video generation at this time.data, the result list of the video generation task at this time.task_id, the server-side ID of the video generation task at this time.video_url, the video link of the video generation task at this time.status, the status of the video generation task at this time.model, the model used to generate the video.
data.
Additionally, if you want to generate the corresponding integration code, you can directly copy it, for example, the CURL code is as follows:
Inline Parameter Description
At the end of thecontent[].text prompt, you can pass in generation parameters in the form of --parameter value (old method, weak validation, defaults will be used if filled incorrectly). The complete parameter list is as follows:
| Inline Parameter | Corresponding Field | Description | Value Range |
|---|---|---|---|
--rs | resolution | Output resolution | 480p / 720p / 1080p |
--rt | ratio | Aspect ratio | 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive |
--dur | duration | Video duration (seconds) | 2–12 |
--frames | frames | Number of video frames | Integers satisfying 25+4n in [29, 289] |
--fps | framespersecond | Frame rate | Only supports 24 |
--seed | seed | Random seed | -1 to 4294967295 |
--cf | camerafixed | Whether to fix the camera | true / false |
--wm | watermark | Whether to add a watermark | true / false |
Recommended Practice: Directly use the corresponding top-level fields (such asresolution,ratio, etc.) in the Request Body for strong validation mode. If parameters are filled incorrectly, clear error messages will be returned, making it easier to troubleshoot issues.
Generating Videos with Sound
doubao-seedance-1-5-pro-251215 supports generating videos with audio through the generate_audio parameter:
Image to Video First Frame
If you want to perform the image to video task, thecontent parameter must first include an item with type as image_url, and the image_url field must be in object format: {"url": "https://..."} or Base64 format {"url": "data:image/png;base64,..."}.
Note:Corresponding code:image_urldoes not support being passed in string format (e.g.,"image_url": "https://..."), it must use object format"image_url": {"url": "https://..."}, otherwise a 400 error will be returned.
Image to Video First and Last Frame
If you want to perform the image to video first and last frame, thecontent parameter must first include the type image_url, and set role to first_frame and last_frame respectively, to specify the following content:
- role: specify the first frame or last frame.
- image_url
- url image link
At the same time,
contentalso needs to input typetextas a prompt.
- url image link
At the same time,
Asynchronous Callback
Since the SeeDance Videos Generation API takes a long time to generate (about 1-2 minutes), you can use thecallback_url field to use asynchronous mode, avoiding long HTTP connection occupation.
Overall process: When the client initiates a request, specify the callback_url, the API immediately returns a response containing the task_id; after the task is completed, the platform will send the generated result to the callback_url in POST JSON format, and the result also contains the task_id for association.
callback_url by the platform is as follows:
task_id field in the result is consistent with the one returned during the request, and this field can be used to associate the task.
Error Handling
When calling the API, if an error occurs, the API will return the corresponding error code and message. For example:400 token_mismatched: Bad request, possibly due to missing or invalid parameters.400 api_not_implemented: Bad request, possibly due to missing or invalid parameters.401 invalid_token: Unauthorized, invalid or missing authorization token.429 too_many_requests: Too many requests, you have exceeded the rate limit.500 api_error: Internal server error, something went wrong on the server.

