문제 해결 · Claude Code

Claude Code API Error 401 invalid x-api-key 해결 방법

Claude Code는 키가 통신 대상 엔드포인트에 도달하지 못하면 API Error: 401 invalid x-api-key를 출력합니다. 이를 유발하는 환경 변수 규칙과 해결 방법.

표시되는 내용

API Error: 401 {"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}

발생 원인

  • ANTHROPIC_API_KEY와 ANTHROPIC_AUTH_TOKEN이 동시에 설정되어 있습니다 — 두 헤더가 모두 전송되어 요청이 거부됩니다. 빈 문자열도 설정된 것으로 간주됩니다. 커스텀 base URL을 쓸 때 가장 흔한 원인입니다.
  • 변수가 claude를 실행한 셸과 다른 셸에 설정되어 있습니다 — 한 터미널의 export는 다른 터미널에 존재하지 않으며, GUI 런처는 셸 프로필을 읽지 않습니다.
  • ANTHROPIC_BASE_URL이 한 프로바이더를 가리키는데 키는 다른 곳에서 발급된 것입니다. 유효한 키라도 잘못된 엔드포인트로 보내면 401입니다.
  • 키가 폐기되었거나, 만료일이 설정된 키였다면 만료된 것입니다.

해결 방법

  • 변수 하나만 고르고 다른 하나는 해제하세요: 이 게이트웨이에서는 ANTHROPIC_AUTH_TOKEN과 ANTHROPIC_BASE_URL을 사용하고, ANTHROPIC_API_KEY가 함께 export되어 있지 않은지 확인하세요.
  • claude를 실행하는 바로 그 셸에서 확인하세요: 실행 직전에 변수의 앞부분 몇 글자를 출력해 보세요.
  • 대시보드에서 키가 활성 상태인지, base URL이 키 발급처와 일치하는지 확인하세요.

이 게이트웨이용 정상 동작 환경

export ANTHROPIC_BASE_URL="https://api.apitoken.sale"
export ANTHROPIC_AUTH_TOKEN="sk-pool-•••"
unset ANTHROPIC_API_KEY   # must not be set at the same time
claude

관련 검색어

  • claude code 401 custom ANTHROPIC_BASE_URL
  • claude code invalid api key

자주 묻는 질문

커스텀 ANTHROPIC_BASE_URL을 설정한 직후 Claude Code가 왜 401을 반환하나요?+
보통 ANTHROPIC_API_KEY와 ANTHROPIC_AUTH_TOKEN이 동시에 설정되어 있거나, 키가 base URL이 가리키는 곳과 다른 엔드포인트의 것입니다. 변수 하나를 해제하고 키와 엔드포인트를 맞추세요.
ANTHROPIC_API_KEY와 ANTHROPIC_AUTH_TOKEN 중 어느 것이 맞나요?+
ANTHROPIC_API_KEY는 x-api-key 헤더가 되고, ANTHROPIC_AUTH_TOKEN은 Authorization: Bearer가 됩니다. 정확히 하나만 사용하세요. 이 게이트웨이에서는 ANTHROPIC_AUTH_TOKEN이 문서화된 선택입니다.
같은 키가 curl에서는 되는데 Claude Code에서는 안 됩니다 — 왜죠?+
claude를 실행하는 셸의 환경 상태가 다릅니다: 경합하는 변수, 오래된 값, 혹은 값이 아예 없는 경우입니다. 바로 그 셸의 환경을 확인하세요.

잘못된 설정에 시간 낭비하지 마세요

apiToken.sale은 표준 Anthropic API를 제공합니다 — 같은 모델, 같은 SDK, 하나의 선불 잔액. 도구의 base URL만 지정하면 이 페이지의 설정이 적힌 그대로 작동합니다.