AnyRouter · Universal AI Model Router

OpenAI API 如何计算 Token 费用?

更新于 2026-11-04 · anyrouter.cfd

简答:OpenAI API 的 Token 费用不按字数直接扣费,而是按模型价格页规定的计费类别与服务端返回的实际 usage 分项计算。最稳妥的步骤是:先读取响应中的 Token 用量,再分别乘以当前模型对应的输入、输出或缓存单价,最后除以 1,000,000。所有动态单价请以实时价格页为准。

定义:Token 是模型处理文本和多模态数据时的计量单位,OpenAI API 通常按输入 Token、输出 Token 及特定模型的缓存输入分别计费。

适用范围与 30 秒速查公式

本文面向直接调用 OpenAI API 或使用 OpenAI 兼容接口的开发者。重点讲解文本生成与多模态请求的 Token 成本核算方法。如果请求经过第三方网关或中转服务,服务商可能采用独立的余额单位或倍率规则,具体以其官方说明为准。

通用计费速查卡(以当前模型价格页为准):

截至 2026-11-04,OpenAI 官方帮助文档及价格页持续明确区分输入、输出、缓存输入等用量维度 查看 Token 与 usage 字段说明。

最短主流程:四步核算一次 API 请求成本

  1. 记录实际请求参数:保存模型名称(model 字段)、端点类型(如 Chat Completions)及是否使用了工具、图像或推理参数。
  2. 读取响应 usage:不要用前端输入的中文字符数或可见回答长度代替服务端返回值。
  3. 核对当前模型价格页:前往官方或服务商价格页,确认该模型每百万 Token 的 Input 单价、Output 单价及 Cached input 单价 查看当前 OpenAI API 价格。
  4. 分项代入计算:将各字段 Token 数带入前述公式,得出美元或相应额度成本。
检查项推荐记录的字段需要避免的误区
模型响应中的 model 字段误以为所有模型价格完全相同
输入用量prompt_tokens 或 input_tokens误把本地文本字数当成 API 计费 Token 数
输出用量completion_tokens 或 output_tokens误把可见答案行数当成输出用量
总计total_tokens切勿将 total_tokens 再次与输入输出相加重复计费

Chat Completions 与 Responses 响应字段对照

不同端点返回的 usage 结构可能存在差异,开发者在解析时应注意字段映射:

端点类型常见输入字段常见输出字段备注说明
Chat Completionsprompt_tokenscompletion_tokens部分模型会返回 prompt_tokens_details 或 reasoning_tokens。
Responses APIinput_tokensoutput_tokens可在 input_tokens_details 中查看缓存命中情况。

正确做法是根据实际响应体中的键名提取对应的 Token 数量,并参考对应端点的官方参考文档 了解更多用量字段。

推理 Token 与缓存输入的计费注意事项

在计算包含推理模型或提示词缓存(Prompt Caching)的请求时,需注意以下几点:

安全边界与常见排查建议

常见问题

OpenAI API 是按中文字符数收费吗?

不是。API 统一按 Token 计量。中文字符、英文单词与 Token 之间没有固定的简单换算比例,最终费用必须以服务端响应返回的 usage 字段为准。

total_tokens 可以直接用来计算总价吗?

不可以。因为输入单价(Input)与输出单价(Output)通常不一致,必须将输入 Token 与输出 Token 拆开,各自乘以对应的单价后再相加。

推理 Token 需要单独付费吗?

需要。推理模型产生的内部推理 Token 会计入输出 Token 总数,并按照模型的输出 Token 费率进行计费。

相关阅读

参考资料

  1. 了解并计算 Token | OpenAI Help Center
  2. Pricing | OpenAI API
  3. Prompt caching | OpenAI API