Chat completions
101 language models from 10 makers on one OpenAI-compatible endpoint. Point any OpenAI SDK at Revana, change the model name, pay per token from the same prepaid credit as video and images.
| Endpoint | POST https://api.revana.si/v1/chat/completions |
| Base URL for SDKs | https://api.revana.si/v1 |
| Auth | Authorization: Bearer <key> (your Revana API key) |
| Request | The OpenAI chat completions body: model, messages, stream, max_tokens, tools, response_format, reasoning_effort… |
| Models | GET /v1/models lists them with "kind": "text" and their token prices; also /data/llms.json |
| Price | USD per million tokens, per model, below. No subscription. |
Make a request
curl https://api.revana.si/v1/chat/completions \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","messages":[{"role":"user","content":"Write a haiku about routing."}]}'The answer is OpenAI’s chat.completion object. Its id starts chat_, and usage adds cost_usd, the amount taken from your balance for this request.
{
"id": "chat_3f9c…",
"object": "chat.completion",
"created": 1793318400,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Cheapest path first,\nfallback waits in the wings,\nanswers still arrive."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 14,
"completion_tokens": 18,
"total_tokens": 32,
"prompt_tokens_details": {
"cached_tokens": 0
},
"cost_usd": 0.000141
}
}OpenAI SDKs
Every OpenAI client library works unchanged: set the base URL and the key.
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.revana.si/v1", api_key=os.environ["REVANA_API_KEY"])
reply = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Write a haiku about routing."}],
)
print(reply.choices[0].message.content)import OpenAI from "openai"
const client = new OpenAI({ baseURL: "https://api.revana.si/v1", apiKey: process.env.REVANA_API_KEY })
const stream = await client.chat.completions.create({
model: "gpt-5.5",
messages: [{ role: "user", content: "Write a haiku about routing." }],
stream: true,
})
for await (const chunk of stream) process.stdout.write(chunk.choices[0]?.delta?.content ?? "")Tools such as LangChain, LlamaIndex, the Vercel AI SDK, Cline or Open WebUI take the same two settings: an OpenAI-compatible provider with base URL https://api.revana.si/v1 and your key.
Streaming
Send "stream": true for server-sent events in OpenAI’s chat.completion.chunk format, ending with data: [DONE]. Add "stream_options": {"include_usage": true} for a last chunk with empty choices and the request’s usage, cost_usd included.
curl https://api.revana.si/v1/chat/completions \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","messages":[{"role":"user","content":"Write a haiku about routing."}],"stream":true}'Billing
- You pay for the tokens the model reports: input, cached input, cache writes and output (reasoning tokens count as output), at the model’s price per million below. Charged to the micro-dollar from the same prepaid balance as generations.
- While a request runs, Revana holds what it could cost: its prompt plus
max_tokens(ormax_completion_tokens; 8,192 when neither is set). Setmax_tokensto hold less. The hold is released when the request ends and only the tokens used are charged. - A request with no answer, because every route failed, costs nothing. A stream you close part way is charged for what was sent.
- Some models price by prompt size, time of day or reasoning effort; each model’s page says so. Prompt caching works as at the model’s maker, and cached tokens are billed at the cached rate.
- Every model has a route at its listed price. When that route is busy, a request can run on a backup route, and is charged that route’s cost where it is higher, never more than the hold.
Errors
Errors use OpenAI’s shape, {"error": {"message", "type", "code"}}, so SDKs raise their usual exceptions: 400 invalid_request, 401, 402 insufficient_credits (top up, or lower max_tokens), 404 model_not_found, 413 body_too_large (over 20 MB), 429 concurrency_limit, 502 model_unavailable and 503 model_busy | busy (retry in a few seconds; nothing was charged).
Models and prices
USD per million tokens. Click a model for its full price sheet. The same list is /data/llms.json.
| Model | Input | Cached | Output | Context |
|---|---|---|---|---|
| Claude Fable 5claude-fable-5 · Anthropic | $3.50 | $0.35 | $17.50 | 1M |
| Claude Fable 5.1claude-fable-5-1 · Anthropic | $3.50 | $0.0875 | $17.50 | 1M |
| Claude Haiku 4.5claude-haiku-4-5-20251001 · Anthropic | $1.00 | $0.10 | $5.00 | 128K |
| Claude Haiku 4.5 (thinking)claude-haiku-4-5-20251001-thinking · Anthropic | $1.00 | $1.00 | $5.00 | — |
| Claude Haiku 5.5claude-haiku-5-5 · Anthropic | $0.035 | $0.0035 | $0.175 | 1M |
| Claude Opus 4.5claude-opus-4-5-20251101 · Anthropic | $5.00 | $5.00 | $25.00 | — |
| Claude Opus 4.5 (thinking)claude-opus-4-5-20251101-thinking · Anthropic | $5.00 | $5.00 | $25.00 | — |
| Claude Opus 4.6claude-opus-4-6 · Anthropic | $5.00 | $0.50 | $10.00 | 1M |
| Claude Opus 4.6 (thinking)claude-opus-4-6-thinking · Anthropic | $5.00 | $5.00 | $25.00 | — |
| Claude Opus 4.7claude-opus-4-7 · Anthropic | $5.00 | $0.50 | $25.00 | 128K |
| Claude Opus 4.8claude-opus-4-8 · Anthropic | $1.75 | $0.175 | $8.75 | 1M |
| Claude Opus 5claude-opus-5 · Anthropic | $1.75 | $0.175 | $8.75 | 1M |
| Claude Opus 5.5claude-opus-5-5 · Anthropic | $1.40 | $0.07 | $7.00 | 1M |
| Claude Sonnet 4.5claude-sonnet-4-5-20250929 · Anthropic | $3.00 | $0.30 | $15.00 | 128K |
| Claude Sonnet 4.5 (thinking)claude-sonnet-4-5-20250929-thinking · Anthropic | $3.00 | $3.00 | $15.00 | — |
| Claude Sonnet 4.6claude-sonnet-4-6 · Anthropic | $3.00 | $0.30 | $15.00 | 128K |
| Claude Sonnet 4.6 (thinking)claude-sonnet-4-6-thinking · Anthropic | $3.00 | $3.00 | $15.00 | — |
| Claude Sonnet 5claude-sonnet-5 · Anthropic | $0.70 | $0.07 | $3.50 | 1M |
| Claude Sonnet 5.5claude-sonnet-5-5 · Anthropic | $0.70 | $0.035 | $3.50 | 1M |
| DeepSeek R1deepseek-r1 · DeepSeek | $0.56 | $0.56 | $2.24 | — |
| DeepSeek V4 Flashdeepseek-v4-flash · DeepSeek | $0.4286 | $0.0429 | $1.2857 | 1M |
| DeepSeek V4 Prodeepseek-v4-pro · DeepSeek | $0.396 | $0.0132 | $1.188 | 1M |
| DeepSeek V4.1 Flashdeepseek-v4.1-flash · DeepSeek | $0.09 | $0.0018 | $0.36 | 1M |
| Gemini 2.5 Flashgemini-2.5-flash · Google | $0.30 | $0.30 | $2.4999 | — |
| Gemini 2.5 Flash (no thinking)gemini-2.5-flash-nothinking · Google | $0.30 | $0.30 | $2.4999 | — |
| Gemini 2.5 Flash (thinking)gemini-2.5-flash-thinking · Google | $0.30 | $0.30 | $2.4999 | — |
| Gemini 2.5 Flash Litegemini-2.5-flash-lite · Google | $0.10 | $0.10 | $0.40 | — |
| Gemini 2.5 Progemini-2.5-pro · Google | $1.25 | $1.25 | $10.00 | — |
| Gemini 2.5 Pro (no thinking)gemini-2.5-pro-nothinking · Google | $1.25 | $1.25 | $10.00 | — |
| Gemini 2.5 Pro (thinking)gemini-2.5-pro-thinking · Google | $1.25 | $1.25 | $10.00 | — |
| Gemini 3 Flash Previewgemini-3-flash-preview · Google | $0.50 | $0.50 | $3.00 | — |
| Gemini 3 Flash Preview (no thinking)gemini-3-flash-preview-nothinking · Google | $0.50 | $0.50 | $3.00 | — |
| Gemini 3 Flash Preview (thinking)gemini-3-flash-preview-thinking · Google | $0.50 | $0.50 | $3.00 | — |
| Gemini 3 Pro Previewgemini-3-pro-preview · Google | $2.00 | $2.00 | $12.00 | — |
| Gemini 3 Pro Preview (thinking)gemini-3-pro-preview-thinking · Google | $2.00 | $2.00 | $12.00 | — |
| Gemini 3.1 Flash Lite Previewgemini-3.1-flash-lite-preview · Google | $0.25 | $0.25 | $1.50 | — |
| Gemini 3.1 Pro Previewgemini-3.1-pro-preview · Google | $2.00 | $2.00 | $12.00 | — |
| Gemini 3.1 Pro Preview (thinking)gemini-3.1-pro-preview-thinking · Google | $2.00 | $2.00 | $12.00 | — |
| Gemini 3.5 Flashgemini-3.5-flash · Google | $1.50 | $1.50 | $9.00 | — |
| Gemini 3.5 Flash Litegemini-3.5-flash-lite · Google | $0.30 | $0.30 | $2.499 | — |
| Gemini 3.6 Flashgemini-3.6-flash · Google | $1.50 | $0.15 | $7.50 | 1.05M |
| Gemini 3.7 Flashgemini-3.7-flash · Google | $0.75 | $0.075 | $3.75 | 1.05M |
| Gemini 3.8 Flashgemini-3.8-flash · Google | $0.225 | $0.0225 | $1.125 | 1M |
| Gemini 4 Argongemini-4-argon · Google | $0.60 | $0.03 | $3.00 | 1M |
| Kimi K2.5kimi-k2.5 · Kimi | $0.514 | $0.514 | $0.6939 | — |
| Kimi K2.6kimi-k2.6 · Kimi | $0.57 | $0.096 | $2.40 | 256K |
| Kimi K2.7 Codekimi-k2.7-code · Kimi | $0.57 | $0.114 | $2.40 | 256K |
| Kimi K3kimi-k3 · Kimi | $1.80 | $0.18 | $9.00 | 1M |
| MiniMax M2.5minimax-m2.5 · MiniMax | $0.30 | $0.30 | $1.20 | — |
| MiniMax M3minimax-m3 · MiniMax | $0.30 | $0.30 | $1.20 | — |
| GPT-4.1gpt-4.1 · OpenAI | $2.00 | $0.50 | $8.00 | 128K |
| GPT-4.1 minigpt-4.1-mini · OpenAI | $0.40 | $0.10 | $1.60 | 128K |
| GPT-4.1 nanogpt-4.1-nano · OpenAI | $0.10 | $0.025 | $0.40 | 128K |
| GPT-4ogpt-4o · OpenAI | $2.50 | $1.25 | $10.00 | 128K |
| GPT-4o minigpt-4o-mini · OpenAI | $0.15 | $0.15 | $0.60 | — |
| GPT-5gpt-5 · OpenAI | $1.25 | $0.125 | $10.00 | 128K |
| GPT-5 minigpt-5-mini · OpenAI | $0.25 | $0.025 | $2.00 | 128K |
| GPT-5 nanogpt-5-nano · OpenAI | $0.05 | $0.005 | $0.40 | 128K |
| GPT-5.1gpt-5.1 · OpenAI | $1.25 | $0.125 | $10.00 | 128K |
| GPT-5.2gpt-5.2 · OpenAI | $1.75 | $0.175 | $14.00 | 128K |
| GPT-5.4gpt-5.4 · OpenAI | $2.50 | $0.25 | $15.00 | 1M |
| GPT-5.4 minigpt-5.4-mini · OpenAI | $0.75 | $0.075 | $4.50 | 128K |
| GPT-5.4 nanogpt-5.4-nano · OpenAI | $0.20 | $0.02 | $1.25 | 128K |
| GPT-5.5gpt-5.5 · OpenAI | $1.15 | $0.115 | $6.90 | 1.05M |
| GPT-5.6 Lunagpt-5.6-luna · OpenAI | $0.20 | $0.02 | $1.20 | 922K |
| GPT-5.6 Solgpt-5.6-sol · OpenAI | $0.92 | $0.092 | $4.60 | 1.05M |
| GPT-5.6 Terragpt-5.6-terra · OpenAI | $0.46 | $0.046 | $2.76 | 1.05M |
| GPT-6 Astragpt-6-astra · OpenAI | $2.30 | $0.23 | $11.50 | 1.05M |
| GPT-6 Lunagpt-6-luna · OpenAI | $0.10 | $0.01 | $0.50 | 922K |
| GPT-6 Solgpt-6-sol · OpenAI | $0.46 | $0.046 | $2.30 | 1.05M |
| GPT-6.1 Solgpt-6.1-sol · OpenAI | $0.46 | $0.023 | $2.30 | 1.05M |
| GPT-6.1 Terragpt-6.1-terra · OpenAI | $1.00 | $0.05 | $5.00 | 922K |
| o3o3 · OpenAI | $2.00 | $2.00 | $8.00 | — |
| o3-minio3-mini · OpenAI | $1.10 | $0.55 | $4.40 | 128K |
| o3-mini (high)o3-mini-high · OpenAI | $1.10 | $1.10 | $4.40 | — |
| o3-mini (low)o3-mini-low · OpenAI | $1.10 | $1.10 | $4.40 | — |
| o3-mini (medium)o3-mini-medium · OpenAI | $1.10 | $1.10 | $4.40 | — |
| o4-minio4-mini · OpenAI | $1.10 | $0.275 | $4.40 | 128K |
| Qwen3.6-Flashqwen3.6-flash · Qwen | $0.1714 | $0.1714 | $1.0284 | — |
| Qwen3.6-Plusqwen3.6-plus · Qwen | $0.2858 | $0.2858 | $1.7148 | — |
| Qwen3.7-Flashqwen3.7-flash · Qwen | $0.0286 | $0.0057 | $0.1143 | 984K |
| Qwen3.7-Maxqwen3.7-max · Qwen | $1.7142 | $1.7142 | $5.1426 | — |
| Qwen3.7-Plusqwen3.7-plus · Qwen | $0.2858 | $0.2858 | $1.1432 | — |
| Qwen3.8 2.4T-A95Bqwen3.8-2.4t-a95b · Qwen | $1.7143 | $0.2143 | $5.1429 | 984K |
| Qwen3.8 27Bqwen3.8-27b · Qwen | $0.4286 | $0.0857 | $1.7143 | 984K |
| Qwen3.8-Flashqwen3.8-flash · Qwen | $0.1143 | $0.0143 | $0.3857 | 984K |
| Qwen3.8-Maxqwen3.8-max · Qwen | $1.20 | $0.15 | $3.60 | 1M |
| Step 3.7 Flashstep-3.7-flash · StepFun | $0.1928 | $0.1928 | $1.1568 | — |
| Grok 4.3grok-4.3 · xAI | $1.25 | $1.25 | $2.50 | — |
| Grok 4.5grok-4.5 · xAI | $0.60 | $0.09 | $1.80 | 500K |
| Grok 4.6grok-4.6 · xAI | $0.60 | $0.15 | $1.80 | 500K |
| Grok 4.7grok-4.7 · xAI | $0.60 | $0.15 | $1.80 | 500K |
| Grok 4.20 (non-reasoning)grok-4.20-0309-non-reasoning · xAI | $1.25 | $1.25 | $2.50 | — |
| Grok 4.20 (reasoning)grok-4.20-0309-reasoning · xAI | $1.25 | $1.25 | $2.50 | — |
| Grok Build 0.1grok-build-0.1 · xAI | $1.00 | $1.00 | $2.00 | — |
| GLM-5glm-5 · Zhipu GLM | $1.00 | $1.00 | $1.60 | — |
| GLM-5.1glm-5.1 · Zhipu GLM | $0.84 | $0.156 | $2.64 | 200K |
| GLM-5.2glm-5.2 · Zhipu GLM | $0.84 | $0.156 | $2.64 | 1M |
| GLM-5.3glm-5.3 · Zhipu GLM | $0.84 | $0.156 | $2.64 | 1M |
| GLM-5.3 Flashglm-5.3-flash · Zhipu GLM | $0.09 | $0.018 | $0.30 | 1M |
| GLM-5.3 FlashXglm-5.3-flashx · Zhipu GLM | $0.222 | $0.045 | $0.75 | 1M |