SUB&SUB · 문서
언어
테마

API 레퍼런스

SUB&SUB는 https://api.subnsub.com/v1에서 멀티 프로바이더 릴레이를 제공합니다. OpenAI 클라이언트는 /v1/chat/completions를, Anthropic 클라이언트는 /v1/messages를 호출합니다. 동일한 sk-cf-... 키가 양쪽 모두를 라우팅합니다 — 요청 본문에서 모델을 선택하면 릴레이가 업스트림을 선택합니다.

서비스 이용 가능 범위

기존 계정만 이용 가능 현재 API 액세스는 2026년 6월 8일(베이징 시간) 이전에 생성된 계정으로 제한됩니다. 신규 가입자는 공용 계정과 SUB&SUB Tools를 이용할 수 있지만 API 콘솔 접속, API 키 생성, API 크레딧 충전 또는 릴레이 호출은 할 수 없습니다. API 가입을 다시 열면 이 섹션을 업데이트합니다.

빠른 시작

API가 활성화된 기존 계정에는 다음 세 가지가 필요합니다:

  1. Base URL: https://api.subnsub.com/v1 (OpenAI 클라이언트) 또는 https://api.subnsub.com (Anthropic 클라이언트 — SDK가 직접 /v1/messages를 덧붙입니다)
  2. API 키: 콘솔에서 발급된 sk-cf-...
  3. 모델: 16 지원 모델 중 하나 — 예: gpt-5.4-mini 또는 claude-sonnet-5

인증

모든 요청에는 Authorization: Bearer sk-cf-... 헤더가 포함되어야 합니다. 키는 콘솔에서 발급되며 SHA-256 해시로 저장됩니다 — 생성 화면을 벗어나면 평문은 영구히 사라지므로 즉시 저장하세요.

연동(챗봇, IDE 플러그인, 배치 작업)마다 키를 하나씩 생성하세요. 유출된 키를 콘솔에서 취소하면 수 초 내에 적용됩니다.

엔드포인트

안정적인 공개 인터페이스는 아래 내용과 기계 판독 가능한 OpenAPI 3.1 문서에 설명되어 있습니다. 여기에 없는 필드는 upstream으로 전달될 수 있지만 SUB&SUB의 호환성 보장에 자동으로 포함되지는 않습니다.

POST /v1/chat/completions

POST/v1/chat/completions

채팅 완성 요청을 보냅니다. 요청 형식은 OpenAI Chat Completions API와 동일합니다 — OpenAI SDK가 수정 없이 작동합니다.

파라미터타입설명
modelstring검증된 모델 ID 중 하나입니다.
messagesarray대화 기록입니다. 각 항목: {role, content}, rolesystem / user / assistant.
streambooleantrue이면 응답이 SSE 청크로 전송됩니다. 스트리밍 참조.
stream_optionsobject선택 사항. 릴레이는 항상 업스트림에 {include_usage: true}를 강제하여 마지막 청크가 토큰 사용량 블록을 담도록 합니다 — 이를 재정의해도 효과가 없습니다.
max_tokensinteger완성 길이를 제한합니다. 기본값은 모델의 최대치입니다.
temperaturenumber0 – 2. 높을수록 무작위성이 커집니다.

POST /v1/responses

POST/v1/responses

OpenAI Responses API — 최신 OpenAI 요청 형태(client.responses.create(...)). 기본적으로 gpt-*, 채팅/완료와 동일한 호환성 브리지를 통해 claude-*의 모든 카탈로그 모델과 함께 작동합니다. 사용량은 동일하게 측정됩니다. 즉, 모델의 계층 비율에 따른 입력/출력 토큰입니다.

파라미터타입설명
modelstring모든 카탈로그 모델 ID.
inputstring | array프롬프트 — Responses API이 정의하는 일반 문자열 또는 구조화된 항목 목록입니다.
max_output_tokensinteger응답 길이를 제한합니다(추론 + 가시적 출력 결합).
reasoningobject{"effort": "..."}reasoning_effort와 동일한 5개 값.
streambooleantrue인 경우 표준 응답 SSE 시퀀스(response.created, response.output_text.delta, …, response.completed)를 스트리밍합니다.
backgroundboolean지원되지 않습니다. background: true400 unsupported_background_mode을 반환합니다. 릴레이는 동기 실행만 제공합니다.
참고 :online 웹 검색 접미사는 이 끝점에 영향을 미치지 않습니다. 접미사는 제거되지만 검색 컨텍스트는 삽입되지 않습니다(쿼리는 응답 요청이 전달하지 않는 messages에서 추출됩니다). 웹 검색에는 /v1/chat/completions 또는 /v1/messages을 사용하세요.

