글 — /v1/chat/completions

OpenAI 채팅 형식 하나로 다섯 벤더의 글 모델을 부릅니다.

가장 많이 쓰는 문이에요. OpenAI 채팅 형식 그대로 받아요. Claude 를 부르시면 저희가 Anthropic 형식으로 번역해 넘기고 답을 다시 OpenAI 형식으로 돌려드려요 — 그래서 OpenAI 형식만 아는 도구(Cursor · Cline · LangChain)에서도 Claude 가 그대로 돌아가요.

가장 짧은 호출
curl https://schoolorder.kr/v1/chat/completions \
  -H "Authorization: Bearer $SCHOOLORDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "안녕하세요"}]
  }'
  • stream: true — 받는 대로 흘려드려요. 긴 답은 이쪽이 안전해요(한 번에 기다리는 시간이 5분이라서요).
  • tools — 도구 호출을 벤더 형식으로 번역해 넘기고, 모델이 부른 도구를 OpenAI 형식으로 돌려드려요.
  • reasoning_effort — 얼마나 따져볼지 고르실 수 있어요. 받는 모델인지는 GET /v1/models 의 supports_effort 가 알려드려요.

요청 파라미터#

요청 본문 (JSON)

파라미터받는 값저희가 하는 일
model필수모델 id 문자열없으면 400 이에요. 모르는 이름이면 404 와 함께 가장 가까운 이름을 알려드려요 — 시키지 않은 모델로 몰래 바꾸지 않아요.
messages필수role · content 배열Claude 로 갈 때는 role: system 을 따로 떼어 Anthropic 의 system 필드로 옮겨요. 그쪽은 system 을 messages 안에 못 받거든요.
max_tokens정수 (max_completion_tokens 도 받아요)Anthropic 은 이 값이 필수예요. 안 보내시면 8,192 로 채워 넘겨요 — 안 채우면 400 이 나거든요.
streamtrue / false그대로 넘겨요. 답을 받는 대로 흘려드려요.
reasoning_effortlow · medium · highClaude 로 갈 때는 Anthropic 이 실제로 받는 output_config.effort 로 옮겨요. 못 받는 모델엔 아예 안 실어요. 받는 모델인지는 GET /v1/models 의 supports_effort 로 보세요.
temperature · top_p숫자Claude 5 세대(Fable · Opus 5 · Sonnet 5 · Opus 4.8 · 4.7)로 갈 때는 빼고 넘겨요. 그 모델들이 이 값에 400 을 내는데, 어차피 안 읽는 값이라 빼도 답이 같아요.
stop문자열 또는 배열Claude 로 갈 때 stop_sequences 로 옮기고, 문자열 하나면 배열로 감싸요.
toolsOpenAI 함수 배열Anthropic 형식(input_schema)으로 번역해 넘기고, 모델이 부른 도구를 OpenAI 의 tool_calls 로 되돌려 드려요.
tool_choicenone · auto · required · 특정 함수Anthropic 형식으로 옮겨요. 다만 Fable 5.1 은 강제 호출에 400 을 내서 auto 로 낮춰 보내요 — 400 보다 「강제가 안 됨」이 낫다고 봤어요.

응답#

OpenAI 채팅 응답 그대로예요. Claude 에서 온 답도 저희가 이 모양으로 되돌려 드리니 받는 코드는 손댈 게 없어요. 끝난 이유(finish_reason)도 OpenAI 낱말로 옮겨요 — end_turn·stop_sequence 는 stop, max_tokens 는 length, tool_use 는 tool_calls, 거절은 content_filter 예요.

응답 예시 (줄임)
{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "model": "claude-sonnet-5",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "안녕하세요!" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 12, "completion_tokens": 8, "total_tokens": 20 }
}

응답 헤더 — 저희가 붙이는 것

파라미터받는 값저희가 하는 일
x-gateway-fallback-depth0 부터의 정수몇 번째 경로에서 성공했는지예요. 0 이면 첫 번에 됐다는 뜻이고, 1 이상이면 벤더가 한 번 막았지만 저희가 다른 경로로 돌려 성공했다는 뜻이에요.

