> ## Documentation Index
> Fetch the complete documentation index at: https://docs.laozhang.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 老张API 日志查询 API：用 /api/log/self 导出调用记录与扣费

> 用 AccessToken 调用 /api/log/self，按时间、模型和令牌筛选账户的消费与充值记录，翻页导出后做对账或用量统计。

日志查询 API 返回的是控制台「日志」页上的同一批记录：每次调用的模型、令牌、用量和扣费额度。适合每日对账、按令牌统计用量，或把扣费明细导入自己的报表。

| 项目 | 内容 |
| - | - |
| 接口 | `GET https://api.laozhang.ai/api/log/self` |
| 认证 | 系统令牌 AccessToken，获取方法见[余额查询 API](/api-capabilities/balance-query#获取-accesstoken) |
| 分页 | 每页固定 10 条，`p` 从 0 开始 |
| 额度换算 | 50 万额度 = 1 USD |

<Warning>
  **令牌无效时接口仍返回 HTTP 200。**

  * 响应是 `{"success": false, "message": "...access token is invalid."}`，`data` 为空。
  * 脚本要检查 `success`，不能只看状态码，否则会把空结果当成"没有调用"。
</Warning>

## 查询参数

| 参数 | 说明 |
| - | - |
| `p` | 页码，从 `0` 开始 |
| `type` | 日志类型：`2` 消费，`1` 充值；不传则返回全部类型 |
| `model_name` | 只看某个模型，例如 `gpt-5.4-mini` |
| `token_name` | 只看某个 API Key，填令牌名称 |
| `start_timestamp` | 开始时间，Unix 秒 |
| `end_timestamp` | 结束时间，Unix 秒 |

每页条数不能修改，传 `page_size` 或 `size` 不会生效。响应里没有总条数，一直翻页，直到某页少于 10 条为止。

## 发送请求

先把 AccessToken 设为环境变量：

```bash theme={null}
export LAOZHANG_ACCESS_TOKEN="替换为你的 AccessToken"
```

查询最近一小时 `gpt-5.4-mini` 的消费记录：

```bash theme={null}
END=$(date +%s)
START=$((END - 3600))

curl --compressed -s -G "https://api.laozhang.ai/api/log/self" \
  -H "Authorization: ${LAOZHANG_ACCESS_TOKEN}" \
  --data-urlencode "p=0" \
  --data-urlencode "type=2" \
  --data-urlencode "model_name=gpt-5.4-mini" \
  --data-urlencode "start_timestamp=${START}" \
  --data-urlencode "end_timestamp=${END}"
```

`Authorization` 直接填 AccessToken，加 `Bearer ` 前缀也可以。

## 响应字段

```json theme={null}
{
  "success": true,
  "message": "",
  "data": [
    {
      "created_at": 1791992057,
      "type": 2,
      "model_name": "gpt-5.4-mini",
      "token_name": "prod-backend",
      "quota": 1531,
      "prompt_tokens": 1348,
      "completion_tokens": 456,
      "is_stream": false,
      "request_id": "20261014153321000000000000000000example",
      "other": "{\"model_ratio\":0.375,\"completion_ratio\":6,...}"
    }
  ]
}
```

| 字段 | 说明 |
| - | - |
| `created_at` | 记录时间，Unix 秒 |
| `type` | `2` 消费，`1` 充值 |
| `model_name` | 调用的模型 ID |
| `token_name` | 发起调用的 API Key 名称 |
| `quota` | 本次扣费额度，除以 500000 得到美元 |
| `prompt_tokens`、`completion_tokens` | 输入、输出 token 数；按次计费的模型可能为 0 |
| `is_stream` | 是否流式请求 |
| `request_id` | 请求 ID，联系支持排查时提供 |
| `other` | 计费明细，是 JSON **字符串**，需要再解析一次 |

`other` 里有倍率、缓存命中和工具调用费用。例如使用[联网搜索](/api-capabilities/web-search)时，`web_search_billing` 会写明搜索次数和对应额度。只用到总费用时读 `quota` 即可。响应里还可能有其他字段，解析时忽略不认识的字段。

## 导出一天的消费并汇总

下面的脚本翻完所有页，按模型汇总扣费。需要 Python 3.9 或更高版本和 `requests`（`python -m pip install requests`）。

```python theme={null}
import os
import time
from collections import defaultdict

import requests

TOKEN = os.environ["LAOZHANG_ACCESS_TOKEN"]
URL = "https://api.laozhang.ai/api/log/self"
QUOTA_PER_USD = 500_000

end = int(time.time())
start = end - 24 * 3600
totals = defaultdict(int)
page = 0

while True:
    response = requests.get(
        URL,
        headers={"Authorization": TOKEN},
        params={"p": page, "type": 2, "start_timestamp": start, "end_timestamp": end},
        timeout=60,
    )
    response.raise_for_status()
    payload = response.json()
    if not payload.get("success"):
        raise RuntimeError(payload.get("message"))

    rows = payload["data"] or []
    for row in rows:
        totals[row["model_name"]] += row["quota"]
    if len(rows) < 10:
        break
    page += 1
    time.sleep(0.2)

for model, quota in sorted(totals.items(), key=lambda item: -item[1]):
    print(f"{model}: ${quota / QUOTA_PER_USD:.4f}")
```

调用量大的账户一天可能有上千页。可以缩短时间窗口分段拉取，或加上 `model_name`、`token_name` 缩小范围。

## 错误处理

| 现象 | 原因与处理 |
| - | - |
| HTTP 401，`AUTH_REQUIRED` | 没有带 `Authorization`，检查请求头 |
| HTTP 200，`success: false`，提示 access token is invalid | AccessToken 错误或已被重新生成，到控制台重新获取 |
| 返回空数组 | 时间范围内没有匹配记录；确认时间戳是秒而不是毫秒 |
| 终端乱码或 `jq` 报错 | 响应经过 gzip 压缩，cURL 加上 `--compressed` |

## 相关文档

* 获取 AccessToken 与查询余额：[余额查询 API](/api-capabilities/balance-query)
* 用程序创建、禁用和删除 API Key：[令牌管理 API](/api-capabilities/token-management)
* 在控制台读懂每条日志的扣费：[如何查看和使用调用日志？](/faq/call-logs)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.