API Reference
REST API Endpoints
Complete reference for all Komilion API endpoints.
Base URL
https://www.komilion.com/apiAll endpoints require Authorization: Bearer ck_your-api-key-here
Chat
POST
/chat/completionsCreate a chat completion (OpenAI compatible)
from openai import OpenAI
client = OpenAI(
base_url="https://www.komilion.com/api",
api_key="ck_your-api-key-here",
)
# Neo Mode — automatic model selection
response = client.chat.completions.create(
model="neo-mode/balanced", # or "neo-mode/frugal" or "neo-mode/premium"
messages=[{"role": "user", "content": "Hello, world!"}],
)
print(response.choices[0].message.content)
print(f"Model used: {response.model}")
print(f"Tokens: {response.usage.total_tokens}")Use a specific model (bypass Neo routing):
response = client.chat.completions.create(
model="anthropic/claude-sonnet-4-5", # Any model from the catalog
messages=[{"role": "user", "content": "Explain monads simply"}],
)
print(response.choices[0].message.content)Voice
POST
/voice/realtimeGet WebSocket config for real-time voice
import requests
API_KEY = "ck_your-api-key-here"
# Get WebSocket config
config = requests.post(
"https://www.komilion.com/api/voice/realtime",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"policy": "balanced", # "frugal" | "balanced" | "premium"
"voice": "alloy"
}
).json()
print(f"WebSocket URL: {config['websocket']['url']}")
print(f"Model: {config['websocket']['model']}")
print(f"Cost: {config['pricing']['estimated_per_minute']}/min")GET
/voice/realtimeGet available voice models and pricing
curl https://www.komilion.com/api/voice/realtime \
-H "Authorization: Bearer ck_your-api-key-here"Wallet & Billing
GET
/wallet/balanceGet your current balance
import requests
API_KEY = "ck_your-api-key-here"
balance = requests.get(
"https://www.komilion.com/api/wallet/balance",
headers={"Authorization": f"Bearer {API_KEY}"}
).json()
print(f"Available: ${balance['total_available']:.2f}")
print(f" Wallet: ${balance['wallet_balance']:.2f}")
print(f" Trial: ${balance['trial_credits']:.2f}")
if balance.get("is_low_balance"):
print("⚠️ Low balance — consider topping up")GET
/user/usageGet detailed usage breakdown
{
"period": "2024-12",
"total_cost": 12.50,
"total_requests": 1250,
"by_model": {
"gpt-4o-mini": { "requests": 800, "cost": 4.20 },
"claude-3-sonnet": { "requests": 450, "cost": 8.30 }
}
}Models
GET
/modelsList available models
models = client.models.list()
for model in models.data:
print(f"{model.id} (by {model.owned_by})")Orchestration (Neo Mode)
POST
/chatExecute complex tasks with tool calling
import requests
API_KEY = "ck_your-api-key-here"
result = requests.post(
"https://www.komilion.com/api/chat",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"messages": [{"role": "user", "content": "Calculate fib(50) with Python"}],
"policy": "balanced",
"enableToolCalling": True,
"tools": ["python_execute"]
}
).json()
print(result["response"])
print(f"Tools used: {result.get('toolsUsed', [])}")
print(f"Cost: ${result.get('cost', 0):.4f}")API Keys
API key management is available in the Dashboard → API Keys
Format
ck_[64 hex chars]Header
Authorization: Bearer ck_your-api-key-hereRate Limits
Default limits for API requests
| Endpoint | Limit | Window |
|---|---|---|
/chat/completions | 60 requests | per minute |
/voice/* | 10 sessions | concurrent |
/models | 100 requests | per minute |
Need higher limits? Contact us
