ToAPIsToAPIs
定价与费用

实际费用与任务用量

生成任务 billing 与 usage 字段的实际费用口径

定价目录反映当前费率, 实际扣费以生成响应, 任务查询, Webhook 和用量记录为准. 查询模型定价和账户用量是两个不同口径的数据, 不要用当前价格倒推历史扣费.

实际费用字段

费用可以确认时, 生成响应使用以下对象:

{
  "billing": {
    "status": "settled",
    "credits": "100",
    "cost_usd": "0.5"
  }
}
字段含义
statuspending, settled 或 refunded
credits已确认消耗的 ToAPIs Credits, 以十进制字符串返回
cost_usd同一笔已确认费用的 USD 金额, 以十进制字符串返回

pending 表示最终金额尚未确认, 因此不返回金额字段. refunded 表示已确认净费用为零. 缺少整个 billing 对象表示平台无法确认安全的公开值, 不代表本次请求免费.

该对象可能出现在:

  • 统一图片和视频任务查询 GET /v1/tasks/{task_id}
  • 异步图片任务查询 GET /v1/images/generations/{task_id}
  • 异步视频任务查询 GET /v1/videos/generations/{task_id} (兼容 GET /v1/video/generations/{task_id} 和 GET /v1/videos/{task_id})
  • 任务 Webhook 的 data.billing
  • 兼容的非流式同步图片生成或编辑响应顶层 billing

对于异步任务, 任务完成后可将任务查询接口作为获取最终费用的兜底方式. 流式图片响应, 不支持的供应商响应格式, Playground 请求和延迟批量计费可能不返回该对象.

任务用量字段

图片和视频任务查询在顶层 usage 返回已确认的计费量, 成功 Webhook 在 data.usage 返回同口径字段. 计费量, 模型报告的 token 明细和工具次数可以并存, 按可用性分别返回.

字段类型说明
charge_typestring计费方式: per_request, per_second 或 per_token
requestsinteger实际计费次数. 普通图片请求的 n 不会直接乘算次数; Midjourney 视频的有效 batch_size 会计入计费次数
billed_tokensinteger实际用于计价的 token 数. 部分图片路径使用配置的预扣 token 基数, 不保证等于上游实际生成量
output_secondsinteger参与计费的输出视频时长, 单位为整数秒
input_secondsinteger参与计费的输入视频时长, 单位为整数秒
input_imagesinteger扣除免费额度后参与计费的输入图片数
input_tokens, output_tokens, prompt_tokens, completion_tokens, total_tokensinteger视频模型报告的非负整数 token 明细. 字段按供应商实际提供情况返回; 已确认的按 token 结算可补齐 total_tokens
tool_usageobject工具次数, 可包含 web_search, image_search, grounding_queries; 按实际可用字段返回, 与 token 明细独立

计费量来自任务保存的计费记录: 固定计费使用创建时确认的数量, 后置结算使用最终结算数量, 不按当前价格或金额倒推. per_request 对应 requests, per_second 对应 output_seconds, per_token 对应 billed_tokens; 输入视频时长和输入图片等附加项按需返回, 为零时省略.

只保存了金额而未保存可校验计费量的历史任务, 会省略无法确认的字段. 未提供的 token 明细也不补零. 按 token 结算后, 视频 token 分项只有在上报总量与最终计费量一致时才保留. usage 和 billing 的可用性相互独立: 缺少 usage 不代表没有扣费, 也不会阻止结果返回.

但只要返回了 charge_type 等计费量, 就一定同时返回 billing.status=settled 和实际金额. 提交时一次扣清的固定计费任务同样返回 settled. 任务查询和 Webhook 使用相同的确认条件和字段取值.

On this page