실행 가능한 Responses 예시:

curl https://api.subnsub.com/v1/responses \
  -H "Authorization: Bearer sk-cf-xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-mini",
    "input": "Explain exponential backoff in two sentences."
  }'

POST /v1/messages

POST/v1/messages

claude-* 모델을 위한 Anthropic 네이티브 엔드포인트입니다 — Anthropic SDK(anthropic-sdk-python, @anthropic-ai/sdk, claude-code)가 이 경로에 대해 수정 없이 작동합니다. base URL을 https://api.subnsub.com로 지정하고 x-api-key 헤더로 인증하세요(클라이언트가 선호한다면 Authorization-Bearer 방식도 작동합니다).

파라미터타입설명
modelstringclaude-* 모델 ID입니다(사용 가능한 모델 참조). 여기에 OpenAI 모델을 전달하면 400 invalid_request_error가 반환됩니다.
max_tokensintegerAnthropic 필수 항목 — 어시스턴트 응답 길이를 제한합니다.
messagesarray대화 기록, Anthropic 형식: {role, content}, roleuser / assistant.
streambooleantrue이면 표준 Anthropic SSE 이벤트 시퀀스를 반환합니다: message_start, content_block_delta, message_delta, message_stop.
thinkingobjectAnthropic에 그대로 전달되었습니다. 지원되는 경우 {"type":"adaptive"}을 사용하세요. Fable 5는 이 필드가 생략된 경우에도 항상 적응적 사고를 사용합니다. 합성 -thinking 모델 ID가 없습니다.
cache_controlobject프롬프트 캐싱이 지원됩니다. 캐시 쓰기 토큰은 티어 입력 단가의 1.25×로, 캐시 읽기 토큰은 0.10×로 청구됩니다.
참고 Claude 요청은 공식 Anthropic 계정에서 직접 처리됩니다. 아래에 나열된 정확한 공식 모델 ID를 사용하세요.

실행 가능한 Anthropic Messages 예시:

curl https://api.subnsub.com/v1/messages \
  -H "x-api-key: sk-cf-xxxxxxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

POST /v1/messages/count_tokens

POST/v1/messages/count_tokens

전송 전에 Anthropic 형식 프롬프트의 토큰을 계산합니다. /v1/messages에 보낼 때와 동일한 x-api-key, anthropic-version, model, system, messages, tools 필드를 사용하세요. 이 엔드포인트는 과금되지 않습니다. :online 접미사는 제거되지만 검색 결과를 가져오거나 계산하지 않습니다.

curl https://api.subnsub.com/v1/messages/count_tokens \
  -H "x-api-key: sk-cf-xxxxxxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Count this prompt."}]
  }'

GET /v1/models

GET/v1/models

실제로 사용할 수 있는 모델을 나열해 보세요. 릴레이는 업스트림 제품군 모두 상태를 확인하고 16개의 확인된 공개 ID를 반환합니다. 이는 POST 엔드포인트가 적용하는 것과 동일한 화이트리스트이므로 검색에서는 400하는 모델을 광고하지 않습니다. 업스트림 카탈로그에 연결할 수 없는 경우 엔드포인트는 오해의 소지가 있는 빈 목록 대신 502 models_unreachable을 반환합니다.

# sample response (truncated)
{
  "object": "list",
  "data": [
    { "id": "gpt-5.4-mini",      "type": "model", ... },
    { "id": "gpt-5.4",           "type": "model", ... },
    { "id": "claude-sonnet-5",     "type": "model", ... },
    { "id": "claude-fable-5",      "type": "model", ... },
    ...
  ]
}

호환성 범위

