API Error: 401 authentication_error - cc-switch
Quick fix
检查 API Key 字段、Base URL、Key 类型与 cc-switch 版本,确保 Claude Code 实际读取到有效凭证。
Symptom
Section titled “Symptom”API Error: 401 {"error":{"type":"authentication_error","message":"unauthenticated"},"type":"error"}这个 401 报错不是单一原因,而是 cc-switch 写入的凭证没有被 Claude Code / 第三方 endpoint 正确接受。常见机制有几类:
1. Kimi For Coding:早期配置或预设可能把 Key 写到错误字段。Claude Code 实际读取的是 env.ANTHROPIC_AUTH_TOKEN 或环境变量 ANTHROPIC_API_KEY;如果 cc-switch 只写了顶层 apiKey,或默认使用了 ANTHROPIC_AUTH_TOKEN 而服务端要求 ANTHROPIC_API_KEY,就会发送空/错误凭证,导致 401。另有用户确认使用 ANTHROPIC_API_KEY 代替 ANTHROPIC_AUTH_TOKEN 后恢复。
2. MiniMax:需要区分国内/国际 endpoint 和对应供应商类型。使用英文站 coding plan 时不能选普通 MiniMax,应选 MiniMax en;API Key 也必须使用 coding plan key,不能用普通新生成 key。部分旧问题还可通过升级 cc-switch 或在 ~/.claude.json 添加 hasCompletedOnboarding: true 解决。
3. 原生版 Claude Code:有 issue 认为 v2.1.42+ 原生安装版不读取 ~/.claude/settings.json,只读取系统环境变量;但维护者表示无法复现,并建议参考其他 issue。因此该原因在不同版本/环境下结论不一致。
4. OpenCode Zen / OpenCode Go:需要开启代理模式,并且根据接口格式使用正确路径。Anthropic Messages 与 OpenAI Chat Completions 的 URL、代理模式和认证字段要求不同;有用户通过只使用 ANTHROPIC_API_KEY 并开启代理解决。
先确认你使用的是哪个供应商:Kimi For Coding、MiniMax / MiniMax en、OpenCode Zen / Go,或自定义 Anthropic 兼容 endpoint。不同供应商的 401 修复方式不同。
Kimi For Coding:删除现有 provider/profile,使用 cc-switch 内置 Kimi For Coding 预设重新从零创建,确保 API Key 填入 UI 的 API Key 输入框。
如果重新创建后仍然 401,检查 ~/.claude/settings.json,确保 env.ANTHROPIC_AUTH_TOKEN 不为空,并且与你的 Kimi API Key 一致。若存在顶层 apiKey 而 env.ANTHROPIC_AUTH_TOKEN 为空,手动同步或删除多余的顶层 apiKey / base_url 字段。
~/.claude/settings.json {"env": {"ANTHROPIC_BASE_URL": "https://api.kimi.com/coding/","ANTHROPIC_AUTH_TOKEN": "sk-kimi-..."}}如果服务端要求 ANTHROPIC_API_KEY 而不是 ANTHROPIC_AUTH_TOKEN,将配置改为 ANTHROPIC_API_KEY。多个用户确认此方法可解决 Kimi 相关 401。
~/.claude/settings.json {"env": {"ANTHROPIC_BASE_URL": "https://api.kimi.com/coding/","ANTHROPIC_API_KEY": "sk-kimi-..."}}MiniMax:确认 API Key 是 coding plan key,不是普通新生成 key。如果你使用的是英文站 / 国际站 coding plan,在 cc-switch 添加供应商时选择 MiniMax en,而不是普通 MiniMax。
MiniMax 国内/国际 endpoint 需要根据订阅来源选择。有用户将请求地址改为 https://api.minimaxi.com/anthropic 后解决;国际用户可能需要 api.minimax.io 对应地址。
cc-switch 供应商配置 请求地址: https://api.minimaxi.com/anthropic如果 issue 提到旧版 cc-switch 的 onboarding 问题,升级 cc-switch;或在 ~/.claude.json 中添加 hasCompletedOnboarding: true。维护者确认这是部分 MiniMax 401 的正确解决方案。
~/.claude.json {"hasCompletedOnboarding": true}OpenCode Zen / OpenCode Go:开启 cc-switch 代理模式,并确认请求地址包含正确路径。OpenAI Chat Completions 格式通常需要 /v1/chat/completions;有用户使用 ANTHROPIC_API_KEY 并开启代理后成功。
cc-switch 供应商配置 请求地址: https://opencode.ai/zen/go/v1/chat/completions代理模式: 开启环境变量: ANTHROPIC_API_KEY=你的 Key如果 Claude Code 是原生安装且怀疑 settings.json 未生效,检查系统环境变量中是否残留旧的 ANTHROPIC_AUTH_TOKEN、ANTHROPIC_BASE_URL、ANTHROPIC_MODEL 等变量;环境变量优先级可能高于配置文件。该结论在 issue 中存在争议,建议作为排查项而不是唯一修复。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 7 个真实 issue
- #185kimi的ANTHROPIC_BASE_URL不是https://api.moonshot.cn/anthropic
- #219在claude code中配置了kimi-for-coding 对应信息提示401
- #544Macos minimax not working
- #879Windows 11 Claude 自定义配置 OpenCode Zen 的免费模型,报错。
- #890添加MiniMax报错401。API Error: 401{"type":"error","error":{"type":"authentication_error","message":"invalid api key"},"request_id":""} · Please run /login
- #1046[Bug] cc-switch 配置不生效于原生版 Claude Code (v2.1.42+)
- #2525[Bug] Kimi For Coding preset writes API key to apiKey field but leaves env.ANTHROPIC_AUTH_TOKEN empty, causing 401 in Claude Code
- cc-switch 测试连接成功,为什么 Claude Code 里还是 401?
- cc-switch 的测速可能使用顶层 apiKey 或自己的请求逻辑,而 Claude Code 读取的是 env.ANTHROPIC_AUTH_TOKEN、ANTHROPIC_API_KEY 或系统环境变量。需要检查实际配置文件里 Claude Code 会读取的字段是否为空或写错。
- Kimi For Coding 应该用 ANTHROPIC_AUTH_TOKEN 还是 ANTHROPIC_API_KEY?
- issue 中有用户确认使用 ANTHROPIC_API_KEY 代替 ANTHROPIC_AUTH_TOKEN 后解决;也有 issue 指出应确保 env.ANTHROPIC_AUTH_TOKEN 不为空。若内置预设失败,优先检查这两个字段是否同步、是否为空,并尝试改用 ANTHROPIC_API_KEY。
- MiniMax 报 invalid api key,但 Key 明明是对的?
- 确认使用的是 coding plan key,而不是普通 API key。若使用英文站 / 国际站 coding plan,供应商类型应选择 MiniMax en;国内用户可能需要 api.minimaxi.com 对应 endpoint。
- hasCompletedOnboarding: true 有什么作用?
- 在部分 MiniMax 401 问题中,维护者确认升级 cc-switch 或在 ~/.claude.json 添加 hasCompletedOnboarding: true 是解决方案。它通常用于绕过 Claude Code 首次引导/登录状态导致的认证检查。
- 原生版 Claude Code 会不读取 settings.json 吗?
- 有 issue 认为 v2.1.42+ 原生版只读取系统环境变量,不读取 ~/.claude/settings.json;但维护者表示无法复现。若你使用原生安装且配置不生效,可同时检查系统环境变量是否覆盖了 cc-switch 配置。
- OpenCode Zen / Go 为什么必须开代理?
- issue 中用户反馈 OpenAI Chat Completions 格式需要开启 cc-switch 代理模式,并使用类似 /v1/chat/completions 的路径。仅配置 Anthropic 原生格式或路径不正确时,可能继续出现 401 或 404。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。