跳转到内容

API Error: 401 authentication_error - cc-switch

Quick fix

检查 API Key 字段、Base URL、Key 类型与 cc-switch 版本,确保 Claude Code 实际读取到有效凭证。

报错原文
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 并开启代理解决。

  1. 先确认你使用的是哪个供应商:Kimi For Coding、MiniMax / MiniMax en、OpenCode Zen / Go,或自定义 Anthropic 兼容 endpoint。不同供应商的 401 修复方式不同。

  2. Kimi For Coding:删除现有 provider/profile,使用 cc-switch 内置 Kimi For Coding 预设重新从零创建,确保 API Key 填入 UI 的 API Key 输入框。

  3. 如果重新创建后仍然 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-..."
    }
    }
  4. 如果服务端要求 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-..."
    }
    }
  5. MiniMax:确认 API Key 是 coding plan key,不是普通新生成 key。如果你使用的是英文站 / 国际站 coding plan,在 cc-switch 添加供应商时选择 MiniMax en,而不是普通 MiniMax。

  6. MiniMax 国内/国际 endpoint 需要根据订阅来源选择。有用户将请求地址改为 https://api.minimaxi.com/anthropic 后解决;国际用户可能需要 api.minimax.io 对应地址。

    cc-switch 供应商配置
    请求地址: https://api.minimaxi.com/anthropic
  7. 如果 issue 提到旧版 cc-switch 的 onboarding 问题,升级 cc-switch;或在 ~/.claude.json 中添加 hasCompletedOnboarding: true。维护者确认这是部分 MiniMax 401 的正确解决方案。

    ~/.claude.json
    {
    "hasCompletedOnboarding": true
    }
  8. 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
  9. 如果 Claude Code 是原生安装且怀疑 settings.json 未生效,检查系统环境变量中是否残留旧的 ANTHROPIC_AUTH_TOKEN、ANTHROPIC_BASE_URL、ANTHROPIC_MODEL 等变量;环境变量优先级可能高于配置文件。该结论在 issue 中存在争议,建议作为排查项而不是唯一修复。

ToolClaude Code
Version未知
PlatformsWindowsmacOS
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。本站不分发任何软件。