One endpoint. Your keys. Full observability.
An OpenAI-compatible API in front of the provider keys you already have. Point your existing SDK at one endpoint and get virtual keys, request logs, and analytics — no IDE license required.
Request beta access Read the docs
Drop-in for your existing SDK
Same request and response shape as OpenAI's API — swap the base URL and key, nothing else in your code changes. Python, Node, and every other OpenAI SDK work exactly the same way.
# Point any OpenAI SDK at Tempr Gateway
curl https://api.temprhq.io/v1/chat/completions \
-H "Authorization: Bearer tvk_..." \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [{"role": "user", "content": "Say hi"}]
}'
Full Python and Node examples in the Gateway quickstart.
Built for teams who already bring their own keys
Virtual keys, request logs, and analytics — BYOK all the way through, so Tempr never marks up or resells a token.
Bring your own keys
Connect your own OpenAI, Anthropic, Google, or aggregator keys. Tempr fronts none of its own — you pay your provider directly, and Tempr for the gateway itself.
Virtual keys
Issue scoped keys per app or environment with a model allowlist, a budget, and RPM/TPM limits — revoke instantly, no rotating your real provider key.
Request logs
Every call is searchable by key, model, provider, status, and latency, with a per-request detail view — metadata always included, prompt/response when you opt in.
Analytics
Requests, tokens, cost, latency (p50/p95), and error rate — broken down by key, model, and day.
Quotas, not surprises
Each plan includes a monthly request quota. Paid tiers keep serving past it on metered overage, capped at a limit you set — never a silent bill shock.
Fallback chains
Define an ordered list of provider/model candidates per key, so one provider's outage or rate limit doesn't take your app down with it.
Response caching
Opt in per request to exact-match caching for repeat prompts — cached hits are logged and billed as cached, not full price.
Content capture, your call
Request/response logging is on by default (7-day retention, 256 KB truncated) so you can debug real traffic — toggle it off, or switch to metadata-only, anytime.
OpenAI-compatible, end to end
POST /v1/chat/completions (streaming and non-streaming) and GET /v1/models, with tool and function calling passed straight through. Point any OpenAI client at Tempr and you're done.
Streaming, first-class
Server-sent events on /v1/chat/completions with the same chunk shape OpenAI streams — your existing streamed UI works unchanged.
Model routing
Provider-prefixed model ids like openai/gpt-4o pick the provider per request — and per-key allowlists pin exactly which models each key is allowed to serve.
Built for teams
Org-managed virtual keys pool provider keys centrally with per-member budget, rate, and model limits — one provider bill, hard caps per seat, SSO on the account.
How it works
1. Point your SDK at Tempr
Set the base URL to https://api.temprhq.io/v1 in any OpenAI client — Python, Node, curl, whatever you already use.
2. Connect your provider key(s)
Add your own OpenAI, Anthropic, Google, or aggregator keys in the Portal. Every request goes out on your key, at your provider's rates — Tempr never fronts tokens.
3. Issue virtual keys
Create a tvk_… key per app or environment with its own budget, rate limits, and model allowlist. Rotate or revoke instantly without touching the real provider key.
4. Ship with observability
From the first request you get logs, analytics by key and model, fallback chains, and caching — no SDK changes, no instrumentation code.
What teams use it for
The same gateway layer, whatever your reason for wanting keys, logs, and limits in front of your models.
Stop sharing raw provider keys
Teammates and services get scoped virtual keys with their own limits — nobody pastes the production OpenAI key into a Slack thread ever again.
Survive provider outages
Ordered fallback chains move traffic to the next candidate the moment a provider rate-limits or goes down — your app never knows.
Debug real production traffic
Logs searchable by key, model, status, and latency — with per-request detail and optional prompt/response capture when you need the full picture.
Never get a surprise bill
Every plan has a request quota; paid tiers serve past it on metered overage capped at a limit you set. A runaway script tops out quietly instead of billing endlessly.
Cut spend on repeat prompts
Opt in per request to exact-match response caching — cached hits are logged and billed as cached, not full price.
Change models without a deploy
The model is a string in the request, and allowlists keep production pinned — try a new model on a dev key, promote it by changing one line.
Bring a key from any of these
The same ~30-provider allowlist as Tempr Chat, enforced server-side — your key, routed straight to the provider. A few of the most popular: