估算生成费用
下面的接口说明为英文原文。
Prices a create body without creating a generation or holding Credits. The body is the same as createGeneration; webhook_endpoint_id and metadata are accepted and ignored. The input and its media are checked and priced exactly as a create would, including measuring a public input video, so a body the estimate refuses gets the same input error from createGeneration. A create can still fail where an estimate succeeds: on funding or budget (402, 403), on the rate and concurrency limits (429) or on a route change (409). An estimate that must measure an input video takes one token from the organization's generation rate limit and answers 429 rate_limited with Retry-After when none is left; other estimates take one token from the organization's generation read limit and answer 429 rate_limited with Retry-After when none is left. Prices can change between an estimate and a create.
鉴权
在请求头带上项目 API Key,例如 Authorization: Bearer $VIZO_API_KEY。API Key 只放在服务端。
请求体
JSON 对象,不接受未列出的字段。
| 字段 | 说明 |
|---|---|
| inputobject必填 | The model input. Its schema is the model's inputSchema in the catalog. |
| metadatamap<string, string>可选 | 你自己的字符串键值,原样返回。建议写入 client_reference,回包丢失时用它找回任务。 |
| modelstring必填 | 模型 ID,来自 listModels 或模型页。 至少 1 个字符 |
| webhook_endpoint_idstring可选 | 任务状态变化时通知的 Webhook 端点,在控制台创建。 |
响应
200 OK
| 字段 | 说明 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| basisobject必填 | basis 的字段
| ||||||||||||||
| estimateobject必填 | estimate 的字段
|
错误
所有错误使用同一种响应体。联系支持时请附上 request_id。
错误响应体
| 字段 | 说明 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| errorobject必填 | 错误详情。 error 的字段
|
| 状态码 | 含义与处理 |
|---|---|
| 401 | API Key 缺失、格式错误、已过期或已撤销。在服务端更正 API Key 后继续。 |
| 403 | API Key 权限、邮箱验证、预算上限或账户限制阻止了操作。检查 API Key 类型、权限和项目预算。 |
| 404 | 模型或资源不存在,或不在当前项目范围内。确认项目、ID 和模型是否已开通。 |
| 422 | 字段或取值无效。对照字段表和模型页修改请求。 |
| 429 | 请求过于频繁,没有创建任务。等到 Retry-After 指定的时间后再发送。 |
| 500 | 服务端出错,任务可能已经受理。不要直接重发,先查看近期任务。 |
| 503 | 服务暂时不可用。创建请求要先查看近期任务,确认没有受理,再重新提交。 |
请求示例
cURL
curl -X POST "https://api.vizoapi.com/v1/estimates" \
-H "Authorization: Bearer $VIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {},
"model": "MODEL_ID"
}'Python
import os, requests
res = requests.post(
"https://api.vizoapi.com/v1/estimates",
headers={"Authorization": f"Bearer {os.environ['VIZO_API_KEY']}"},
json={
"input": {},
"model": "MODEL_ID"
},
timeout=60,
)
print(res.status_code, res.json())Node.js
const res = await fetch("https://api.vizoapi.com/v1/estimates", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VIZO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"input": {},
"model": "MODEL_ID"
}),
});
console.log(res.status, await res.json());响应 200
{
"basis": {
"auto": false,
"billed_seconds": 1,
"input_images": 1,
"input_seconds": 1,
"large": false,
"output_seconds": 1,
"outputs": 1
},
"estimate": {
"credits": "157.000",
"usd": {
"amount": "string",
"as_of": "2026-11-02T08:00:00Z",
"basis": "current_standard_pack",
"status": "available",
"tax_included": false
}
}
}响应 401
{
"error": {
"code": "invalid_credentials",
"message": "API key is missing, malformed, expired or revoked.",
"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"
}
}响应 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"
}
}