API 参考 › 账户与计费

用量与账单开放接口

文档最后更新于 2026年10月16日 02:29

用量与计费开放接口总览:单次请求用量反查、累计消费、Token 用量明细、Key 额度,附常见问题与统一错误码。

云上创造 用量与计费接口用于查询单次模型请求的 Token 用量与费用、查询累计消费、查看 API Key 的额度与调用明细。本文档描述接口约定,实际请以线上接口返回结果为准。

接口概览

接口说明
GET /api/log/token列出当前 API Key 的调用记录,可按 request_id 反查单次请求
GET /v1/dashboard/billing/usage查询累计消费金额
GET /api/usage/token/查询当前 API Key 的额度上限、已用与剩余额度

开始使用

请求地址

本站有两个调用地址,任选一个(两个地址的接口与数据完全一样)。下文使用 $CA_BASE_URL 表示该地址:

调用地址
国内通道 URL
https://api.acapi.top

国内模型(DeepSeek、Qwen、GLM、Kimi、豆包、MiniMax 等)走这里响应更快

国外通道 URL
https://acapi.top

海外文本模型(GPT、Claude、Gemini、Grok 等)走这里响应更快

区别是国内模型走国内通道响应更快,国外模型走国外通道响应更快;两个 URL 的模型数量都是一样的,同一个 API Key、同样的价格,任选一个都能调用全部模型。OpenAI 兼容客户端的 Base URL 在地址后加 /v1(如 https://api.acapi.top/v1)。

bash
export CA_BASE_URL="https://acapi.top"      # 国外通道
# export CA_BASE_URL="https://api.acapi.top"  # 国内通道

鉴权方式

在每个请求的 Authorization 请求头中携带 云上创造 API Key(本组接口不接受 x-api-key,只带它会返回 401):

http
Authorization: Bearer <key>
请妥善保管 API Key,不要将其写入前端代码、公开仓库或日志。示例中的 Key 和 ID 均为虚构数据。

查询单次请求的用量与账单

本站不提供按请求 ID 直接取单条的接口。做法是先取该 Key 的调用记录列表,再用请求 ID 与记录中的 request_id 做精确字符串比对。

http
GET /api/log/token

该接口不接受过滤参数,一次返回该 Key 名下的全部记录(上限 1000 条)。请求 ID 取自模型响应头 X-Oneapi-Request-Id。

请求示例

bash
curl -s "$CA_BASE_URL/api/log/token" \
  -H "Authorization: Bearer $CA_API_KEY" \
| python3 -c "
import sys, json
target = '202609240033423335882438268d9d6fQREoTpv'
for row in json.load(sys.stdin)['data']:
    if row['request_id'] == target:
        print(json.dumps(row, ensure_ascii=False, indent=2))
"

响应示例

json
{
  "success": true,
  "message": "",
  "data": [
    {
      "id": 1,
      "created_at": 1790210024,
      "type": 2,
      "model_name": "claude-opus-5",
      "quota": 25,
      "prompt_tokens": 27,
      "completion_tokens": 9,
      "use_time": 2,
      "is_stream": false,
      "token_name": "123",
      "group": "统一调用分组",
      "request_id": "202609240033423335882438268d9d6fQREoTpv",
      "other": "{\"billing_mode\":\"tiered_expr\",\"cache_tokens\":0,\"matched_tier\":\"base\"}"
    }
  ]
}

记录字段说明

字段说明
request_id请求 ID,与响应头 X-Oneapi-Request-Id 完全一致
created_at请求时间(Unix 秒)
model_name调用的模型 ID(你请求的模型名)
quota本次实际扣费(配额单位,500,000 配额 = $1)
prompt_tokens输入 Token 数,含命中缓存的部分
completion_tokens输出 Token 数
use_time耗时(秒)
is_stream是否为流式请求
otherJSON 字符串(需先 JSON.parse),含计费模式、命中档位、缓存 Token 数等
type记录类型:2 = 调用(扣费)记录,5 = 失败记录(quota 为 0)
content失败记录的摘要,形如 失败 <HTTP> <code> <错误文案> | 耗时 Ns;不含渠道信息
返回的记录不含线路 / 渠道信息与上游模型名:model_name 是你请求的模型 ID,other 里只有计费与请求相关字段。客户端按可选字段处理,未列出的字段请忽略。
other.cache_tokens 是命中缓存读取的 Token 数,且已包含在 prompt_tokens 里。未命中缓存的部分 = prompt_tokens - other.cache_tokens。
上游未返回用量时,本站按 quota: 0 记账并退回预扣,这类记录不是漏计费。

查询累计消费

查询当前鉴权 API Key 的累计消费,只返回一个合计值,不返回逐请求明细。

http
GET /v1/dashboard/billing/usage

虽然接口接受 start_date / end_date,但当前实现不对结果做过滤,返回值恒为累计总额。

请求示例

bash
curl "$CA_BASE_URL/v1/dashboard/billing/usage" \
  -H "Authorization: Bearer $CA_API_KEY"

响应示例

json
{
  "object": "list",
  "total_usage": 15317.105599999999
}
total_usage 的单位是美分(0.01 美元),例中的 15317.1056 是 $153.17,不是 $15317。

查询 Token 用量明细

要按时间范围做对账,请使用上表 GET /api/log/token 返回的逐条记录,在客户端按 created_at 筛选后自行汇总。

查询 Key 额度

查询当前 API Key 的额度上限、已用与剩余额度。

http
GET /api/usage/token/

该接口无需查询参数,Key 身份从鉴权信息中识别。端点末尾的斜杠需要带上。

请求示例

bash
curl "$CA_BASE_URL/api/usage/token/" \
  -H "Authorization: Bearer $CA_API_KEY"

响应示例

json
{
  "code": true,
  "message": "ok",
  "data": {
    "object": "token_usage",
    "name": "my-key",
    "unlimited_quota": true,
    "total_granted": 64841106,
    "total_used": 76585528,
    "total_available": -11744422,
    "expires_at": 0,
    "model_limits_enabled": false,
    "model_limits": {}
  }
}

额度单位是配额,除以 500,000 即美元。unlimited_quota 为 true 时以账户余额为准,额度三项仅作参考。

常见问题

为什么我只发了一条消息,账单里却有多条记录?

这是正常现象。很多 Agent 客户端并不是“一条用户消息 = 一次模型请求”。例如 Claude CLI、Codex Desktop 这类 Agent 工具,在完成一个任务时,可能会连续发起多轮模型请求:理解需求、读取上下文、调用工具、总结结果、继续规划下一步。此外,有些客户端还会在你没有明确发送新消息时,自动发起一些辅助请求(生成首页推荐内容、加载或总结上下文、检查当前会话状态、为下一步操作做预处理)。账单明细展示的是底层真实模型请求,所以你可能会看到同一时间附近出现多条记录。

简单理解:你看到的是一次操作或一次对话,系统记录的是背后所有真实发生的模型调用。

为什么模型选择 gpt-5.5,但是账单中出现了 gpt-5.4-mini?

Agent 工具可能会把一个任务拆成多个步骤,不同步骤使用不同模型。例如一个步骤用更强模型做规划,另一个步骤用更轻量模型处理简单内容。所以同一轮任务中出现多个模型,不一定代表异常,而是 Agent 客户端在按步骤调用不同模型。

Cache 读取和 Cache 写入是什么?为什么金额差异很大?

Cache 是模型服务的上下文缓存机制。Agent 在连续多轮任务中,经常会重复携带大量上下文(项目文件、历史对话、工具结果等)。

  • ·Cache 写入:首次把上下文写入缓存,通常费用较高。
  • ·Cache 读取:后续复用已缓存上下文,通常比重新输入便宜很多。

所以你可能会看到某些记录的 Cache 写入很多、费用较高;另一些记录 Cache 读取很多、费用较低。这通常说明 Agent 在复用上下文缓存。

为什么有些请求输入 Tokens 很少,但费用不低?

因为模型计费不只看普通输入和输出 Tokens,还可能包含 Cache 写入、Cache 读取、模型单价差异等因素。尤其是 Claude / Agent 场景中,大量费用可能来自上下文缓存,而不是你本次手动输入的那几句话。

为什么应扣金额和实扣金额不一样?

“应扣金额”可以理解为按模型官方或标准价格计算的参考金额;“实扣金额”是 云上创造 按当前折扣后实际从余额中扣除的金额。如果页面显示 “2.8折”“6折”“1.1折” 等标签,表示本次请求享受了对应折扣。

有快速模式(Fast 模式)吗?

本站暂不支持快速模式:请求里的 service_tier(如 fast、priority)会被忽略,按普通模式处理、按普通价格计费,不会产生额外费用。

生成的图片、视频能保存多久?

生成的图片、视频存放在本站存储地址 https://cdnworke.top/media/<hash>.<ext> 时,结果文件由顶层 retention 字段标注有效期(6 小时),到期自动删除,服务器不长期存储,请及时下载并自行保存。需要长期保存图片可改用 response_format: "b64_json"(直接返回内容,不经服务器存储)。上游直链(非本站存储地址)有效期以上游为准,同样请及时下载(此时响应顶层返回 notice: "下载链接有效期有限,请及时下载",无 expires_at)。响应顶层的 retention.expires_at 是到期时间(Unix 秒)。

为什么感觉消耗越来越快?如何减少额度消耗

  1. 1.在同一个会话里持续对话,客户端通常会把更多历史消息、文件内容、工具结果等一起带给模型,单次请求的上下文会变长,因此体感上每次消耗会越来越高。建议在长对话后适当开启新会话、压缩上下文;如果只是简单问题,可以选择更轻量的模型,以降低单次消耗。
  2. 2.如果在一个会话里频繁切换完全不同的任务(先分析代码、再处理图片、再写文案等),新的问题会不断引入不同的上下文,导致原本可复用的缓存被重写或命中率下降。建议把不同类型的任务拆到不同会话里处理,这样更有利于缓存复用。

请求慢、超时或连不上怎么办?

换通道试试。 本站有两个调用地址:国内通道 https://api.acapi.top、国外通道 https://acapi.top,两个 URL 的模型数量都是一样的,API Key、价格都相同。某个通道慢或连不上时,把客户端的 Base URL 换成另一个再试即可,模型名不用改(OpenAI 兼容客户端记得保留 /v1)。见 协议选择 的「通道选择」。

什么时候需要联系客服?

如果你遇到以下情况,可以联系我们排查:

  • ·明显没有发起任务,但账单持续产生记录。
  • ·短时间内多次重复 Cache 写入,并且没有 Cache 读取。
  • ·同一请求出现异常大量重复扣费。
  • ·账单模型与你的使用场景完全不符。
  • ·实扣金额明显异常。
  • ·Agent 调用失败,但仍产生了无法理解的扣费记录。

请进群添加客服,尽量提供请求时间、模型名称、来源和截图,方便我们快速定位。

错误处理

接口调用失败时,响应体包含稳定的错误码和便于排查的信息。/v1/dashboard/* 鉴权失败返回 error 对象:

json
{
  "error": {
    "code": "",
    "message": "Invalid token (request id: 202609240319094152743578268d9d6j8wBmBgF)",
    "type": "new_api_error"
  }
}

/api/log/token、/api/usage/token/ 鉴权失败返回的是另一种形状(没有 error 对象,也不带 request id):

json
{"success": false, "message": "Invalid token"}

常见错误码

HTTP 状态码error.type说明
401new_api_error / success: falseAPI Key 缺失或无效(两种响应形状见上)
429(响应体为空)查询过于频繁:/api/log/token、/api/usage/token/ 每 IP 每 20 分钟 20 次,其它接口每 IP 每 180 秒 360 次;按 Retry-After 响应头等待后重试,见 速率限制
500new_api_error服务内部错误

使用建议

  • ·/api/log/token 一次返回该 Key 的全部记录且不支持分页,记录多时请缓存结果、避免高频轮询。
  • ·价格可能调整。历史账单以返回记录里的 quota 为准,不要使用当前价格表反推历史费用。
  • ·对查询接口设置合理的重试和超时策略;遇到 429 或 5xx 时使用指数退避重试。

共 30 篇文档。文中出现的模型名与价格以模型广场的实时数据为准。