OpenAI 호환이 모든 upstream 모델의 모든 필드를 모든 경로에서 보장한다는 뜻은 아닙니다. 지원 범위는 다음 세 단계입니다:

상태상세
문서화 및 안정 지원위 네 엔드포인트의 텍스트 생성, 동기 및 스트리밍 응답, 문서화된 reasoning 제어, Anthropic 프롬프트 캐싱, Chat Completions와 Messages의 :online, 인증, 사용량 측정 및 문서화된 오류 형식.
전달 지원(모델별 상이)도구/함수 호출, strict tools, 구조화 출력/JSON Schema, 샘플링 제어, 중지 시퀀스, 이미지나 문서를 포함한 multipart 콘텐츠, 모델 컨텍스트/출력 한도. 엣지는 로컬 검증 없이 이 필드를 전달하지만 지원 여부와 정확한 응답 형식은 모델 및 프로토콜마다 다를 수 있습니다. 프로덕션 적용 전에 정확한 모델과 payload를 테스트하세요. 공급자 간 정규화는 보장하지 않습니다.
제공하지 않음백그라운드 Responses 실행, Responses의 :online, OpenAI 이미지 생성, Audio, Realtime, Batch, Files, Embeddings, Moderation API, 합성 Claude -thinking 별칭, OpenAI minimal reasoning effort.
openapi.json과 이 페이지를 지원 계약으로 간주하세요. upstream이 현재 허용하는 필드라도 SUB&SUB의 영구 보장이 되는 것은 아닙니다.

사용 가능한 모델

두 개의 상류 가족. 7 OpenAI 모델은 공유 ChatGPT 계층 계정으로 라우팅됩니다. 9 Claude 모델은 공식 Anthropic 계정에서 제공됩니다. 토큰당 요율은 등급에 따라 다릅니다(가격 참조). 두 가지 모두에 동일한 키가 적용됩니다.

OpenAI

모델 ID패밀리티어비고
gpt-5.4-mini GPT-5.4Mini 빠르고 저렴함. 채팅 & 코딩의 권장 기본값.
gpt-5.4 GPT-5.4Standard풀사이즈 GPT-5.4 — 더 느리지만 더 강한 추론.
gpt-5.4-2026-03-05GPT-5.4Standardgpt-5.4의 날짜 스냅샷.
gpt-5.5 GPT-5.5Premium 최신 플래그십.
gpt-5.6-luna GPT-5.6Luna 경량 GPT-5.6 — 미니와 표준 사이.
gpt-5.6-terra GPT-5.6Standard중간 크기 GPT-5.6 — gpt-5.4과 동일한 요금.
gpt-5.6-sol GPT-5.6Premium 상위 GPT-5.6 — gpt-5.5과 동일한 요율.

Anthropic

모델 ID패밀리티어비고
claude-fable-5 Fable 5 Fable Anthropic의 가장 유능한 널리 출시된 모델; 적응적 사고는 항상 켜져 있습니다.
claude-haiku-4-5-20251001 Haiku 4.5 Mini 가장 작은 Claude — gpt-5.4-mini와 동일한 토큰당 단가.
claude-sonnet-4-5-20250929 Sonnet 4.5 Standard중간 티어 Claude — gpt-5.4와 동일한 토큰당 단가.
claude-sonnet-4-6 Sonnet 4.6 Standard최신 Sonnet 튜닝 — Standard 티어, sonnet-4.5와 동일 단가.
claude-sonnet-5 Sonnet 5 Sonnet 5 Intro최신 Sonnet; 신규 할인 가격은 2026년 8월 31일까지 적용됩니다.
claude-opus-4-5-20251101 Opus 4.5 Ultra 프런티어 Claude. Anthropic 리스트 가격으로 청구 — 마진 없음(요금 참조).
claude-opus-4-6 Opus 4.6 Ultra 최신 Opus 튜닝.
claude-opus-4-7 Opus 4.7 Ultra 이전 Opus 스냅샷.
claude-opus-4-8 Opus 4.8 Ultra 최신 Opus 스냅샷.
참고 Claude 카탈로그는 공식 Anthropic 모델 ID를 사용합니다. 프롬프트 캐싱이 지원됩니다. 캐시는 계층 입력 속도의 1.25배로 청구서를 쓰고 0.10배의 속도로 읽습니다(Pricing 참조).
Fable 거절 Fable 5개의 안전 분류자는 stop_reason: "refusal" 및 빈 콘텐츠 배열을 사용하여 HTTP 200을 반환할 수 있습니다. 클라이언트는 HTTP 상태만 사용하는 것이 아니라 stop_reason에서 분기하고 claude-opus-4-8을 사용하여 요청을 다시 시도해야 합니다. OpenAI 프로토콜 엔드포인트를 통해 동일한 결과가 finish_reason: "content_filter"(채팅/완료) 또는 incomplete_details.reason: "content_filter"(응답)이 포함된 status: "incomplete"로 노출됩니다. 즉각적인 거부는 잔액에서 차감되지 않습니다. 부분 출력 후 중간 거부가 정상적으로 청구됩니다.
사용 불가 폐기된 OpenAI ID(gpt-5.2*gpt-5.3-codex*), 기본 gpt-5.6 별칭(위에서 명명된 변형 사용), OpenAI Pro/이미지/오디오/실시간 변형, 점 표기 ID(예: claude-sonnet-4.5) 및 합성 -thinking 모델 ID는 사용할 수 없습니다. 위의 정확한 ID와 Anthropic의 기본 thinking 필드를 사용하세요.

