GET /models

카탈로그 조회와 필터

지금 부를 수 있는 모델 전부를 돌려줍니다. 인증이 필요 없습니다.

GET https://openrouter.myip.co.kr/api/v1/models

응답 형상은 openrouter 와 같습니다. 필드 이름, 중첩 구조, 소수를 문자열로 인코딩하는 규칙까지 같고 다른 것은 pricing 의 숫자가 USD/토큰이 아니라 KRW/토큰이라는 사실 하나뿐입니다. 그래서 pricing.currency 필드와 X-MyIP-Currency: KRW 헤더를 둡니다. openrouter 용 파서는 미지 필드를 무시하므로 그대로 동작합니다.

쿼리 파라미터

qstring

모델 id·이름·설명 전문 검색.

categorystring

모달리티 계열로 좁힙니다(text, image 등). 우리 카탈로그에는 openrouter 의 category 열이 없어 architecture.modalityinput_modalities 로 매칭합니다.

input_modalitiesstring

쉼표 구분. 나열한 모달리티를 전부 입력으로 받는 모델만. 예: text,image.

output_modalitiesstring

쉼표 구분. 위와 같은 방식으로 출력 모달리티를 봅니다.

supported_parametersstring

쉼표 구분. 나열한 파라미터를 전부 지원하는 모델만. 예: tools,response_format.

contextinteger

context_length 가 이 값 이상인 모델만.

min_pricenumber

프롬프트 판매 단가(KRW/토큰)의 하한.

max_pricenumber

프롬프트 판매 단가(KRW/토큰)의 상한. 예: max_price=0.00005.

model_authorsstring

쉼표 구분. 모델 id 의 / 앞부분입니다. 예: google,lgai.

providersstring

쉼표 구분 provider slug. 그 provider 가 실제로 서빙하는 모델만.

sortstring

price(= pricing-low-to-high), pricing-high-to-low, context(= context-high-to-low), newest(= created), top-weekly. 그 밖의 값은 무시하고 모델 id 순서를 유지합니다.

offsetinteger

건너뛸 개수. 기본 0.

limitinteger

가져올 개수. 생략하면 전부 돌려줍니다.

요청 예제

bash
# 툴 콜링이 되고 컨텍스트가 32k 이상인 모델을 싼 순으로
curl "https://openrouter.myip.co.kr/api/v1/models?supported_parameters=tools&context=32768&sort=price"

# 특정 제작자만
curl "https://openrouter.myip.co.kr/api/v1/models?model_authors=google,lgai"

# 우리 GPU 팜이 서빙하는 모델만, 두 번째 페이지
curl "https://openrouter.myip.co.kr/api/v1/models?providers=local-gpu&limit=20&offset=20"

응답

dataobject[]

모델 객체 배열. 총 개수는 이 응답에 없고 /models/count가 따로 줍니다.

data[].idstring

author/slug 형식의 모델 id. 요청의 model 에 넣는 값입니다.

data[].canonical_slugstring

정규 slug. 없으면 id 와 같습니다.

data[].hugging_face_idstring | null

Hugging Face 저장소 id. 모르면 null.

data[].namestring

표시용 이름.

data[].createdinteger

유닉스 초.

data[].descriptionstring

설명. 없으면 빈 문자열.

data[].context_lengthinteger | null

컨텍스트 길이(토큰).

data[].architectureobject

modality, input_modalities, output_modalities, tokenizer, instruct_type.

data[].pricingobject

KRW/토큰 판매 단가. 값은 전부 문자열입니다. 필드는 prompt, completion, request, image, web_search, internal_reasoning, input_cache_read, input_cache_write, 그리고 currency.

request·image·web_search·internal_reasoning 은 우리가 해당 과금을 하지 않아 항상 "0" 입니다. currency 는 openrouter 에 없는 우리 추가 필드로 항상 "KRW" 입니다.

data[].top_providerobject

