跳到正文
文档版本 r8
OpenAPIJSONYAML
API 参考 / 生成任务

列出生成任务

listGenerations
GET/v1/generations

下面的接口说明为英文原文。

Lists the project's generations newest first (by created_at, then id). Pass next_cursor as cursor for the next page. Filters combine; created_after is inclusive and created_before exclusive.

Markdown 文件在 Playground 试运行文档版本 r8

鉴权

在请求头带上项目 API Key,例如 Authorization: Bearer $VIZO_API_KEY。API Key 只放在服务端。

查询参数

查询参数
字段说明
limitinteger可选

每页条数。

最小 1, 最大 100, 默认 50
client_referencestring可选

你自己的请求编号。

最多 256 个字符
cursorstring可选

上一页返回的游标。

最多 64 个字符
modelstring可选

Only generations created with this public model id.

最多 128 个字符
sourcestring可选

Only generations created through the API or the console.

apiconsole
statusstring可选

Only generations whose status currently equals this value. processing matches every unfinished task.

processingsucceededfailedcanceledunresolved
格式^[a-z_]{1,32}$
created_afterdate-time可选

RFC 3339 time. Only generations created at or after it.

created_beforedate-time可选

RFC 3339 time. Only generations created before it.

响应

200 OK

200 OK
字段说明
entriesobject[], 可为 null必填
entries 的字段
entries 的字段
allowed_actionsstring[], 可为 null必填
billing_closed_atdate-time可选

When the hold was settled or released; absent while Credits are still held.

billing_statusstring必填

Pending awaits funding; unfunded closed without a hold; held means Credits are held for the task; settled charges verified delivery at the existing pricing rules; released returns the hold after failure, cancellation, timeout or zero-charge delivery; refunded reverses previously consumed generation Credits.

pendingunfundedheldsettledreleasedrefunded
closed_atdate-time, 可为 null必填
created_atdate-time必填

When the generation was accepted. Lists are ordered by this time, newest first.

customer_resolution_deadlinedate-time必填
delivery_statusstring必填

Output delivery: pending before upstream success; copying into managed storage; ready after verified delivery; failed when delivery cannot complete.

pendingcopyingreadyfailed
errorobject, 可为 null必填
error 的字段
error 的字段
codestring必填

Funding: insufficient_balance, balance_negative (Credits were owed when the task came to be funded), budget_exceeded or spending_blocked; recovery_review when recovery closes an unfunded task for manual reconciliation. Provider: provider_unavailable after capacity/recovery exhaustion; input/output_moderated for safety refusal; input_media_invalid or input_media_unreachable for media refusal; draft_expired for an expired draft; input_rejected for unsupported input; delivery_failed when the provider succeeded but the output could not be stored; generation_failed for other terminal provider failures. Failed tasks release their customer hold.

insufficient_balancebalance_negativebudget_exceededspending_blockedrecovery_reviewprovider_unavailableinput_moderatedoutput_moderatedinput_media_invalidinput_media_unreachabledraft_expiredinput_rejecteddelivery_failedgeneration_failed
execution_statusstring必填

Supplier execution state, separate from delivery and billing: processing until execution ends. Succeeded means upstream execution finished, not that output delivery is ready.

processingsucceededfailedcanceledunresolved
held_atdate-time可选

When Credits were held for the task; absent while it awaits funding or when it closed unfunded.

idstring必填
inputany可选

The model input as accepted, after normalization, with media as sent: asset ids or your own URLs. Returned when reading a single task; list entries omit it.

key_idstring可选

API key that created the task; empty for console tasks.

key_namestring可选
late_result_availableboolean必填
metadatamap<string, string>可选
modelstring必填

Public model id the generation was created with.

priceobject必填
price 的字段
price 的字段
chargedstring必填

Credits consumed by this task. Set when billing_status is settled: the actual usage the model reported at the fixed rate, which may be above or below estimated; any unused part of the hold returns to the balance, and usage above the hold is charged too. 0.000 in every other state, including after a refund.

estimatedstring必填

The estimated cost of this task, in Credits, fixed when the task was accepted. This is the amount held for the task. The charge follows actual usage and may differ slightly from it, above or below.

refundedstring必填

Credits a refund returned to the balance: what this task had been charged. 0.000 unless billing_status is refunded.

reservedstring必填

Credits held for this task right now, as a decimal string with 3 places. Equal to estimated while billing_status is held, otherwise 0.000.

unitstring必填

Every amount is in Credits.

credit
queue_msinteger可选

Milliseconds from acceptance to first dispatch.

resultobject, 可为 null必填
result 的字段
result 的字段
asset_idstring可选
last_frame_asset_idstring可选
metadataobject可选
metadata 的字段
metadata 的字段
durationinteger可选
framesinteger可选
framespersecondinteger可选
generate_audioboolean可选
ratiostring可选
resolutionstring可选
seedinteger可选
outputsobject[], 可为 null可选
outputs 的字段
outputs 的字段
asset_idstring必填
content_typestring必填
indexinteger必填
voice_idstring可选
run_msinteger可选

Milliseconds from first dispatch to close.

sourcestring必填

Where the generation was created: api (API key) or console (signed-in session).

apiconsole
started_atdate-time可选

When the task was first dispatched to run.

statusstring必填

processing from acceptance until the task closes, including while it awaits funding and while outputs are copied; succeeded has delivered outputs; failed, canceled and unresolved are closed. Canceled is set by the system only, for example when a task is not funded or not started in time. Unresolved closes after the resolution deadline. A late result may still arrive without a new charge.

