401 invalid_api_key 怎么解决?API Key 无效、Incorrect API key 的原因与排查步骤

更新于

API Key 报无效,大多数时候密钥本身没坏,而是请求发错了地方,或者客户端没用上新配置。这篇先教你从报错原文判断原因,再按四步排查:Base URL、密钥本身、客户端配置、curl 自测。

📌
一句话答案:API 快连的 sk-... 密钥必须配合 API 快连的地址使用:OpenAI 兼容客户端填 https://apikl.ai/v1,Claude Code 填 https://apikl.ai。如果请求还在发往 api.openai.com,官方不认识这把密钥,就会返回 invalid_api_key。

先看报错原文,判断是哪种情况

报错里出现意思怎么办
Incorrect API key provided … platform.openai.com请求发到了 OpenAI 官方把 Base URL 改成 API 快连地址(第一步)
INVALID_API_KEY密钥不存在:复制不完整、多了字符或已删除重新完整复制,或新建一把(第二步)
API_KEY_REQUIRED请求里根本没带密钥检查环境变量是否在当前终端生效(第三步)
API_KEY_DISABLED这把密钥在控制台被停用了在控制台启用或换一把
API_KEY_EXPIRED(403)密钥已过期在控制台延长有效期或新建
API_KEY_QUOTA_EXHAUSTED(429)这把密钥设置的额度用完了在控制台调高额度或新建
ACCESS_DENIED(403)「Your IP is …」密钥设置了 IP 白名单,当前 IP 不在里面把当前 IP 加进白名单,或清空白名单
USER_INACTIVE账号被停用联系客服
INVALID_AUTH_RATE_LIMITED(429)短时间内大量请求用了错误密钥,被临时限制先改对密钥,等约 1 分钟后再试
Claude Code 提示 Invalid API key / 要求登录Claude Code 没读到你的配置看 Claude Code 教程 第二、三步

其他平台报「API 密钥无效」时怎么看

用的不是 API 快连的密钥,也会遇到同类报错。各家官方文档里,密钥无效对应的报错如下(2026 年 10 月按官方文档核对):

平台状态码和报错原文官方给出的原因
OpenAI401 Incorrect API key provided请求用的密钥不正确;官方建议核对密钥、清理浏览器缓存,或新建一把
OpenAI401 Invalid Authentication认证无效;核对密钥和请求所属的组织是否对应
OpenAI401 IP not authorized请求 IP 不在项目或组织设置的 IP 白名单里
Anthropic(Claude)401 authentication_error密钥有问题,例如格式不对、已吊销或已过期
Google Gemini401 authentication密钥缺失、无效或已过期
Google Gemini403 PERMISSION_DENIED,或提示 Your API key was reported as leaked项目被拒绝访问,常见于密钥泄露被封、欠费或免费层不可用;泄露的密钥要新建一把替换
DeepSeek401 Authentication Fails密钥错误

不管是哪家,排查顺序都一样:先确认密钥和请求地址属于同一个平台(中转站的密钥不能发到官方地址,官方的密钥也不能发到中转站),再检查密钥是否复制完整、有没有被删除或过期,最后确认客户端真的用上了新配置。下面四步以 API 快连为例,换成其他平台时把地址换成那个平台的即可。

第一步:确认请求发到了 API 快连

OpenAI 兼容客户端要同时改 Base URL 和 API Key,只换密钥不够:

正确配置
Base URL : https://apikl.ai/v1API Key : sk-你的密钥
常见错误
Base URL : https://api.openai.com/v1 ← 还是官方地址API Key : sk-API快连的密钥

第二步:检查密钥本身

  • 从 sk- 开头一直复制到结尾,不要漏字符,也不要带上前后的空格或换行。
  • 不要从聊天软件里复制:有些软件会把英文引号自动换成中文引号 “ ”,配置里出现中文引号就会失效。
  • 确认密钥没有在 控制台 被删除、停用或过期。
  • 确认用的是 API 快连控制台创建的密钥,不是 OpenAI 或其他平台的。

第三步:确认客户端用上了新配置

  • 命令行工具:改完环境变量要新开一个终端。macOS / Linux 用 echo $OPENAI_API_KEY 检查;Windows 用 setx 设置后必须新开窗口。
  • Codex CLI:较新版本会忽略 OPENAI_BASE_URL 环境变量,请求仍发往官方,请用 config.toml 自定义服务商(Codex 教程)。
  • Codex 桌面版:彻底退出再打开;macOS 上桌面应用读不到终端里设置的环境变量,终端正常、桌面版 401 多半是这个原因。
  • CC Switch:确认当前启用的是 API 快连这一项,而不是官方服务商。
  • Cline / Roo Code / Cursor 等:服务商要选 OpenAI Compatible,不要选需要登录官方账号的选项。

第四步:用 curl 判断是密钥问题还是客户端问题

BASH
curl https://apikl.ai/v1/chat/completions \ -H "Authorization: Bearer sk-你的密钥" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"hi"}]}'
  • curl 能返回内容:密钥和服务都没问题,回头检查客户端配置(第三步)。
  • curl 也返回 401:密钥本身有问题,按上面的报错原文表处理,或在控制台新建一把。
  • 如果用的是 Claude 分组的密钥,把模型换成 claude-sonnet-5-5 再测。
🔒
向客服反馈问题时,发报错截图即可,不要发完整密钥;必要时只发开头和结尾几位。

常见问题

刚创建的密钥就提示无效?

几乎都是请求发到了官方地址,或密钥没复制完整。按第一步、第二步检查。

昨天还能用,今天突然 401?

检查密钥是否到期、被停用,或额度用完(报错原文会写明);也可能是客户端更新后配置被重置了。

余额不足会报 401 吗?

不会。余额不足返回的是 403 和「insufficient balance」字样,看 报错大全。

✅
排查顺序:先 Base URL,再密钥,再客户端当前生效的配置。大多数 invalid_api_key 在这三步内就能解决。还没有密钥?去控制台创建 →