추론 강도

위의 모든 OpenAI 모델은 추론 모델입니다. 즉, 백엔드는 시각적 출력을 방출하기 전에 더 많거나 더 적은 "생각" 토큰을 소비할 수 있습니다. 예산을 제어하려면 OpenAI /v1/chat/completions 요청 본문에 reasoning_effort(또는 /v1/responsesreasoning: {"effort": ...})을 설정하세요. Claude의 경우 Anthropic 기본 thinkingoutput_config.effort 필드를 사용합니다. /v1/messages 섹션을 참조하세요. OpenAI 모델은 동일한 5가지 노력 값을 허용합니다.

동작
none 사고 없음 — 곧바로 답변. 가장 저렴하고 빠릅니다.
low 짧은 추론 단계.
medium 필드를 전달하지 않을 때의 기본값. 균형 잡힘.
high 더 깊은 추론. 비단순 코딩 / 다단계 문제에 권장.
xhigh 최대 강도. 가장 느리고 비쌈; 정말 필요한 어려운 분석에만 사용하세요.
# Two equivalent forms — pick whichever your SDK supports
{
  "model": "gpt-5.4-mini",
  "reasoning_effort": "high",
  "messages": [ ... ]
}

{
  "model": "gpt-5.5",
  "reasoning": { "effort": "xhigh" },
  "messages": [ ... ]
}
비용 사고 토큰은 청구상 출력 토큰으로 계산됩니다 — 강도가 높을수록 출력 토큰이 늘어나 동일 프롬프트에서 청구액이 커집니다. 토큰당 단가는 변하지 않습니다.
참고 OpenAI 프로토콜은 'minimal'도 정의하지만, 이 릴레이의 모델은 이를 거부합니다: "'minimal' is not supported with this model". 위의 다섯 가지 값을 사용하세요.

스트리밍

Server-Sent Events를 받으려면 "stream": true로 설정하세요. 마지막 청크는 usage 블록을 담고(업스트림에 stream_options.include_usage를 강제하므로 토큰 수가 항상 방출됩니다), 그다음 리터럴 data: [DONE]이 스트림을 닫습니다.

# Streaming format (line by line)
data: {"id":"resp_...","choices":[{"delta":{"content":"Hi"}}]}

data: {"id":"resp_...","choices":[{"delta":{"content":"!"}}]}

data: {"id":"resp_...","choices":[],"usage":{"prompt_tokens":18,"completion_tokens":11,"total_tokens":29}}

data: [DONE]

실행 가능한 Python 스트리밍 예시:

from openai import OpenAI

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

stream = client.chat.completions.create(
    model="gpt-5.4-mini",
    messages=[{"role": "user", "content": "Hello"}],
    stream=True,
)
for chunk in stream:
    text = chunk.choices[0].delta.content if chunk.choices else None
    if text:
        print(text, end="", flush=True)

