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
| Endpoint | Method | Description |
|---|---|---|
/v1/chat/completions | POST | Chat completions (streaming supported) |
/v1/completions | POST | Text completions |
/v1/embeddings | POST | Text embeddings |
/v1/models | GET | List available models |
/v1/images/generations | POST | Image generation (T2I models) |
