所有文章
AI

OpenAI 报 401「Incorrect API key provided」怎么办?官方三步修法,亲测不踩坑(2026)

OpenAI 返回 401「Incorrect API key provided」,说明请求带的 key 不对:拼错了、被删了,或者是别的组织、项目的 key。官方修法一共三步。我们 2026 年 10 月 29 日自己用错 key 发了请求,把真实返回贴出来。

OpenAI 401 Incorrect API key provided:浅蓝色黏土密码锁旁边放着一张空白的绿色黏土便利贴,柔和自然光和树叶影子

先说结论:OpenAI 返回 401 Incorrect API key provided,说明请求里带的 key 不是一个能用的 key。官方修法一共三步:清浏览器缓存和 Cookie,检查请求头里的 key,拿不准就新建一个 key 并把所有地方的旧 key 换掉。报错信息会显示你发出去的 key 的最后 4 位,用它就能看出代码实际用的是哪个 key。我们 2026 年 10 月 29 日自己用错的 key 请求了 API,下面贴的都是真实返回。

报错原文

用错 key 请求时,返回的原文是:

{
  "error": {
    "message": "Incorrect API key provided: sk-test123. You can find your API key at https://platform.openai.com/account/api-keys.",
    "type": "invalid_request_error",
    "param": null,
    "code": "invalid_api_key"
  }
}

OpenAI 的 错误码文档 给的原因是“The requesting API key is not correct”,也就是请求用的 key 不对,并列了四种情况:

  • key 拼错了,或者多了空格。
  • key 属于另一个组织或项目。
  • key 已经被删除或停用。
  • 本地缓存了一个已作废的旧 key。

官方三步修法

OpenAI 401 Incorrect API key provided 官方修法:四种原因和三个步骤

1. 清除浏览器缓存和 Cookie 后再试。如果你是从网页后台复制 key,或者用的网页工具记住了旧 key,这一步有用。

2. 检查请求头里用的 key 对不对。请求头的格式必须是 Authorization: Bearer <你的 key>。

3. 拿不准 key 对不对,就去 API keys 页面 新建一个,然后把代码里和所有保存过旧 key 的地方都换掉,保存方式参考官方的 API key 安全最佳实践。

我们实测拿到的结果

2026 年 10 月 29 日,我们在测试机上用 curl 和 openai-python 3.40.0 发了下面这些请求。

我们实测 OpenAI 返回的内容:Incorrect API key provided、Missing bearer authentication 和 SDK 连接错误

报错里会露出 key 的最后 4 位

用一个 56 位的假项目 key 请求,报错把中间打了码,只留结尾:

"message": "Incorrect API key provided: sk-proj-********************************************56w1. ..."

这是最快的检查办法:拿这 4 位去和 API keys 页面上的 key 对一下。对不上,就说明你的代码读到的不是你以为的那个 key。像 sk-test123 这种很短的测试串,会原样显示。

漏了 Bearer 是另一句报错

完全不带 Authorization 请求头,或者带了请求头但漏写 Bearer,返回的不是 Incorrect API key provided,而是:

"message": "Missing bearer authentication in header"

写了 Bearer 但后面是空的,返回 Incorrect API key provided: '',一般是放进请求头的那个变量是空的。

末尾多一个空格或换行,请求根本发不出去

把 key 放进 OPENAI_API_KEY 时末尾多了空格或换行,openai-python 不会收到 401,而是在发送前就报错:

APIConnectionError | Connection error. | LocalProtocolError("Illegal header value b'Bearer sk-test123 '")

所以 SDK 报 “Connection error”,也可能是 key 的问题,不一定是网络。可以用 printf '%s' "$OPENAI_API_KEY" | od -c | tail -3 看末尾有没有看不见的字符。完全没设置 key 时,SDK 报的是 OpenAIError: Missing credentials。

真实但已删除的 key、属于别的组织的 key,我们没法测,因为那需要一个账号的真实 key。按官方文档,这两种情况返回的也是 Incorrect API key provided。

找到代码实际发的是哪个 key

遇到 Incorrect API key provided 去哪里查 key:环境变量、.env 文件、代码和 API keys 页面

很多工具和库会从好几个地方读 key,旧的值可能优先生效。逐个检查:

  • 运行程序的那个终端里的 OPENAI_API_KEY。
  • .env 文件,看值里是不是带了引号,后面有没有空格。
  • 工具自己的配置。比如 Codex CLI 可以用 API key 登录,我们的 Codex CLI 安装和登录教程 写了在哪里设置。
  • CI 密钥和服务器环境变量里,是不是还存着已经删掉的 key。

如果旧 key 曾经推到公开仓库,或者贴到过别人能看到的地方,不要只是换掉它,要在 API keys 页面删除,再按API key 泄露后的处理步骤检查一遍。如果 401 没了,但开始报 429,那就是速率或账单限制,可以看OpenAI API 429 是限流还是 insufficient_quota。

常见问题

401 Incorrect API key provided 和 “Invalid Authentication” 是一回事吗?

不是。OpenAI 把 “401 – Invalid Authentication” 单独列出来,修法是“确认用的是正确的 API key 和请求组织”。Incorrect API key provided 说的是 key 本身。

403 会不会也是 key 的问题?

地区那个 403 不是。403 Country, region, or territory not supported 看的是请求从哪里发出,换 key 没用,详见我们的 OpenAI 403 地区报错说明。

开了 ChatGPT Plus 就有 API key 吗?

没有。ChatGPT 订阅和 API 是分开计费的,区别可以看 ChatGPT 订阅和 API 哪个划算。

留下你的想法

你的邮箱不会公开。