Skip to content

按 API Key 查询日志

若接入方只有 API Key、没有控制台登录态,可通过本接口查询当前 Key 自己的调用日志。

接口概览

说明
方法GET
路径https://ai.feiluanai.com/api/log/token
鉴权Authorization: Bearer sk-...
类型只读,不会修改任何日志数据

1. 接口用途

按 API Key 反查本 Key 的历史调用日志,适用于:

  • 自动化脚本核对单次请求消耗
  • 第三方系统对接时做用量审计
  • 仅有 sk-...、无法登录控制台时的自助排查

控制台 用量 / 日志 页面展示的信息更完整;本接口面向 API 集成,且不返回源站、渠道等内部信息

2. 认证规则

  • 必须在请求头携带:Authorization: Bearer sk-xxxxxx
  • 服务端从 Token 认证中间件读取当前 token_id只查询该 Key 自己的日志
  • 不支持通过 query 传入 token_id 查询其他 Key
  • 即使 Key 已过期或额度用尽,在兼容接口开启时仍可能允许只读查询(与 /api/usage/token 行为一致)
http
Authorization: Bearer sk-xxxxxx

3. 查询参数

时间范围

参数类型必填说明
start_timestampint开始时间(Unix 秒,含)
end_timestampint结束时间(Unix 秒,含)
created_time_startintstart_timestamp 的兼容别名
created_time_endintend_timestamp 的兼容别名
  • 主参数为 start_timestamp / end_timestamp
  • 若主参数未传,则回退读取 created_time_start / created_time_end
  • 筛选条件:created_at >= startcreated_at <= end

分页

参数类型必填说明
pint页码,默认 1
page_sizeint每页条数,默认 10,最大 100
ps / sizeintpage_size 的兼容别名

排序

默认按 created_at 降序(最新记录在前)。

4. 请求示例

bash
curl -G "https://ai.feiluanai.com/api/log/token" \
  -H "Authorization: Bearer sk-xxxxxx" \
  --data-urlencode "start_timestamp=1704067200" \
  --data-urlencode "end_timestamp=1704153600" \
  --data-urlencode "p=1" \
  --data-urlencode "page_size=20"

5. 响应格式

统一为 success / message / data 结构;data 为分页对象:

json
{
  "success": true,
  "message": "",
  "data": {
    "page": 1,
    "page_size": 20,
    "total": 2,
    "items": [
      {
        "id": 10086,
        "created_at": 1704100000,
        "type": 2,
        "content": "模型倍率 1.00,分组倍率 1.00",
        "username": "user_a",
        "token_name": "生产环境 Key",
        "model_name": "gpt-4.1-mini",
        "quota": 1200,
        "prompt_tokens": 100,
        "completion_tokens": 50,
        "use_time": 2,
        "is_stream": false,
        "token_id": 42,
        "request_id": "req_abc123",
        "other": {
          "model_price": 0,
          "group_ratio": 1,
          "model_ratio": 1
        }
      }
    ]
  }
}

失败示例

json
{
  "success": false,
  "message": "无效的令牌"
}

6. 返回字段(脱敏后)

顶层日志字段

字段说明
id日志 ID
created_at创建时间(Unix 秒)
type日志类型(如 2 为消费)
content日志摘要文案
username所属用户名
token_name当前 Key 的展示名(非源站名、非渠道名)
model_name请求的模型名
quota本次消耗额度
prompt_tokens提示 token 数
completion_tokens补全 token 数
use_time耗时(秒)
is_stream是否流式
token_id令牌 ID(与当前 Key 一致)
request_id请求 ID(若有)
other计费扩展信息,仅白名单字段

不会返回的字段

以下字段不会出现在响应中(含 other 内同类信息):

  • channel / channel_name — 渠道信息
  • group / group_name — 分组展示信息
  • upstream_model_name — 上游模型名
  • admin_info — 管理员调试信息
  • stream_status — 流式内部状态
  • request_conversion — 请求转换链
  • claude 等内部协议标记
  • 任何上游来源、渠道来源、内部调试字段

隐私说明

token_name 是你在控制台为 Key 设置的名称,用于区分不同令牌,不是源站或上游提供方的名称。

7. other 计费字段白名单

other 不做整包透传,只保留与计费相关的字段。历史记录若未写入某字段,则不返回、不伪造

按量计费

字段说明
model_price模型单价
group_ratio分组倍率
model_ratio模型倍率

按次计费

字段说明
per_call_billing是否按次计费
billing_mode计费模式

视频 / Seedance 类

字段说明
billing_family计费家族(如 video
video_pre_consumed_quota预扣额度
video_actual_quota实际结算额度
video_final_user_cost用户最终费用
video_actual_cost_usd实际成本(USD)
video_refund_or_extra_charge退补差额
video_billing_phase计费阶段

按次计费响应示例

json
{
  "id": 10087,
  "created_at": 1704101000,
  "type": 2,
  "model_name": "nano_banana_2-异步",
  "quota": 50000,
  "token_name": "绘图 Key",
  "other": {
    "per_call_billing": true,
    "billing_mode": "per_call"
  }
}

视频计费响应示例

json
{
  "id": 10088,
  "created_at": 1704102000,
  "type": 2,
  "model_name": "doubao-seedance-2.0",
  "quota": 80000,
  "other": {
    "billing_family": "video",
    "video_pre_consumed_quota": 80000,
    "video_actual_quota": 75000,
    "video_final_user_cost": 0.12,
    "video_actual_cost_usd": 0.015,
    "video_refund_or_extra_charge": -5000,
    "video_billing_phase": "settled"
  }
}

8. 与控制台日志的区别

对比项控制台用量日志GET /api/log/token
鉴权登录会话API Key
可查范围账户下多 Key仅当前 Key
渠道/上游信息管理员可见不返回
适用场景人工排查程序集成、审计

9. 相关文档