문서
Apigator는 OpenAI 호환입니다. 아무 OpenAI SDK나 base URL로 향하게 하고 Apigator 키를 넣으면, 하나의 엔드포인트로 채팅, 이미지, 오디오, 임베딩, 판단 등 수백 개의 모델을 호출할 수 있습니다.
작업별 레시피와 도구 연동(LangChain, Vercel AI SDK, Cursor, Cline)을 찾으시나요? Cookbook을 참고하세요.
카드 불필요 — 새로 발급한 키로 무료 모델을 사용할 수 있습니다.
대시보드에서 키를 발급받고 바로 무료 모델로 첫 호출을 해 보세요. 요금이 $0이므로 충전이 필요 없습니다. 모든 신규 계정은 $0.042 크레딧(Jev 판단 모델 약 100만 토큰)으로 시작합니다. 유료 모델은 잔액을 충전하면 사용할 수 있습니다.
curl https://api.apigator.ai/v1/chat/completions \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"free/nemotron-nano-30b","messages":[{"role":"user","content":"Hello from Apigator!"}]}'from openai import OpenAI
client = OpenAI(base_url="https://api.apigator.ai/v1", api_key="sk-YOUR_KEY")
resp = client.chat.completions.create(
model="free/nemotron-nano-30b", # free — no balance needed
messages=[{"role": "user", "content": "Hello from Apigator!"}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apigator.ai/v1", apiKey: "sk-YOUR_KEY" });
const r = await client.chat.completions.create({
model: "free/nemotron-nano-30b", // free — no balance needed
messages: [{ role: "user", content: "Hello from Apigator!" }],
});
console.log(r.choices[0].message.content); free/nemotron-nano-30bfree/nemotron-super-120bfree/gemma-4-31b base URL만 바꾸면 연동이 끝납니다. 언어를 선택하세요:
curl https://api.apigator.ai/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello!"}]}'from openai import OpenAI
client = OpenAI(base_url="https://api.apigator.ai/v1", api_key="sk-...")
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apigator.ai/v1", apiKey: "sk-..." });
const r = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(r.choices[0].message.content); Base URL https://api.apigator.ai/v1 · 인증 Authorization: Bearer sk-YOUR_KEY (대시보드에서 키를 발급받으세요).
모든 것이 채팅은 아닙니다. /models의 각 모델에는 사용하는 엔드포인트가 표시되어 있으니 알맞은 것을 선택하세요. base URL과 키는 동일합니다.
| 모달리티 | 엔드포인트 | 모델 id 예시 |
|---|---|---|
| 채팅 | POST /v1/chat/completions | gpt-4o |
| 이미지 생성 | POST /v1/images/generations | openai/gpt-image-1, fal_ai/fal-ai/flux/schnell |
| 음성 합성(TTS) | POST /v1/audio/speech | elevenlabs-tts |
| 음성 인식(STT) | POST /v1/audio/transcriptions | groq/whisper-large-v3 |
| 임베딩 | POST /v1/embeddings | openai/text-embedding-3-small |
| 동영상 생성(비동기) | POST /v1/videos | gemini/veo-3.1-fast-generate-preview |
| 판단(Jev) | POST /v1/decisions | typesafe/jev-latest |
Python 예제는 빠른 시작의 client를 사용한다고 가정합니다.
curl https://api.apigator.ai/v1/images/generations \
-H "Authorization: Bearer sk-..." \
-d '{"model":"openai/gpt-image-1","prompt":"a red crocodile mascot","n":1}'client.images.generate(model="openai/gpt-image-1", prompt="a red crocodile mascot", n=1)const img = await client.images.generate({
model: "openai/gpt-image-1",
prompt: "a red crocodile mascot",
n: 1,
}); curl https://api.apigator.ai/v1/embeddings \
-H "Authorization: Bearer sk-..." \
-d '{"model":"openai/text-embedding-3-small","input":"hello world"}'client.embeddings.create(model="openai/text-embedding-3-small", input="hello world")const e = await client.embeddings.create({
model: "openai/text-embedding-3-small",
input: "hello world",
}); curl https://api.apigator.ai/v1/audio/speech \
-H "Authorization: Bearer sk-..." \
-d '{"model":"elevenlabs-tts","input":"Hello","voice":"21m00Tcm4TlvDq8ikWAM"}' \
--output speech.mp3with client.audio.speech.with_streaming_response.create(
model="elevenlabs-tts", voice="21m00Tcm4TlvDq8ikWAM", input="Hello",
) as r:
r.stream_to_file("speech.mp3")import fs from "fs";
const mp3 = await client.audio.speech.create({
model: "elevenlabs-tts", voice: "21m00Tcm4TlvDq8ikWAM", input: "Hello",
});
fs.writeFileSync("speech.mp3", Buffer.from(await mp3.arrayBuffer())); voice에는 이름이 아닌 ElevenLabs voice id를 지정해야 합니다. 오디오 전체 가이드: /audio.md.
curl https://api.apigator.ai/v1/decisions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{"model":"typesafe/jev-latest","input":"Help! My payouts have been failing for 3 days.",
"questions":[{"name":"is_urgent","type":"predicate","instructions":"Does this convey urgency?"},
{"name":"department","type":"choice","instructions":"Which team should handle this?",
"choices":[{"value":"billing"},{"value":"technical"},{"value":"sales"}]}]}'
# -> {"answers":[{"type":"predicate","name":"is_urgent","probability":0.95},
# {"type":"choice","name":"department","choice":"billing","probabilities":[...],"confidence":0.8}], ...}import requests
r = requests.post(
"https://api.apigator.ai/v1/decisions",
headers={"Authorization": "Bearer sk-..."},
json={"model": "typesafe/jev-latest",
"input": "Help! My payouts have been failing for 3 days.",
"questions": [{"name": "is_urgent", "type": "predicate",
"instructions": "Does this convey urgency?"}]},
)
print(r.json()["answers"][0]["probability"]) # 0.95 = P(yes)const r = await fetch("https://api.apigator.ai/v1/decisions", {
method: "POST",
headers: { Authorization: "Bearer sk-...", "Content-Type": "application/json" },
body: JSON.stringify({
model: "typesafe/jev-latest",
input: "Help! My payouts have been failing for 3 days.",
questions: [{ name: "is_urgent", type: "predicate", instructions: "Does this convey urgency?" }],
}),
});
console.log((await r.json()).answers[0].probability); // 0.95 = P(yes) OpenAI Chat Completions 사양을 따릅니다. GPT-5 계열에서 검증했습니다(2026년 9월):
tools / tool_choice — /v1/chat/completions에서 function calling이 동작하며, reasoning_effort와 함께 사용할 수도 있습니다. reasoning_effort — low / medium / high / xhigh. 생략하면 모델 기본값을 사용합니다. response_format — JSON mode 및 structured outputs. max_completion_tokens — 추론 모델에서는 max_tokens 대신 이것을 사용하세요. verbosity — /v1/chat/completions에서는 지원하지 않으니 생략하세요. 보내면 400 "does not support parameters"가 반환됩니다. Responses API도 모든 모델에서 POST https://api.apigator.ai/v1/responses를 통해 OpenAI Responses 형식으로 사용할 수 있습니다. GPT-5와 GPT-6 모델은 chat/completions에서 function tools를 바로 받습니다 — 게이트웨이가 Responses API로 변환해 줍니다. chat/completions에서 tools를 거부하는 모델이 있다면 같은 tools를 /v1/responses로 보내세요.
호출 가능한 모든 모델(요금 및 각 모델의 엔드포인트 포함)은 apigator.ai/models에서 확인하거나 GET https://api.apigator.ai/v1/models를 호출하세요. Claude를 제외한 모든 모델은 기본적으로 모든 키에 열려 있습니다. Claude는 허용 목록 방식이며 별도의 Anthropic 호환 엔드포인트에서 동작합니다 — Claude Code CLI를 참고하세요.
사용자를 위해 클라이언트를 연결하고 있나요? 아래 원본 markdown 파일을 가져와 그대로 따르세요.
401 — 키가 없거나 유효하지 않습니다.403 claude_not_allowed — 이 키에 Claude가 활성화되어 있지 않습니다(MixerBox에 허용 목록 등록을 요청하세요).400 — 잘못된 요청입니다(예: Perplexity의 최소 max_tokens 같은 공급자 제약).404 model not available — 업스트림에서 활성화되지 않은 id입니다. /models에서 다른 모델을 선택하세요.400 does not support parameters — 이 경로에서 지원하지 않는 파라미터가 요청에 포함되었습니다(위의 OpenAI 호환 파라미터 참고). 해당 파라미터를 빼거나 /v1/responses를 사용하세요.