概览
GET /v1/usage 返回调用方自身的消耗情况和限额,无需管理员权限。一次调用即可回答三个问题:
- 我已经用了多少(请求数、Token 数、预估成本)?
- 我还剩多少预算,何时重置?
- 哪些速率限制适用于我,还剩多少余量?
快速示例
您看到的是谁的用量
- 托管 API 密钥:使用该密钥绑定的
user_path。无需任何参数,密钥持有者无法读取其自身子树之外的数据。 - 主密钥(或不安全模式):传入
X-GoModel-User-Path来选择路径,省略时查看/(全部):
响应字段
usage
基于日期窗口内被追踪的请求汇总,Token 和预估成本的语义与控制台相同。如果匹配的请求都没有定价信息,成本字段为 null。如果没有存储后端记录用量(USAGE_ENABLED=false 或未配置数据库),整个块为 null。
budgets
覆盖该路径的每个预算各占一项,包括从祖先路径(例如 /)继承的预算。remaining 可能为负数,usage_ratio 也可能大于 1,两者都表示预算已被超支;exceeded 与实际执行状态一致,当其为 true 时,请求会被拒绝,直到 period_end(period_seconds 为 2592000 是表示自然月的特殊值,而不是字面意义上的 30 天)。resets_in_seconds 以 server_time 为基准倒计时至 period_end,因此可以直接展示,无需担心客户端时钟偏差。
rate_limits
覆盖该路径的每条用户路径速率限制规则的实时计数器。max_tokens/tokens_remaining/tokens_usage_ratio 仅出现在带有 Token 限制的规则上;period_label 为 concurrent 表示并发上限,此时 in_flight 为当前并发数(并用于计算 requests_usage_ratio)。*_usage_ratio 字段为各维度的已用量/限额,不做截断,Token 窗口可能超过 1。当任一维度用尽时,exhausted 为 true;resets_in_seconds 以 server_time 为基准倒计时至 window_end(并发规则没有窗口,因此省略该字段)。提供商和模型作用域的规则不会列出:它们描述的是共享基础设施的容量,而不是调用方。
速率限制计数器保存在每个网关实例的内存中:重启后会重置,如果有 N 个副本,每个副本各自维护计数器。预算才是持久化的、跨实例的数据。
日期窗口
usage 块默认统计最近 30 天(按 UTC 日边界)。可以通过查询参数缩小范围:使用 days,或显式指定 start_date/end_date(YYYY-MM-DD,最长 365 天):
usage。
缓存模式
usage 块默认只统计发往提供商的请求,因此与预算和成本保持一致。响应缓存命中同样会被记录,可通过 cache_mode 查看:
cached 与默认值对比,是了解缓存吸收了多少流量的最快方式。无法识别的值会回退为 uncached。cache_mode 只影响 usage:预算和速率限制从不统计缓存命中,因为命中既不产生支出,也不消耗配额。