跳到正文
文档版本 r15
OpenAPIJSONYAML
API 参考 / 账务

查询钱包余额

getWallet
GET/v1/wallet

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

getWallet

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

鉴权

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

响应

200 OK

200 OK
字段说明
availablestring必填

当前可用的 Credits。

heldstring必填

进行中任务冻结的 Credits。

paid_availablestring必填
promotional_availablestring必填
refund_reservedstring必填
totalstring必填

可用、冻结和退款处理中的 Credits 之和。

unitstring必填
credit

错误

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

错误响应体

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

错误详情。

error 的字段
error 的字段
codestring必填

稳定的错误码,用它判断分支。

messagestring必填

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

request_idstring必填

联系支持时请附上。

retryableboolean必填

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

task_idstring可选

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

错误
状态码含义与处理
400

请求无法解析。对照上面的表格检查查询参数的取值。

401

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

403

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

404

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

409

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

422

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

500

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

503

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

请求示例

cURL
curl "https://api.vizoapi.com/v1/wallet" \
  -H "Authorization: Bearer $VIZO_API_KEY"
Python
import os, requests

res = requests.get(
    "https://api.vizoapi.com/v1/wallet",
    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/wallet", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.VIZO_API_KEY}`,
  },
});
console.log(res.status, await res.json());
响应 200
{
  "available": "8600.000",
  "held": "1400.000",
  "paid_available": "8600.000",
  "promotional_available": "0.000",
  "refund_reserved": "0.000",
  "total": "10000.000",
  "unit": "credit"
}
响应 400
{
  "error": {
    "code": "invalid_request",
    "message": "The request could not be read.",
    "retryable": false,
    "request_id": "9f2c41d07ab3e5c8"
  }
}
响应 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"
  }
}
响应 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"
  }
}
响应 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"
  }
}