SDKs & Examples

Code examples for every language — Python, Node.js, Go, cURL, and more.

Yolo Router is fully OpenAI-compatible. Any library or SDK that supports a custom base_url works out of the box.

Chat Completions

from openai import OpenAI

client = OpenAI(
    api_key="sk-...",
    base_url="https://api.yolorouter.com/v1",
)

# Non-streaming
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain quantum computing in one sentence."},
    ],
    max_tokens=200,
)
print(response.choices[0].message.content)

# Streaming
stream = client.chat.completions.create(
    model="claude-3-5-sonnet-20241022",
    messages=[{"role": "user", "content": "Count to 5."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)
import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: 'sk-...',
  baseURL: 'https://api.yolorouter.com/v1',
})

// Non-streaming
const response = await client.chat.completions.create({
  model: 'gpt-4o',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'Explain quantum computing in one sentence.' },
  ],
  max_tokens: 200,
})
console.log(response.choices[0].message.content)

// Streaming
const stream = await client.chat.completions.create({
  model: 'claude-3-5-sonnet-20241022',
  messages: [{ role: 'user', content: 'Count to 5.' }],
  stream: true,
})
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? '')
}
package main

import (
    "context"
    "fmt"

    "github.com/openai/openai-go"
    "github.com/openai/openai-go/option"
)

func main() {
    client := openai.NewClient(
        option.WithAPIKey("sk-..."),
        option.WithBaseURL("https://api.yolorouter.com/v1"),
    )

    resp, err := client.Chat.Completions.New(context.Background(),
        openai.ChatCompletionNewParams{
            Model: "gpt-4o",
            Messages: []openai.ChatCompletionMessageParamUnion{
                openai.UserMessage("Hello!"),
            },
        },
    )
    if err != nil {
        panic(err)
    }
    fmt.Println(resp.Choices[0].Message.Content)
}
# Non-streaming
curl https://api.yolorouter.com/v1/chat/completions \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello!"}
    ]
  }'

# Streaming
curl https://api.yolorouter.com/v1/chat/completions \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Count to 5."}],
    "stream": true
  }'

Embeddings

response = client.embeddings.create(
    model="text-embedding-3-small",
    input="The quick brown fox jumps over the lazy dog",
)
print(response.data[0].embedding[:5])  # first 5 dimensions
const response = await client.embeddings.create({
  model: 'text-embedding-3-small',
  input: 'The quick brown fox jumps over the lazy dog',
})
console.log(response.data[0].embedding.slice(0, 5))
curl https://api.yolorouter.com/v1/embeddings \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": "The quick brown fox jumps over the lazy dog"
  }'

Environment Variable Setup

Always store your API key in an environment variable, never hardcode it:

# .env
YOLO_ROUTER_API_KEY=sk-...
YOLO_ROUTER_BASE_URL=https://api.yolorouter.com/v1
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["YOLO_ROUTER_API_KEY"],
    base_url=os.environ["YOLO_ROUTER_BASE_URL"],
)

On this page