OpenAI API 如何计算 Token 费用?
简答:OpenAI API 的 Token 费用不按字数直接扣费,而是按模型价格页规定的计费类别与服务端返回的实际 usage 分项计算。最稳妥的步骤是:先读取响应中的 Token 用量,再分别乘以当前模型对应的输入、输出或缓存单价,最后除以 1,000,000。所有动态单价请以实时价格页为准。
定义:Token 是模型处理文本和多模态数据时的计量单位,OpenAI API 通常按输入 Token、输出 Token 及特定模型的缓存输入分别计费。
适用范围与 30 秒速查公式
本文面向直接调用 OpenAI API 或使用 OpenAI 兼容接口的开发者。重点讲解文本生成与多模态请求的 Token 成本核算方法。如果请求经过第三方网关或中转服务,服务商可能采用独立的余额单位或倍率规则,具体以其官方说明为准。
通用计费速查卡(以当前模型价格页为准):- 输入费用 =
普通输入 Token 数 × 输入单价 ÷ 1,000,000 - 缓存输入费用 =
缓存命中 Token 数 × 缓存输入单价 ÷ 1,000,000 - 输出费用 =
输出 Token 数(含推理 Token) × 输出单价 ÷ 1,000,000 - 总费用 =
输入费用 + 缓存输入费用 + 输出费用
截至 2026-11-04,OpenAI 官方帮助文档及价格页持续明确区分输入、输出、缓存输入等用量维度 查看 Token 与 usage 字段说明。
最短主流程:四步核算一次 API 请求成本
- 记录实际请求参数:保存模型名称(model 字段)、端点类型(如 Chat Completions)及是否使用了工具、图像或推理参数。
- 读取响应 usage:不要用前端输入的中文字符数或可见回答长度代替服务端返回值。
- 核对当前模型价格页:前往官方或服务商价格页,确认该模型每百万 Token 的 Input 单价、Output 单价及 Cached input 单价 查看当前 OpenAI API 价格。
- 分项代入计算:将各字段 Token 数带入前述公式,得出美元或相应额度成本。
| 检查项 | 推荐记录的字段 | 需要避免的误区 |
|---|---|---|
| 模型 | 响应中的 model 字段 | 误以为所有模型价格完全相同 |
| 输入用量 | prompt_tokens 或 input_tokens | 误把本地文本字数当成 API 计费 Token 数 |
| 输出用量 | completion_tokens 或 output_tokens | 误把可见答案行数当成输出用量 |
| 总计 | total_tokens | 切勿将 total_tokens 再次与输入输出相加重复计费 |
Chat Completions 与 Responses 响应字段对照
不同端点返回的 usage 结构可能存在差异,开发者在解析时应注意字段映射:
| 端点类型 | 常见输入字段 | 常见输出字段 | 备注说明 |
|---|---|---|---|
| Chat Completions | prompt_tokens | completion_tokens | 部分模型会返回 prompt_tokens_details 或 reasoning_tokens。 |
| Responses API | input_tokens | output_tokens | 可在 input_tokens_details 中查看缓存命中情况。 |
正确做法是根据实际响应体中的键名提取对应的 Token 数量,并参考对应端点的官方参考文档 了解更多用量字段。
推理 Token 与缓存输入的计费注意事项
在计算包含推理模型或提示词缓存(Prompt Caching)的请求时,需注意以下几点:
- 推理 Token:部分推理模型在生成正式答案前会产生内部推理过程。官方说明显示,推理 Token 会计入输出用量,并按输出 Token 费率计费,不可忽略。
- 缓存输入:若命中了 Prompt Caching,响应中通常会返回
cached_tokens。这部分 Token 通常享受更优惠的缓存输入单价(具体视模型而定),其余未命中的输入则按普通输入单价计算 查看 Prompt caching 机制。 - 避免盲目套用未证实字段:部分网关或特定测试版本可能返回扩展的缓存写入字段,但在 OpenAI 官方标准 API 响应中,应以实际抓取到的
usage结构为准,切勿强制扣除未明确定义的费用。
安全边界与常见排查建议
- 密钥安全:切勿将带有敏感业务数据的原始提示词或生产环境 API Key 提交给未授权的第三方 Token 统计工具。
- 日志留存:建议在服务端日志中完整记录每次请求的
model、usage及核验时间,便于与月底账单或网关扣款记录进行核对。 - 兼容服务说明:若使用第三方兼容网关(如 AnyRouter 等),由于其可能存在独立的额度单位或倍率换算,实际扣款金额应以该服务商的后台账单与官方规则为准,本站不提供非官方的扣费承诺。
常见问题
OpenAI API 是按中文字符数收费吗?
不是。API 统一按 Token 计量。中文字符、英文单词与 Token 之间没有固定的简单换算比例,最终费用必须以服务端响应返回的 usage 字段为准。
total_tokens 可以直接用来计算总价吗?
不可以。因为输入单价(Input)与输出单价(Output)通常不一致,必须将输入 Token 与输出 Token 拆开,各自乘以对应的单价后再相加。
推理 Token 需要单独付费吗?
需要。推理模型产生的内部推理 Token 会计入输出 Token 总数,并按照模型的输出 Token 费率进行计费。