OpenRouter란? GPT / Claude / Gemini / DeepSeek를 하나의 Key로
OpenRouter는 LLM API 통합 게이트웨이입니다. 단일 API Key와 OpenAI 호환 Endpoint(https://openrouter.ai/api/v1/chat/completions)로 GPT, Claude, Gemini, Llama, DeepSeek, Qwen, Mistral 등 400개 이상 모델을 호출합니다. 인증: Authorization: Bearer $OPENROUTER_API_KEY. 모델 ID는 공급사/모델명 형식(openai/gpt-4o, anthropic/claude-3.5-sonnet, google/gemini-2.5-pro, deepseek/deepseek-chat)입니다.
기존 OpenAI SDK 코드는 base_url과 api_key만 교체하면 됩니다. 모델 전환은 model 문자열 변경 한 줄로 끝납니다.
| 라우팅 계층 | 결정 항목 | 제어 필드 |
|---|---|---|
| Model Routing | 응답에 사용할 모델 | model 또는 openrouter/auto |
| Provider Routing | 동일 모델의 처리 공급사 | provider 객체, 기본값은 가격·안정성 가중 자동 선택 |
내장 Fallback은 1차 공급사 Rate Limit·오류 시 models 배열의 다음 후보로 자동 전환합니다. 25개 이상 무료 모델은 미충전 약 50회/일, Credits $10 이상 충전 시 1000회/일(20회/분)입니다.
다중 계정 관리: OpenAI·Anthropic·Google·Meta·DeepSeek마다 Key, SDK, 청구 대시보드가 분리되어 대사 비용이 모델 수에 비례합니다.
장애 대응 중복 구현: 단일 벤더 Rate Limit·장애 시 Circuit Breaker, 재시도, 모델 전환 로직을 애플리케이션에서 직접 작성해야 합니다. OpenRouter는 게이트웨이 계층에서 처리합니다.
추가 지연: 게이트웨이 홉으로 약 10–80ms가 추가됩니다. 지연 민감 워크로드에서는 실질적 비용입니다.
데이터 거버넌스: 미국 제3자 중간 계층을 경유합니다. 데이터 상주 요건이 있는 기업은 BYOK 또는 공식 API 직접 연동을 검토해야 합니다.
대규모 수수료: Credits 충전 5.5% 수수료. 월 수만 달러 이상 소비 시 공급사 직접 계약이 더 경제적일 수 있습니다.
OpenRouter vs OpenAI / Anthropic 직접 API
| 항목 | 공급사 직접 API | OpenRouter 통합 게이트웨이 |
|---|---|---|
| 계정·Key | 벤더별 개별 등록 | 단일 Key로 400+ 모델 |
| SDK 마이그레이션 | 벤더별 스키마 상이 | OpenAI 호환, 2줄 수정 |
| Failover | 자체 재시도·전환 로직 | Provider + Model Fallback 내장 |
| 청구·사용량 | 다중 대시보드 | 단일 Dashboard, TTFT·처리량 추적 |
| 토큰 단가 | 공식 원가 | 마크업 없이 원가 전달 |
| 충전 수수료 | 없음(직접 결제) | 5.5%(최소 $0.80), 암호화폐 +5% |
| 지연 | 최소(직접) | +10–80ms |
| 전용 기능 | Prompt Caching, Batch API, Vertex | 일부 벤더 전용 기능 미지원 |
핵심 이점 5가지: ① 단일 Key로 전 모델 접근, 마이그레이션 비용 최소; ② 공급사 간 자동 Failover; ③ 통합 청구·분석; ④ 토큰 마크업 없음; ⑤ 다중 모델 A/B 테스트·프로토타입·중소 규모 Agent에 적합.
OpenRouter를 쓰지 말아야 할 때: 단일 모델·월 수만 달러 이상(5.5% 수수료가 직접 계약 대비 불리), Anthropic Prompt Caching·OpenAI Batch/Assistants API·Google Vertex 전용 기능 필요, 극저지연, 데이터 상주·제3자 중간 계층 금지. 이러한 비교는 「OpenRouter vs 직접 API」 검색 의도와 정확히 일치합니다.
OpenRouter는 OpenAI/Anthropic SDK를 대체하는 것이 아니라, 다중 모델 시나리오와 공식 직접 연동 사이의 실용적 중간층입니다.
OpenRouter API 코드: curl / Python / Node.js / OpenAI SDK
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-3.5-sonnet",
"messages": [
{ "role": "user", "content": "양자컴퓨팅을 한 문장으로 설명해 주세요" }
]
}'
import requests, os
response = requests.post(
url="https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "google/gemini-2.5-pro",
"messages": [{"role": "user", "content": "퀵소트 Python 구현을 작성해 주세요"}],
},
)
print(response.json()["choices"][0]["message"]["content"])
from openai import OpenAI
import os
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
completion = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
extra_headers={
"HTTP-Referer": "https://meshlaunch.com",
"X-Title": "MESHLAUNCH Blog Demo",
},
)
print(completion.choices[0].message.content)
import OpenAI from "openai";
const openai = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY,
});
const completion = await openai.chat.completions.create({
model: "deepseek/deepseek-chat",
messages: [{ role: "user", content: "OpenRouter를 한 문장으로 설명하세요" }],
});
console.log(completion.choices[0].message.content);
const stream = await openai.chat.completions.create({
model: "anthropic/claude-3.5-sonnet",
messages: [{ role: "user", content: "가을에 대한 짧은 시를 써 주세요" }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}
{
"model": "anthropic/claude-3.5-sonnet",
"models": [
"anthropic/claude-3.5-sonnet",
"openai/gpt-4o",
"google/gemini-2.5-pro"
],
"route": "fallback",
"messages": [{ "role": "user", "content": "Hello" }]
}
모델 목록 조회: curl https://openrouter.ai/api/v1/models -H "Authorization: Bearer $OPENROUTER_API_KEY" — 배포 전 필수 확인 단계입니다.
OpenRouter 연동 6단계 Runbook
계정·Key 발급: openrouter.ai에서 GitHub/Google 로그인 → Settings → Keys → API Key 생성 → 환경 변수 OPENROUTER_API_KEY에 저장합니다.
Credits 충전(선택): 무료 모델은 충전 불필요. 유료 모델은 Credits 구매(5.5%, 최소 $0.80). $10 이상 충전 시 무료 모델 1000회/일.
첫 요청 검증: curl 또는 OpenAI SDK로 model: openai/gpt-4o 호출해 연결을 확인합니다.
Streaming 구성: SDK에 stream: true 추가. 채팅 UI·Agent 실시간 출력에 적용합니다.
Fallback 체인: 프로덕션에서 models 배열 + route: "fallback" 설정. Claude Rate Limit 시 GPT-4o·Gemini로 자동 전환.
비용·BYOK: Dashboard에서 모델별 토큰 소비 모니터링. 대규모는 BYOK(월 100만 요청까지 0% 수수료, 초과분 5%).
요금 구조·핵심 수치·배포 전략
토큰 요금: 마크업 없음. Credits 충전 시 5.5%(암호화폐 +5%). 모델별 prompt/completion 단가는 가격 페이지에서 확인합니다.
무료 티어: 25+ 무료 모델. 미충전 ~50회/일. $10+ 충전 → 1000회/일, 20회/분.
BYOK: 공급사 Key 직접 등록. 월 100만 요청까지 OpenRouter 수수료 0%, 초과분 5%.
한국어 SEO 키워드: OpenRouter API, OpenRouter 사용법, OpenRouter 무료 모델, OpenRouter Python — 제목·리드·H2·FAQ에 배치. 네이버·구글 양쪽 검색 의도를 커버합니다.
배포 채널: Velog, Tistory(기술 블로그), OKKY(개발자 커뮤니티), Google Search Console sitemap 제출.
OpenRouter는 빠른 프로토타입·다중 모델 A/B·중소 규모 Agent에 적합합니다. Mac에서 Kilo Code / Claude Code CLI 등 도구를 7×24 가동할 때 소비자 Mac의 메모리·Swap 한계와 VPS의 Metal 부재가 병목이 됩니다. iOS CI/CD·AI Agent 자동화용 안정적 호스트가 필요하면 MESHLAUNCH Mac Mini 클라우드 대여가 실용적입니다: Apple Silicon 단독 점유, 7×24 가동, 일/주/월 단위 과금, OpenRouter BYOK와 병행 시 API 비용을 추가 절감할 수 있습니다. 대여 요금 · 고객 센터
토큰 마크업 없이 공급사 원가로 청구됩니다. Credits 충전 5.5%(최소 $0.80). 25+ 무료 모델, 미충전 ~50회/일, $10+ 충전 1000회/일. Agent 호스트는 대여 요금 참고.
HTTPS API 직접 호출 가능. 트래픽은 미국 게이트웨이 경유. 데이터 규제 조직은 BYOK 또는 공식 API 직접 연동을 검토합니다.
70+ 공급사, 400+ 모델. GPT-4o, Claude 3.5, Gemini 2.5 Pro, DeepSeek, Qwen, Llama 등. GET /api/v1/models 또는 모델 순위 참고.
하지 않습니다. 공식 FAQ에 token markup 없음을 명시. 충전 5.5%만 부과. BYOK는 월 100만 요청까지 0%.
게이트웨이가 요청 메타데이터에 접근 가능. 민감 데이터는 BYOK 또는 공식 API. 배포 문의는 고객 센터.