무엇이 되고 무엇이 안 되나#

Claude 를 이 문으로 부르실 때는 저희가 몸통을 Anthropic 형식으로 옮겨요. 그래서 「옮기는 자리가 있느냐」가 곧 「되느냐」예요. 아래는 옮기는 코드를 그대로 읽어 적은 것이고, 다른 벤더(GPT · Gemini · Grok)는 번역 없이 그대로 나가니 그쪽 문서대로 다 돼요.

기능이 문으로 Claude 부르기/v1/messages 로 직접
스트리밍됩니다됩니다
도구 호출됩니다 — 도구를 부르고 그 결과를 먹여 이어가는 여러 턴까지됩니다
그림 입력됩니다 — image_url 을 Anthropic 그림 블록으로 옮겨요(data: 와 http 둘 다)됩니다
생각 강도됩니다 — reasoning_effort 를 output_config.effort 로 옮겨요Anthropic 모양 그대로
프롬프트 캐싱됩니다 — 글 블록의 cache_control 을 같이 옮겨요그대로 나가요
temperatureClaude 5 세대엔 빼고 넘겨요(그 모델이 400 을 내요)그대로 나가서 400 이 날 수 있어요
강제 도구 호출Fable 5.1 에선 auto 로 낮춰요(그 모델이 400 을 내요)그대로 나가요

이 문이 받는 모델#

글 — 대화·요약·번역·코드

POST /v1/chat/completions

Anthropic

model입력 / 1M출력 / 1M컨텍스트
claude-fable-5Claude Fable 5$10$501000K
claude-opus-5Claude Opus 5$5$251000K
claude-sonnet-5Claude Sonnet 5$2$101000K
claude-haiku-4-5Claude Haiku 4.5$1$5200K
claude-opus-4-8Claude Opus 4.8$5$251000K
claude-opus-4-7Claude Opus 4.7$5$251000K
claude-opus-4-6Claude Opus 4.6$5$251000K
claude-sonnet-4-6Claude Sonnet 4.6$3$151000K
claude-sonnet-4-5Claude Sonnet 4.5$3$151000K

OpenAI

model입력 / 1M출력 / 1M컨텍스트
gpt-5.6-solGPT-5.6 Sol$4$20400K
gpt-5.6-terraGPT-5.6 Terra$2$12400K
gpt-5.6-lunaGPT-5.6 Luna$0.2$1.2400K
gpt-5.5GPT-5.5입력 272K 토큰 초과 시 $10 / $45$5$30400K
gpt-5.2GPT-5.2$1.75$14
gpt-5.1GPT-5.1$1.25$10
gpt-5.4GPT-5.4입력 272K 토큰 초과 시 $5 / $22.5$2.5$15400K
gpt-5GPT-5$1.25$10400K
gpt-5-miniGPT-5 mini$0.25$2400K
gpt-5.4-miniGPT-5.4 mini$0.75$4.5400K
gpt-4.1GPT-4.1$2$81000K
gpt-4oGPT-4o$2.5$10128K
gpt-4o-miniGPT-4o mini$0.15$0.6128K
o1o1$15$60200K
o3-minio3-mini$1.1$4.4200K
gpt-5.4-nanoGPT-5.4 nano$0.2$1.25
gpt-5-nanoGPT-5 nano$0.05$0.4
gpt-4.1-miniGPT-4.1 mini$0.4$1.6
gpt-4.1-nanoGPT-4.1 nano$0.1$0.4
o3o3$2$8
o4-minio4-mini$1.1$4.4

Google

model입력 / 1M출력 / 1M컨텍스트
gemini-3.1-pro-previewGemini 3.1 Pro (Preview)입력 200K 토큰 초과 시 $4 / $18$2$121000K
gemini-3.7-flashGemini 3.7 Flash2027-01-01부터 $1.5 / $7.5 (벤더 프로모션 종료)$0.75$3.751000K
gemini-3.6-flashGemini 3.6 Flash2027-01-01부터 $1.5 / $7.5 (벤더 프로모션 종료)$0.75$3.751000K
gemini-3.5-flashGemini 3.5 Flash$1.5$91000K
gemini-3.5-flash-liteGemini 3.5 Flash-Lite$0.3$2.51000K
gemini-3.1-flash-liteGemini 3.1 Flash-Lite$0.25$1.51000K

