Quickstart
Get started with AIRouter in minutes. Choose your preferred API style:
https://airouter.zbstream.com/v1
Install SDK
pip install openai
npm install openai
Make Your First Request
from openai import OpenAI
client = OpenAI(
base_url="https://airouter.zbstream.com/v1",
api_key="YOUR_API_KEY"
)
response = client.chat.completions.create(
model="llama3.2:latest",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://airouter.zbstream.com/v1",
apiKey: "YOUR_API_KEY"
});
const response = await client.chat.completions.create({
model: "llama3.2:latest",
messages: [{ role: "user", content: "Hello!" }]
});
console.log(response.choices[0].message.content);
curl https://airouter.zbstream.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:latest",
"messages": [{"role": "user", "content": "Hello!"}]
}'
https://airouter.zbstream.com (no /v1)
No SDK Required
Ollama native API uses simple HTTP requests. Just use requests (Python) or fetch (JavaScript).
pip install requests
Make Your First Request
import requests
response = requests.post(
"https://airouter.zbstream.com/api/chat",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "llama3.2:latest",
"messages": [
{"role": "user", "content": "Hello!"}
]
}
)
print(response.json()["message"]["content"])
const response = await fetch("https://airouter.zbstream.com/api/chat", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "llama3.2:latest",
messages: [{ role: "user", content: "Hello!" }]
})
});
const data = await response.json();
console.log(data.message.content);
curl https://airouter.zbstream.com/api/chat \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:latest",
"messages": [{"role": "user", "content": "Hello!"}]
}'
Authentication
All API requests require an API key for authentication.
Getting Your API Key
- Create an account at Sign Up
- Go to your Dashboard
- Navigate to "API Keys" section
- Click "Create New API Key"
Using Your API Key
Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Models
AIRouter provides access to 550+ models across 500+ global endpoints.
Popular Models
| Model | Description | Use Case |
|---|---|---|
llama3.2:latest | Meta's latest Llama model | General purpose |
qwen2.5:7b | Alibaba's multilingual model | Multilingual tasks |
deepseek-r1:7b | Advanced reasoning model | Complex reasoning |
codellama:7b | Code-specialized Llama | Code generation |
llava:7b | Vision-language model | Image understanding |
Chat Completions
Generate conversational responses using chat models.
/v1/chat/completions
/api/chat
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model ID (e.g., "llama3.2:latest") |
messages | array | Yes | Array of message objects |
stream | boolean | No | Enable streaming (default: false) |
temperature | number | No | Sampling temperature (0-2) |
max_tokens | integer | No | Maximum tokens to generate |
OpenAI Compatible Example
from openai import OpenAI
client = OpenAI(
base_url="https://airouter.zbstream.com/v1",
api_key="YOUR_API_KEY"
)
response = client.chat.completions.create(
model="llama3.2:latest",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
],
temperature=0.7
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://airouter.zbstream.com/v1",
apiKey: "YOUR_API_KEY"
});
const response = await client.chat.completions.create({
model: "llama3.2:latest",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "What is the capital of France?" }
],
temperature: 0.7
});
console.log(response.choices[0].message.content);
curl https://airouter.zbstream.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:latest",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
],
"temperature": 0.7
}'
Ollama Native Example
import requests
response = requests.post(
"https://airouter.zbstream.com/api/chat",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "llama3.2:latest",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
]
}
)
print(response.json()["message"]["content"])
const response = await fetch("https://airouter.zbstream.com/api/chat", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "llama3.2:latest",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "What is the capital of France?" }
]
})
});
const data = await response.json();
console.log(data.message.content);
curl https://airouter.zbstream.com/api/chat \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:latest",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
]
}'
Streaming
Stream responses in real-time for better user experience.
Returns SSE format (Server-Sent Events)
Returns NDJSON format (newline-delimited JSON)
OpenAI Compatible Streaming
from openai import OpenAI
client = OpenAI(
base_url="https://airouter.zbstream.com/v1",
api_key="YOUR_API_KEY"
)
stream = client.chat.completions.create(
model="llama3.2:latest",
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="")
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://airouter.zbstream.com/v1",
apiKey: "YOUR_API_KEY"
});
const stream = await client.chat.completions.create({
model: "llama3.2:latest",
messages: [{ role: "user", content: "Tell me a story" }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}
Ollama Native Streaming
import requests
response = requests.post(
"https://airouter.zbstream.com/api/chat",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "llama3.2:latest",
"messages": [{"role": "user", "content": "Tell me a story"}],
"stream": True
},
stream=True
)
for line in response.iter_lines():
if line:
data = json.loads(line)
print(data.get("message", {}).get("content", ""), end="")
const response = await fetch("https://airouter.zbstream.com/api/chat", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "llama3.2:latest",
messages: [{ role: "user", content: "Tell me a story" }],
stream: true
})
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const lines = decoder.decode(value).split("\\n");
for (const line of lines) {
if (line) {
const data = JSON.parse(line);
process.stdout.write(data.message?.content || "");
}
}
}
List Models
Retrieve the list of available models.
/v1/models
Example
from openai import OpenAI
client = OpenAI(
base_url="https://airouter.zbstream.com/v1",
api_key="YOUR_API_KEY"
)
models = client.models.list()
for model in models.data:
print(model.id)
curl https://airouter.zbstream.com/v1/models
OpenAI SDK
AIRouter is fully compatible with the official OpenAI SDK.
Configuration
Simply change the base_url to use AIRouter:
from openai import OpenAI
# Just change base_url to use AIRouter
client = OpenAI(
base_url="https://airouter.zbstream.com/v1",
api_key="YOUR_AIROUTER_API_KEY"
)
# Use any Ollama model
response = client.chat.completions.create(
model="llama3.2:latest",
messages=[{"role": "user", "content": "Hello!"}]
)
import OpenAI from "openai";
// Just change baseURL to use AIRouter
const client = new OpenAI({
baseURL: "https://airouter.zbstream.com/v1",
apiKey: "YOUR_AIROUTER_API_KEY"
});
// Use any Ollama model
const response = await client.chat.completions.create({
model: "llama3.2:latest",
messages: [{ role: "user", content: "Hello!" }]
});
Ollama Native API
Use Ollama's native API format for direct integration.
/api/chat
/api/generate
Example
import requests
response = requests.post(
"https://airouter.zbstream.com/api/chat",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "llama3.2:latest",
"messages": [{"role": "user", "content": "Hello!"}]
}
)
print(response.json())
curl https://airouter.zbstream.com/api/chat \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:latest",
"messages": [{"role": "user", "content": "Hello!"}]
}'
Text Completions
Generate text completions from a prompt.
/v1/completions
/api/generate
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model ID |
prompt | string | Yes | Text prompt to complete |
max_tokens | integer | No | Maximum tokens to generate |
stream | boolean | No | Enable streaming |
OpenAI Compatible Example
curl https://airouter.zbstream.com/v1/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:latest",
"prompt": "Write a poem about AI:"
}'
from openai import OpenAI
client = OpenAI(
base_url="https://airouter.zbstream.com/v1",
api_key="YOUR_API_KEY"
)
response = client.completions.create(
model="llama3.2:latest",
prompt="Write a poem about AI:"
)
print(response.choices[0].text)
Ollama Native Example
curl https://airouter.zbstream.com/api/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:latest",
"prompt": "Write a poem about AI:"
}'
import requests
response = requests.post(
"https://airouter.zbstream.com/api/generate",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "llama3.2:latest",
"prompt": "Write a poem about AI:"
}
)
print(response.json()["response"])