Skip to main content
POST
Note for users in mainland China: Please use https://toapis.cn as the API endpoint (Base URL). Replace https://toapis.com with https://toapis.cn in the examples in this document.
Draft mode splits one generation into two stages: first render a low-cost 480p draft to confirm the camera work and framing, then render the 1080p final video from that draft. The upstream service reuses the draft’s prompt and media, so the second stage does not repeat them. Both stages call POST /v1/videos/generations with the same seedance-2-5 model.

Two-stage workflow

  1. Submit a draft request with draft: true and read the draft task ID from the response.
  2. Wait for the draft to finish and confirm status is completed through Get video task status.
  3. Submit the final request with draft_task_id set to the draft task ID from step 1. Do not repeat the prompt or media.

Stage comparison

The final request must use the same model as the draft, and draft support must still be enabled on the draft’s channel. If the draft task did not complete successfully, was created more than 7 days ago, used a different model, or the channel capability was turned off, the final request fails with invalid_draft_task and you must render a new draft.

Body

boolean
default:false
Set to true to submit a draft request. The draft renders at 480p; every other parameter behaves exactly as in standard generation.Supported for seedance-2-5 only. Other models return draft mode is only supported for Seedance 2.5.
string
Required for the final request. Pass the task ID returned by the draft request (tsk_vid_...).Cannot be combined with draft: true. Once draft_task_id is set, do not send prompt, image_urls, image_with_roles, video_with_roles, or audio_with_roles, or the request returns draft requests cannot include prompt or media.
string
Drafts are fixed to 480p and final renders to 1080p. The field is optional: when omitted, the stage’s fixed value is used instead. Any other explicit value is rejected.
string
default:"mp4"
Only the final request may set this. Supported values are mp4 and mov.
boolean
default:false
The final request does not inherit the draft’s last-frame setting. Send true again on the final request if you also need the last frame there.
All remaining parameters (prompt, duration, aspect_ratio, generate_audio, reference media, and so on) work the same way during the draft stage as in Seedance 2.5 video generation.

Request examples

The two examples below are the complete requests for submitting a draft and for rendering the final video from it. Run them in order.

Billing

The draft and the final video are billed separately, each when its own task completes. The draft settles at the draft rate. The final request treats the draft video as a video input, so it settles at video-input rates and costs more per unit than the draft. The task result and Pricing and actual cost are the source of truth for the amount charged.