API 문서

오류 처리

모든 실패는 한 가지 구조입니다.

실패 시 HTTP 상태 코드는 2xx가 아니며, 본문에는 error 객체 하나만 담깁니다:

json
{
  "error": {
    "message": "Insufficient credits: this request needs 60 credits. Top up and try again.",
    "type": "insufficient_quota",
    "param": null,
    "code": "insufficient_credits"
  }
}

항목

항목설명
message사람이 읽는 영어 설명. 문구는 바뀔 수 있으니 분기 조건으로 쓰지 말 것
type오류 대분류. 아래 표 참고
code구체적 원인. 분기는 이 항목으로
param문제가 된 파라미터 이름. 특정할 수 없으면 null

자주 만나는 오류

HTTPcode의미와 처리
401missing_api_keyAuthorization 헤더가 없거나 Bearer sk-xxx 형식이 아님
401invalid_api_key없는 키·중지된 키·삭제된 키. 세 경우를 의도적으로 구분하지 않음
400invalid_request파라미터 문제. message 확인. prompt 가 비었거나 image 모드에 이미지가 없는 등
402insufficient_credits크레딧 부족. 충전 후 재시도하되 먼저 /v1/credits 확인 권장
429rate_limit_exceeded호출이 너무 잦음. 백오프 후 재시도
429concurrency_limit_reached동시 실행 또는 일일 한도 도달. 잠시 후 재시도
404not_found작업이 없거나 현재 키의 계정 소유가 아님
502generation_failed동기 생성에서 모든 이미지가 실패. 크레딧은 이미 환원됨
504generation_timeout동기 생성 대기 시간 초과. 작업은 계속 돌고 크레딧도 환원되지 않으니 메시지의 id로 /v1/tasks/{id} 에서 받아올 것
500internal_error서버 오류. 재시도 가능하며 계속되면 문의 바람
비동기로 접수된 뒤 생성이 실패한 경우는 이 구조가 아닙니다. 그때는 HTTP 200이고, 작업 객체의 status 가 failed 이며 원인은 error 에 담깁니다. 실패가 502로 오는 것은 동기 이미지 생성뿐입니다.