Skip to content

Routing Policies

fallback/weighted/latency 라우팅 정책의 생성·조회·수정·삭제. 호출은 model:"policy/<slug>".

라우팅 정책 관리 엔드포인트는 대시보드 세션 토큰(로그인한 JWT)으로 인증합니다 — Authorization: Bearer <JWT>. 대시보드 관리용 API이며 SDK 호환 엔드포인트가 아닙니다. 정책의 동작 방식은 라우팅 정책 기능 문서를 참고하세요.

이 CRUD API는 항상 동작하지만, policy/<slug> 호출은 운영 게이트 routing.policies_enabled(기본 off)가 켜져 있어야 합니다. 게이트가 꺼진 상태의 호출은 400을 반환합니다.

목록 조회 · 생성#

GET/v1/routing-policies
POST/v1/routing-policies
파라미터타입필수설명
slugstring필수호출 식별자. 패턴 ^[a-z0-9][a-z0-9-]{0,62}$. "policy/<slug>" 형태로 사용됩니다. 사용자별 고유(중복 시 409).
display_namestring필수표시 이름. 1~100자.
policy_typestring필수fallback · weighted · latency 중 하나.
entriesarray필수모델 엔트리 1~10개. 필드는 아래 표 참고.
파라미터타입필수설명
modelstring필수라우팅할 모델 ID. 실제 활성 모델이어야 합니다(1~100자).
weightinteger선택가중치 1~10000. weighted 타입에서만 의미가 있습니다.
retriesinteger선택같은 엔트리 반복 횟수 0~3(기본 0). fallback 타입에서만 의미가 있습니다.

엔트리 검증: 다른 정책(policy/…)과 가상 모델(pleum-smart·pleum-perfect)은 400으로 거부되고, 존재하지 않거나 비활성인 모델도 400입니다.

POST는 성공 시 201을 반환합니다. 같은 슬러그가 이미 있으면 409. GET /v1/routing-policies {items: [...], total: n}을 반환합니다(최신 생성순).

create policy
curl https://router.pleum.ai/v1/routing-policies \
  -H "Authorization: Bearer <JWT>" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "prod-chat",
    "display_name": "Prod Chat",
    "policy_type": "fallback",
    "entries": [
      {"model": "claude-sonnet-4-6", "retries": 1},
      {"model": "gpt-4o", "retries": 0},
      {"model": "gpt-4o-mini", "retries": 0}
    ]
  }'
response
{
  "id": "1f0a4c2e-...",
  "slug": "prod-chat",
  "display_name": "Prod Chat",
  "policy_type": "fallback",
  "entries": [
    {"model": "claude-sonnet-4-6", "retries": 1},
    {"model": "gpt-4o", "retries": 0},
    {"model": "gpt-4o-mini", "retries": 0}
  ],
  "is_active": true,
  "created_at": "2026-07-01T09:00:00Z",
  "updated_at": "2026-07-01T09:00:00Z"
}

수정 · 삭제#

PATCH/v1/routing-policies/{policy_id}
DELETE/v1/routing-policies/{policy_id}

PATCH는 보낸 필드만 수정합니다(display_name·policy_type·entries·is_active). slug는 변경할 수 없습니다. 내 소유가 아니거나 없는 정책은 404. DELETE {"ok": true}를 반환합니다. is_active: false로 끄면 삭제 없이 호출만 막을 수 있습니다.

deactivate policy
curl -X PATCH https://router.pleum.ai/v1/routing-policies/1f0a4c2e-... \
  -H "Authorization: Bearer <JWT>" \
  -H "Content-Type: application/json" \
  -d '{"is_active": false}'