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 月按官方文档核对):
| 平台 | 状态码和报错原文 | 官方给出的原因 |
|---|---|---|
| OpenAI | 401 Incorrect API key provided | 请求用的密钥不正确;官方建议核对密钥、清理浏览器缓存,或新建一把 |
| OpenAI | 401 Invalid Authentication | 认证无效;核对密钥和请求所属的组织是否对应 |
| OpenAI | 401 IP not authorized | 请求 IP 不在项目或组织设置的 IP 白名单里 |
| Anthropic(Claude) | 401 authentication_error | 密钥有问题,例如格式不对、已吊销或已过期 |
| Google Gemini | 401 authentication | 密钥缺失、无效或已过期 |
| Google Gemini | 403 PERMISSION_DENIED,或提示 Your API key was reported as leaked | 项目被拒绝访问,常见于密钥泄露被封、欠费或免费层不可用;泄露的密钥要新建一把替换 |
| DeepSeek | 401 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 在这三步内就能解决。还没有密钥?去控制台创建 →