Standard Compute

OpenAI API Token 是怎么计算和收费的?

更新于 2026-10-30 · standardcompute.cyou

简答:OpenAI API 通常按输入 Token、缓存输入 Token 和输出 Token 分别计费,实际费用等于各类 Token 用量乘以对应模型单价后相加。调用完成后,先看响应里的 usage 字段,再到当前官方价格页核对每百万 Token 的价格;ChatGPT 订阅费用与 API 用量费用是两套独立账单。

定义:Token 是模型处理文本、图片、文件、工具参数及消息结构时使用的基本计量单位,API 费用通常按不同类别的 Token 数量和所选模型单价计算。

先看结论:一次 API 请求到底怎么收费

最常用的计算方式是:

总费用 = 输入 Token ÷ 1,000,000 × 输入单价 + 缓存输入 Token ÷ 1,000,000 × 缓存输入单价 + 输出 Token ÷ 1,000,000 × 输出单价

其中,缓存输入 Token 已包含在输入 Token 总量中,但如果官方价格表为缓存输入设置了单独价格,应把缓存部分拆出来计算,不能再按普通输入价格重复计算。推理 Token 通常属于输出用量的一部分,即使没有出现在最终可见文本中,也可能影响计费。OpenAI 官方 Token 说明

用量类别含义计费时怎么处理
输入 Token发送给模型的提示词、历史消息及其他输入内容乘以模型的输入单价
缓存输入 Token被提示词缓存重复使用的输入部分按价格表中的缓存输入单价计算
输出 Token模型生成的结果及部分不可见生成内容乘以模型的输出单价
推理 Token推理模型生成可见回答前使用的内部 Token通常计入输出用量

截至 2026年10月30日,官方价格页按模型和服务类型展示每百万 Token 的输入、输出及缓存输入价格;价格会调整,实际计算应以请求时的价格页为准。OpenAI API 官方价格表

Token 不等于调用次数,也不等于字符数

一次 API 调用可能只消耗很少 Token,也可能因为携带了长对话、工具定义、文件或图片而消耗大量 Token。因此,“调用 100 次”本身无法直接推出费用,必须同时知道每次请求和响应的 Token 用量。

Token 也不是固定的“一个汉字对应一个 Token”。同一段内容的 Token 数量会受到模型、编码方式、语言、空格、大小写和上下文影响。OpenAI 官方仅把“英文约 4 个字符对应 1 个 Token”等内容作为粗略估算,不能把该比例直接套用于中文、代码或多模态请求。官方 Token 计算说明

完整输入不仅包括你看到的文字,还可能包括消息角色和边界、工具、函数 Schema、图片、文件以及历史对话。使用 Responses API 时,官方提供输入 Token 计数接口,可以按接近实际请求的格式计算输入规模。OpenAI 官方 Token 计数指南

从 API 响应中查看实际用量

请求完成后,优先读取响应中的 usage 对象,而不是根据回复长度猜测。Chat Completions 通常查看 prompt_tokens、completion_tokens 和 total_tokens;Responses 通常查看 input_tokens、output_tokens 和 total_tokens。OpenAI 官方用量字段说明

  1. 记录实际使用的模型 ID。
  2. 读取响应中的 usage 字段,并分别记录输入、缓存输入和输出用量。
  3. 打开官方价格页,找到同一模型、同一服务档位的每百万 Token 单价。
  4. 将各类用量除以 1,000,000,再分别乘以对应单价。
  5. 如果请求使用了搜索、文件检索、容器或代码执行等功能,再检查是否有独立的工具调用、存储或运行时费用。

官方说明指出,Responses API 和 Chat Completions API 本身不单独收取接口费,Token 通常按所选模型的输入、输出价格计算;但部分内置工具或存储服务可能有独立计费单位。官方价格与工具费用说明

费用计算示例:中文、英文和缓存输入

以下数字是为了展示公式的假设值,不代表某一段中文或英文必然会产生这些 Token,也不代表未来价格不变。

中文请求示例

假设一次中文总结请求经实际 usage 统计得到 2,000 个输入 Token和 800 个输出 Token。若所选模型的输入单价为每百万 Token 1 美元、输出单价为每百万 Token 5 美元,则:

2,000 ÷ 1,000,000 × 1 + 800 ÷ 1,000,000 × 5 = 0.006 美元

这里的 2,000 和 800 必须来自实际响应或官方计数工具,不能仅凭中文字符数量推断。

英文请求示例

假设一次英文代码解释请求有 8,000 个输入 Token和 2,000 个输出 Token,仍使用输入每百万 Token 1 美元、输出每百万 Token 5 美元的假设价格:

8,000 ÷ 1,000,000 × 1 + 2,000 ÷ 1,000,000 × 5 = 0.018 美元

英文可以用官方给出的字符比例做早期粗估,但正式预算仍应使用目标模型的 Tokenizer、tiktoken 或输入 Token 计数 API。

缓存输入示例

假设一次请求有 100,000 个输入 Token,其中 60,000 个属于缓存输入,40,000 个属于普通输入,另有 20,000 个输出 Token。以官方价格页当前展示的 gpt-5.3-codex Standard Fast 价格为例,普通输入为每百万 Token 1.75 美元、缓存输入为 0.175 美元、输出为 14 美元,则演算为:

40,000 ÷ 1,000,000 × 1.75 + 60,000 ÷ 1,000,000 × 0.175 + 20,000 ÷ 1,000,000 × 14 = 0.3605 美元

该例只说明计算方法。模型、服务档位、区域处理方式和价格页变化都可能改变结果,使用前应重新核对官方价格。官方当前价格表

调用前如何估算 Token 和月度预算

建议采用“单次测量—按场景分组—月度汇总”的方法,而不是只设置一个模糊预算。

  1. 先测输入:纯文本可以用官方 Tokenizer 或与目标模型匹配的 tiktoken 估算。
  2. 再测完整请求:如果有历史消息、工具、Schema、图片或文件,使用 Responses API 的输入 Token 计数接口,因为本地纯文本分词无法完整覆盖这些内容。
  3. 记录输出:连续测试多个具有代表性的任务,记录实际 output tokens;推理模型还要为不可见推理用量预留空间。
  4. 按场景分类:分别统计短问答、长上下文、代码生成、批处理和工具调用,避免用一次短请求代表所有场景。
  5. 计算月度预算:月度费用 ≈ 每日请求数 × 平均每日输入输出费用 × 使用天数,再加上适用的工具、文件、存储或运行时费用。

如果请求经常带入相同的系统提示词或参考资料,可以关注缓存输入用量;但是否产生缓存、缓存范围和适用价格应以当前模型文档及实际 usage 为准,不能仅凭请求结构假定一定享受缓存价格。官方输入计数指南

容易漏算的费用和限制

另外,ChatGPT 网页或应用订阅不等于 API 额度。OpenAI 官方说明 ChatGPT 与 API 使用独立计费,API 需要在对应 API 账户中单独设置付款或额度。ChatGPT 与 API 账单说明

一份可执行的 Token 费用自查清单

  1. 确认请求实际使用的模型 ID,而不是只看客户端里显示的简称。
  2. 确认价格表中的输入、缓存输入和输出单价是否属于同一模型和服务档位。
  3. 从响应中保存 usage 字段,必要时按请求 ID、模型和日期汇总。
  4. 检查是否发送了过长的历史消息、重复系统提示词、工具 Schema、图片或文件。
  5. 对 Responses 请求使用输入 Token 计数 API 做发送前估算。
  6. 把 Token 费用与工具调用、文件存储、容器运行时等费用分开列账。
  7. 设置项目级用量或支出监控;发现余额、权限或未知账单异常时,先暂停自动重试并核对账单。

如果你只记住一句话:先从 usage 读真实 Token,再按官方价格表逐项相乘,不要用调用次数、字符数或可见回复长度代替账单数据。

常见问题

OpenAI API 是按请求次数收费吗?

通常不是单纯按请求次数收费,而是根据所选模型处理的输入、缓存输入和输出 Token 计费。请求次数可能影响限流和运营统计,但不能单独用来计算费用。

一个中文汉字等于一个 Token 吗?

不一定。Token 数量会受到模型、编码、上下文、标点和空格影响。中文请求应使用目标模型的 Tokenizer、tiktoken 或官方输入 Token 计数 API,而不是按汉字数量直接换算。

为什么 API 返回的输出 Token 比我看到的文字更多?

输出用量可能包含不可见的格式化内容、工具调用结构或推理 Token。官方文档明确说明,报告的 output_tokens 或 completion_tokens 不一定只对应最终可见文本。

怎么知道一次请求实际花了多少钱?

先从响应 usage 读取输入和输出 Token,再根据实际模型和官方价格表计算。如果包含文件、搜索、容器或其他工具,还要单独核对附加费用。

ChatGPT Plus 或其他订阅是否包含 API 用量?

不能默认认为包含。OpenAI 官方说明 ChatGPT 与 API 使用独立账单,API 用量需要在 API 账户中单独管理。

相关阅读

参考资料

  1. Counting tokens|OpenAI API
  2. Pricing|OpenAI API
  3. 管理 ChatGPT 和 API 平台的计费|OpenAI Help Center