엔드포인트가 지원하는 모든 모델 ID에 :online을 덧붙이면 릴레이가 모델로 전달하기 전에 웹 검색을 실행하고, 그 결과를 대화 앞에 추가해 답변이 최신 데이터에 근거하도록 합니다. 이 접미사는 /v1/chat/completions/v1/messages에서 작동합니다(후자는 여전히 claude-* 베이스가 필요합니다). 검색 전용 요청 필드는 필요하지 않습니다.

# Same call as before — just :online on the model
curl https://api.subnsub.com/v1/chat/completions \
  -H "Authorization: Bearer sk-cf-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-mini:online",
    "messages": [
      {"role": "user", "content": "What did Anthropic ship this week?"}
    ]
  }'

작동 방식: 릴레이는 :online을 제거하고, 가장 최근 사용자 메시지를 쿼리로 삼아(400자로 제한) Tavily를 호출해 가능하면 추출된 페이지 텍스트와 함께 최대 3개의 결과를, 그리고 선택적으로 Tavily가 생성한 요약을 받은 다음, 요청을 업스트림으로 보내기 전에 명확히 구분된 <search_results> 블록으로 그 동일한 사용자 턴 앞에 추가합니다. 검색 호출에는 8초 타임아웃이 있습니다. 결과는 의도적으로 user 역할에 주입되며 — 시스템 프롬프트에는 절대 주입되지 않습니다 — 따라서 신뢰할 수 없는 조각이 시스템 우선순위 지시로 격상될 수 없습니다.

<search_results> 블록은 다음과 같이 보입니다. 그 앞에는 모델에게 이 블록을 신뢰할 수 없는 외부 데이터로 취급하고 번호가 매겨진 항목을 인라인으로 인용하라고 알리는 한 줄짜리 지시가 붙습니다:

<search_results query="What did Anthropic ship this week?" retrieved="2026-05-21">
Summary: <short LLM-generated synthesis of the result set>

[1] Anthropic launches Opus 4.8
URL: https://www.anthropic.com/news/opus-4-8
<extracted page text, or short snippet if extraction failed — up to ~2000 chars>

[2] ...
</search_results>
동작상세
비용현재 추가 요금 없음 — 모델의 일반 토큰당 단가만 지불하며, 검색 호출 비용은 릴레이가 흡수합니다. 주입된 <search_results> 블록은 입력 토큰으로 계산되므로 :online 없이 동일한 질문을 했을 때보다 프롬프트 토큰 청구가 더 높아질 수 있습니다.
실패 모드소프트. Tavily가 타임아웃되거나 오류가 나면 요청은 검색 컨텍스트 없이 모델로 계속 진행됩니다(여전히 답변은 받지만 근거가 없을 뿐입니다). 유일한 하드 실패는 릴레이에 검색이 전혀 구성되어 있지 않을 때의 503 search_unavailable입니다.
count_tokens/v1/messages/count_tokens는 접미사를 제거하지만 Tavily를 호출하지는 않습니다 — 카운트는 증강된 프롬프트가 아니라 원래 프롬프트를 반영합니다.
멀티턴마지막 사용자 턴만 쿼리되고 증강됩니다; 이전 턴은 손대지 않습니다. 다시 검색하려면 모델에 :online을 그대로 둔 채 새 사용자 메시지를 보내세요.

:online을 사용할 시점

릴레이는 요청당 한 번의 Tavily 호출을 하고 결과를 주입합니다 — 에이전트형 검색 루프가 아닙니다. 모델은 Perplexity Sonar나 ChatGPT 브라우즈 도구처럼 본 내용에 따라 재검색을 결정하지 않습니다. 이 한계를 염두에 두고 계획하세요:

적합부적합
시의성 있는 사실(뉴스, 가격, 버전 번호, 출시일)공개 웹에 없는 비공개 또는 붙여넣은 코드 — 근거 없이 프롬프트 노이즈만 늘립니다
공식 문서나 공지 찾기수학, 추론, 번역, 창작 — 근거로 삼을 것이 없음
원래라면 검색으로 확인했을 모든 것이미 학습 데이터에 있는 안정적인 지식("이진 트리란 무엇인가")

