MemoryRouterMemoryRouter

Authentication

Memory Keys, Provider Keys, and pass-through authentication.

MemoryRouter uses a two-key system: your Memory Key authenticates with MemoryRouter, and your Provider Keys authenticate with AI providers.


Memory Key (mk_xxx)

Your Memory Key is your API key for MemoryRouter. It identifies your memory vault and tracks usage.

Get your key: app.memoryrouter.ai → API Keys

Usage

Standard (Authorization header):

curl -X POST https://api.memoryrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer mk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"model": "openai/gpt-4o", "messages": [...]}'

Anthropic SDK style (x-api-key):

curl -X POST https://api.memoryrouter.ai/v1/chat/completions \
  -H "x-api-key: mk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"model": "anthropic/claude-3-5-sonnet", "messages": [...]}'

Provider Keys

Your actual API keys for OpenAI, Anthropic, Google, etc. Two options:

  1. Go to app.memoryrouter.ai → Settings
  2. Add your provider keys (encrypted at rest)
  3. Just use your Memory Key — MemoryRouter handles the rest
client = OpenAI(
    api_key="mk_xxx",
    base_url="https://api.memoryrouter.ai/v1"
)

Option 2: Pass-Through Mode (BYOK)

Send your provider key with each request:

Using X-Memory-Key + Authorization:

curl -X POST https://api.memoryrouter.ai/v1/chat/completions \
  -H "X-Memory-Key: mk_xxxxxxxxxxxxxxxx" \
  -H "Authorization: Bearer sk-your-openai-key" \
  -H "Content-Type: application/json" \
  -d '{"model": "openai/gpt-4o", "messages": [...]}'

Python example:

client = OpenAI(
    api_key="sk-your-openai-key",  # Goes to provider
    base_url="https://api.memoryrouter.ai/v1",
    default_headers={
        "X-Memory-Key": "mk_xxxxxxxxxxxxxxxx"  # MemoryRouter auth
    }
)

Authentication Headers Summary

HeaderPurposeWhen to Use
Authorization: Bearer mk_xxxMemory Key authStandard usage
x-api-key: mk_xxxMemory Key authAnthropic SDK compatibility
X-Memory-Key: mk_xxxMemory Key authPass-through mode
Authorization: Bearer sk-xxxProvider keyPass-through mode
X-Provider-Key: sk-xxxProvider keyAlternative pass-through

Multiple Memory Keys

Create separate keys for different apps or users. Each key has isolated memory.

# App 1
app1_client = OpenAI(api_key="mk_app1_xxx", base_url="https://api.memoryrouter.ai/v1")

# App 2 (completely separate memory)
app2_client = OpenAI(api_key="mk_app2_xxx", base_url="https://api.memoryrouter.ai/v1")

Error Responses

401 - Missing authentication:

{"error": "Missing or invalid authentication", "hint": "Use: Authorization: Bearer mk_xxx"}

400 - Missing provider key:

{"error": "No API key configured for provider: openai", "hint": "Add your openai API key in settings, or pass X-Provider-Key header"}

On this page