Skip to content

Router Mode

Overview

Router mode enables multi-tenant API key management and multi-provider routing. Clients authenticate with managed keys (sk-lli-* prefix) instead of passing upstream keys directly.

Enabling Router Mode

yaml
router:
  enabled: true
  providers:
    - name: anthropic
      base_url: "https://api.anthropic.com"
      model_glob: "claude-*"
      api_key: "${ANTHROPIC_API_KEY}"
    - name: openai
      base_url: "https://api.openai.com"
      model_glob: "gpt-*"
      api_key: "${OPENAI_API_KEY}"

API Key Management

ActionEndpointDescription
GeneratePOST /api/keysReturns sk-lli-* prefixed key
ListGET /api/keysLists all keys (prefixes only, hashes hidden)
DisablePATCH /api/keys/{id}/disableRevokes a key

Keys are hashed with bcrypt before storage. Only the key prefix (e.g., sk-lli-a1b2) and bcrypt hash are persisted.

Protocol Translation

The gateway automatically translates between Anthropic and OpenAI formats:

FeatureAnthropic → OpenAIOpenAI → Anthropic
MessagesSystem prompt → system rolesystem/developer → top-level system
Toolstool_use blocks → tool_callstool_callstool_use blocks
Thinkingthinking block → reasoning_contentreasoning_tokensthinking block
StreamingSSE events → SSE chunksSSE chunks → SSE events

Provider Routing

When a request arrives, the router matches the request's model name against each provider's model_glob pattern (glob, not regex). The first match is used for upstream forwarding.

Released under the MIT License.