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

# 怎么看懂日志里的计费金额？

> 读懂后台日志的「消费」列：按量计费与按次计费的区别、如何用接口返回的 usage 自己算成本、日志金额为什么是折扣前的，以及失败的调用为什么不出现在日志里。

## 简短回答

后台[日志页面](https://api.apiyi.com/log)的\*\*「消费」列\*\*就是这次调用的美元金额。看懂它只需要记住四件事：

1. **按量计费**的模型（绝大部分文本模型，以及 gpt-image-2、SeeDance 2.0 系列等）在**接口响应的 `usage` 字段里返回 token 数**，成本可以自己算；
2. **按次计费**的模型接口里**不返回金额**，但单价固定，成本 = 调用次数 × 固定单价，同样好算；
3. 日志里的金额是**折扣前**的，实际成本还要除以你的充值加赠比例（例如加赠 10% 就是 ÷1.1，约 91 折）；
4. **日志只记录成功计费的调用**——报错是在接口里返回的，没有产生扣费的失败调用不会出现在日志里，也不会计费。

<Info>
  **一句话版**：按次计费 = 固定成本；按量计费 = 按 tokens 计算，接口里有返回。
</Info>

## 日志各列怎么读

| 列  | 含义                 | 注意                          |
| -- | ------------------ | --------------------------- |
| 时间 | 该次调用的结算时间戳         | 提工单时报这个时间点最好定位              |
| 模型 | 实际计费所用的模型名         | 带分组后缀的模型按对应分组倍率计费           |
| 信息 | 流式/非流式、首字节耗时等      | 排查慢响应时看首字节耗时                |
| 提示 | 输入 tokens          | 多模态的图片、音频会折算成 tokens 计入     |
| 补全 | 输出 tokens          | 思考（reasoning）tokens 通常计入这一列 |
| 消费 | 本次调用金额（美元，**折扣前**） | 已含模型分组倍率，未含充值加赠的等效折扣        |

<Note>
  **按次计费的模型**在「提示 / 补全」列也可能显示 token 数，但**金额不是由这两列推导出来的**——判断方法很简单：同参数多次调用金额恒定、且是 0.030000 这种整齐数字的，基本是按次计费。
</Note>

## 两种计费方式

<CardGroup cols={2}>
  <Card title="按量计费（按 tokens）" icon="gauge">
    接口响应的 `usage` 字段直接返回 token 数，成本 = 输入 tokens × 输入单价 + 输出 tokens × 输出单价。

    **覆盖范围**：绝大部分文本模型，以及 **gpt-image-2**、**SeeDance 2.0 系列**等按 token 计价的图像 / 视频模型。
  </Card>

  <Card title="按次计费（固定单价）" icon="hash">
    接口里**不返回金额**，但每次调用价格确定，成本 = 次数 × 固定单价，预算最好估。

    **覆盖范围**：多数按张 / 按秒定价的图像、视频模型。单价在后台「模型价格」页面查询。
  </Card>
</CardGroup>

## 接口能直接返回花费金额吗

**不能返回金额，但成本完全可算**：

* **按量计费**：用响应里的 `usage` 自己乘单价——这是官方口径的 token 数，比任何估算都准；
* **按次计费**：单价固定，直接用次数乘即可。

之所以不在响应里塞金额，是因为同一次调用的最终成本还取决于**分组倍率**和**你账户的充值加赠比例**，把一个"半成品金额"写进响应反而容易误导对账。

### 用 usage 自己算

按量计费模型的响应里会带类似结构：

```json theme={null}
{
  "usage": {
    "prompt_tokens": 905,
    "completion_tokens": 1629,
    "total_tokens": 2534,
    "prompt_tokens_details": {
      "cached_tokens": 512
    }
  }
}
```

对应的成本公式：

```text theme={null}
成本 = (未命中缓存的输入 tokens × 输入单价)
     + (命中缓存的输入 tokens × 缓存命中价)
     + (输出 tokens × 输出单价)
```

<Tip>
  命中缓存的那部分输入按**缓存命中价**计费（通常是输入价的 0.1 倍左右），所以长上下文场景下日志金额可能远低于按 `prompt_tokens` 全价估算的结果。详见[缓存计费说明](/faq/cache-billing)。
</Tip>

<Card title="gpt-image-2 的 token 查看方法" icon="image" href="/api-capabilities/gpt-image-2/overview">
  图像模型的 token 构成（输入图片、输出图片分别折算多少）在模型总览页的定价章节有实测数据
</Card>

## 为什么日志金额是「折扣前」的

日志记录的是**按模型价格算出的原始金额**。你的实际成本还要再打一次折——因为充值时拿到了加赠额度：

```text theme={null}
实际成本 = 日志金额 ÷ (1 + 加赠比例)
```

举个例子：某次调用日志显示 \$0.011，你的充值加赠是 10%，那么实际成本是 `0.011 ÷ 1.1 = 0.01`，相当于打了 91 折。

| 充值加赠比例      | 换算     | 等效折扣       |
| ----------- | ------ | ---------- |
| 10%         | ÷ 1.1  | 约 91 折     |
| 12%         | ÷ 1.12 | 约 89 折     |
| 15%         | ÷ 1.15 | 约 87 折     |
| **20%（上限）** | ÷ 1.2  | **约 83 折** |

<Card title="查看充值加赠阶梯" icon="gift" href="/faq/recharge-promotions">
  各档加赠比例、首充加赠与发放规则
</Card>

<Note>
  **分组折扣不用再算一遍**：模型分组的倍率在计费时已经生效，日志里的金额就是含倍率的结果。需要另外折算的只有充值加赠这一层。倍率概念见[模型倍率说明](/faq/model-multiplier)。
</Note>

## 失败的调用会计费吗

**不会，而且不会出现在消费日志里。** 这是理解日志的关键一点：

<Warning>
  **报错是在接口里返回的，后台日志是记录成功计费用的。** 所以"日志里没有这条记录"通常等价于"这次调用没有扣费"。
</Warning>

典型例子：调用 **gpt-image-2** 时如果返回

```text theme={null}
400 Your request was rejected by the safety system
```

这类请求会被**直接返回、不做重试**，因此后台不会产生消费记录，也不计费。同理，VEO、Sora 2 等视频模型返回 `PUBLIC_` 前缀的错误时，属于上游官方内容审核拦截，同样不计费，调整提示词后可直接重试。

<Tip>
  **反过来也成立，这在排查问题时非常有用**：如果日志里**有**这条计费记录，说明请求确实到达了上游并产生了消耗；如果**没有**，那问题多半发生在到达上游之前（网络、鉴权、参数校验等）。「有没有计费记录」往往是定位断连类问题最有力的判据。
</Tip>

<Note>
  **预扣额度 ≠ 计费**：请求执行前系统会先冻结一笔预估额度，请求失败会释放，最终按实际消耗结算。看到余额短暂减少又恢复属于正常现象，详见[预扣费机制](/faq/pre-deduction-quota)。
</Note>

## 常见问题

<AccordionGroup>
  <Accordion title="同一个模型，两次调用的金额差很多，正常吗？">
    正常。按量计费下金额随用量浮动，常见原因有：

    * **输入长度不同**：长上下文、多轮历史、图片和音频都会显著推高输入 tokens
    * **思考 tokens**：开启推理的模型会产生额外的输出 tokens，计入「补全」列
    * **缓存命中差异**：命中缓存的输入按更低的缓存价计费，同样的 prompt 第二次可能便宜很多
    * **图像/视频参数**：分辨率、时长、张数直接决定 token 数或计费次数
  </Accordion>

  <Accordion title="日志里的 token 数和我自己数的对不上？">
    以**接口返回的 `usage`** 和日志为准，两者同源。自己统计对不上通常是因为：多模态内容（图片、音频）会按官方规则折算成 tokens；系统提示词、工具定义（tools schema）也计入输入；思考 tokens 计入输出但不一定出现在可见文本里。
  </Accordion>

  <Accordion title="按次计费的模型在哪里查单价？">
    登录后台在「模型价格」页面查询，或查看站内的[模型价格总览](/pricing)。按次计费模型的价格是确定值，乘调用次数即为成本。
  </Accordion>

  <Accordion title="调用失败了但好像被扣了费，怎么办？">
    先在日志里按时间点核对是否真的产生了消费记录。如果确认存在异常扣费，联系客服并提供**日志中的时间戳和模型名**即可核查处理，我方问题导致的损失会补发额度，详见 [SLA 保障](/faq/sla-guarantee)。
  </Accordion>

  <Accordion title="日志里能看到我发送的内容吗？">
    看不到。出于隐私保护和存储成本考虑，日志只保留计费所需的基础信息（时间、模型、token 计数、金额），**不记录具体的输入输出内容**。详见[如何查看调用记录](/faq/call-logs)。
  </Accordion>
</AccordionGroup>

## 相关文档

* [如何查看我的调用记录？](/faq/call-logs)
* [API 调用的预扣费机制是什么？](/faq/pre-deduction-quota)
* [API易支持缓存计费吗？](/faq/cache-billing)
* [模型倍率是什么意思？](/faq/model-multiplier)
* [网站有什么充值活动吗？](/faq/recharge-promotions)
* [令牌的计费模式说明](/faq/token-billing-modes)
