신규어떤 에이전트든 UberLLM에 연결하세요. 키 하나로 모든 모델을 공식 가격 이하로 사용할 수 있습니다.
UberLLM

오류

UberLLM은 OpenAI 스타일의 오류 봉투를 반환하므로 기존 오류 처리가 변경 없이 작동합니다:

{
  "error": {
    "code": "insufficient_credits",
    "message": "Your credit balance is too low to serve this request.",
    "type": "insufficient_credits"
  }
}

추론 표면 (/v1/*)

HTTP code 의미 해결 방법
402 insufficient_credits 선불 잔액이 요청 예약 비용을 충당할 수 없습니다. 대시보드 → 크레딧에서 충전하세요.
402 key_spend_cap_exceeded 이 API key가 설정된 지출 한도(일일 / 월별 / 평생)에 도달했습니다. API key의 한도를 높이거나 제거하거나, 다른 API key를 사용하세요.
400 invalid_request 요청 본문을 파싱할 수 없거나, 모델이 요청을 거부했습니다(메시지에 이유가 명시되어 있습니다). 요청을 수정하세요; 재시도되지 않습니다.
413 request_too_large 요청 본문이 10 MB를 초과합니다 (대부분 base64로 전송된 이미지). 이미지를 https:// 링크로 보내거나, 대화를 줄이세요. 요금이 청구되지 않았습니다.
404 model_not_found model id를 사용할 수 없습니다. 앞에 uberllm/ 접두사를 붙여도 됩니다: uberllm/deepseek/deepseek-v4.1-flash는 deepseek/deepseek-v4.1-flash에 도달합니다. GET /v1/models를 확인하고 id를 수정하세요.
400 context_length_exceeded 프롬프트가 모델이 허용하는 길이보다 깁니다 (판매자에 관계없이). models 목록이 없는 /v1/chat/completions에서는 이를 처리할 수 있는 가장 가까운 모델이 대신 응답합니다 (응답의 model에 이름이 명시됨). 이 오류는 처리할 수 있는 모델이 없거나 /v1/messages에서 발생합니다. 메시지에 두 가지 크기와 이를 처리할 수 있는 모델 이름이 제공됩니다. 더 적게 보내거나, 메시지에 명시된 모델을 선택하세요. 요금이 청구되지 않았습니다.
400 tools_not_supported 요청이 tools를 보내지만 모델이 이를 호출할 수 없습니다 (판매자에 관계없이). 위와 동일한 대체 규칙이 적용됩니다. 메시지에 가능한 모델 이름이 명시되어 있습니다. tools 없이 보내거나, 메시지에 명시된 모델을 선택하세요. 요금이 청구되지 않았습니다.
400 max_price_exceeded 현재 provider.max_price 내에서 해당 모델을 판매하는 곳이 없습니다 (그리고 models의 어떤 모델도 이를 처리할 수 없습니다). max_price를 높이거나, 나중에 다시 시도하거나, 다른 모델 이름을 지정하세요. 요금이 청구되지 않았습니다.
400 unsupported_routing_option UberLLM이 적용할 수 없는 provider 옵션입니다 (메시지에 이름이 명시되어 있습니다). 제외하세요; Models & routing를 참조하세요.
400 invalid_metadata metadata는 최대 16개의 텍스트 값으로 구성된 객체가 아닙니다. 태그를 수정하세요; 숫자는 따옴표 안에 넣어야 합니다.
400 unknown_capability best-price: / fastest: alias가 어떤 작업도 지정하지 않습니다. chat, image, image-edit, text-to-video, image-to-video, music, speech, transcription 중 하나를 사용하세요.
400 wrong_endpoint 모델(또는 alias)이 이 경로에서 수행하지 않는 작업을 수행합니다: /v1/chat/completions 또는 /v1/messages로 전송된 이미지, 비디오, 음악, 음성 또는 전사 모델, 미디어 경로로 전송된 chat 모델, 또는 음성과 전사가 바뀐 경우. 메시지에 올바른 경로가 명시되어 있습니다. 아무것도 실행되기 전에 거부됩니다; 요금이 청구되지 않으며, Activity에 거부됨으로 표시됩니다. 메시지에 명시된 경로로 보내세요 (/v1/models/{id}의 endpoints에서도 확인 가능).
503 no_timing_data 모델을 비교하기에 충분한 요청 시간이 측정되기 전에 fastest:가 요청되었습니다. best-price:를 사용하거나 모델 이름을 지정하세요.
429 rate_limited 이 API key가 분당 요청 한도를 초과했거나, 자동 재시도 후에도 marketplace가 rate-limiting을 계속했습니다. 간격을 두고 jitter와 함께 재시도하세요; API key의 rate limit을 높이세요.
503 no_available_provider 자동 재시도 후에도 현재 해당 모델을 제공할 수 있는 곳이 없습니다 (판매자 없음, 모든 판매자 실패 또는 시작이 너무 느림, 또는 provider 옵션으로 인해 라우팅할 대상이 없음), 또는 best-price: / fastest: alias가 현재 사용 가능한 작업에 대한 모델을 찾지 못했습니다. 메시지에 모델 또는 작업 이름이 명시되어 있습니다. 이는 자체 공급자 계정이 실패한 판매자의 경우도 포함합니다: UberLLM은 다른 판매자를 시도하며, API key가 잘못된 것처럼 해당 판매자의 오류를 전달하지 않습니다. 잠시 후 다시 시도하거나 다른 모델을 선택하세요. 요금이 청구되지 않았습니다.
503 service_unavailable UberLLM 측의 일시적인 문제입니다. 몇 분 후에 다시 시도하세요.

이미지, 비디오 및 음악 요청에는 자체 코드 몇 가지가 추가됩니다 (image_required, invalid_image_url (사진으로 연결되지 않는 원본 사진 링크), max_cost_too_low, idempotency_key_reused, artifact_expired); Make a video or image를 참조하세요.

거부되거나 실패한 chat 요청은 대시보드 → Activity에 전송된 메시지와 함께 표시됩니다. chat, 이미지, 비디오, 음악, 음성 및 전사 응답에는 오류를 포함하여 해당 Activity 행과 동일한 id를 가진 X-Request-Id header가 포함됩니다.

오류가 반환되기 전에 재시도가 자동으로 이루어집니다: 첫 번째 content byte 전까지 최대 4회 시도. Models & routing를 참조하세요.

예약 및 중단

UberLLM은 프록싱 전에 예상 비용을 예약하고, 실제 사용량에 따라 나중에 정산합니다. 요청에 오류가 발생하거나, 중단되거나, 스트리밍 도중 연결이 끊어지면 사용되지 않은 예약은 해제됩니다 — 실제로 생성된 content에 대해서만 요금이 청구됩니다. 중단된 stream은 tokenizer 추정치로 정산되며 대시보드 → Activity에 플래그가 지정됩니다.

속도 제한

키별 속도 제한은 고정된 윈도우 방식으로 적용됩니다. 추론 서비스에서 속도 제한 확인은 fail closed 방식으로 작동합니다. 즉, UberLLM이 귀하의 제한을 확인할 수 없는 경우, 요청은 제한 없이 처리되는 대신 거부됩니다. 대시보드 → API 키에서 키의 분당 요청 제한을 설정하거나 (또는 상향 조정하세요).

모든 인증된 /v1/* 응답에는 키의 현재 윈도우 정보가 포함됩니다:

헤더 의미
X-RateLimit-Limit 이 키가 분당 보낼 수 있는 요청 수
X-RateLimit-Remaining 현재 분에 남은 요청 수
X-RateLimit-Reset 윈도우가 다시 시작되는 시점 (유닉스 초)
Retry-After 이 제한에서 429 발생 시: 재시도하기 전에 기다려야 할 시간 (초)

X-RateLimit-Remaining이 0에 가까워지면 속도를 늦추세요. 윈도우를 읽을 수 없을 때는 헤더가 생략됩니다.

판매자 API (/api/v1/seller/*)

다음은 표준 REST 코드를 사용합니다:

HTTP code 의미
400 invalid_request 유효성 검사 실패 (예: 비-https endpoint_url, absolute에 대한 가격 누락, multiplier가 0 < m ≤ 1.5 범위 밖). 메시지에 필드 이름이 명시됩니다.
400 model_not_in_catalog model_id은(는) 알려진 카탈로그 모델이 아닙니다.
401 unauthorized 대시보드 JWT가 없거나 유효하지 않습니다.
404 seller_not_found 귀하의 조직에 판매자가 없습니다 — 먼저 POST /api/v1/seller/register에 문의하세요.
404 offer_not_found 귀하의 판매자 아래에 해당 ID를 가진 제안이 없습니다.
409 invalid_status_transition 불법적인 상태 변경 — 예: delisted 제안 재개 (상장 폐지는 최종 상태입니다).

참고: 유효성 검사 프로브 실패는 오류 응답이 아닙니다. 제안은 성공적으로 생성/업데이트되며 status: "paused"와 이유를 설명하는 last_probe_error와 함께 반환됩니다 — 엔드포인트를 수정하고 PATCH을(를) active로 다시 설정하여 재프로브하세요. Sellers]를 참조하세요.

인증 오류

HTTP 의미
401 누락되었거나 유효하지 않은 Authorization 헤더. 추론 키는 Bearer ull_...입니다. 대시보드 엔드포인트는 계정 JWT를 사용합니다.
403 키는 유효하지만 필요한 스코프가 부족합니다 (예: 추론 전용 키가 대시보드 엔드포인트를 호출하는 경우).