Background texture

GET /v1/queue/{model}/requests/{requestID}

GET/v1/queue/{model}/requests/{requestID}

Returns the full result of a video generation task, including download URLs and usage. Triggers billing when status is COMPLETED.

Request

Path parameters

ParameterTypeDescription
modelstringVideo model ID (e.g. veo-3).
requestIDstringRequest ID from the submit response.

Headers

HeaderValue
AuthorizationBearer {api_key}

Response

When COMPLETED

{
  "request_id": "Z2VtaW5pOnZlby0zOjg6NzIwcDoxOm9wLTEyMzQ1",
  "status": "COMPLETED",
  "model": "veo-3",
  "data": [
    { "url": "/v1/queue/veo-3/requests/Z2Vt.../content/0" }
  ],
  "usage": {
    "video_seconds": 8,
    "video_resolution": "720p",
    "video_has_audio": true
  }
}

When still processing

{
  "request_id": "...",
  "status": "IN_PROGRESS",
  "model": "veo-3"
}

When failed

{
  "request_id": "...",
  "status": "FAILED",
  "model": "veo-3",
  "error": "content policy violation"
}

Response fields

FieldTypeDescription
request_idstringThe request ID.
statusstringIN_QUEUE, IN_PROGRESS, COMPLETED, or FAILED.
modelstringModel ID.
data[].urlstringRelative path to the content endpoint.
usage.video_secondsnumberDuration of generated video.
usage.video_resolutionstring"720p", "1080p", or "4k".
usage.video_has_audiobooleanWhether audio was generated.
errorstringError description (only when FAILED).

Billing is triggered when you call this endpoint and the task is COMPLETED. Use the lightweight status endpoint for polling, and only call this endpoint when you're ready to consume the result.


Status codes

StatusDescription
200Success
400Invalid request ID or provider mismatch
401Unauthorized
502Upstream provider error

Examples

curl https://api.modelmax.io/v1/queue/veo-3/requests/{request_id} \
  -H "Authorization: Bearer $MODELMAX_API_KEY"
import requests

BASE = "https://api.modelmax.io"
headers = {"Authorization": "Bearer your-key"}

result = requests.get(f"{BASE}{task['response_url']}", headers=headers).json()

if result["status"] == "COMPLETED":
    for i, video in enumerate(result["data"]):
        print(f"Video {i}: {video['url']}")
    print(f"Usage: {result['usage']}")
elif result["status"] == "FAILED":
    print(f"Error: {result['error']}")
const resultResp = await fetch(`${BASE_URL}${task.response_url}`, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
const result = await resultResp.json();

if (result.status === "COMPLETED") {
  console.log("Videos:", result.data);
  console.log("Usage:", result.usage);
}

Next step

Download the video → Queue Content