MemoryRouterMemoryRouter

Code Examples

Copy-paste examples for Python, JavaScript, Go, Ruby, PHP, and more.

Copy-paste examples for every language.


Python (OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    api_key="mk_xxxxxxxxxxxxxxxx",
    base_url="https://api.memoryrouter.ai/v1"
)

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "My name is Alice"}]
)
print(response.choices[0].message.content)

With Sessions

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "I'm planning a trip to Japan"}],
    extra_headers={"X-Session-ID": "user-123-planning"}
)

Streaming

stream = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "Tell me a story"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Pass-Through (BYOK)

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

Python (Anthropic SDK)

from anthropic import Anthropic

client = Anthropic(
    api_key="mk_xxxxxxxxxxxxxxxx",
    base_url="https://api.memoryrouter.ai"
)

message = client.messages.create(
    model="claude-3-5-sonnet",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}]
)
print(message.content[0].text)

JavaScript

import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: 'mk_xxxxxxxxxxxxxxxx',
    baseURL: 'https://api.memoryrouter.ai/v1'
});

const response = await client.chat.completions.create({
    model: 'openai/gpt-4o',
    messages: [{ role: 'user', content: 'Hello!' }]
});
console.log(response.choices[0].message.content);

Streaming

const stream = await client.chat.completions.create({
    model: 'openai/gpt-4o',
    messages: [{ role: 'user', content: 'Tell me a story' }],
    stream: true
});

for await (const chunk of stream) {
    process.stdout.write(chunk.choices[0]?.delta?.content || '');
}

curl

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": [{"role": "user", "content": "Hello!"}]
  }'

With Session

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

Go

package main

import (
    "context"
    "fmt"
    "github.com/sashabaranov/go-openai"
)

func main() {
    config := openai.DefaultConfig("mk_xxxxxxxxxxxxxxxx")
    config.BaseURL = "https://api.memoryrouter.ai/v1"
    client := openai.NewClientWithConfig(config)

    resp, _ := client.CreateChatCompletion(
        context.Background(),
        openai.ChatCompletionRequest{
            Model: "openai/gpt-4o",
            Messages: []openai.ChatCompletionMessage{
                {Role: "user", Content: "Hello"},
            },
        },
    )
    fmt.Println(resp.Choices[0].Message.Content)
}

Ruby

require 'openai'

client = OpenAI::Client.new(
  access_token: 'mk_xxxxxxxxxxxxxxxx',
  uri_base: 'https://api.memoryrouter.ai/v1'
)

response = client.chat(
  parameters: {
    model: 'openai/gpt-4o',
    messages: [{ role: 'user', content: 'Hello' }]
  }
)
puts response.dig('choices', 0, 'message', 'content')

PHP

<?php
$ch = curl_init('https://api.memoryrouter.ai/v1/chat/completions');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer mk_xxxxxxxxxxxxxxxx',
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'model' => 'openai/gpt-4o',
        'messages' => [['role' => 'user', 'content' => 'Hello']]
    ])
]);

$response = curl_exec($ch);
$data = json_decode($response, true);
echo $data['choices'][0]['message']['content'];

Multi-Tenant Pattern

Give each user isolated memory:

def get_client_for_user(user_id: str, user_api_key: str):
    return OpenAI(
        api_key=user_api_key,
        base_url="https://api.memoryrouter.ai/v1",
        default_headers={"X-Memory-Key": f"mk_user_{user_id}"}
    )

# Each user gets their own memory vault
client_alice = get_client_for_user("alice", "sk-alice-key")
client_bob = get_client_for_user("bob", "sk-bob-key")

On this page