Skip to content

日志明细导出(CSV / XLSX)

控制台「日志」页的导出能力以 HTTP 接口提供,按导出日志明细(CSV 或 XLSX),供外部对账系统拉取:

  • 与控制台日志列表同数据源、同筛选条件
  • 2026-09-02 起,在「总 Token」后新增 缓存读 Token / 缓存写 Token / 输入合计 Token 三列;输入合计为跨协议归一口径,与令牌用量查询input_tokens_total 完全一致,行明细与模型聚合可互核对账

接口定义

端点权限数据范围
GET /api/log/self/export普通用户仅本人日志
GET /api/log/export管理员全站日志

鉴权(两个端点相同):

  • 控制台登录会话(Cookie)——浏览器里点「导出」按钮即此方式
  • 控制台生成的访问令牌Authorization: Bearer <访问令牌>(管理员接口需管理员令牌)

注意:这里用的不是模型调用的 sk- 令牌;sk- 令牌仅用于令牌用量查询与模型调用。

请求示例(curl)

导出最近 1 小时的消费日志(Linux):

bash
START=$(date -d '-1 hour' +%s)
END=$(date +%s)
curl -s -G "https://stonerollai.com/api/log/self/export" \
  --data-urlencode "type=2" \
  --data-urlencode "start_timestamp=${START}" \
  --data-urlencode "end_timestamp=${END}" \
  --data-urlencode "format=csv" \
  -H "Authorization: Bearer <你的访问令牌>" \
  -o usage-logs.csv

macOS / BSD 的 date 用法:date -v-1H +%s

请求参数(Query)

参数类型必填说明
formatstringcsv(默认)/ xlsx
typeint日志类型:0=全部(默认)、1 充值、2 消费、3 管理、4 系统、5 错误、6 退款
start_timestampint开始时间(unix 秒),包含0=不限
end_timestampint结束时间(unix 秒),包含0=不限
model_namestring模型名,精确匹配(值含 % 时按模糊匹配)
token_namestring令牌名称,精确匹配
groupstring分组,精确匹配
request_idstring请求 ID,精确匹配
upstream_request_idstring上游请求 ID,精确匹配
usernamestring用户名,精确匹配(仅管理员接口生效)
channelint渠道 ID(仅管理员接口生效)

响应

  • 成功:文件流下载,文件名 usage-logs-YYYYMMDD-HHMMSS.csv(或 .xlsx);CSV 为 UTF-8 编码,首行为中文表头
  • 超出限制:JSON {"success": false, "message": "导出结果超过 100000 行,请缩小筛选范围"}——单次导出最多 100,000 行,请用时间窗分批
  • 时间窗为双闭区间start_timestampend_timestamp 均包含在内;分批导出时下一批 start_timestamp 取上一批 end_timestamp + 1,正好衔接不重不漏

导出列

普通用户 17 列;管理员 19 列(多「用户」「渠道」两列,位置见表)。

列(按顺序)说明
时间YYYY-MM-DD HH:MM:SS(东八区)
类型充值 / 消费 / 管理 / 系统 / 错误 / 退款
用户(仅管理员)用户名
令牌名称发起请求的令牌名
模型模型名
分组请求所用分组
输入 Token原始输入 token(口径随协议,见下节
输出 Token输出 token
总 Token输入 Token + 输出 Token(原始值直加,未做归一)
缓存读 Token命中缓存(读)token,2026-09-02 新增
缓存写 Token写入缓存 token,2026-09-02 新增
输入合计 Token跨协议归一输入合计,2026-09-02 新增(见下节)
用量/额度消费额度 quota(换算见下)
耗时
是否流式是 / 否
渠道(仅管理员)渠道名 #渠道ID
请求 ID平台请求 ID
上游请求 ID上游渠道请求 ID
日志内容摘要原日志内容摘要,最长 500 字

输入 token 口径(2026-09-02 起提供归一列)

「输入 Token」的语义随通道协议而不同(平台按协议原样落库,不改历史数据):

通道协议输入 Token 含义缓存位置
OpenAI 兼容 / Gemini 等已含缓存命中(缓存是其子集)缓存读 Token
Claude 协议(Anthropic 语义)不含缓存(净输入)读在 缓存读 Token,写在 缓存写 Token

因此不同来源的「输入 Token」直接相加没有一致口径。跨协议对账请使用归一列:

text
输入合计 Token = Claude 协议行:输入 Token + 缓存读 Token + 缓存写 Token
               其余行:      输入 Token(已含缓存,不重复加)
  • 令牌用量查询input_tokens_total 同口径:本接口行明细按模型求和,可与该接口的模型聚合互相核对
  • 「总 Token」是原始值直加(未归一),跨协议场景请勿用它对输入侧对账
  • 金额(用量/额度)不受影响:平台计费已按协议归一

额度(quota)换算

text
USD = quota / quota_per_unit

quota_per_unit 公开可查:GET /api/statusdata.quota_per_unit(默认 500000)。建议每次任务开始时取一次并随结果落库。

变更记录

日期变更
2026-09-02「总 Token」后新增 缓存读 Token / 缓存写 Token / 输入合计 Token 三列(跨协议归一口径,见「输入 token 口径」);其余列与参数不变
2026-06-05接口随日志导出功能首次上线(本文档为初次成文)

StoneRoll AI · 平台文档