API 개요

엔드포인트 목록과 호환 범위

MyIP OpenRouter 의 /api/v1 은 OpenAI Chat Completions 와 같은 요청·응답 형상을 씁니다. 이미 OpenAI SDK 나 openrouter 용으로 짜 둔 코드가 있다면 base URL 과 API 키만 바꾸면 그대로 동작합니다.

바뀌는 것은 단 하나, 금액의 단위가 KRW 라는 점입니다. 필드 이름도, 중첩 구조도, 소수를 문자열로 인코딩하는 규칙도 openrouter 와 같습니다. 값이 USD 가 아니라 원(₩)이라는 사실은 모든 응답의 X-MyIP-Currency: KRW 헤더와 pricing.currency 필드가 못박습니다.

Base URL

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

엔드포인트

Method경로인증
POST/chat/completions추론 키
POST/completions추론 키
GET/models없음
GET/models/count없음
GET/models/user추론 키
GET/models/{author}/{slug}/endpoints없음
GET/generation?id=추론 키 또는 관리 키
GET/key추론 키 또는 관리 키
GET/auth/key추론 키 또는 관리 키
GET/credits추론 키 또는 관리 키
GET POST/keys관리 키만
GET PATCH DELETE/keys/{hash}관리 키만
GET/providers없음
GET/datasets/rankings-daily없음
GET/datasets/app-rankings없음
GET/benchmarks없음

이 표에 없는 /api/v1 경로는 전부 404 not_supported 입니다. 조용한 404 가 아니라 본문에 어떤 경로가 없는지 적어서 돌려줍니다. 자세한 목록은 지원하지 않는 엔드포인트를 보세요.

두 종류의 키

접두사종류쓰는 곳
sk-mo-v1-추론 키/chat/completions, /completions, /generation, /key, /credits
sk-mo-mgmt-v1-관리 키/keys, /keys/{hash}

키를 반대로 쓰면 401 invalid_api_key 입니다. /api/v1 은 SDK 표면이라 쿠키 인증을 받지 않습니다 — 브라우저 세션으로 키를 관리하는 화면은 대시보드가 따로 씁니다. 인증에 자세히 적어 두었습니다.

첫 요청

curl https://openrouter.myip.co.kr/api/v1/chat/completions \
  -H "Authorization: Bearer $MYIP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemma-4-26b-a4b",
    "messages": [{"role": "user", "content": "한 문장으로 자기소개 해줘"}]
  }'

응답 헤더

헤더
X-MyIP-Currency항상 KRW. 모든 /api/v1 응답에 붙습니다
X-MyIP-Generation-Idgen-…. /generation 조회 키입니다
X-MyIP-Request-Idreq-…. 한 요청의 모든 후보 시도를 묶는 id
X-MyIP-Model실제로 응답한 모델 id
X-MyIP-Provider실제로 응답한 provider 표시명
X-MyIP-Cost-KRW이번 요청의 청구액(원). 비스트리밍만
X-MyIP-Credit-Balance정산 후 잔액(원). 비스트리밍만

요청 헤더

헤더처리
Authorization: Bearer …필수(인증이 필요한 경로에서)
HTTP-Referer앱 표기. 없으면 Referer 를 씁니다
X-Title앱 이름. X-OpenRouter-Title, X-MyIP-Title 도 받습니다

HTTP-RefererX-Title 은 openrouter 의 이름을 일부러 그대로 유지합니다. 기존 코드가 헤더 이름을 바꾸지 않아도 되게 하려는 것입니다. 자세한 내용은 앱 표기에 있습니다.

오류

오류 본문은 어떤 경로에서든 같은 형상입니다. HTTP 상태 코드와 error.code 는 항상 같습니다.

json
{
  "error": {
    "code": 402,
    "message": "크레딧이 부족합니다.",
    "metadata": { "error_type": "insufficient_credits", "balance_krw": "-5200.000000" }
  }
}

상태 코드와 error_type 의 전체 짝은 오류와 디버깅에 있습니다.

호환 범위

  • 있는 것: 텍스트 대화, 스트리밍, 툴 콜링, 구조화 출력, 모델 폴백(models[]), provider 라우팅(provider{}), 사용량·비용 조회.
  • 없는 것: 임베딩, 이미지·영상·음성, Responses API, Batch, Presets, Workspaces, Guardrails, BYOK, OAuth, SCIM, Auto Router, :free·:nitro 같은 모델 변종. 전부 404 not_supported 입니다.

우리만 있는 것도 있습니다. 모델이 우리 GPU 팜에 올라와 있으면 외부 provider 보다 먼저 시도합니다(로컬 우선 라우팅).

마지막 수정 2026. 9. 5.