Troubleshoot
Claude API 401 Unauthorized 해결
Claude API 호출 시 401 unauthorized 에러가 뜨는 5가지 원인과 단계별 해결법. API 키 발급, Bearer 헤더, 환경변수, 키 만료 확인까지.
증상
Claude API 호출 시 `{"type": "error", "error": {"type": "authentication_error"}}` 응답.
원인
API 키가 누락됐거나, 잘못된 헤더 형식이거나, 키가 비활성화됐거나, 환경변수 로딩에 실패한 경우.
해결 단계
- 1
API 키 확인
https://console.anthropic.com/settings/keys 에서 키가 활성 상태인지 확인. Revoked이면 새 키 발급.
- 2
헤더 형식 검증
Anthropic은 `x-api-key` 헤더 사용. OpenAI 스타일 `Authorization: Bearer ...`를 쓰면 401 발생.
headers: { "x-api-key": process.env.ANTHROPIC_API_KEY, "anthropic-version": "2023-06-01", "content-type": "application/json" } - 3
환경변수 로딩 확인
Next.js라면 `.env.local`에 `ANTHROPIC_API_KEY=sk-ant-...` 저장 후 dev 서버 재시작. Vercel 배포면 Environment Variables에 등록 후 Redeploy.
- 4
키 형식 점검
Anthropic 키는 `sk-ant-api03-`로 시작. 복사 시 앞뒤 공백·줄바꿈이 끼면 401.
- 5
조직·프로젝트 매칭
Anthropic 콘솔에 여러 워크스페이스가 있을 경우, 키 발급한 워크스페이스의 결제 상태도 확인.
자주 묻는 질문
키를 코드에 직접 적어도 되나요?+
절대 금지. .env 또는 시크릿 매니저로 관리. Git에 커밋되지 않게 .gitignore 설정 필수.
401과 403 차이는?+
401은 인증 실패(키 자체 문제), 403은 권한 부족(이 키로는 이 모델·기능 접근 불가).