모델 카탈로그
어떤 모델을 어디서 서빙하는가
모델 id 는 언제나 vendor/name 형식입니다 — google/gemma-4-26b-a4b, lgai/exaone-4.0-32b. 변종 접미사는 없습니다: :free 도, :nitro 도, :floor 도 없습니다. id 하나가 모델 하나를 뜻하고, 그 모델을 어디서 서빙할지는 Provider 라우팅 이 다루는 라우팅 문제입니다.
모델은 어디서 오는가
카탈로그의 모든 모델은 아래 둘 중 하나, 또는 양쪽에서 서빙됩니다.
| 출처 | 설명 | 우선순위 |
|---|---|---|
| 로컬 GPU 슬롯 | 우리 하드웨어에서 vLLM 또는 llama.cpp 로 직접 돌리는 모델 | 먼저 시도 |
| 외부 provider | 운영자가 등록한 업스트림 API 로 중계 | 로컬 다음 |
같은 모델이 양쪽에 있으면 기본적으로 로컬 슬롯이 이깁니다. 그것이 이 서비스의 요점입니다 — 로컬 우선 라우팅 을 보세요.
지금 쓸 수 있는 모델
아래는 공개 모델이며 모든 계정에서 쓸 수 있습니다.
| 모델 | 컨텍스트 | 모달리티 | 툴 콜링 | 입력 | 출력 |
|---|---|---|---|---|---|
google/gemma-4-26b-a4b | 32,768 | text + image → text | 지원 | ₩30 / 1M 토큰 | ₩150 / 1M 토큰 |
lgai/exaone-4.0-32b | 32,768 | text → text | 미지원 | ₩30 / 1M 토큰 | ₩150 / 1M 토큰 |
google/gemma-4-26b-a4b 가 기본 모델입니다 — model 도 models 도 주지 않으면 이 모델로 갑니다.
모델 목록 조회
curl https://openrouter.myip.co.kr/api/v1/models인증이 필요 없습니다. 응답은 {"data":[…]} 이고 모델 하나가 객체 하나입니다.
{
"id": "lgai/exaone-4.0-32b",
"canonical_slug": "lgai/exaone-4.0-32b",
"name": "LG AI: EXAONE 4.0 32B",
"created": 1786000000,
"description": "EXAONE 4.0 32B (AWQ-INT4). MyIP 로컬 GPU 슬롯.",
"context_length": 32768,
"architecture": {
"modality": "text->text",
"input_modalities": ["text"],
"output_modalities": ["text"],
"tokenizer": "Other",
"instruct_type": null
},
"pricing": {
"prompt": "0.000030000000",
"completion": "0.000150000000",
"request": "0",
"image": "0",
"web_search": "0",
"internal_reasoning": "0",
"input_cache_read": "0.000003000000",
"input_cache_write": null,
"currency": "KRW"
},
"top_provider": { "context_length": 32768, "max_completion_tokens": 32768, "is_moderated": false },
"supported_parameters": ["max_tokens", "temperature", "top_p", "top_k", "stop", "seed",
"frequency_penalty", "presence_penalty", "repetition_penalty", "logit_bias", "response_format"],
"per_request_limits": null,
"links": { "details": "/api/v1/models/lgai/exaone-4.0-32b/endpoints" }
}pricing 읽는 법
단가는 토큰당 원(KRW) 이고 문자열로 인코딩됩니다 — OpenAI 호환 생태계와 같은 인코딩 규칙에 단위만 다릅니다. "0.000030000000" 은 프롬프트 100만 토큰당 ₩30 이라는 뜻입니다.
currency 는 우리가 추가한 필드이고, 응답에는 X-MyIP-Currency: KRW 헤더가 붙습니다. 둘 다 USD 기준 API 에 맞춰 짠 클라이언트가 숫자를 조용히 오해하지 못하게 하려고 있습니다. request, image, web_search 는 언제나 "0" 입니다 — 요청당·이미지·웹검색 과금이 없기 때문입니다.
supported_parameters 읽는 법
모델이 광고하는 요청 파라미터 목록입니다. 참고값입니다 — 우리가 소비하지 않는 파라미터는 전부 업스트림으로 그대로 넘기고, 나머지 처리는 업스트림이 결정합니다. 확실한 보장이 필요하면 provider: { "require_parameters": true } 를 쓰세요. 보낸 파라미터를 광고하지 않는 후보가 체인에서 빠집니다.
무엇이 있고 없는지가 중요합니다. 우리 로컬 모델에는 response_format 이 있고(구조화 출력), tools/tool_choice 는 실제로 지원하는 모델에만 있습니다(툴 콜링).
카탈로그 필터링
GET /api/v1/models 가 받는 쿼리 파라미터입니다.
| 파라미터 | 타입 | 효과 |
|---|---|---|
q | string | id·이름·설명 전문 검색 |
category | string | 모달리티 계열로 좁힘 |
input_modalities | csv | 나열한 것을 전부 가진 모델만. 예: text,image |
output_modalities | csv | 출력 쪽 동일 |
supported_parameters | csv | 나열한 파라미터를 전부 광고하는 모델만 |
context | int | 최소 컨텍스트 길이 |
min_price, max_price | number | 프롬프트 토큰당 KRW 단가 |
model_authors | csv | id 의 vendor 부분 |
providers | csv | 그 모델을 서빙하는 provider slug |
sort | string | price, pricing-high-to-low, context, newest, top-weekly |
offset, limit | int | 페이지네이션 |
예시:
# 이미지를 받는 모델
curl "https://openrouter.myip.co.kr/api/v1/models?input_modalities=text,image"
# 툴 콜링이 되는 모델을 싼 순서로
curl "https://openrouter.myip.co.kr/api/v1/models?supported_parameters=tools,tool_choice&sort=price"
# 우리 GPU 에서 서빙하는 모델
curl "https://openrouter.myip.co.kr/api/v1/models?providers=local-gpu"관련 엔드포인트
GET /api/v1/models/count→{"data":{"total":N}}. 공개·활성 모델 수입니다.GET /api/v1/models/user(Bearer 추론 키) → 그 키로 실제로 부를 수 있는 모델. 공개 목록에 없는 모델도 포함하되, provider 매핑이 없어 실제로는 못 부르는 모델은 제외합니다.GET /api/v1/models/{author}/{slug}/endpoints→ 그 모델을 서빙하는 모든 엔드포인트(외부 + 로컬). 컨텍스트·양자화·status가 들어 있습니다. 로컬 슬롯은tag에 엔진 이름(vllm또는llamacpp)이 들어가고, 슬롯이 떠 있으면status: 0입니다.GET /api/v1/providers→ provider 목록.provider.order/only/ignore에 쓰는 slug 가 여기 있습니다.
curl https://openrouter.myip.co.kr/api/v1/models/google/gemma-4-26b-a4b/endpoints모델이 사라졌을 때
운영자가 모델을 비활성화하거나 provider 매핑을 끌 수 있습니다. 어느 시점이든 진실은 카탈로그입니다. 비활성화됐거나 모르는 id 로 요청하면 400 model_not_found 입니다. id 는 아는데 쓸 수 있는 후보가 하나도 남지 않았다면 — provider 가 전부 꺼졌거나, provider{} 조건에 다 걸러졌거나, 쿨다운 중이거나 — 404 no_endpoints_found 입니다. 고치는 방법이 다르기 때문에 코드도 다릅니다.
마지막 수정 2026. 9. 5.