Retrieve a video generation task
Use GET /v1/videos/{id}?model={model}. The model query parameter must match creation. New task IDs are signed handles beginning with ioa_v1., bound to the original mapping and upstream credential. The model parameter is still required.
Request fields
id: the complete task ID from creation, preserved as an opaque string and URL encoded; do not replace it with an upstream ID. model: required public InOneAPI model ID used at creation. Authorization: a valid key owned by the same user with model access. No request body or pagination fields. Example IDs below are placeholders; replace them with the actual creation response.
curl --get 'https://api.inoneapi.com/v1/videos/ioa_v1.REPLACE_WITH_RETURNED_TASK_ID' \
--header "Authorization: Bearer $INONEAPI_API_KEY" \
--data-urlencode 'model=YOUR_MODEL_ID'Response fields
{
"id":"ioa_v1.REPLACE_WITH_RETURNED_TASK_ID",
"status":"succeeded",
"created_at":"2026-09-05T08:30:00Z",
"completed_at":"2026-09-05T08:31:12Z",
"video_url":"https://example.com/output.mp4",
"error":null
}
| Field | Type | Response fields |
|---|---|---|
id | string | Task identifier, not the gateway trace ID. |
status | string | queued: waiting; running: processing; succeeded: completed; failed: unsuccessful; cancelled: cancelled; expired: expired. Provider mapping determines normalization. |
created_at | string | ISO 8601 creation time, if available from the provider. DSL does not convert Unix timestamps into ISO dates. |
completed_at | string/null | ISO 8601 completion time; omitted or null while unfinished. |
video_url | string/null | Successful output URL; usually absent or null otherwise. Expiration and signed URL behavior depend on the provider; permanent hosting is not guaranteed. |
error | object/null | Error object or null. code is machine-readable; message is human-readable. Availability depends on the mapping. |
{"id":"ioa_v1.REPLACE_WITH_RETURNED_TASK_ID","status":"failed","error":{"code":"GENERATION_FAILED","message":"Generation could not be completed"}}
Polling and errors
Poll every 2–5 seconds with an overall deadline. Continue only for queued/running; stop for every terminal status. Respect Retry-After for 429 and use bounded backoff for 5xx. Check credentials for 401/403; verify model, ID and provider route for 404. HTTP 200 alone does not indicate success. Do not recreate a task because a polling request failed.
Current limitations
New signed handles validate user ownership and public model, pinning retrieval to the original mapping and upstream credential without a platform task database. Invalid signatures or user/model mismatches return 404 VIDEO_TASK_NOT_FOUND. An unavailable original mapping or credential does not trigger cross-provider lookup and may return 503 UPSTREAM_UNAVAILABLE. Legacy raw IDs lack the same binding guarantees; retain their original upstream configuration. Universal cancellation is not provided. Only supporting providers dispatch callbacks.
Try in the playground
The console Playground and model detail “Try now” panel support text-to-video generation and poll every 3 seconds for up to 10 minutes per waiting window. After stopping or a query error, “Resume checking” retrieves the original task without creating another. Stopping the wait does not cancel upstream generation. Successful results appear in a video player. Saved console conversations retain the task and result URL; external URLs may still expire.