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

# 用户日志与用量统计

> 通过 API 获取使用记录（Usage Logs）、仪表盘资讯与帐单资讯，由 /api/log/self 与 /api/log/self/stat 两个接口提供。

## 简介

MixRoute 控制台提供两个接口，用于查询当前账号下的用量与计费信息，覆盖以下需求：

* 查看 Usage Logs（使用记录）
* 查看 Dashboard 资讯（模型分析、请求次数、Token 统计等）
* 查看帐单资讯（某个 API Key 使用了哪些模型、对应输入/输出 Token、各模型用量占比等）
* 按模型维度了解实际消费情况

## 认证

所有请求需要在请求头携带两个字段：

| 请求头             | 说明                                    |
| --------------- | ------------------------------------- |
| `Authorization` | `Bearer <you-api-key>`，你的系统访问 API Key |
| `New-Api-User`  | `<you-user-id>`，当前账号的用户 ID            |

## 获取用户日志 GET `/api/log/self`

返回当前账号的使用日志，日志条目按时间倒序排列，可通过分页参数控制输出内容。

### 请求参数

<ParamField query="p" type="integer">
  页码，从 1 开始。
</ParamField>

<ParamField query="page_size" type="integer">
  每页返回的日志条目数。
</ParamField>

例如 `/api/log/self?p=1&page_size=20` 表示获取第一页、每页 20 条日志。

### 请求示例

```bash cURL theme={null}
curl --request GET \
  --url 'https://console.mixroute.ai/api/log/self?p=1&page_size=20' \
  --header 'authorization: Bearer <you-api-key>' \
  --header 'new-api-user: <you-user-id>'
```

### 响应示例

```json Response theme={null}
{
  "data": {
    "page": 1,
    "page_size": 20,
    "total": 2821,
    "items": [
      {
        "id": 1,
        "user_id": 81,
        "created_at": 1787215542,
        "type": 2,
        "content": "",
        "username": "<you-user-name>",
        "token_name": "<your-token-name>",
        "model_name": "deepseek-v4-flash-0731",
        "quota": 768,
        "prompt_tokens": 23144,
        "completion_tokens": 2948,
        "use_time": 38,
        "is_stream": true,
        "channel": 239,
        "channel_name": "",
        "token_id": 202,
        "group": "default",
        "ip": "",
        "request_id": "202608200845041208627278268d9d63W55TNWu",
        "other": "{\"billing_source\":\"wallet\",\"cache_ratio\":0.02,\"cache_tokens\":18432,\"completion_ratio\":2,\"frt\":1245,\"group_ratio\":1,\"model_price\":-1,\"model_ratio\":0.07,\"reasoning_effort\":\"max\",\"request_conversion\":[\"OpenAI Responses\"],\"request_path\":\"/v1/responses\",\"user_group_ratio\":-1}"
      }
    ]
  },
  "message": "",
  "success": true
}
```

### 日志字段说明

| 字段                               | 类型      | 说明                                              |
| -------------------------------- | ------- | ----------------------------------------------- |
| `data.page`                      | integer | 当前页码                                            |
| `data.page_size`                 | integer | 每页条目数                                           |
| `data.total`                     | integer | 日志总条数                                           |
| `data.items[]`                   | array   | 日志条目列表                                          |
| `data.items[].id`                | integer | 日志 ID                                           |
| `data.items[].user_id`           | integer | 用户 ID                                           |
| `data.items[].created_at`        | integer | 创建时间（Unix 时间戳，秒）                                |
| `data.items[].type`              | integer | 记录类型                                            |
| `data.items[].content`           | string  | 备注或错误信息，通常为空                                    |
| `data.items[].username`          | string  | 用户名                                             |
| `data.items[].token_name`        | string  | 使用的 API Key 名称                                  |
| `data.items[].model_name`        | string  | 模型名称                                            |
| `data.items[].quota`             | integer | 本次消费的 quota（**1 USD = 500,000 quota（5 × 10⁵）**） |
| `data.items[].prompt_tokens`     | integer | 输入 token 数                                      |
| `data.items[].completion_tokens` | integer | 输出 token 数                                      |
| `data.items[].use_time`          | integer | 请求耗时（秒）                                         |
| `data.items[].is_stream`         | boolean | 是否流式请求                                          |
| `data.items[].channel`           | integer | 渠道 ID                                           |
| `data.items[].channel_name`      | string  | 渠道名称，可能为空                                       |
| `data.items[].token_id`          | integer | API Key ID                                      |
| `data.items[].group`             | string  | 分组名称                                            |
| `data.items[].ip`                | string  | 请求 IP                                           |
| `data.items[].request_id`        | string  | 请求 ID                                           |
| `data.items[].other`             | string  | 计费元数据 JSON 字符串，见下方说明                            |

`data.items[].other` 为 JSON 字符串，主要包含以下计费与请求信息：

| 字段                   | 说明                          |
| -------------------- | --------------------------- |
| `billing_source`     | 计费来源，如 `wallet`             |
| `model_price`        | 模型单价，未指定时为 `-1`             |
| `model_ratio`        | 模型倍率                        |
| `cache_ratio`        | 缓存倍率                        |
| `cache_tokens`       | 缓存 token 数                  |
| `completion_ratio`   | 输出倍率                        |
| `group_ratio`        | 分组倍率                        |
| `user_group_ratio`   | 用户分组倍率                      |
| `reasoning_effort`   | 推理强度配置                      |
| `request_conversion` | 请求转换方式，如 `OpenAI Responses` |
| `request_path`       | 实际请求路径，如 `/v1/responses`    |
| `frt`                | 首 token 响应时间（毫秒）            |

## 获取用户总消费统计 GET `/api/log/self/stat`

返回当前账号的累计消费与限流状态数据，无请求参数。

### 请求示例

```bash cURL theme={null}
curl --request GET \
  --url 'https://console.mixroute.ai/api/log/self/stat' \
  --header 'authorization: Bearer <you-api-key>' \
  --header 'new-api-user: <you-user-id>'
```

### 响应示例

```json Response theme={null}
{
  "data": {
    "quota": 32892251,
    "rpm": 0,
    "tpm": 0
  },
  "message": "",
  "success": true
}
```

### 字段说明

| 字段           | 类型      | 说明              |
| ------------ | ------- | --------------- |
| `data.quota` | integer | 累计消费 quota      |
| `data.rpm`   | integer | 每分钟请求数限制状态      |
| `data.tpm`   | integer | 每分钟 token 数限制状态 |
| `message`    | string  | 错误消息，成功时为空      |
| `success`    | boolean | 是否请求成功          |
