Skip to main content
GET
https://seedance2-pro.com
/
api
/
v1
/
jobs
/
recordInfo
Seedance 2.0 API - Get Task Status
curl --request GET \
  --url https://seedance2-pro.com/api/v1/jobs/recordInfo
{
  "taskId": "<string>",
  "model": "<string>",
  "status": "<string>",
  "creditsUsed": 123,
  "output": {},
  "error": {},
  "createTime": 123,
  "completeTime": {}
}

Query Parameters

taskId
string
required
The task ID returned when creating a task

Headers

HeaderValueRequired
AuthorizationBearer YOUR_API_KEYYes

Example Request

curl -X GET "https://seedance2-pro.com/api/v1/jobs/recordInfo?taskId=task_clxxxxxx" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response Fields

taskId
string
Task identifier
model
string
Model identifier. Returns seedance-20.
status
string
waiting, generating, success, or fail
creditsUsed
number
Credits consumed
output
array | null
Array of result objects when status is success:
  • url (string) — video URL
  • width (number) — video width
  • height (number) — video height
error
string | null
Error message string when status is fail
createTime
number
Creation timestamp (ms)
completeTime
number | null
Completion timestamp (ms), null if not completed

Task States

Task submitted, waiting for processing. Continue polling.
Video is being generated. Continue polling every 3-5 seconds.
Video generated. Read output array for video URL.
Generation failed. Check error for details.

Example Responses

Generating

{
  "taskId": "task_clxxxxxx",
  "model": "seedance-20",
  "status": "generating",
  "creditsUsed": 200,
  "output": null,
  "error": null,
  "createTime": 1735599634000,
  "completeTime": null
}

Success

{
  "taskId": "task_clxxxxxx",
  "model": "seedance-20",
  "status": "success",
  "creditsUsed": 200,
  "output": [
    {
      "url": "https://static.seedance2-pro.com/generated/video.mp4",
      "width": 1280,
      "height": 720
    }
  ],
  "error": null,
  "createTime": 1735599634000,
  "completeTime": 1735599754000
}

Failed

{
  "taskId": "task_clxxxxxx",
  "model": "seedance-20",
  "status": "fail",
  "creditsUsed": 200,
  "output": null,
  "error": "Task execution failed",
  "createTime": 1735599634000,
  "completeTime": null
}

Polling Example

async function waitForCompletion(taskId, timeout = 300000) {
  const startTime = Date.now();

  while (Date.now() - startTime < timeout) {
    const response = await fetch(
      `https://seedance2-pro.com/api/v1/jobs/recordInfo?taskId=${taskId}`,
      { headers: { 'Authorization': `Bearer ${process.env.SEEDANCE_API_KEY}` } }
    );

    const data = await response.json();

    if (data.status === 'success') {
      return { success: true, output: data.output };
    }
    if (data.status === 'fail') {
      return { success: false, error: data.error };
    }

    await new Promise(resolve => setTimeout(resolve, 5000));
  }

  throw new Error('Task timeout');
}

Error Responses

CodeMessageCause
400Invalid taskIdTask ID format incorrect
401Invalid API KeyAPI key invalid or expired
403Access deniedYou can only query your own tasks
404Task not foundTask doesn’t exist

Next Steps