마지막 사용자 메시지를 독립적인 검색 쿼리로 작성하세요. 검색은 가장 최근 사용자 턴의 리터럴 텍스트(400자로 제한)에 대해 실행되므로, "그럼 최신 버전은?" 같은 대화형 후속 질문은 컨텍스트가 없는 쓸모없는 쿼리가 됩니다. 멀티턴 채팅에서 :online을 추가할 때는 주제를 다시 기술하세요 — 예: "the latest one"이 아니라 "latest version of the Anthropic Python SDK"처럼.

다단계 종합이 필요한 질문(비교·대조, 심층 리서치)은 여러 턴으로 나누고 각각에 :online을 추가하세요. 모델은 각 턴의 새로운 결과를 읽으며, 다음 쿼리는 직접 조정하면 됩니다. 주입된 <search_results> 블록은 업스트림으로만 전송된다는 점에 유의하세요 — 클라이언트로 다시 반향되지 않으며 다음 요청에 보존되지도 않으므로, 이후 턴이 이전 출처의 세부 정보에 의존한다면 모델에게 그것을 가시적인 응답에 요약하도록 요청하세요. 원샷 리서치 모드는 지원되지 않습니다.

높은 추론 강도(reasoning_effort: "high")와 결합해 모델이 첫 결과에 기대는 대신 반환된 출처를 실제로 따져보도록 하세요. 주입된 지시는 모델에게 번호가 매겨진 출처를 [1], [2]처럼 인라인으로 인용하라고 요청하므로 출력에는 보통 그러한 인용이 포함됩니다 — 다만 모델이 그 형식에 엄격히 구속되지는 않습니다.

오류

엔벨로프는 호출한 엔드포인트에 따라 달라집니다 — 릴레이는 호출자의 SDK에 맞는 프로토콜로 오류를 반환하며, 업스트림 오류는 그대로 전달됩니다.

OpenAI 경로(/v1/chat/completions, /v1/responses, /v1/models) — OpenAI 엔벨로프:

{ "error": { "message": "...", "type": "...", "code": "..." } }

Anthropic 경로(/v1/messages, /v1/messages/count_tokens) — Anthropic 엔벨로프:

{ "type": "error", "error": { "type": "...", "message": "..." } }

Anthropic 엔벨로프는 다른 형식을 사용합니다 — code 필드가 없고, 판별자 type: "error"가 최상위에 있습니다(내부 error.type이 카테고리를 제공, 예: authentication_error, invalid_request_error, permission_error, api_error). Anthropic SDK는 이미 이 형식을 파싱합니다; 일반 OpenAI SDK 오류 핸들러는 그렇지 않으므로 /v1/messages는 Anthropic SDK로 호출하세요(또는 raw HTTP를 사용하세요).

상태 코드는 두 프로토콜 모두에서 표준 HTTP 코드입니다:

상태OpenAI code / Anthropic error.type의미
401invalid_api_key / authentication_errorsk-cf-... 키가 없거나 알 수 없습니다.
402insufficient_balance / permission_error계정 잔액이 마이너스입니다. 콘솔 청구 탭에서 충전하세요.
403key_revoked / permission_error키가 취소되었습니다.
403account_closed / permission_errorAPI 액세스에 대해 계정이 활성화되어 있지 않습니다. 2026년 6월 8일 서비스 중단 이후의 가입에는 API 서비스가 포함되지 않습니다.
400model_not_available / invalid_request_error보낸 model이 검증된 카탈로그에 없거나 엔드포인트에 맞지 않습니다(예: /v1/messages에 OpenAI 모델) — 사용 가능한 모델을 확인하세요.
400unsupported_background_mode / —/v1/responsesbackground: true — 릴레이는 동기 실행만 제공합니다. OpenAI 봉투만 가능합니다.
429rate_limit_exceeded / rate_limit_error공유 upstream 용량이 일시적으로 제한되었습니다. retry-after가 있으면 따르고 지수 백오프와 jitter를 적용해 재시도하세요.
503현재 요청을 처리하는 업스트림 계정이 없습니다 — 대개 일시적인 풀 전체의 레이트 리밋 구간입니다. 잠시 후 다시 시도하세요.
503search_unavailable / api_error:online을 사용했지만 이 릴레이에 웹 검색이 구성되어 있지 않습니다. 웹 검색을 참조하세요.
502upstream_unreachable / api_error릴레이가 백엔드에 연결하지 못했습니다. 짧은 백오프 후 재시도하세요.
500server_error / api_errorupstream 접속 전후에 릴레이가 실패했습니다. 작업을 안전하게 반복할 수 있을 때만 재시도하고, 그렇지 않으면 먼저 사용 내역을 확인하세요.

