OpenAI · Anthropic API 401 오류 정리: "Incorrect API key provided", "Missing bearer authentication", "invalid x-api-key"
OpenAI 401 Incorrect API key provided 와 Missing bearer authentication, Anthropic invalid x-api-key 와 x-api-key header is required의 차이를 가짜 키로 직접 재현해 정리했습니다.
n8n이나 curl로 OpenAI와 Anthropic API를 호출했는데 401이 나왔다면, 메시지가 "키가 아예 안 갔다"인지 "키가 틀렸다"인지로 갈립니다. 가짜 키만 써서 두 서비스의 응답을 직접 비교했습니다. 진짜 키는 쓰지 않았고, 모델 호출 없이 모델 목록 조회(GET)만 보냈습니다.
한눈에 보기
| 서비스 | 상황 | 응답 메시지 |
|---|---|---|
| OpenAI | 키를 보내지 않음 | Missing bearer authentication in header |
| OpenAI | 키를 보냈지만 틀림 | Incorrect API key provided: ... (코드 invalid_api_key) |
| Anthropic | 키를 보내지 않음 | x-api-key header is required |
| Anthropic | 키를 보냈지만 틀림 | invalid x-api-key |
두 서비스 모두 HTTP 401입니다. 상태 코드만 보면 차이를 알 수 없고, 메시지 문장이 원인을 가른다는 점이 핵심입니다.
OpenAI 시험 결과
2026년 10월 26일에 https://api.openai.com/v1/models에 읽기 전용 GET을 보냈습니다.
| 보난 방식 | 결과 |
|---|---|
| 키 없음 | 401, Missing bearer authentication in header |
가짜 키를 Authorization: Bearer ...로 | 401, Incorrect API key provided, 코드 invalid_api_key |
가짜 키를 Bearer 단어 없이 Authorization 값으로만 | 401, Missing bearer authentication in header (키를 안 보낸 것과 같은 메시지) |
가짜 키를 Anthropic 방식인 x-api-key 헤더로 | 401, Missing bearer authentication in header |
| 가짜 키 뒤에 공백 하나 | 401, Incorrect API key provided |
- "Missing bearer authentication"이 나오면 키 자체가 틀린 것이 아니라 키가 올바른 형식으로 전달되지 않았다는 뜻으로 보였습니다.
Bearer단어가 빠지거나 헤더 이름이 다른 경우 모두 키를 안 보낸 것과 같은 응답이 왔습니다. - "Incorrect API key provided"는 키가 올바른 헤더로 전달되었지만 인정되지 않았다는 뜻으로 보였습니다.
- 이 오류 메시지에는 보낸 키가
sk-를 포함한 앞 8글자와 뒤 4글자만 남기고 가려진 채로 들어 있었습니다. 어떤 키가 갔는지 확인하는 데는 도움이 되지만, 로그나 화면 캡처를 공유할 때 일부가 노출된다는 점을 기억하세요. - 키 뒤에 공백이 있었을 때도 같은 오류가 나왔지만, 공백 때문에 거부된 것인지 가짜 키여서 거부된 것인지는 이 시험만으로는 구분하지 못했습니다.
OpenAI 오류 코드 문서는 "Incorrect API key provided"의 원인으로 오타나 여분의 공백, 다른 조직이나 프로젝트의 키, 삭제되거나 비활성화된 키, 저장된 예전 키를 들고 있습니다. 이 중 어느 것인지는 문서에 구분 방법이 적혀 있지 않습니다.
Anthropic 시험 결과
같은 날 https://api.anthropic.com/v1/models에 읽기 전용 GET을 보냈습니다.
| 보난 방식 | 결과 |
|---|---|
| 키 없음 | 401, authentication_error, x-api-key header is required |
가짜 키를 x-api-key 헤더로 + anthropic-version 헤더 | 401, invalid x-api-key |
가짜 키를 x-api-key로, anthropic-version 헤더 없이 | 401, invalid x-api-key (버전 헤더 오류는 나오지 않음) |
가짜 키를 Authorization: Bearer로 + 버전 헤더 | 401, invalid x-api-key |
- 키를 아예 안 보내면 "
x-api-key헤더가 필요하다"는 문장이 나왔습니다. 어떤 헤더가 필요한지 알려 주는 셈입니다. - 가짜 키는 버전 헤더 유무와 상관없이 같은 오류가 나왔고, 키 확인이 버전 헤더 확인보다 먼저 실행되는 것으로 보였습니다. 버전 헤더를 빼먹었을 때의 오류는 진짜 키가 있어야 볼 수 있어 이번에 확인하지 못했습니다.
- 응답에
request_id가 포함되어 있었습니다. Anthropic 오류 문서는 지원에 문의할 때 이 아이디를 함께 보내라고 안내합니다.
Anthropic 문서는 401 authentication_error를 "키에 문제가 있다(예, 형식이 잘못되었거나 폐기되었거나 만료됨)"는 오류로 설명합니다.
두 서비스를 헷갈릴 때
OpenAI는 Authorization: Bearer 키, Anthropic은 x-api-key: 키에 anthropic-version 헤더를 씁니다(Anthropic은 공식 문서의 예시, OpenAI는 제가 본 오류 메시지 기준). 제 시험에서는 Anthropic 방식의 헤더로 OpenAI를 호출하면 "Missing bearer authentication"이 나왔습니다. 반대로 OpenAI 방식(Bearer)으로 키를 보낸 Anthropic 요청도 키 오류(invalid x-api-key)가 나왔습니다. 자격 증명을 다른 서비스에 재사용하고 있지 않은지도 확인해 보세요.
점검 순서
- 메시지가 "키를 못 찾았다"(Missing bearer authentication, x-api-key header is required)이면 노드의 인증 설정과 헤더 이름,
Bearer단어를 확인합니다. - 메시지가 "키가 틀렸다"(Incorrect API key provided, invalid x-api-key)이면 키 자체를 봅니다. OpenAI 문서가 드는 원인(오타와 공백, 다른 조직이나 프로젝트의 키, 삭제된 키)을 하나씩 확인합니다.
- 새 키를 만들어 기존 키를 교체해 봅니다. 키는 n8n 자격 증명에만 두고 워크플로우 파일, 글, 대화창에 붙이지 마세요.
- 비슷한 구조의 다른 API 오류는 Gemini API 키 오류와 GitHub API 인증 오류(둘 다 영어 글)에도 정리했습니다.
시험하지 못한 것
- 진짜 키를 쓰지 않았습니다. 그래서 키가 올바른 경우의 응답, 모델 호출(
chat,messages) 중의 오류, 조직이나 프로젝트 권한 오류, 요금과 속도 제한 오류(402, 429)는 확인하지 못했습니다. - 모델 목록 조회만 시험했습니다. 다른 엔드포인트에서는 메시지가 다를 수 있습니다.
- n8n 화면에서 이 오류가 어떻게 보이는지는 확인하지 않았습니다(curl로만 시험).
- 하루 동안의 한 번씩의 시험이고, 두 서비스가 메시지를 바꿀 수 있습니다.
출처 OpenAI 오류 코드 가이드, Claude API 오류 문서. 위 응답 문구는 제가 2026년 10월 26일에 보낸 요청의 결과입니다.
수정: 2026년 10월 26일