context_length, max_completion_tokens, is_moderated.

data[].supported_parametersstring[]

그 모델이 받는 요청 파라미터 이름 목록.

data[].default_parametersobject

모델 기본 파라미터. 없으면 빈 객체입니다.

data[].per_request_limitsobject | null

요청당 제한. 우리는 쓰지 않아 보통 null 입니다.

data[].supported_voicesnull

음성 합성을 지원하지 않으므로 null 입니다.

data[].knowledge_cutoffstring | null

학습 데이터 기준일.

data[].expiration_datestring | null

서비스 종료 예정일.

data[].reasoningobject | null

추론 토큰 관련 메타. 모르면 null.

data[].weekly_tokensnumber | null

최근 주간 토큰 사용량.

data[].links.detailsstring

그 모델의 endpoints 경로. /api/v1/models/<id>/endpoints 입니다.

응답 예제

json
{
  "data": [
    {
      "id": "google/gemma-4-26b-a4b",
      "canonical_slug": "google/gemma-4-26b-a4b",
      "hugging_face_id": null,
      "name": "Google: Gemma 4 26B A4B",
      "created": 1786924800,
      "description": "Gemma 4 26B (MoE 활성 4B, QAT AWQ-INT4). MyIP 로컬 GPU 기본 슬롯. tool calling 지원.",
      "context_length": 32768,
      "architecture": {
        "modality": "text+image->text",
        "input_modalities": ["text", "image"],
        "output_modalities": ["text"],
        "tokenizer": "Other",
        "instruct_type": null
      },
      "pricing": {
        "prompt": "0.000030",
        "completion": "0.000150",
        "request": "0",
        "image": "0",
        "web_search": "0",
        "internal_reasoning": "0",
        "input_cache_read": "0.000003",
        "input_cache_write": null,
        "currency": "KRW"
      },
      "top_provider": {
        "context_length": 32768,
        "max_completion_tokens": 32768,
        "is_moderated": false
      },
      "per_request_limits": null,
      "supported_parameters": [
        "max_tokens", "temperature", "top_p", "top_k", "stop", "seed",
        "frequency_penalty", "presence_penalty", "repetition_penalty",
        "logit_bias", "response_format", "tools", "tool_choice"
      ],
      "default_parameters": {},
      "supported_voices": null,
      "knowledge_cutoff": null,
      "expiration_date": null,
      "reasoning": null,
      "weekly_tokens": null,
      "links": { "details": "/api/v1/models/google/gemma-4-26b-a4b/endpoints" }
    }
  ]
}

"prompt": "0.000030"토큰당 0.00003원, 즉 100만 토큰에 30원입니다. 단가가 어떻게 정해지는지는 요금 계산 방식에 있습니다.

관련 엔드포인트

GET /models/count

공개 모델 수만 셉니다. 쿼리 파라미터는 받지 않습니다.

bash
curl https://openrouter.myip.co.kr/api/v1/models/count
json
{ "data": { "total": 12 } }

GET /models/user

추론 키가 필요합니다. 그 키로 실제로 호출할 수 있는 모델을 돌려줍니다. /models 와 두 가지가 다릅니다 — 비공개 모델도 포함하고, provider 매핑이 없어 실제로는 부를 수 없는 모델은 뺍니다. 쿼리 파라미터와 응답 형상은 /models 와 같습니다.

bash
curl https://openrouter.myip.co.kr/api/v1/models/user \
  -H "Authorization: Bearer $MYIP_API_KEY"

오류

상태error_type발생 조건
401invalid_api_key/models/user 를 키 없이·잘못된 키로 부름
429rate_limit_exceeded요청 빈도 제한 초과
500server서버 오류

/models/models/count 는 인증이 없으므로 401 이 나지 않습니다. 알 수 없는 쿼리 파라미터나 값은 오류가 아니라 무시됩니다.

마지막 수정 2026. 9. 5.