Skip to main content
GET
cURL
이 엔드포인트를 사용하면 Seedance 비디오 생성을 통해 생성된 작업의 상태를 읽을 수 있습니다. 경로의 id는 어떤 Seedance 모델이 작업을 생성했는지와 관계없이 create 호출이 반환한 값입니다. 응답 본문은 비디오 작업 객체 자체입니다. 최상위 수준에서 status, progress, video_url를 확인하세요.

상태 머신

API는 소문자 상태 문자열을 반환합니다. queuedin_progress는 비종료 상태이며, completed, failed, error는 종료 상태이므로 작업 상태가 더 이상 변경되지 않습니다.

폴링 주기

10초에서 20초마다 폴링하세요. 대부분의 작업은 모델, 길이, 크기에 따라 1~3분 내에 완료됩니다.

확인할 필드

  • status — 폴링 루프의 중단 조건을 결정합니다.
  • progress — UI에 표시할 수 있는 0~100의 정수입니다.
  • video_url — 서명된 다운로드 URL이며, completed 응답에 포함됩니다. Seedance 다운로드는 별도의 /v1/videos/{id}/content 경로 대신 이 URL을 직접 사용합니다. 서명에는 시간 제한이 있으므로 만료되기 전에 파일을 다운로드하거나 다시 호스팅하세요.
  • completed_at — 플랫폼이 반환하는 선택적 Unix 타임스탬프입니다. 폴링 중단 조건으로 사용하지 말고 대신 status를 사용하세요.
  • model — 작업 생성 시 사용된 Seedance model id를 그대로 반환합니다.

일반적인 오류

  • HTTP 400에서 message: "task_not_exist"가 반환되면 id를 알 수 없다는 뜻입니다. POST /v1/videos의 성공 응답에서 id를 가져왔는지, 그리고 그것을 그대로 사용하고 있는지 확인하세요.
  • HTTP 401은 bearer token이 없거나 유효하지 않음을 의미합니다. 요청 헤더가 Authorization: Bearer $COMETAPI_KEY인지 확인하세요.

인증

Authorization
string
header
필수

Bearer token authentication. Use your CometAPI key.

경로 매개변수

id
string
필수

Task id returned by POST /v1/videos.

응답

Current Seedance video task state.

id
string
필수

Task id.

object
string
필수

Object type, always video.

model
string
필수

Model id that generated the task.

status
enum<string>
필수

Task status. queued and in_progress are non-terminal. completed, failed, and error are terminal.

사용 가능한 옵션:
queued,
in_progress,
completed,
failed,
error
progress
integer
필수

Completion percentage.

필수 범위: 0 <= x <= 100
created_at
integer
필수

Task creation time as a Unix timestamp in seconds.

video_url
string | null

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.

completed_at
integer | null

Optional Unix timestamp returned by the platform. Use status, not this field, to decide when polling can stop.