쿠키를 사용합니다. 쿠키와 브라우저 저장소는 로그인 상태를 유지하고 환경설정을 기억합니다. 동의하시면 사이트 이용 방식도 측정합니다. 언제든지 할 수 있습니다. 자세한 내용은 쿠키 정책을 참고하세요.

오류

계정

오류

api14 게이트웨이가 돌려주는 HTTP 상태 코드와 오류 코드를 OpenAI 오류 형식 기준으로 정리하고, 업스트림 오류의 원인, 대응 방법, 재시도해도 되는 경우를 코드와 함께 안내합니다. 코드에서 오류를 처리하는 예제도 있습니다.

오류는 OpenAI 오류 형식을 사용하므로 공식 SDK가 이를 일반적인 예외(APIError, RateLimitError, AuthenticationError 등)로 변환합니다. 분기 처리에는 code를 사용하세요. message는 사람이 읽을 수 있도록 영어로 작성된 설명입니다.

{
  "error": {
    "message": "This request may cost up to $0.0123 but your balance is $0.0040. Add funds at /pricing.",
    "type": "insufficient_quota",
    "code": "insufficient_balance"
  }
}

실패한 요청에는 요금이 부과되지 않습니다. 4xx 또는 5xx 상태의 응답은 무료입니다.

게이트웨이 오류 코드

상태codetype의미
400model_requiredinvalid_request_errormodel 필드가 없습니다.
400invalid_jsoninvalid_request_error본문이 JSON 객체가 아닙니다.
400invalid_bodyinvalid_request_errormultipart 본문을 읽을 수 없습니다.
400max_tokens_too_largeinvalid_request_error플레이그라운드 체험 요청에서 출력 토큰을 너무 많이 요청했습니다.
401invalid_api_keyauthentication_error키가 없거나, 형식이 잘못되었거나, 폐기되었습니다.
402insufficient_balanceinsufficient_quotaUSD 잔액이 $0이거나 요청의 예상 최대 비용(입력, 출력 한도, 이미지 또는 동영상 길이)보다 적습니다. 요청은 전송되지 않습니다.
403model_not_allowedpermission_error키의 모델 허용 목록에 이 모델이 없습니다.
403plan_requiredpermission_error요금제에 이 모델 카테고리가 포함되어 있지 않습니다.
404model_not_foundnot_found_error모델 ID를 알 수 없거나, 비활성화되었거나, 삭제되었습니다.
404not_foundnot_found_error알 수 없는 엔드포인트이거나, 본인 소유가 아닌 동영상 작업 또는 생성 내역입니다.
413payload_too_largeinvalid_request_error요청 본문이 크기 한도(기본 25 MB)를 초과합니다.
429rate_limitedrate_limit_error분당 요청 수를 초과했습니다. Retry-After: 60이 함께 옵니다.
429daily_limit_reachedrate_limit_error키가 일일 USD 지출 한도에 도달했습니다.
409idempotency_conflictapi_error이 Idempotency-Key로 이미 요청을 보냈습니다. 다른 요청에는 새 키를 쓰세요. 요청 한도.
403site_not_allowedpermission_error위젯 전용: 페이지의 사이트가 허용된 위젯 사이트에 없습니다. 위젯.
429widget_daily_limitrate_limit_error위젯 전용: 위젯 또는 전체 위젯이 일일 USD 지출 한도에 도달했습니다.
429visitor_daily_limitrate_limit_error위젯 전용: 이 방문자가 위젯 관리에서 정한 일일 요청 한도에 도달했습니다.
502upstream_unavailableapi_error업스트림 제공업체에 연결할 수 없습니다.
4xx/502content_unavailable상황에 따라 다름동영상 콘텐츠를 아직 가져올 수 없습니다(상태는 업스트림과 같고, 없으면 502).
503maintenanceservice_unavailable점검 모드, 생성 엔드포인트는 일시 중지되지만 GET 엔드포인트는 계속 동작합니다.
503not_configuredservice_unavailable게이트웨이가 아직 설정되지 않았습니다.

업스트림 오류

업스트림 제공업체가 반환한 오류(예: 특정 모델에 대한 잘못된 파라미터, 컨텍스트 길이 초과, 콘텐츠 정책에 따른 거부, 제공업체 자체의 429)는 원래 상태 코드와 동일한 { error: { ... } } 형식으로 그대로 전달됩니다.

대응 방법

상태재시도 여부조치
400아니요요청 본문을 수정하세요.
401아니요키와 Authorization: Bearer 헤더를 확인하세요. 인증을 참고하세요.
402아니요잔액을 충전하거나 자동 충전을 켜세요.
403아니요허용된 모델을 사용하거나, 키의 허용 목록을 수정하거나, 요금제를 업그레이드하세요.
404아니요모델 페이지에서 모델 ID를 확인하세요.
413아니요더 작은 본문을 보내거나, 파일을 base64 대신 URL로 전달하세요.
429나중에rate_limited: Retry-After만큼 기다리세요. daily_limit_reached: 다음 UTC 날짜까지 기다리거나 키 한도를 높이세요. 속도 제한을 참고하세요.
502예백오프를 적용해 재시도하거나 모델 폴백을 추가하세요.
503예나중에 다시 시도하세요.

코드에서 오류 처리하기

import OpenAI from 'openai'

const client = new OpenAI({ baseURL: 'https://api14.com/api/v1', apiKey: process.env.API14_API_KEY })

try {
  await client.chat.completions.create({ model: 'openai/gpt-5-mini', messages: [{ role: 'user', content: 'Hi' }] })
} catch (err) {
  if (err instanceof OpenAI.APIError) {
    console.error(err.status, err.code, err.message)
    if (err.code === 'insufficient_balance') {
      // prompt the user to add funds
    }
  } else {
    throw err
  }
}
from openai import OpenAI, APIStatusError

client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...")

try:
    client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
except APIStatusError as e:
    print(e.status_code, e.code, e.message)

스트림이 시작된 뒤 발생한 오류는 스트림 안으로 전달됩니다. 스트리밍을 참고하세요.