GET /providers

우리가 붙어 있는 provider 목록

지금 활성화된 provider 목록과 각 provider 가 서빙하는 모델 수를 돌려준다. 라우팅 규칙(provider{})에 쓸 slug 를 여기서 확인한다.

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

인증

필요 없다. 헤더 없이 부를 수 있는 공개 엔드포인트다. Authorization 을 붙여도 무시된다.

요청 파라미터

없다. 필터도 페이지네이션도 없이 활성화된 provider 를 한 번에 돌려준다.

요청 예시

curl https://openrouter.myip.co.kr/api/v1/providers

응답

{"data": [ … ]} 이고, 정렬은 내부 우선순위 오름차순 → slug 사전순이다. 즉 위에 있을수록 라우팅에서 먼저 시도되는 provider 다.

namestring

표시용 이름. 응답 헤더 X-MyIP-Provider 에 실리는 값과 같다.

slugstring

안정적인 식별자. provider.order, provider.only, provider.ignore 에 넣는 값이 이것이다.

model_countnumber

이 provider 에 활성 상태로 연결된 모델 수. 꺼 둔 매핑은 세지 않으므로, 실제로 이 provider 를 통해 호출할 수 있는 모델의 수와 같다.

privacy_policy_urlnull

항상 null.

terms_of_service_urlnull

항상 null.

status_page_urlnull

항상 null.

응답 예시

json
{
  "data": [
    {
      "name": "MyIP Local",
      "slug": "myip-local",
      "privacy_policy_url": null,
      "terms_of_service_url": null,
      "status_page_url": null,
      "model_count": 2
    },
    {
      "name": "MyIP Upstream",
      "slug": "myip-upstream",
      "privacy_policy_url": null,
      "terms_of_service_url": null,
      "status_page_url": null,
      "model_count": 41
    }
  ]
}

세 개의 URL 필드가 왜 항상 null 인가

openrouter 는 provider 마다 정책 URL 과 상태 페이지 링크를 준다. 우리는 그 값을 관리하지 않는다 — 이용자와의 계약 상대는 각 provider 가 아니라 MyIP OpenRouter 하나이고, 정책은 서비스 차원에서 한 벌로 게시하기 때문이다. 필드를 지우지 않고 null 로 남긴 것은 openrouter 응답을 파싱하던 코드가 키를 못 찾아 깨지지 않게 하려는 것이다.

우리 정책은 개인정보 처리방침이용약관에 있다.

응답에 절대 나오지 않는 것

  • base_url — 업스트림 주소는 내부 라우팅 정보다.
  • api_key_env, api_key_enc — provider 자격증명은 암호화되어 있어도 공개 표면에 싣지 않는다.
  • 꺼져 있는 provider — enabled 가 아닌 provider 는 목록 자체에 없다.

slug 를 어디에 쓰나

여기서 얻은 slug/chat/completions 요청 본문의 provider 객체에 넣어 라우팅을 지정한다.

bash
curl https://openrouter.myip.co.kr/api/v1/chat/completions \
  -H "Authorization: Bearer $MYIP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "lgai/exaone-4.0-32b",
    "messages": [{"role": "user", "content": "안녕하세요"}],
    "provider": { "order": ["myip-local"], "allow_fallbacks": false }
  }'

onlyorder 에 여기 없는 slug 를 넣으면 후보가 비어 404 no_endpoints_found 가 난다. 규칙 전체는 Provider 라우팅에 있다.

특정 모델을 어느 provider 가 서빙하는지, 각각의 단가와 컨텍스트 길이가 얼마인지는 GET /models/{author}/{slug}/endpoints 를 본다. 이 목록은 provider 쪽에서 본 요약이다.

오류

상태error_type언제
500server서버 오류. 인증이 없으므로 401·402·403 은 나오지 않는다

목록이 비어 있어도 오류가 아니다. {"data": []} 를 200 으로 돌려준다.

관련 문서

마지막 수정 2026. 9. 5.