Olive 用量 API 已上线

按团队成员统计的 Token 用量 —— 含用量数字与显示名称,每小时刷新,只读接口。

基础接口
GET https://usage.clembot.uk/v1/usage/tokens

可选时间窗口:?since=<ISO-8601>&until=<ISO-8601> —— 左闭右开区间 [since, until);不传则返回全部时间。另有一个免认证的 GET /healthz 存活检查。

认证 —— 三个请求头

每个请求要通过两道彼此独立的关卡,因此需要携带 三个请求头的值:

请求头用于通过
CF-Access-Client-Id❶ Cloudflare Access(边缘网关)。缺少时请求会在 Cloudflare 被直接拦截,根本到不了服务器(返回 403)。
CF-Access-Client-Secret
Authorization: Bearer <token>❸ 应用本身。缺少时返回 401

你的三个值在「凭证」页面。该页面为 一次性查看 —— 打开后请立即把三个值保存到密码管理器,过后链接即失效(如需重新获取请联系 Heng)。

→ 查看你的凭证(一次性)

响应结构

按团队成员返回(以 Lark open_id ou_<hex> 为键):四个 Anthropic 原生 Token 字段、派生的 total_tokens 合计,以及显示 name(未知时为 null)。另含团队合计 fleet_total、无法归属的 unattributed 桶(没有对应成员的记录),以及快照时间 generated_at

{
  "generated_at": "2026-06-26T10:00:00Z",
  "since": null, "until": null,
  "fleet_total":  { "input_tokens": …, "output_tokens": …, "cache_read_input_tokens": …,
                    "cache_creation_input_tokens": …, "total_tokens": … },
  "unattributed": { …结构相同,无 name… },
  "users": {
    "ou_<hex>": {
      "name": "南笙" | null,
      "input_tokens": …, "output_tokens": …,
      "cache_read_input_tokens": …, "cache_creation_input_tokens": …,
      "total_tokens": …
    },
    …
  }
}

快速上手(curl)

curl -s https://usage.clembot.uk/v1/usage/tokens \
  -H "CF-Access-Client-Id: <client-id>" \
  -H "CF-Access-Client-Secret: <client-secret>" \
  -H "Authorization: Bearer <app-token>"

须知

缓存Token 用量按查询窗口缓存约 1 小时 —— generated_at 表示该快照的时间。名称是实时解析的(成员资料一改即时生效)。
ID 与名称ou_<hex> 这些键是 Lark open_id,且按应用隔离 —— 同一个人在你自己的系统里会是不同的 id。请用 name 做关联,而不是 id。
隐私仅包含用量数字与显示名称 —— 绝不含提示词、路径或任何会话内容。
错误码403 = 在 Cloudflare 边缘被拦截(service token 错误或缺失);401 = bearer 错误或缺失。