Model

List videos

Generate video asynchronously: create a job, poll its status, then download the completed content.

GET /model/v1/videos● Supported

Request parameters

  • afterstring可选

    query: Cursor: the id of the video job after which the page starts, normally the `last_id` of the previous page. It must refer to an existing job of yours, otherwise the call fails.

    Pagination works; limit is 1–100, order is asc/desc, and after must refer to an existing job.

  • limitinteger可选
    默认 20

    query: Maximum number of jobs per page, from 1 to 100; defaults to 20.

    Pagination works; limit is 1–100, order is asc/desc, and after must refer to an existing job.

  • orderany可选
    默认 "desc"

    query: Sort order by creation time: desc (default) lists the newest job first, asc the oldest first.

    Pagination works; limit is 1–100, order is asc/desc, and after must refer to an existing job.

    取值 ascdesc

Returns

200

Billed per second of output video; GET /model/v1/models exposes pricing.video_second in USD per second.

Platform errors (auth, rate limits, validation) and OCR errors use problem+json; other model call errors follow the endpoint's own format (OpenAI or Anthropic) — see error codes

Response

HTTP 200

Success

application/json

NameTypeDescription
objectstringObject type; always `list`.
dataarray<object>Video jobs of the caller, newest first by default.
data[].idstringId of the video job; pass it as `video_id` to retrieve, download or delete it.
data[].objectstringObject type; always `video`.
data[].modelstringModel that generates the video.
data[].statusstringLifecycle of the job. Poll until it is `completed` or `failed`.
data[].progressintegerProgress from 0 to 100. It is 0 until the job completes and 100 once it has.
data[].created_atintegerUnix time in seconds at which the job was created.
data[].completed_atinteger | nullUnix time in seconds at which the job completed; null until then.
data[].expires_atinteger | nullUnix time in seconds after which the output expires; null because outputs currently have no expiry.
data[].secondsstringLength of the video in seconds, as a string; for a completed job it is the delivered length.
data[].sizestringResolution of the video as `WIDTHxHEIGHT`; null when the provider did not report one.
data[].promptstring | nullPrompt the job was created with.
data[].remixed_from_video_idnullAlways null; remix is not supported.
data[].errorobject | nullWhy the job failed; null unless status is `failed`.
data[].polling_urlstringRelative URL to poll for the job state; same as retrieveVideo for this job.
data[].unsigned_urlsarray<string>Relative URLs of the finished output; empty until the video is ready. Download them with the same API key.
data[].usageobjectCost of the job; present once a price applies.
has_morebooleanWhether more jobs exist beyond this page; pass `last_id` as `after` to read them.
first_idstring | nullId of the first job in this page; null for an empty page.
last_idstring | nullId of the last job in this page; null for an empty page.

First create a video and save its id. Poll status while queued / in_progress; stop and inspect error if failed. Download content only after completed.