One API key for every frontier model
Claude and GPT through the SDKs you already use. Swap your base URL, pay per token from a prepaid balance, and pay a fraction of list price.
Starter credit included No card No monthly fee
Illustration: the dashboard's overview, with the credit balance, the month's spend, the request count, a chart of spend per day and the latest requests.
- Model
- claude-sonnet-4-6
- Input
- 12,400 tok
- Output
- 2,100 tok
- At list price
$0.0687- You paid
- $0.0196
x-openrelay-cost-usd
0.019646100
x-openrelay-cost-usd header.
Works with the tools you already use
- OpenAI SDK
- Anthropic SDK
- Claude Code
- Vercel AI SDK
- Cursor
- LiteLLM
- LibreChat
- Continue
Every frontier model, relayed at a fraction of list price.
OpenRelay speaks the OpenAI and Anthropic APIs natively, bills to the token from a prepaid balance, and puts the cost of every request in its response headers.
- models on one key
- 20
- median saving vs list price
- 71%
- monthly fee, seats or minimum
- $0
- wire formats, both native
- 2
Pricing
The rate card.
Per million tokens, read live from the catalogue: what you see is what you pay. No platform fee on top, no seats, no minimum. Vendor list price is shown struck through beneath each rate.
| Model | Input / 1M | Output / 1M | Context | vs list |
|---|---|---|---|---|
Loading the live catalogue…
The full catalogue is always available as JSON at
/api/v1/models.
|
||||
Cached input is billed at a lower rate again. Image generation is available too: .
The fine print
It is short, and every clause is in your favour.
-
No monthly fee. No minimum.
Credit is prepaid and drawn down per request. If you stop calling, you stop paying; there is nothing to cancel.
-
Billed to the token.
Streams are metered in flight, so a request that disconnects halfway is billed for exactly what was produced. Each response states its own cost in
x-openrelay-cost-usd. -
A ceiling you set.
Your balance is already a hard limit. On top of it, every key can carry its own budget, rate limit, concurrency cap and model allowlist.
-
Native on every path.
Chat Completions, Responses, Anthropic Messages and image generation, on the routes your SDK already calls, with errors in its own shape so your retries keep working.
-
Every request on the record.
Model, tokens, cost, latency and time-to-first-token for each call, in your dashboard. Costs reconcile to the token, not to an estimate.
-
Leave whenever you like.
It is the standard API. Point the base URL back and every line of your code still runs.
Questions
Asked, answered.
The short version: change two lines, pay for what you use, and leave whenever you like.
Do I have to change my code?
Only the base URL and the API key. Requests and responses are the standard OpenAI and Anthropic shapes, so SDKs, frameworks and tools like Claude Code, Cursor, Continue, LibreChat and LiteLLM work unmodified.
How is a request priced?
Per token, at the rates on the rate card: input, output, and a cheaper rate for
cached input. The exact cost of every request is returned in the
x-openrelay-cost-usd response header and recorded in your
activity log.
What happens if I run out of credit?
New requests are refused with a normal 402 rather than failing
silently, and a small allowance absorbs any request already in flight, so a
long stream is never cut off mid-sentence. Top up and you are going again
immediately.
Is streaming supported?
Yes, on both wire formats, including tool calls and reasoning tokens. Chunks are relayed as they arrive, with no added buffering.
Do you train on my data?
No. Requests are relayed to the upstream provider and not used for training. What is kept is the metadata in your usage log (model, token counts, cost and timing), never prompt or completion content.
Can I set a hard spending limit?
Yes. Credit is prepaid, so your balance is already a ceiling, and each key can carry its own lifetime budget and rate limit on top.