Skip to Content

에러 코드

API 에러 응답 형식과 에러 코드 목록입니다.


에러 응답 형식

모든 에러 응답은 아래 형식을 따릅니다.

ErrorResponse
{ meta: { version: string // API 버전 requestId: string // 요청 ID (문의 시 첨부) timestamp: string // 응답 시간 (ISO 8601) } status: number // HTTP 상태 코드 type: string // 에러 타입 message: string // 에러 메시지 errors?: { // 상세 오류 (Validation 에러 시) field: string // 필드명 message: string // 오류 메시지 value: any // 전달된 값 }[] }

에러 응답 예시

Example: Validation Error
{ "meta": { "version": "2026-01-11", "requestId": "abc123-def456", "timestamp": "2025-01-15T12:00:00Z" }, "status": 400, "type": "VALIDATION_ERROR", "message": "요청 데이터 검증에 실패했습니다.", "errors": [ { "field": "title", "message": "제목은 필수 항목입니다.", "value": null }, { "field": "difficulty", "message": "난이도는 1~5 사이의 값이어야 합니다.", "value": 10 } ] }

문의 시 requestId를 함께 첨부하면 빠른 문제 해결이 가능합니다.


HTTP 상태 코드

상태 코드설명
200성공
201생성 성공
204삭제 성공 (응답 본문 없음)
400잘못된 요청
401인증 필요
403접근 권한 없음
404리소스 없음
429요청 한도 초과
500서버 내부 오류

에러 코드 목록

400 Bad Request

에러 코드설명해결 방법
VALIDATION_ERROR요청 값 검증 실패errors 배열에서 상세 오류 확인
MISSING_PARAMETER필수 파라미터 누락필수 파라미터를 모두 포함하여 재요청
INVALID_REQUEST_BODY요청 본문 파싱 오류JSON 형식이 올바른지 확인
INVALID_PARAMETER잘못된 파라미터 값파라미터 값 형식 및 범위 확인

401 Unauthorized

에러 코드설명해결 방법
AUTHENTICATION_REQUIRED인증이 필요한 요청Authorization 헤더 추가
INVALID_TOKEN유효하지 않은 토큰토큰 재발급 후 재시도
TOKEN_EXPIRED만료된 토큰Refresh Token으로 재발급
INVALID_API_KEY유효하지 않은 API KeyAPI Key 확인 및 재발급

403 Forbidden

에러 코드설명해결 방법
ACCESS_DENIED접근 권한 없음필요한 권한(scope) 확인
PERMISSION_DENIED리소스 권한 부족리소스 소유자 권한 필요
INSUFFICIENT_SCOPEOAuth scope 부족추가 scope 요청 후 재인증

404 Not Found

에러 코드설명해결 방법
RESOURCE_NOT_FOUND리소스를 찾을 수 없음ID 또는 경로 확인
CHANNEL_NOT_FOUND채널을 찾을 수 없음채널 ID/webPath 확인
SONG_NOT_FOUND노래를 찾을 수 없음노래 ID 확인
CONTENT_NOT_FOUND콘텐츠를 찾을 수 없음콘텐츠 ID 확인

429 Too Many Requests

에러 코드설명해결 방법
RATE_LIMIT_EXCEEDEDRate Limit 초과X-RateLimit-Reset 이후 재시도
QUOTA_EXCEEDED월간 쿼터 초과다음 달까지 대기 또는 티어 업그레이드

500 Internal Server Error

에러 코드설명해결 방법
INTERNAL_ERROR서버 내부 오류requestId와 함께 문의
SERVICE_UNAVAILABLE서비스 일시 불가잠시 후 재시도

Rate Limit 관련 헤더

API 응답에 포함되는 Rate Limit 정보입니다.

헤더설명
X-RateLimit-Limit분당 최대 요청 수
X-RateLimit-Remaining남은 요청 수
X-RateLimit-Reset제한 초기화 시간 (Unix timestamp)

API Key 사용 시 추가 헤더

헤더설명
X-Quota-Limit월간 최대 요청 수
X-Quota-Used이번 달 사용량
X-Quota-Remaining남은 월간 요청 수
X-Quota-Reset쿼터 초기화 일시 (ISO 8601)

Rate Limit 초과 시 429 응답이 반환됩니다. X-RateLimit-Reset 시간 이후에 재시도하세요.


에러 처리 예시

error-handler.js
async function apiRequest(url, options = {}) { const response = await fetch(url, options); if (!response.ok) { const error = await response.json(); switch (error.type) { case 'VALIDATION_ERROR': console.error('검증 오류:', error.errors); break; case 'RATE_LIMIT_EXCEEDED': const resetTime = response.headers.get('X-RateLimit-Reset'); console.error(`Rate Limit 초과. ${new Date(resetTime * 1000)} 이후 재시도`); break; case 'TOKEN_EXPIRED': // 토큰 갱신 로직 await refreshToken(); return apiRequest(url, options); default: console.error(`에러 [${error.type}]: ${error.message}`); } throw error; } return response.json(); }
Last updated on