返回指南
疑難排解·2026年7月17日·閱讀約 6 分鐘

Claude API 401 authentication_error / invalid x-api-key — 所有原因

Claude 回傳 401 一定是以下五種原因之一:標頭錯誤、金鑰類型不適用於該端點、環境變數格式錯誤、金鑰已撤銷,或該金鑰使用了錯誤的基底 URL。執行下方診斷,即可在不到一分鐘內找出您遇到的原因。

最後審核於 。

Claude 回傳 401 一定是以下五種原因之一:標頭錯誤、金鑰類型不適用於該端點、環境變數格式錯誤、金鑰已撤銷,或該金鑰使用了錯誤的基底 URL。執行下方診斷,即可在不到一分鐘內找出您遇到的原因。

錯誤

response (HTTP 401)
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "invalid x-api-key"
  }
}

原因與解決方法一覽

原因解決方法
該端點使用了錯誤的標頭Anthropic 原生 API 需要 x-api-key + anthropic-version;相容於 OpenAI 的端點需要 Authorization: Bearer。
金鑰與端點不相符sk-ant-… 金鑰只能用於 api.anthropic.com;閘道金鑰(例如 sk-kn-…)只能用於其所屬閘道的 URL。
環境變數中混入空白或引號重新匯出環境變數,不要包含引號或換行字元;印出 len(key),以找出複製貼上造成的尾端 \n。
金鑰已撤銷或工作區已停用在主控台建立新的金鑰,並在您的機密管理工具中輪替金鑰。

直接使用 curl 重現問題(排除 SDK 的影響)

如果 curl 可以運作,但您的應用程式不行,問題就在環境變數的處理方式,而不是金鑰:

diagnose.sh
# Native Anthropic wire (works on api.anthropic.com and Kunavo /v1/messages)
curl -s https://api.kunavo.com/v1/messages \
  -H "x-api-key: $KUNAVO_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'

# OpenAI-compatible wire (Bearer header instead)
curl -s https://api.kunavo.com/v1/chat/completions \
  -H "Authorization: Bearer $KUNAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'

# Check the key isn't carrying whitespace
python3 -c "import os; k=os.environ['KUNAVO_API_KEY']; print(repr(k[:12]), len(k))"

確認金鑰前綴與基底 URL 相符

sk-ant-… → api.anthropic.com。sk-kn-… → api.kunavo.com/v1。將閘道金鑰傳送給 Anthropic(或反過來)一定會收到 401 錯誤——錯誤訊息從不會寫「wrong host」,因此這個問題雖然就在眼前,卻很容易被忽略。

只要金鑰曾出現在儲存庫或日誌中,就應輪替金鑰

如果金鑰正確卻仍遭拒絕,請先假定它已被撤銷(自動掃描工具會迅速撤銷外洩的金鑰)。建立新的金鑰,並將它存放在機密管理工具中,而不是會被提交至儲存庫的 .env 檔案中。

如果你透過 Kunavo 呼叫

Kunavo 金鑰(sk-kn-…)在每個端點都可透過任一標頭進行驗證——OpenAI SDK 使用的 Authorization: Bearer,或 Anthropic SDK 使用的 x-api-key——因此無論您使用哪個 SDK,都只需變更基底 URL。金鑰可在儀表板中立即建立及撤銷。 金鑰通過驗證後,其計費費率請參閱以下價目表: Anthropic Claude API 價格表.

常見問題

為什麼我的金鑰用 curl 可以運作,但在應用程式中不行?

幾乎總是環境變數的處理問題:複製貼上造成的尾端換行、值中包含引號、變數未匯出至程序,或正式環境載入了不同的環境變數。請在發生問題的程序內列印金鑰的 repr 與長度。

可以在 OpenAI 相容閘道上使用我的 Anthropic Console 金鑰嗎?

不行。每項服務只會驗證自己的金鑰:sk-ant 金鑰屬於 api.anthropic.com,閘道金鑰則屬於該閘道。您呼叫哪個基底 URL,就應向對應的服務取得金鑰。

更多錯誤語意請參閱 錯誤參考;透過 註冊 和 身分驗證指南 取得金鑰只需一分鐘。