재시도 및 안정성

재시도 횟수를 제한하세요. 릴레이는 공유 upstream 용량을 사용하며 생성 요청은 멱등적이지 않습니다.

요금 및 청구

종량제이며, 마이크로달러 단위로 토큰당 청구됩니다(1마이크로 = $0.000001 = 1센트의 1/10,000)므로 1센트 미만 요청도 정확히 추적됩니다. 단가는 티어별 1M 토큰 기준입니다 — 각 모델이 어느 티어에 매핑되는지는 모델 표를 참조하세요.

티어모델입력 / 1M출력 / 1M
Mini gpt-5.4-mini, claude-haiku-4-5-20251001 $0.20$1.60
Luna gpt-5.6-luna $0.30$2.40
Standardgpt-5.4, gpt-5.4-2026-03-05, gpt-5.6-terra, claude-sonnet-4-5-20250929, claude-sonnet-4-6$0.75$6.00
Premium gpt-5.5, gpt-5.6-sol $1.10$8.80
Sonnet 5 Introclaude-sonnet-5 $2.00$10.00
Ultra claude-opus-4-5-20251101, claude-opus-4-6, claude-opus-4-7, claude-opus-4-8$5.00$25.00
Fable claude-fable-5 $10.00$50.00

Fable 및 Ultra 요금은 Anthropic의 공시 정가와 일치합니다. Sonnet 5는 2026년 8월 31일까지 Anthropic의 신규 $2/$10 요율을 사용합니다. 해당 날짜 이후 게시된 표준 가격은 $3/$15입니다. 다른 계층은 풀링된 구독 지원 덕분에 업스트림 요금보다 낮게 실행됩니다.

추론 토큰(OpenAI에 reasoning_effort을 설정하거나 Claude에 Anthropic의 기본 thinking 필드를 설정하는 경우)은 모델 계층 요율에서 output 토큰으로 계산됩니다. 높은 노력에 대한 별도의 추가 요금은 없지만 심층적 사고 요청은 쉽게 10~50배 더 많은 출력 토큰을 생성할 수 있습니다. 노력이 필요하지 않으므로 달러 지폐도 이에 따라 확장됩니다.

Anthropic 프롬프트 캐싱은 별도 항목으로 청구됩니다: 캐시 쓰기는 티어 입력 단가의 1.25×, 캐시 읽기0.10×입니다. 따라서 haiku-4.5 캐시 적중 비용은 0.20 × 0.10 = $0.02 per 1M tokens, sonnet-4.5 캐시 적중 비용은 0.75 × 0.10 = $0.075 per 1M tokens입니다. 캐시 토큰은 요청별 청구 기록에 항목별로 기록되며, 콘솔에서 세부 내역을 확인할 수 있습니다.

잔액은 각 요청이 반환될 때 실시간으로 차감됩니다 — 스트리밍 요청의 경우 [DONE] 청크가 도착한 후 정산이 실행됩니다. 실시간 잔액과 요청별 정산은 /console#billing에서 확인하세요.

충전 콘솔은 Stripe Checkout을 지원합니다 — 카드, Link, Alipay, WeChat Pay를 지원합니다. 크레딧은 만료되지 않습니다.

사용량 제한

현재 키별 레이트 리밋은 없습니다. 공유 업스트림 용량과 제공자 측 스로틀링이 계속 적용됩니다; 이에 걸리면 릴레이는 retry-after 헤더와 함께 429를 반환합니다. 키별 RPM / TPM 제한은 도입 예정입니다.

상태 및 지원

문서 최종 검토일: 2026년 7월 14일.