One API, every provider
OpenAI Chat Completions, Embeddings, Audio and Anthropic Messages on the same host. Tools, vision, streaming and reasoning pass through.
Gateway 101 priced models · 7 providers · 10 aliases
An OpenAI-compatible API in front of Anthropic Claude, Amazon Bedrock, OpenAI, DeepSeek, Google, Deepgram and ElevenLabs, plus TypeSafe's Jev for calibrated decisions. Every response carries its exact cost, every key has a hard budget, and every call is logged and fails over automatically.
Change base_url, keep your SDK. Works with openai, Anthropic Messages and plain HTTP.
// request
{ "model": "fast",
"messages": [{ "role": "user", "content": "Hello" }] }
// response (excerpt)
{ "model": "bedrock/us.amazon.nova-lite-v1:0",
"cost": {
"alias": "fast", "currency": "USD",
"total_usd": 0.00000204,
"budget": { "limit_usd": 20, "remaining_usd": 19.99998 } } }Why a gateway
Apps ask for smart or fast. The gateway picks the model, enforces the money rules and tells you what it cost.
OpenAI Chat Completions, Embeddings, Audio and Anthropic Messages on the same host. Tools, vision, streaming and reasoning pass through.
A cost object with input, output and total USD plus remaining budget, in the body and in x-models-cost-usd. Streams carry it in the final chunk.
Daily, monthly or total USD caps per key, enforced by reserving worst-case cost before the call. Per-end-user budgets from the user's plan.
RPM and TPM limits, max-token caps, model allowlists, alert thresholds to Slack and Prometheus, and a global monthly ceiling.
Aliases are ordered chains. Throttling, 5xx, timeouts and unavailable models fall through to the next target; a 400 never does.
Metadata for every call, always. Request and response bodies only when enabled per key, AES-256-GCM encrypted with 30-day retention.
Live catalog
Use an alias instead of a vendor id. When a better or cheaper model ships, the mapping changes and your code does not.
The cheapest acceptable chat model, for very high volume.
Resolves to Amazon Nova Micro (us)
Code generation, review and refactoring.
Resolves to Claude Sonnet 5.5
Calibrated typed decisions (noul / choice / score / box with probabilities and confidence) from TypeSafe Jev. Only valid on POST /v1/systemone — not a chat model.
Resolves to Jev 1.14
Text embeddings, 1024 dimensions (Amazon Titan Text Embeddings v2). Single target: never fails over to a different vector space.
Resolves to Amazon Titan Text Embeddings V2
Low-latency, low-cost chat for short tasks, routing and extraction.
Resolves to Amazon Nova Lite (us)
Multi-step reasoning, planning and hard problems. Slower; returns reasoning_content when the model exposes it.
Resolves to Claude Opus 5.5
Balanced quality for most product features: writing, analysis, tool use.
Resolves to Claude Sonnet 5.5
Speech-to-text for recorded audio files (multilingual).
Resolves to Deepgram Nova-3
Premium text-to-speech and cloned voices (ElevenLabs). voice = an ElevenLabs voice id; an ElevenLabs voice never fails over to another vendor.
Resolves to Eleven Multilingual v2
Image understanding (send image_url parts as base64 data URLs).
Resolves to Claude Haiku 4.5
Prices in USD per 1M tokens unless noted. Only enabled and priced models are listed.
| Model | Provider | Type | Input | Output |
|---|---|---|---|---|
| Claude Fable 5anthropic/claude-fable-5 | anthropic | chat | $10.00 | $50.00 |
| Claude Fable 5.1anthropic/claude-fable-5-1 | anthropic | chat | $10.00 | $50.00 |
| Claude Haiku 4.5anthropic/claude-haiku-4-5-20251001 | anthropic | chat | $1.00 | $5.00 |
| Claude Haiku 5.5anthropic/claude-haiku-5-5 | anthropic | chat | $0.10 | $0.50 |
| Claude Opus 4.5anthropic/claude-opus-4-5-20251101 | anthropic | chat | $5.00 | $25.00 |
| Claude Opus 4.6anthropic/claude-opus-4-6 | anthropic | chat | $5.00 | $25.00 |
| Claude Opus 4.7anthropic/claude-opus-4-7 | anthropic | chat | $5.00 | $25.00 |
| Claude Opus 4.8anthropic/claude-opus-4-8 | anthropic | chat | $5.00 | $25.00 |
| Claude Opus 5anthropic/claude-opus-5 | anthropic | chat | $5.00 | $25.00 |
| Claude Opus 5.5anthropic/claude-opus-5-5 | anthropic | chat | $4.00 | $20.00 |
| Claude Sonnet 4.6anthropic/claude-sonnet-4-6 | anthropic | chat | $3.00 | $15.00 |
| Claude Sonnet 5anthropic/claude-sonnet-5 | anthropic | chat | $2.00 | $10.00 |
| Claude Sonnet 5.5anthropic/claude-sonnet-5-5 | anthropic | chat | $2.00 | $10.00 |
| Amazon Nova Litebedrock/amazon.nova-lite-v1:0 | bedrock | chat | $0.06 | $0.24 |
| Amazon Nova Microbedrock/amazon.nova-micro-v1:0 | bedrock | chat | $0.035 | $0.14 |
| Amazon Nova Probedrock/amazon.nova-pro-v1:0 | bedrock | chat | $0.80 | $3.20 |
| Amazon Titan Embeddings G1 - Textbedrock/amazon.titan-embed-text-v1 | bedrock | embedding | $0.10 | — |
| Amazon Titan Text Embeddings V2bedrock/amazon.titan-embed-text-v2:0 | bedrock | embedding | $0.02 | — |
| Amazon Nova 2 Lite (global)bedrock/global.amazon.nova-2-lite-v1:0 | bedrock | chat | $0.30 | $2.50 |
| Anthropic Claude Haiku 4.5 (global)bedrock/global.anthropic.claude-haiku-4-5-20251001-v1:0 | bedrock | chat | $1.00 | $5.00 |
| Anthropic Claude Sonnet 4.5 (global)bedrock/global.anthropic.claude-sonnet-4-5-20250929-v1:0 | bedrock | chat | $3.00 | $15.00 |
| OpenAI gpt-oss-120bbedrock/openai.gpt-oss-120b-1:0 | bedrock | chat | $0.15 | $0.60 |
| OpenAI gpt-oss-20bbedrock/openai.gpt-oss-20b-1:0 | bedrock | chat | $0.07 | $0.30 |
| Qwen Qwen3 32B (dense)bedrock/qwen.qwen3-32b-v1:0 | bedrock | chat | $0.20 | $0.78 |
| Qwen Qwen3-Coder-30B-A3B-Instructbedrock/qwen.qwen3-coder-30b-a3b-v1:0 | bedrock | chat | $0.15 | $0.60 |
| Qwen Qwen3 Coder Nextbedrock/qwen.qwen3-coder-next | bedrock | chat | $0.50 | $1.20 |
| Qwen Qwen3 Next 80B A3Bbedrock/qwen.qwen3-next-80b-a3b | bedrock | chat | $0.15 | $1.20 |
| Qwen Qwen3 VL 235B A22Bbedrock/qwen.qwen3-vl-235b-a22b | bedrock | chat | $0.53 | $2.66 |
| Amazon Nova 2 Lite (us)bedrock/us.amazon.nova-2-lite-v1:0 | bedrock | chat | $0.30 | $2.50 |
| Amazon Nova Lite (us)bedrock/us.amazon.nova-lite-v1:0 | bedrock | chat | $0.06 | $0.24 |
| Amazon Nova Micro (us)bedrock/us.amazon.nova-micro-v1:0 | bedrock | chat | $0.035 | $0.14 |
| Amazon Nova Pro (us)bedrock/us.amazon.nova-pro-v1:0 | bedrock | chat | $0.80 | $3.20 |
| Anthropic Claude Haiku 4.5 (us)bedrock/us.anthropic.claude-haiku-4-5-20251001-v1:0 | bedrock | chat | $1.10 | $5.50 |
| Anthropic Claude Sonnet 4.5 (us)bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0 | bedrock | chat | $3.30 | $16.50 |
| DeepSeek DeepSeek-R1 (us)bedrock/us.deepseek.r1-v1:0 | bedrock | chat | $1.35 | $5.40 |
| Meta Llama 3.1 70B Instruct (us)bedrock/us.meta.llama3-1-70b-instruct-v1:0 | bedrock | chat | $0.72 | $0.72 |
| Meta Llama 3.1 8B Instruct (us)bedrock/us.meta.llama3-1-8b-instruct-v1:0 | bedrock | chat | $0.22 | $0.22 |
| Meta Llama 3.3 70B Instruct (us)bedrock/us.meta.llama3-3-70b-instruct-v1:0 | bedrock | chat | $0.72 | $0.72 |
| Meta Llama 4 Maverick 17B Instruct (us)bedrock/us.meta.llama4-maverick-17b-instruct-v1:0 | bedrock | chat | $0.24 | $0.97 |
| Meta Llama 4 Scout 17B Instruct (us)bedrock/us.meta.llama4-scout-17b-instruct-v1:0 | bedrock | chat | $0.17 | $0.66 |
| Mistral AI Pixtral Large (25.02) (us)bedrock/us.mistral.pixtral-large-2502-v1:0 | bedrock | chat | $2.00 | $6.00 |
| Deepgram Nova-2deepgram/nova-2 | deepgram | transcription | $0.0043 /min | — |
| Deepgram Nova-3deepgram/nova-3 | deepgram | transcription | $0.0052 /min | — |
| deepseek-flashdeepseek/deepseek-flash | deepseek | chat | $0.22 | $0.66 |
| deepseek-v4-prodeepseek/deepseek-v4-pro | deepseek | chat | $0.66 | $1.98 |
| Eleven Flash v2elevenlabs/eleven_flash_v2 | elevenlabs | speech | $40.00 /1M chars | — |
| Eleven Flash v2.5elevenlabs/eleven_flash_v2_5 | elevenlabs | speech | $40.00 /1M chars | — |
| Eleven Multilingual v2elevenlabs/eleven_multilingual_v2 | elevenlabs | speech | $80.00 /1M chars | — |
| Eleven Turbo v2elevenlabs/eleven_turbo_v2 | elevenlabs | speech | $40.00 /1M chars | — |
| Eleven Turbo v2.5elevenlabs/eleven_turbo_v2_5 | elevenlabs | speech | $40.00 /1M chars | — |
| Eleven v3elevenlabs/eleven_v3 | elevenlabs | speech | $80.00 /1M chars | — |
| Eleven v3 Conversationalelevenlabs/eleven_v3_conversational | elevenlabs | speech | $40.00 /1M chars | — |
| Eleven v4elevenlabs/eleven_v4 | elevenlabs | speech | $80.00 /1M chars | — |
| Eleven v4 Turboelevenlabs/eleven_v4_turbo | elevenlabs | speech | $40.00 /1M chars | — |
| Jev 1.13jev/jev-1.13.0 | jev | decision | $0.042 | $0.00 |
| Jev 1.14jev/jev-1.14.0 | jev | decision | $0.042 | $0.00 |
| jev-latestjev/jev-latest | jev | decision | $0.042 | $0.00 |
| jev-previewjev/jev-preview | jev | decision | $0.042 | $0.00 |
| gpt-4.1openai/gpt-4.1 | openai | chat | $2.00 | $8.00 |
| gpt-4.1-2025-04-14openai/gpt-4.1-2025-04-14 | openai | chat | $2.00 | $8.00 |
| gpt-4.1-miniopenai/gpt-4.1-mini | openai | chat | $0.40 | $1.60 |
| gpt-4.1-mini-2025-04-14openai/gpt-4.1-mini-2025-04-14 | openai | chat | $0.40 | $1.60 |
| gpt-4.1-nanoopenai/gpt-4.1-nano | openai | chat | $0.10 | $0.40 |
| gpt-4.1-nano-2025-04-14openai/gpt-4.1-nano-2025-04-14 | openai | chat | $0.10 | $0.40 |
| gpt-4oopenai/gpt-4o | openai | chat | $2.50 | $10.00 |
| gpt-4o-2024-05-13openai/gpt-4o-2024-05-13 | openai | chat | $2.50 | $10.00 |
| gpt-4o-2024-08-06openai/gpt-4o-2024-08-06 | openai | chat | $2.50 | $10.00 |
| gpt-4o-2024-11-20openai/gpt-4o-2024-11-20 | openai | chat | $2.50 | $10.00 |
| gpt-4o-miniopenai/gpt-4o-mini | openai | chat | $0.15 | $0.60 |
| gpt-4o-mini-2024-07-18openai/gpt-4o-mini-2024-07-18 | openai | chat | $0.15 | $0.60 |
| gpt-4o-mini-transcribeopenai/gpt-4o-mini-transcribe | openai | transcription | $0.003 /min | — |
| gpt-4o-mini-transcribe-2025-03-20openai/gpt-4o-mini-transcribe-2025-03-20 | openai | transcription | $0.003 /min | — |
| gpt-4o-mini-transcribe-2025-12-15openai/gpt-4o-mini-transcribe-2025-12-15 | openai | transcription | $0.003 /min | — |
| gpt-4o-transcribeopenai/gpt-4o-transcribe | openai | transcription | $0.006 /min | — |
| gpt-5openai/gpt-5 | openai | chat | $1.25 | $10.00 |
| gpt-5-2025-08-07openai/gpt-5-2025-08-07 | openai | chat | $1.25 | $10.00 |
| gpt-5.6-lunaopenai/gpt-5.6-luna | openai | chat | $0.22 | $1.32 |
| gpt-5.6-solopenai/gpt-5.6-sol | openai | chat | $4.40 | $22.00 |
| gpt-5.6-terraopenai/gpt-5.6-terra | openai | chat | $2.20 | $13.20 |
| gpt-5-miniopenai/gpt-5-mini | openai | chat | $0.25 | $2.00 |
| gpt-5-mini-2025-08-07openai/gpt-5-mini-2025-08-07 | openai | chat | $0.25 | $2.00 |
| gpt-5-nanoopenai/gpt-5-nano | openai | chat | $0.05 | $0.40 |
| gpt-5-nano-2025-08-07openai/gpt-5-nano-2025-08-07 | openai | chat | $0.05 | $0.40 |
| gpt-6.1-solopenai/gpt-6.1-sol | openai | chat | $2.00 | $10.00 |
| gpt-6-astraopenai/gpt-6-astra | openai | chat | $10.00 | $50.00 |
| gpt-6-lunaopenai/gpt-6-luna | openai | chat | $0.10 | $0.50 |
| gpt-6-solopenai/gpt-6-sol | openai | chat | $2.00 | $10.00 |
| o3openai/o3 | openai | chat | $2.00 | $8.00 |
| o3-2025-04-16openai/o3-2025-04-16 | openai | chat | $2.00 | $8.00 |
| o3-miniopenai/o3-mini | openai | chat | $1.10 | $4.40 |
| o3-mini-2025-01-31openai/o3-mini-2025-01-31 | openai | chat | $1.10 | $4.40 |
| o4-miniopenai/o4-mini | openai | chat | $1.10 | $4.40 |
| o4-mini-2025-04-16openai/o4-mini-2025-04-16 | openai | chat | $1.10 | $4.40 |
| text-embedding-3-largeopenai/text-embedding-3-large | openai | embedding | $0.13 | — |
| text-embedding-3-smallopenai/text-embedding-3-small | openai | embedding | $0.02 | — |
| text-embedding-ada-002openai/text-embedding-ada-002 | openai | embedding | $0.10 | — |
| tts-1openai/tts-1 | openai | speech | $15.00 /1M chars | — |
| tts-1-1106openai/tts-1-1106 | openai | speech | $15.00 /1M chars | — |
| tts-1-hdopenai/tts-1-hd | openai | speech | $30.00 /1M chars | — |
| tts-1-hd-1106openai/tts-1-hd-1106 | openai | speech | $30.00 /1M chars | — |
| whisper-1openai/whisper-1 | openai | transcription | $0.006 /min | — |
Pricing
Every call is metered at the catalog price above and the exact cost comes back in the response.
Models has no plan of its own. Thundera apps call it with their own keys; the AI allowance in each app plan is enforced here as a per-user monthly budget.
Platform keys are charged at the per-token, per-minute or per-character prices in the catalog. Nothing is marked up silently, and unpriced models are never served.
Every key has a USD cap enforced before the call. Your plan, cards and invoices are managed centrally in your Thundera account.
Quickstart
The request is plain OpenAI. The only addition is cost in the answer.
curl https://models.thundera.eu/v1/chat/completions \
-H "Authorization: Bearer $MODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"fast","messages":[{"role":"user","content":"Hello"}]}'import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://models.thundera.eu/v1",
apiKey: process.env.MODELS_API_KEY,
});
const res = await client.chat.completions.create({
model: "fast",
messages: [{ role: "user", content: "Hello" }],
});
console.log(res.choices[0].message.content, res.cost.total_usd);For Thundera apps
Every platform-funded LLM, embedding and audio call goes through the gateway with the app's own key.
X-Thundera-User and their plan budget# env injected from Secret <app>-models
MODELS_BASE_URL=http://models.thundera.svc.cluster.local/v1
MODELS_API_KEY=<from SSM /thundera/<app>/models-api-key>
# NetworkPolicy egress
to: podSelector app=models port: 8080Security
RS256 JWTs, verifiable offline via JWKS. Regenerating or revoking a key takes effect on the very next call.
Bodies are stored only when a key opts in: AES-256-GCM, at most 64 KB each, 30-day retention. Off for sensitive apps.
A model without a price is never exposed, so nothing can run outside the budget accounting.
Three replicas behind a disruption budget and autoscaler; shared ledger in PostgreSQL; graceful drain on deploy.
Full reference with quickstarts for curl, Node, Python, Go and Rust.