用量

按 API Key 或账户查询已计费用量、汇总,以及按请求回查一笔。

鉴权

这些端点供服务端调用。使用 Authorization: Bearer <API_KEY> 或 x-api-key 鉴权。请把 Key 保存在自己的后端。

一把 Key 可以查看账户用量,不限于它自己发出的调用。同一买家的多把 Key 共用一个钱包,对账通常用 scope=account。scope=key 只看当前这把 Key。按 request_id 回查始终是账户级:同一买家另一把 Key 产生的请求也能查到。

一行代表什么

这里只有已经计费的调用。被拒绝、被限流,或在计费前中断的调用没有行。结算是异步的:LLM 用量通常在数秒内出现,媒体任务在任务完成后出现。查不到表示这次没有计费,或结算还没完成。不要用这个接口统计失败率。

charge 是这笔调用记到账户上的消费,单位是 credits。official_price 是该笔的牌价合计;没有存牌价的历史行返回 null。

kind 由请求 id 推断。媒体任务 id 以 tsk 开头(kind 为 media),LLM 调用以 aitk- 开头(kind 为 llm)。kind 是开放取值:不认识的过滤值不会匹配任何行,响应里不认识的值应跳过。媒体行的 request_id 就是任务 id,可直接用于 GET /v1/media/tasks/{id}。按 token 计费的媒体会填写 tokens,按次计费的各项为 0。

对账主键是 request_id(原调用响应头 x-aitoken-request-id,或媒体任务 id)。

金额是保留 6 位小数的十进制字符串。token 是整数。时间是 UTC ISO 8601。to 不包含在窗口内。

明细

GET/v1/account/usage

返回当前 Key 或整个账户的已计费记录,新的在前。

curl "https://u-token.ai/v1/account/usage?scope=account&from=2026-09-22T00:00:00Z&to=2026-09-23T00:00:00Z&limit=2" \
  -H "Authorization: Bearer sk-你的KEY"
名称位置必填说明
scopequery否key(默认)或 account。其它取值返回 400。
fromquery否窗口起点,ISO 8601 或 unix 秒。默认是 to 往前 24 小时。
toquery否窗口终点,不包含该时刻。ISO 8601 或 unix 秒。默认是当前时间。
modelquery否精确模型 ID。
channelquery否精确渠道 ID,standard 或 flex。
kindquery否精确种类。llm 与 media 匹配对应行,其它值匹配不到行。
limitquery否每页条数,1–500 的整数。默认 100。
cursorquery否上一页返回的 next_cursor。

from 必须早于 to,窗口最长 31 天。

{
  "scope": "account",
  "from": "2026-09-22T00:00:00Z",
  "to": "2026-09-23T00:00:00Z",
  "currency": "credits",
  "credits_per_usd": "100",
  "data": [
    {
      "request_id": "aitk-3f2c",
      "kind": "llm",
      "model": "claude-sonnet-5",
      "channel": "flex",
      "channel_name": "订阅号直供",
      "tokens": {
        "input": 1834,
        "output": 412,
        "cached": 1200,
        "cache_write": 0,
        "cache_write_1h": 0
      },
      "charge": "0.263400",
      "official_price": "0.752571",
      "status": 200,
      "key": { "id": 1042, "name": "prod-us", "key_masked": "sk-abcd…9f3c" },
      "created_at": "2026-09-22T13:05:41Z"
    }
  ],
  "has_more": true,
  "next_cursor": "eyJ0IjoiMjAyNi0wOS0yMlQxMjo1ODowM1oiLCJpIjo3MTIzNDV9"
}

scope=account 包含已删除或已停用 Key 的历史行。每行都带 key.id、key.name 和 key.key_masked。

游标翻页

结果按 created_at 倒序,相同时按 id 倒序。把 next_cursor 作为 cursor 传入即可翻到下一页。没有更多行时 next_cursor 为 null。不要使用 offset:游标锚在某一行上,翻页期间新落入的更晚记录不会把后面的页挤偏。

curl "https://u-token.ai/v1/account/usage?scope=account&cursor=eyJ0IjoiMjAyNi0wOS0yMlQxMjo1ODowM1oiLCJpIjo3MTIzNDV9" \
  -H "Authorization: Bearer sk-你的KEY"

篡改过的游标返回 400。

汇总

GET/v1/account/usage/summary

与明细使用同一窗口和过滤条件,对同一批已计费记录做汇总。

curl "https://u-token.ai/v1/account/usage/summary?scope=account&from=2026-09-22T00:00:00Z&to=2026-09-23T00:00:00Z&group_by=model" \
  -H "Authorization: Bearer sk-你的KEY"
名称位置必填说明
scopequery否与明细相同。默认 key。
fromquery否时间窗规则与明细相同。
toquery否时间窗规则与明细相同。
modelquery否精确模型 ID。
channelquery否精确渠道 ID。
kindquery否精确种类。不认识的值匹配不到行。
group_byquery否day(默认)、model 或 key。其它取值返回 400。

day 按 UTC 日期分桶(YYYY-MM-DD),没有调用的日期不出现。model 按 (model, channel) 分桶。key 分桶带 key。scope=key 时只有当前这把 Key 的一个桶。total 是整个窗口的合计,不是单个桶。把明细翻完求和后,calls、各项 token 和 charge 应与 total 一致。

{
  "scope": "account",
  "from": "2026-09-22T00:00:00Z",
  "to": "2026-09-23T00:00:00Z",
  "group_by": "model",
  "currency": "credits",
  "credits_per_usd": "100",
  "data": [
    {
      "model": "claude-sonnet-5",
      "channel": "flex",
      "calls": 1830,
      "tokens": {
        "input": 3120044,
        "output": 611203,
        "cached": 1988000,
        "cache_write": 0,
        "cache_write_1h": 0
      },
      "charge": "482.113200"
    }
  ],
  "total": {
    "calls": 2011,
    "tokens": {
      "input": 3200000,
      "output": 640000,
      "cached": 1988000,
      "cache_write": 0,
      "cache_write_1h": 0
    },
    "charge": "540.220100"
  }
}

按请求查

GET/v1/account/usage/{request_id}

返回当前买家账户下的一行。响应体与明细里的单个对象相同。

名称位置必填说明
request_idpath是原调用的 x-aitoken-request-id,或媒体任务 id。
curl https://u-token.ai/v1/account/usage/aitk-3f2c \
  -H "Authorization: Bearer sk-你的KEY"

404 表示这个账户下没有该 id 的已计费行。未知 id、其他买家的 id,以及结算尚未完成,都是这个结果。刚产生的调用请稍后重试,再判断它是否不存在。响应不会区分这几种情况。

错误

每个响应都带 x-aitoken-request-id。这些端点不走 LLM 账户限流。三个用量接口共用每把 Key 每分钟 120 次的额度。超出后返回 429,并带 draft-6 的 RateLimit-Limit、RateLimit-Remaining、RateLimit-Reset。参见速率限制。

HTTP 状态error.typeerror.code含义
400invalid_request_errorVALIDATIONscope、时间窗、过滤、limit、group_by 或游标不合法。超过 31 天时错误说明里会写明上限。
401authentication_errorKey 缺失、无效或已停用。响应体与 GET /v1/models 一致。
404not_foundusage_not_found本账户没有这笔已计费记录,也可能是尚未结算。
429rate_limit_errorusage_rate_limit这把 Key 在当前这一分钟里的用量查询超过 120 次。按 RateLimit-* 退避。
503internal_errorusage_unavailable用量读取失败。响应体包含 error.request_id。空的 data 数组不是读取失败。
本页目录

On this page