xAI

model입력 / 1M출력 / 1M컨텍스트
grok-4.6Grok 4.6입력 200K 토큰 초과 시 $4 / $12$2$62000K
grok-4.20-0309-reasoningGrok 4.20 (추론)입력 200K 토큰 초과 시 $2.5 / $5$1.25$2.5
grok-4.20-0309-non-reasoningGrok 4.20 (비추론)입력 200K 토큰 초과 시 $2.5 / $5$1.25$2.5
grok-build-0.1Grok Build 0.1입력 200K 토큰 초과 시 $2 / $4$1$2
grok-4.5Grok 4.5입력 200K 토큰 초과 시 $4 / $12$2$62000K
grok-4.3Grok 4.3입력 200K 토큰 초과 시 $2.5 / $5$1.25$2.52000K

DeepInfra

model입력 / 1M출력 / 1M컨텍스트
deepseek-ai/DeepSeek-V4-FlashDeepSeek V4 Flash (DeepInfra)$0.09$0.181049K
deepseek-ai/DeepSeek-V4-ProDeepSeek V4 Pro (DeepInfra)$1.3$2.61049K
deepseek-ai/DeepSeek-V3.1DeepSeek V3.1 (DeepInfra)$0.25$0.95164K
deepseek-ai/DeepSeek-V3.2DeepSeek V3.2$0.26$0.38164K
deepseek-ai/DeepSeek-R1-0528DeepSeek R1 (추론)$0.5$2.15164K
meta-llama/Llama-3.3-70B-Instruct-TurboLlama 3.3 70B$0.1$0.32131K
meta-llama/Llama-4-Scout-17B-16E-InstructLlama 4 Scout 17B$0.1$0.3328K
meta-llama/Meta-Llama-3.1-8B-Instruct-TurboLlama 3.1 8B$0.02$0.04131K
meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8Llama 4 Maverick 17B$0.2$0.81049K
Qwen/Qwen3-235B-A22B-Instruct-2507Qwen3 235B$0.09$0.55262K
Qwen/Qwen3.5-9BQwen3.5 9B$0.1$0.15262K
Qwen/Qwen3-VL-30B-A3B-InstructQwen3 VL 30B (이미지 입력)$0.15$0.6262K
Qwen/Qwen3-Coder-480B-A35B-Instruct-TurboQwen3 Coder 480B$0.3$1262K
mistralai/Mistral-Small-3.2-24B-Instruct-2506Mistral Small 3.2 24B$0.075$0.2128K
mistralai/Mistral-Nemo-Instruct-2407Mistral Nemo 12B$0.019$0.03131K
moonshotai/Kimi-K2.5Kimi K2.5$0.45$2.25262K
moonshotai/Kimi-K2.6Kimi K2.6$0.75$3.5262K
MiniMaxAI/MiniMax-M3MiniMax M3 (52만 컨텍스트)$0.28$1.1524K
zai-org/GLM-4.7GLM 4.7$0.4$1.75203K
openai/gpt-oss-120bgpt-oss 120B$0.037$0.17131K
openai/gpt-oss-20bgpt-oss 20B$0.03$0.14131K
google/gemma-3-27b-itGemma 3 27B$0.08$0.16131K
google/gemma-4-31B-itGemma 4 31B$0.13$0.38262K
nvidia/NVIDIA-Nemotron-3-Super-120B-A12BNemotron 3 Super 120B$0.085$0.4262K
microsoft/phi-4Microsoft Phi-4$0.07$0.1416K
ibm-granite/granite-4.2-8bIBM Granite 4.2 8B$0.06$0.25131K

이 문서를 AI 에게 넘기시려면 마크다운 원문을 쓰세요 — 주소 끝에 .md 를 붙이면 나와요.