processingsucceededfailedcanceledunresolved
versioninteger必填
next_cursorstring可选

作为 cursor 传入以读取下一页。最后一页为空。

错误

所有错误使用同一种响应体。联系支持时请附上 request_id。

错误响应体

错误响应体
字段说明
errorobject必填

错误详情。

error 的字段
error 的字段
codestring必填

Stable request error code. invalid_input rejects the request schema; invalid_credentials/scope_denied reject authentication/authorization; ip_not_allowed/model_not_allowed reject API key IP/model restrictions; resource_not_found hides missing or inaccessible resources; conflict rejects incompatible state; insufficient_balance/budget_exceeded/spending_blocked reject funding; balance_negative (402) refuses new tasks while the organization owes Credits from a charge above its hold, until a top-up repays them; rate_limited/concurrency_limited ask for a later retry; temporarily_unavailable is transient service capacity; request_failed covers other HTTP failures. tier_not_sold, draft_not_found, draft_expired and input_duration_out_of_range reject model-specific input. input_media_invalid rejects a detected format/type mismatch; input_media_too_large rejects a probed byte size above the model limit. storage_quota_exceeded rejects an upload when the organization's storage is full. See errors for field-level details.

invalid_inputinvalid_credentialsinsufficient_balancebalance_negativescope_deniedresource_not_foundconflictrate_limitedconcurrency_limitedtemporarily_unavailablerequest_failedip_not_allowedmodel_not_allowedtier_not_solddraft_not_founddraft_expiredinput_duration_out_of_rangeinput_media_invalidinput_media_too_largebudget_exceededspending_blockedstorage_quota_exceeded
errorsobject[], 可为 null可选
errors 的字段
errors 的字段
pathstring必填
rulestring必填
messagestring必填

可读的说明,不要解析它。

request_idstring必填

联系支持时请附上。

retryableboolean必填

仅 429 和 503 为 true。即便如此,重发创建请求前也要先查看近期任务。

task_idstring可选

错误所属的任务(如果有)。

错误
状态码含义与处理
401

API Key 缺失、格式错误、已过期或已撤销。在服务端更正 API Key 后继续。

402

可用积分不足以支付这次请求。充值并等待到账后,再查询余额。

403

API Key 权限、邮箱验证、预算上限或账户限制阻止了操作。检查 API Key 类型、权限和项目预算。

404

模型或资源不存在,或不在当前项目范围内。确认项目、ID 和模型是否已开通。

409

请求与当前状态冲突。重新读取资源,再决定是否重新发送。

422

字段或取值无效。对照字段表和模型页修改请求。

429

请求过于频繁,没有创建任务。等到 Retry-After 指定的时间后再发送。

500

服务端出错,任务可能已经受理。不要直接重发,先查看近期任务。

503

服务暂时不可用。创建请求要先查看近期任务,确认没有受理,再重新提交。

请求示例

cURL
curl "https://api.vizoapi.com/v1/generations?limit=20" \
  -H "Authorization: Bearer $VIZO_API_KEY"
Python
import os, requests

res = requests.get(
    "https://api.vizoapi.com/v1/generations?limit=20",
    headers={"Authorization": f"Bearer {os.environ['VIZO_API_KEY']}"},
    timeout=60,
)
print(res.status_code, res.json())
Node.js
const res = await fetch("https://api.vizoapi.com/v1/generations?limit=20", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.VIZO_API_KEY}`,
  },
});
console.log(res.status, await res.json());
响应 200
{
  "entries": [
    {
      "allowed_actions": [],
      "billing_closed_at": "2026-11-02T08:00:00Z",
      "billing_status": "held",
      "closed_at": null,
      "created_at": "2026-11-02T08:01:43Z",
      "customer_resolution_deadline": "2026-11-03T08:00:12Z",
      "delivery_status": "pending",
      "error": null,
      "execution_status": "processing",
      "held_at": "2026-11-02T08:00:00Z",
      "id": "gen_01JD8Z5QW3XR",
      "input": {},
      "key_id": "string",
      "key_name": "string",
      "late_result_available": false,
      "metadata": {
        "client_reference": "order-1042"
      },
      "model": "MODEL_ID",
      "price": {
        "charged": "0.000",
        "estimated": "157.000",
        "refunded": "0.000",
        "reserved": "157.000",
        "unit": "credit"
      },
      "queue_ms": 1,
      "result": null,
      "run_ms": 1,
      "source": "api",
      "started_at": "2026-11-02T08:00:00Z",
      "status": "processing",
      "version": 1
    }
  ],
  "next_cursor": ""
}
响应 401
{
  "error": {
    "code": "invalid_credentials",
    "message": "API key is missing, malformed, expired or revoked.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 402
{
  "error": {
    "code": "insufficient_balance",
    "message": "Available credits cannot cover the hold.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 403
{
  "error": {
    "code": "scope_denied",
    "message": "The key does not allow this operation for this project.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 404
{
  "error": {
    "code": "resource_not_found",
    "message": "The resource is not available to this project.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 409
{
  "error": {
    "code": "conflict",
    "message": "The request conflicts with the current state of the resource.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 422
{
  "error": {
    "code": "invalid_input",
    "message": "Input does not match the published schema.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 429
{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests. Check Retry-After.",
    "retryable": true,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 500
{
  "error": {
    "code": "request_failed",
    "message": "The request failed. Check recent generations before submitting again.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 503
{
  "error": {
    "code": "temporarily_unavailable",
    "message": "Service is temporarily unavailable.",
    "retryable": true,
    "request_id": "9f2c41d07ab3e5c8"
  }
}