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

# 请求日志与账户适用价

>  - 按请求 ID 或任务 ID 查询单笔调用的扣费 - 按时间范围分页同步每一笔消费与失败记录 - 查询当前账户对某个模型的实际适用价 

使用 API Key 查询每一笔调用的扣费明细，以及当前账户调用某个模型的实际价格。三个接口都不校验余额，余额为 0 时仍可调用。

```bash 查询单笔 theme={null}
curl 'https://api.apimart.ai/v1/logs/requests/task_01M6ZDAXTC8QXYCDM5PXPM413R' \
  --header 'Authorization: Bearer <token>'
```

```bash 同步日志 theme={null}
curl --get 'https://api.apimart.ai/v1/logs/requests' \
  --header 'Authorization: Bearer <token>' \
  --data-urlencode 'start_timestamp=1762732800' \
  --data-urlencode 'end_timestamp=1762736400' \
  --data-urlencode 'limit=1000'
```

```bash 账户适用价 theme={null}
curl --get 'https://api.apimart.ai/v1/pricing/model' \
  --header 'Authorization: Bearer <token>' \
  --data-urlencode 'model=doubao-seedance-2.0' \
  --data-urlencode 'resolution=720P' \
  --data-urlencode 'duration=5'
```

```json 查询单笔 theme={null}
{
  "object": "list",
  "request_id": "task_01M6ZDAXTC8QXYCDM5PXPM413R",
  "data": [
    {
      "id": "task_01M6ZDAXTC8QXYCDM5PXPM413R",
      "type": "consume",
      "status": "succeeded",
      "created_at": 1762740123,
      "model_name": "doubao-seedance-2.0",
      "token_name": "prod-server",
      "task_id": "task_01M6ZDAXTC8QXYCDM5PXPM413R",
      "prompt_tokens": 0,
      "completion_tokens": 0,
      "cache_tokens": 0,
      "cache_creation_tokens": 0,
      "cost_usd": 0.6,
      "cost_credits": 6
    }
  ]
}
```

```json 同步日志 theme={null}
{
  "object": "list",
  "data": [
    {
      "id": "<请求 ID>",
      "type": "consume",
      "status": "succeeded",
      "created_at": 1762732805,
      "model_name": "gpt-5.5",
      "token_name": "prod-server",
      "prompt_tokens": 1200,
      "completion_tokens": 350,
      "cache_tokens": 0,
      "cache_creation_tokens": 0,
      "latency_ms": 2310,
      "first_token_ms": 420,
      "cost_usd": 0.004125,
      "cost_credits": 0.04125
    }
  ],
  "has_more": true,
  "next_cursor": "AQAAAABpEoXlAjIwMjYxMTEw...",
  "watermark": 1762739700
}
```

```json 账户适用价 theme={null}
{
  "model": "doubao-seedance-2.0",
  "canonical_model": "doubao-seedance-2.0",
  "currency": "USD",
  "group": "vip",
  "billing_type": "per_second",
  "unit": "per_second",
  "spec": { "resolution": "720P", "duration": 5 },
  "spec_source": "request",
  "estimated": false,
  "unit_price_usd": 0.12,
  "quantity": 5,
  "total_usd": 0.6,
  "credits": { "unit_price": 1.2, "total": 6 },
  "price_source": "membership",
  "price_factors": ["membership"],
  "membership_tier": "gold"
}
```

## 认证

**Authorization** `string` *required*

