DocumentationOpenAI-compatible API

OpenAI-compatible API

Use with any OpenAI-compatible SDK or HTTP client.

Basic Usage

is fully OpenAI-compatible. Just update base_url and api_key — no other code changes needed.

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://your-router-domain.com/v1",
    api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

response = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
JavaScript / TypeScript
import OpenAI from 'openai'

const client = new OpenAI({
  baseURL: 'https://your-router-domain.com/v1',
  apiKey: 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
})

const response = await client.chat.completions.create({
  model: 'gpt-5.5',
  messages: [{ role: 'user', content: 'Hello!' }]
})
console.log(response.choices[0].message.content)
curl
curl https://your-router-domain.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
    "model": "gpt-5.5",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Streaming

Python — Streaming
from openai import OpenAI

client = OpenAI(
    base_url="https://your-router-domain.com/v1",
    api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

stream = client.chat.completions.create(
    model="gpt-5.5",
    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="", flush=True)

Supported Endpoints

EndpointMethodDescription
/v1/chat/completionsPOSTChat completions (streaming supported)
/v1/completionsPOSTText completions
/v1/embeddingsPOSTText embeddings
/v1/modelsGETList available models
/v1/images/generationsPOSTImage generation (T2I models)
WebStorm / JetBrains