Skip to content

Veo task query

After a Veo task is submitted, poll status and results by task ID through the query endpoint. The response is an OpenAI-style video object.

http
GET /v1/videos/{task_id}

When the task completes, read the result from video_url (or a proxied content URL). Replace {task_id} in the path with the task ID returned by video generation.

Headers

NameTypeRequiredDescription
stringYesRequest authentication. Use a Bearer Token, for example:

Request parameters

NameTypeRequiredDescription
stringYesPath parameter: video task ID, matching the id returned by the generation endpoint

Request example

bash
curl https://octopusx.ai/v1/videos/video_abc123 \
  -H "Authorization: Bearer <token>"

Response example

json
{
  "id": "video_abc123",
  "object": "video",
  "model": "veo_3_1-fast",
  "status": "processing",
  "progress": 50,
  "created_at": 1735689600,
  "completed_at": 0,
  "expires_at": 1735776000,
  "seconds": "8",
  "size": "720x1280",
  "video_url": ""
}
json
{
  "id": "video_abc123",
  "object": "video",
  "model": "veo_3_1-fast",
  "status": "completed",
  "progress": 100,
  "created_at": 1735689600,
  "completed_at": 1735689900,
  "expires_at": 1735776000,
  "seconds": "8",
  "size": "720x1280",
  "video_url": "https://example.com/video.mp4"
}
json
{
  "id": "video_abc123",
  "object": "video",
  "model": "veo_3_1-fast",
  "status": "failed",
  "progress": 100,
  "created_at": 1735689600,
  "completed_at": 1735689700,
  "expires_at": 1735776000,
  "seconds": "8",
  "size": "720x1280",
  "error": {
    "message": "Content policy violation",
    "code": "content_policy"
  },
  "video_url": ""
}

Response fields

NameTypeDescription
stringTask ID
stringAlways
stringModel actually used
stringTask status: ,,,,
integerProgress percentage
stringOutput duration
stringOutput size
integerCompletion timestamp
integerResult expiration timestamp
stringVideo result URL
objectFailure reason object (includes / )