使用与调用模型相同的 API Key，通过 Bearer Token 认证。访问 [API Key 管理页面](https://apimart.ai/keys) 获取密钥。

```
Authorization: Bearer YOUR_API_KEY
```

## 接口端点

```text theme={null}
GET /v1/logs/requests/{id}    按请求 ID 查询单笔
GET /v1/logs/requests         按时间范围同步日志
GET /v1/pricing/model         查询账户适用价
```

金额字段单位为美元，`cost_credits` 及 `credits` 为积分，等于美元 × 10。

***

## 按请求 ID 查询单笔

```text theme={null}
GET /v1/logs/requests/{id}
```

**id** `string` *required*

* 同步调用：响应头 `X-Oneapi-Request-Id` 的值
* 异步任务：提交接口返回的任务 ID

> [!NOTE]
>
> 日志异步写入，请求结束后通常几秒内可查到，返回 `404 log_not_found` 时请稍后重试。异步任务需用任务 ID 查询，且在任务完成或失败后才有记录。

查询范围是 API Key 所属的整个账号。返回的 `data` 为数组，同一个 ID 可能同时有消费和失败两条记录。主要字段：

| 字段 | 说明 |
| - | - |
| `id` | 请求 ID 或任务 ID |
| `type` | `consume`（消费）或 `error`（失败） |
| `created_at` | 记录时间，Unix 秒；异步任务为结算时刻 |
| `model_name` | 模型名称 |
| `token_name` | 发起调用的 API Key 名称（记录写入时的名称，可能重名）。需要按 Key 精确区分时，请在同步接口中使用 `token_id` 筛选 |
| `prompt_tokens` / `completion_tokens` | 输入 / 输出 token 数 |
| `cost_usd` | 本条记录的扣费金额（美元） |
| `cost_credits` | 扣费积分 |

`cost_usd` 是结算后的最终金额：失败记录恒为 `0`，失败退款已在写入前完成。汇总 `type` 为 `consume` 的记录即为调用产生的扣费。

***

## 同步请求日志

```text theme={null}
GET /v1/logs/requests
```

按时间范围分页拉取账号下的每一笔记录，适合定时对账。返回的每条记录字段与单笔查询相同。

**start\_timestamp** `integer` *required*

起始时间，Unix 秒级时间戳。

**end\_timestamp** `integer`

结束时间，Unix 秒级时间戳，默认为当前时间。时间范围包含两端，跨度不超过 31 天。

**type** `string` (default: all)

记录类型：`all`、`consume` 或 `error`。

**model** `string`

按模型名筛选。

**token\_id** `integer`

只返回指定 API Key 的记录。ID 可在控制台「API 密钥」列表中复制（显示在密钥名称下方）；轮换密钥后 ID 不变。

**limit** `integer` (default: 100)

每页条数，`1`–`1000`。

**cursor** `string`

翻页游标，原样传回上一页的 `next_cursor`。翻页时其他参数保持不变。

响应中 `has_more` 表示是否还有下一页，`next_cursor` 为下一页游标，`watermark` 为服务器当前时间减 300 秒。

> [!TIP]
>
> **推荐同步方式**：每轮的 `end_timestamp` 不晚于 `watermark`；下一轮从上一轮结束时间往前重叠 10 分钟开始拉取，按 `(id, type)` 去重；在一个时间窗口内翻页直到 `has_more` 为 `false`。

***

## 查询账户适用价

```text theme={null}
GET /v1/pricing/model
```

查询当前 API Key 所属账户调用某个模型的实际价格，已计入专属价、会员价、分组倍率和折扣，与调用时的扣费一致。官网价格页展示的是公开价，需要按账户估价时请使用本接口。

**model** `string` *required*

模型名称，支持别名。

**resolution** `string`

分辨率或档位，必须是该模型支持的档位。

**size** `string`

图片尺寸。

**quality** `string`

质量档位。

**duration** `integer`

时长（秒），`1`–`3600`，按秒计费的模型使用。

**n** `integer`

生成数量，`1`–`100`。

不传规格参数时按模型的默认规格报价。按秒计费的模型不传 `duration` 时只返回每秒单价。

主要响应字段：

| 字段 | 说明 |
| - | - |
| `unit` | 价格单位：`per_image`、`per_call`、`per_second`、`per_million_tokens` |
| `unit_price_usd` | 单价（美元） |
| `total_usd` | 本次规格的总价（美元） |
| `unit_prices` | 按 token 计费的模型返回，每百万 token 的单价，如 `input`、`output` |
| `estimated` | `true` 表示最终扣费取决于实际用量（如按 token 计费），报价仅供参考 |
| `price_source` | 价格来源：`membership`（会员价）、`user_override`（专属价）、`group`（分组价）、`default`（标准价） |

每把 API Key 每分钟最多查询 `60` 次。

***

## 错误处理

| HTTP 状态码 | `error.code` | 说明 |
| - | - | - |
| 400 | `invalid_request_id` / `invalid_request` 等 | 参数不合法，详见 `message` |
| 400 | `time_range_too_large` | 日志时间跨度超过 31 天 |
| 401 / 402 / 403 | — | API Key 无效、已过期或已禁用 |
| 404 | `log_not_found` | 未找到日志记录，可能尚未写入 |
| 404 | `model_not_found` / `no_valid_pricing` | 模型不存在或暂无报价 |
| 429 | — | 请求过于频繁 |
| 500 / 503 | — | 服务暂时不可用，请稍后重试 |


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