OpenAI API 如何查看用量?
简答:查看 OpenAI API 用量,最实用的是分三层处理:先在 Usage Dashboard 查看组织或项目的周期用量,再读取单次 API 响应中的 usage 字段,最后用 Usage API 或 Costs API 做程序化统计。Dashboard 数据按 UTC 显示,并且需要组织所有者或具备用量查看权限的成员访问;如果页面没有数据,优先核对组织、项目、日期范围和权限。
定义:OpenAI API 用量是指 API 请求产生的请求次数、输入与输出 Token,以及可在 Dashboard 或接口响应中查看的相关成本数据。
先按需求选择查看方式
本文是独立的 OpenAI API 使用指南,不代表 OpenAI 官方。不同问题对应的查看入口并不相同:想知道本月用了多少,进入 Usage Dashboard;想核对某一次请求消耗了多少 Token,直接读取 API 响应;想每天自动拉取并汇总,则使用组织级 Usage API 或 Costs API。
| 要解决的问题 | 推荐入口 | 能看到什么 | 注意事项 |
|---|---|---|---|
| 查看某个组织或项目的周期用量 | Usage Dashboard | 请求活动、Token、项目和时间范围统计 | 需要相应组织权限,时间按 UTC 显示 |
| 核对一次请求的 Token | API 响应中的 usage | 输入、输出和总 Token | 字段名称随接口不同而变化 |
| 导出月度明细 | Usage Dashboard 的 Export | Activity 或 Cost CSV | 导出文件可能需要等待生成 |
| 生成自动化报表 | Usage API、Costs API | 按时间桶、项目、用户、Key 或模型聚合 | 组织级接口的访问权限以当前文档和账户为准 |
OpenAI 的帮助文档明确将 Dashboard 和 API 响应列为两种基础查看方式;Dashboard 还支持项目筛选和数据导出。查看 OpenAI 官方用量与费用说明
在 Usage Dashboard 查看周期用量
- 登录 OpenAI Platform,进入 Usage 页面。
- 选择需要查看的 Organization,并确认当前不是误选的组织。
- 在 Dashboard 自带的项目选择器中选择一个、多个或全部 Project。清除项目筛选后,页面可显示组织范围的数据。
- 选择日期范围。对账时要注意 Dashboard 使用 UTC,而不是浏览器所在地区的本地时间。
- 根据页面提供的统计维度查看请求活动、Token、模型或项目拆分。
Usage Dashboard 的项目选择器独立于平台其他位置的项目选择器,因此即使其他页面已经选过项目,也应在 Usage 页面重新确认。组织所有者或拥有 Usage Dashboard 权限的成员才能访问用量页面。OpenAI 官方 Dashboard 访问与筛选说明
如果需要下载文件,在 Usage 页面选择 Export,再选择 Activity 或 Cost。Activity 更适合查看使用明细;Cost 更适合费用拆分和账单核对。导出可以按项目、用户、API Key、模型等维度分组,生成文件可能不会立即出现。
月度核对时,建议使用完整的 UTC 日历月,并确认导出中的 Organization 与账单所属组织一致。OpenAI 官方导出说明还区分了 Month to date 和完整月份两种日期范围。OpenAI 官方月度用量与费用导出说明
在 API 响应中查看单次 Token
Dashboard 适合看一段时间的汇总,单次请求则应读取响应里的 usage 对象。Chat Completions 通常使用 prompt_tokens、completion_tokens 和 total_tokens;Responses 使用 input_tokens、output_tokens 和 total_tokens。
下面是一个最小的 Chat Completions 请求。请把环境变量替换为你账户中实际可用的 Key 和模型 ID,不要把 Key 写进代码仓库、前端代码或日志:
export OPENAI_API_KEY='你的API_KEY'
export OPENAI_MODEL='你的模型ID'
curl https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"'"$OPENAI_MODEL"'","messages":[{"role":"user","content":"只回复:用量测试"}]}'
成功响应中可以查找类似 usage.prompt_tokens、usage.completion_tokens 和 usage.total_tokens 的字段。实际字段还可能包含缓存输入或推理相关的 Token,具体以所用接口和模型返回为准。OpenAI 官方 Token 字段说明
如果使用流式 Chat Completions,需要在请求体中加入 stream_options.include_usage=true。启用后,通常会在流结束前收到包含整次请求用量的额外数据块;如果连接中断,可能收不到最后这个用量块,因此不能仅凭缺少最终块判断没有产生 Token。
用 Usage API 或 Costs API 做自动化监控
当你需要每天汇总用量、按项目比较消耗,或把数据写入自己的报表时,可以使用组织级 Usage API 和 Costs API。官方 API 参考中提供了 GET /organization/usage/completions 用于获取完成类用量,也提供了 GET /organization/costs 用于获取成本明细。
Costs API 支持按时间范围查询,并可按 project_id、user_id、line_item、api_key_id 或 api_source 分组;成本结果还可能包含金额、币种、数量和数量单位。使用这些接口前,应先确认当前组织的管理接口权限、认证方式和可访问范围,不能把普通项目 Key 默认当作组织管理 Key。
自动化监控建议至少保存四类字段:统计时间桶、项目或用户标识、请求数量、输入与输出 Token;如果需要对账,再单独保存 Costs API 返回的金额和账单行项目。Usage 与 Cost 的统计口径可能不同,财务核对应优先参考 Costs API 或 Dashboard 的 Cost 数据。OpenAI 官方 Usage API 参考 OpenAI 官方 Costs API 参考
看不到用量或数字对不上时怎么排查
- 页面没有数据:先确认选择的是产生请求的 Organization,再清除或调整 Project 筛选,并扩大日期范围。
- 没有 Usage 页面权限:确认当前成员是否为组织所有者,或是否被授予 Usage Dashboard 权限;权限不足时联系组织所有者。
- 本地日志与 Dashboard 不一致:先把本地时间换算为 UTC,再检查请求是否使用了不同项目、不同组织或不同 API Key。
- 单次响应没有 usage:确认请求是否成功、使用的接口类型,以及流式请求是否启用了
include_usage;流式连接中断时,最后的用量块可能缺失。 - 用量不为零但项目费用为零:检查是否存在组织级别的计费或分配规则,不要只根据项目页面的单项金额判断全部费用。
- 导出文件没有立即出现:等待导出生成完成,并在 Export 区域查看可下载文件。
这些排查项分别对应 OpenAI 官方对组织权限、项目筛选、UTC 时间、流式用量和导出延迟的说明。若账户页面的菜单或权限名称与本文不同,应以当前账户页面和官方文档为准。
常见问题
OpenAI API 用量和 Billing 页面有什么区别?
Usage 主要回答 API 实际产生了多少请求和 Token;Billing 或信用额度页面回答组织关联的额度、账单或付款信息。二者不是同一个统计入口,信用额度不等于某个时间段的 API 活动。对账时应同时确认组织、UTC 日期范围和费用数据。
为什么 Usage Dashboard 看不到今天的用量?
先确认 Organization 和 Project 选择是否正确,再检查日期范围是否覆盖当前时间,并注意 Dashboard 使用 UTC。还要确认账户具备用量查看权限。若刚完成请求,页面展示或导出数据可能存在处理延迟,具体以当前页面为准。
Chat Completions 和 Responses 的 Token 字段一样吗?
不完全一样。Chat Completions 常见字段是 usage.prompt_tokens、usage.completion_tokens 和 usage.total_tokens;Responses 常见字段是 usage.input_tokens、usage.output_tokens 和 usage.total_tokens。读取程序应按实际接口返回结构处理,不要把两套字段名混用。
流式请求为什么没有最后的 usage?
Chat Completions 流式请求需要设置 stream_options.include_usage 为 true,才会请求额外的最终用量块。如果连接在结束前中断,可能收不到该块,因此应结合应用日志、Dashboard 或后续统计接口核对,不能把缺少最终块当成零用量。
可以用普通 API Key 调用 Usage API 吗?
不能默认认为可以。Usage API 和 Costs API 属于组织级管理接口,是否可调用取决于当前账户的管理权限、密钥类型和 OpenAI 当前文档要求。先查看官方 API 参考与账户权限;无法确认时,不要把普通项目 Key 直接用于组织级接口。
