接口概述
日志查询接口返回你账号下每一次 API 调用的明细记录,包括调用的模型、实际扣费、耗时、 是否流式、以及失败时的错误码。 它和余额查询 API 是互补的:余额查询告诉你「现在还剩多少钱」, 日志查询告诉你「钱花在哪了」。 三类典型用途:自动对账
按时间段、按模型统计实际消费,与自己的业务账单核对
故障自查
查失败请求的错误码,定位是参数问题还是上游问题
报障提工单
拿到
request_id 给客服,能精确定位到那一次调用控制台也能看日志(「日志」页面)。本接口是同一份数据的程序化入口,适合需要自动化对账、
定时导出、或接入自己监控系统的场景。手动查看请直接用控制台,见 如何查看我的调用记录。
如何获取系统令牌
日志接口用系统令牌认证,与 API Key 不是一回事(详见文末注意事项)。1
访问控制台
访问
api.apiyi.com/account/profile 个人中心页面2
找到系统令牌
在页面最下方找到「账号选项 - 系统令牌」部分
3
生成 AccessToken
输入当前的账户密码后,会得到一个 AccessToken,该密钥可用于后续接口的查询数据

接口信息
请求说明
请求 Headers
查询参数
日志类型 type
响应说明
成功响应示例
关键响应字段
other 字段存的是一段 JSON 字符串而不是嵌套对象,取用前需要再解析一次
(Python 用 json.loads(),JavaScript 用 JSON.parse())。里面包含
billing_type(计费方式)、request_path(实际调用的端点)、group_ratio(分组倍率)、
model_ratio(模型倍率)、usage(用量明细)等。额度换算
换算规则
500,000 额度 = $1.00 美金 (USD)
quota ÷ 500,000
示例:
quota: 7500→ $0.015 USDquota: 22500→ $0.045 USDquota: 18→ $0.000036 USD
错误响应
HTTP 401 - 认证失败
sk- 开头)当成系统令牌使用。
解决方法: 回控制台重新生成系统令牌,确认 Authorization 里填的是不带 Bearer 前缀的裸值。
代码示例
cURL 示例(单页,快速验证)
这条命令只能拿到 10 条。真正对账请用下面带翻页的完整版。
Python 示例(带翻页,可直接运行)
Node.js 示例(带翻页)
fetch 会自动处理 gzip 解压,Node.js 侧无需额外配置(Python 的 requests 同理)。
只有 curl 需要显式加 --compressed。典型场景
场景一:统计某段时间的花费
用上面的 Python 示例,关键是带type=2 并把 quota 求和后除以 500,000。
如果只想看某个模型,加 model_name 参数即可。
场景二:找出失败的调用
被网关拒绝的请求(参数错误等)
quota 为 0,不产生扣费。日志里能看到 error_code,
方便你区分「调用失败了」和「调用成功但结果不满意」。场景三:报障时提供 request_id
在日志里定位到出问题的那次调用,把request_id 提供给客服,可以精确查到该次请求的
完整链路。这比描述「大概几点调用 xx 模型失败了」高效得多。
常见问题
为什么我只拿到 10 条记录?
为什么我只拿到 10 条记录?
page_size 的服务端上限就是 10,传更大的值不会报错但也不会生效。
需要拉更多数据必须翻页(p=0、p=1、p=2 …),翻到返回空数组为止。
上面的 Python 与 Node.js 示例已经封装好这个逻辑。响应里有些字段是空的,是不是出问题了?
响应里有些字段是空的,是不是出问题了?
不是。部分字段属于平台内部信息,普通账号视角下为空或 0,属正常现象,
不影响对账与排障需要的字段(
quota、model_name、error_code、request_id 等都是完整的)。token_group 的值和控制台显示的分组名不一样?
token_group 的值和控制台显示的分组名不一样?
接口返回的是分组的标识符,控制台显示的是分组的展示名,两者可能不同。
例如接口返回
default,控制台显示「Default」。完整的对应关系可以从公开接口 https://api.apiyi.com/api/pricing 的 usable_group
字段获取,它是一个「标识符 → 展示名」的映射表。如果你要让自己的报表和控制台显示一致,
需要自己做一次映射。quota 和 usage 里的 token 数对不上怎么办?
quota 和 usage 里的 token 数对不上怎么办?
以
quota 为准。quota 是本次调用实际扣除的额度,是唯一可用于对账的字段。
响应体里的 token 数在部分按次计费的模型(如出图、视频类)上可能是占位值,
不参与计价 —— 这类模型的计价方式在 other.billing_type 里会标为 by_count。日志能查多久以前的?
日志能查多久以前的?
通过
start_timestamp / end_timestamp 指定时间范围即可。
具体的历史数据保留期请咨询客服。建议对账数据定期导出留存,不要长期依赖接口回查。curl 返回乱码或 jq 报错怎么办?
curl 返回乱码或 jq 报错怎么办?
原因: API 返回的是 gzip 压缩内容(Python 的 requests 与 Node.js 的 fetch 会自动解压,无需额外配置。
Content-Encoding: gzip),curl 没有自动解压。解决方案: 添加 --compressed 选项:查询日志会消耗额度吗?
查询日志会消耗额度吗?
不会。日志查询接口不消耗任何配额。
注意事项
请求限制
- 建议查询间隔不少于 1 秒,避免频繁请求触发限流
- 建议设置合理的请求超时时间(推荐 30 秒)
- 大范围时间段的拉取请做好翻页与重试处理
相关文档
- 余额查询 API —— 查账号剩余额度
- 令牌管理 API —— 程序化创建与管理 API Key
- 如何查看我的调用记录 —— 控制台手动查看
- 日志与账单怎么看 —— 计费字段解读