Retrieve a Seedance video
Poll a Seedance video task by id on CometAPI with GET /v1/videos/. Works for Seedance 1.0 Pro, 1.5 Pro, and 2.0 tasks. Returns the current status, progress, and the signed video_url after the task reaches completed.
id in the path is the value returned by the create call, regardless of which Seedance model produced the task.
The response body is the video task object itself. Read status, progress, and video_url at the top level.
Status machine
The API returns lowercase status strings.queued and in_progress are non-terminal; completed, failed, and error are terminal and the task will not move again.
| Status | Meaning | Terminal |
|---|---|---|
queued | Accepted and queued for rendering. | no |
in_progress | Rendering in progress. | no |
completed | Finished. video_url is present in the response. | yes |
failed | The provider rejected the task. | yes |
error | An internal error prevented completion. | yes |
Poll cadence
Poll every 10 to 20 seconds. Most jobs finish within 1 to 3 minutes depending on model, duration, and size.Fields to watch
status— drives the stop condition for your polling loop.progress— integer 0 to 100 that you can surface in a UI.video_url— signed download URL, present oncompletedresponses. Seedance downloads use this URL directly instead of a separate/v1/videos/{id}/contentroute. The signature is time-limited; download or re-host the file before the signature expires.completed_at— optional Unix timestamp returned by the platform. Do not use it to stop polling; usestatusinstead.model— echoes the Seedance model id used when the task was created.
Common errors
- HTTP
400withmessage: "task_not_exist"means theidis unknown. Confirm that you captured theidfrom a successful POST/v1/videosresponse and that you use it verbatim. - HTTP
401means the bearer token is missing or invalid. Check that the request header isAuthorization: Bearer $COMETAPI_KEY.
Authorizations
Bearer token authentication. Use your CometAPI key.
Path Parameters
Task id returned by POST /v1/videos.
Response
Current Seedance video task state.
Task id.
Object type, always video.
Model id that generated the task.
Task status. queued and in_progress are non-terminal. completed, failed, and error are terminal.
queued, in_progress, completed, failed, error Completion percentage.
0 <= x <= 100Task creation time as a Unix timestamp in seconds.
Signed download URL for the finished video. Present on completed responses. Seedance downloads use this URL directly instead of a separate /v1/videos/{id}/content route. The signature is time-limited, so download or re-upload the file to your own storage soon after you receive it.
Optional Unix timestamp returned by the platform. Use status, not this field, to decide when polling can stop.