Async Tasks

All video generation requests are processed asynchronously. The generation endpoint returns a task id immediately. Use the task query endpoint to poll for completion, or configure a callback_url for real-time notifications.

Query Task Status

GET https://api.evolink.ai/v1/tasks/{task_id}

Path Parameters

ParameterTypeRequiredDescription
task_idstringYesThe task ID returned from the generation endpoint

Response — Pending

{
    "id": "task-unified-1756817821-4x3rx6ny",
    "object": "video.generation.task",
    "created": 1756817821,
    "model": "seedance-2.0",
    "status": "pending",
    "progress": 0,
    "type": "video",
    "task_info": {
        "can_cancel": true,
        "estimated_time": 165,
        "video_duration": 5
    }
}

Response — Processing

{
    "id": "task-unified-1756817821-4x3rx6ny",
    "object": "video.generation.task",
    "created": 1756817821,
    "model": "seedance-2.0",
    "status": "processing",
    "progress": 65,
    "type": "video",
    "task_info": {
        "can_cancel": true
    }
}

Response — Completed

{
    "id": "task-unified-1756817821-4x3rx6ny",
    "object": "video.generation.task",
    "created": 1756817821,
    "model": "seedance-2.0",
    "status": "completed",
    "progress": 100,
    "results": [
        "https://cdn.example.com/videos/task-unified-1756817821-4x3rx6ny.mp4"
    ],
    "type": "video",
    "task_info": {
        "can_cancel": false
    }
}

Response — Failed

{
    "id": "task-unified-1756817821-4x3rx6ny",
    "object": "video.generation.task",
    "created": 1756817821,
    "model": "seedance-2.0",
    "status": "failed",
    "progress": 0,
    "type": "video",
    "task_info": {
        "can_cancel": false
    }
}

Response Fields

FieldTypeDescription
idstringTask ID
objectstringTask type: video.generation.task
createdintegerTask creation Unix timestamp
modelstringModel used
statusstringCurrent task status (see below)
progressintegerCompletion percentage (0–100)
resultsarrayArray of video URLs (only present when completed)
typestringOutput type (video)
task_info.can_cancelbooleanWhether the task can still be cancelled

Status Values

StatusDescription
pendingTask queued, waiting to start
processingVideo is being generated
completedVideo ready — check results array for URLs
failedGeneration failed

Polling Best Practices

  • Poll every 5 seconds for optimal balance
  • Typical generation time varies by duration and quality settings
  • For production use, prefer Webhooks via callback_url over polling
  • Video URLs are valid for 24 hours — download and save them promptly
  • Webhooks — Real-time completion notifications via callback_url
  • Error Codes — Handle failure scenarios