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
}
FieldTypeResponse fields
idstringTask identifier, not the gateway trace ID.
statusstringqueued: waiting; running: processing; succeeded: completed; failed: unsuccessful; cancelled: cancelled; expired: expired. Provider mapping determines normalization.
created_atstringISO 8601 creation time, if available from the provider. DSL does not convert Unix timestamps into ISO dates.
completed_atstring/nullISO 8601 completion time; omitted or null while unfinished.
video_urlstring/nullSuccessful output URL; usually absent or null otherwise. Expiration and signed URL behavior depend on the provider; permanent hosting is not guaranteed.
errorobject/nullError 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.

Retrieve a video generation task · Documentation · InOneAPI