Code Examples
Complete, ready-to-use code examples for common TopRouter API operations.
Chat Completion
Basic Chat
python
from openai import OpenAI
client = OpenAI(
api_key="sk-your-toprouter-key",
base_url="https://toprouter.cc"
)
response = client.chat.completions.create(
model="google/gemini-3.5-flash",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain quantum computing in simple terms"}
]
)
print(response.choices[0].message.content)typescript
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-your-toprouter-key',
baseURL: 'https://toprouter.cc'
});
const response = await client.chat.completions.create({
model: 'google/gemini-3.5-flash',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Explain quantum computing in simple terms' }
]
});
console.log(response.choices[0].message.content);bash
curl https://toprouter.cc/chat/completions \
-H "Authorization: Bearer sk-your-toprouter-key" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-3.5-flash",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain quantum computing in simple terms"}
]
}'Streaming Chat
python
from openai import OpenAI
client = OpenAI(
api_key="sk-your-toprouter-key",
base_url="https://toprouter.cc"
)
stream = client.chat.completions.create(
model="anthropic/claude-4.6-sonnet",
messages=[{"role": "user", "content": "Write a short story about AI"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
print() # newline at endtypescript
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-your-toprouter-key',
baseURL: 'https://toprouter.cc'
});
const stream = await client.chat.completions.create({
model: 'anthropic/claude-4.6-sonnet',
messages: [{ role: 'user', content: 'Write a short story about AI' }],
stream: true
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}
console.log();Multi-Turn Conversation
python
from openai import OpenAI
client = OpenAI(
api_key="sk-your-toprouter-key",
base_url="https://toprouter.cc"
)
conversation = [
{"role": "system", "content": "You are a Python tutor."}
]
def chat(user_message):
conversation.append({"role": "user", "content": user_message})
response = client.chat.completions.create(
model="anthropic/claude-4.6-sonnet",
messages=conversation
)
assistant_message = response.choices[0].message.content
conversation.append({"role": "assistant", "content": assistant_message})
return assistant_message
print(chat("What are Python decorators?"))
print(chat("Can you show me a practical example?"))
print(chat("How about a decorator with arguments?"))Image Generation
python
from openai import OpenAI
client = OpenAI(
api_key="sk-your-toprouter-key",
base_url="https://toprouter.cc"
)
response = client.images.generate(
model="openai/dall-e-3",
prompt="A minimalist logo for an AI company, clean design, blue gradient",
size="1024x1024",
quality="hd",
n=1
)
print(f"Image URL: {response.data[0].url}")List Available Models
python
from openai import OpenAI
client = OpenAI(
api_key="sk-your-toprouter-key",
base_url="https://toprouter.cc"
)
models = client.models.list()
for model in models.data:
print(f"{model.id} — owned by {model.owned_by}")Error Handling
python
from openai import OpenAI, APIError, RateLimitError, AuthenticationError
import time
client = OpenAI(
api_key="sk-your-toprouter-key",
base_url="https://toprouter.cc"
)
def safe_chat(message, retries=3):
for attempt in range(retries):
try:
response = client.chat.completions.create(
model="google/gemini-3.5-flash",
messages=[{"role": "user", "content": message}]
)
return response.choices[0].message.content
except AuthenticationError:
print("❌ Invalid API key")
raise
except RateLimitError:
wait = 2 ** attempt
print(f"⏳ Rate limited, waiting {wait}s...")
time.sleep(wait)
except APIError as e:
if e.status_code >= 500:
wait = 2 ** attempt
print(f"🔄 Server error, retrying in {wait}s...")
time.sleep(wait)
else:
raise
raise Exception("Max retries exceeded")
result = safe_chat("Hello!")
print(result)TIP
All examples use the same base_url and API key format. Simply change the model parameter to switch between different AI models.
