OpenAI API 参考概览

2026-11-10 15:42 更新

使用本参考文档可以查阅 OpenAI API 的端点、请求和响应模式、流式事件、客户端库方法,以及身份验证、错误、速率限制和请求 ID 等通用行为。

从这里开始

  1. 选择适合应用的 API:
    • Responses:适用于直接模型请求、工具使用、音频、图像和文本输入,以及有状态交互。
    • Realtime API:通过 WebRTC、WebSocket 或 SIP 建立低延迟语音或音频会话。构建会话时,需要结合客户端事件和服务端事件参考。
    • Administration:适用于用户、邀请、项目、API 密钥和审计日志等组织管理工作流。
  2. 创建凭证。应用请求使用标准 API 密钥,Administration 端点使用 Admin API 密钥,也可以通过工作负载身份联邦获取短期访问令牌。
  3. 从客户端库页面安装官方客户端库,或在任何支持 HTTP 请求的环境中直接调用 HTTP API。
  4. 通过开发者快速开始发出第一个请求,或直接查看创建 Responses 的参考文档。
  5. 投入生产环境前,查看错误代码、速率限制,并了解下文的请求 ID 日志记录方式。

身份验证

OpenAI API 接受以 API 密钥作为 Bearer 凭证,也接受通过工作负载身份联邦创建的短期访问令牌。

API 密钥属于秘密信息。 不要与他人分享,也不要在浏览器、应用等客户端代码中暴露。应在服务器端从环境变量或密钥管理服务加载 API 密钥。

撤销 API 密钥会在几秒内生效。大多数影响 API 密钥身份验证结果的更新会在 15 分钟内传播完成,但也可能需要更长时间。

通过 HTTP Bearer 身份验证提供 API 凭证:

来源示例 1(bash):

中文译释:

这是HTTP请求头格式,不是可独立执行的Shell命令。Authorization与Bearer保留协议原名;OPENAI_API_KEY_OR_ACCESS_TOKEN表示API密钥或适用访问令牌的占位内容,发送请求前需替换为实际凭证。

Authorization: Bearer OPENAI_API_KEY_OR_ACCESS_TOKEN

如果你属于多个组织,或通过旧版用户 API 密钥访问项目,可以传入请求头,指定本次 API 请求使用的组织和项目:

来源示例 2(bash):

## [中文] 通过Bearer凭证请求模型列表,并显式指定组织与项目;变量值需由服务器安全配置提供。
curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Organization: $ORGANIZATION_ID" \
  -H "OpenAI-Project: $PROJECT_ID"

这些 API 请求产生的用量会计入指定的组织和项目。可以在控制台设置中查找组织 ID 和项目 ID。

请求头

为了在不同 API 路径和 HTTP 版本下保持可靠行为,请将 API 请求头的总大小控制在 64 KiB 以下。这个预算包含所有请求头的名称和值,既包括 Authorization、Content-Type、User-Agent 等常用头,也包括自定义头。

为了给必需请求头和中间设备添加的请求头留出空间,任何单个自定义请求头的值,以及全部自定义请求头值的总大小,都应保持在 60 KiB 或以下。请求头过大的请求可能在到达 API 之前就失败,因此你可能收不到响应,也收不到 x-request-id。

请求调试

错误代码说明 API 响应返回的失败类型。可以检查 HTTP 响应头,了解请求的唯一 ID 和速率限制详情。常见响应头如下。

API 元信息

  • openai-organization:与请求关联的组织。
  • openai-processing-ms:处理 API 请求所花费的时间,单位为毫秒。
  • openai-version:本次请求使用的 REST API 版本,原文当前列为 2020-10-01。
  • x-request-id:本次 API 请求的唯一标识,用于故障排查。

速率限制信息

  • x-ratelimit-limit-requests:请求数量限制。
  • x-ratelimit-limit-tokens:词元数量限制。
  • x-ratelimit-remaining-requests:剩余请求数量。
  • x-ratelimit-remaining-tokens:剩余词元数量。
  • x-ratelimit-reset-requests:请求数量限制的重置时间信息。
  • x-ratelimit-reset-tokens:词元数量限制的重置时间信息。
  • x-ratelimit-limit-project-tokens:项目词元数量限制。
  • x-ratelimit-remaining-project-tokens:项目剩余词元数量。
  • x-ratelimit-reset-project-tokens:项目词元数量限制的重置时间信息。

适用项目级词元限制时,响应中可能出现项目词元相关请求头。

OpenAI 建议在生产部署中记录请求 ID,以便需要时与支持团队更高效地排查问题。官方客户端库会在顶层响应对象中提供一个属性,用来获取 x-request-id 响应头的值。

使用 X-Client-Request-Id 提供自己的请求 ID

除了服务器生成的 x-request-id,还可以通过 X-Client-Request-Id 请求头,为每个请求提供自己的唯一标识。这个头不会自动添加,必须在请求中显式设置。

使用 X-Client-Request-Id 时:

  • 你可以自行决定 ID 的格式,例如 UUID 或内部追踪 ID,但它只能包含 ASCII 字符,且长度不能超过 512 个字符,否则请求会返回 400 错误。应为每次请求设置唯一值。
  • 对于支持的端点,OpenAI 会在内部记录这个值,包括 chat/completions、embeddings、responses 等。
  • 遇到超时或网络问题、无法获取 X-Request-Id 响应头时,可以向支持团队提供 X-Client-Request-Id,帮助查询 OpenAI 是否收到该请求以及接收时间。

示例:

来源示例 3(bash):

## [中文] 展示X-Client-Request-Id请求头的显式设置;来源片段未包含完整创建请求体,仅供说明请求标识。
curl https://api.openai.com/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "X-Client-Request-Id: 123e4567-e89b-12d3-a456-426614174000"

这个来源示例用于展示请求头的设置方式,没有提供创建聊天补全所需的完整请求体,不能作为完整的创建调用示例。

向后兼容性

OpenAI 会在合理可行时避免在主要 API 版本中引入破坏性变更,为 API 用户提供稳定性。这包括:

  • REST API,原文当前版本为 v1。
  • 官方客户端库,已发布的库遵循语义化版本控制。
  • 模型系列,例如 gpt-4o 或 o4-mini。这些名称在此用于说明模型系列,不是当前选型推荐。

不同模型快照之间,提示词的实际行为可能发生变化。 模型输出本身具有变化性,因此应预期快照之间的提示词效果和模型行为存在差异。要尽可能保持一致的提示词行为和模型输出,最佳方式是固定模型版本,并为应用运行评估。

以下 API 变更属于向后兼容的变更:

  • 在 REST API 和客户端库中增加新资源,即新的 URL。
  • 增加新的可选 API 参数。
  • 在 JSON 响应对象或事件数据中增加新属性。
  • 改变 JSON 响应对象中属性的顺序。
  • 改变资源标识符等不透明字符串的长度或格式。
  • 在流式 API 中增加新的事件类型。

向后兼容变更以及少数破坏性变更的记录,见更新日志。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号