live waitlist
0engineers ahead of you
Your AI bill has no ceiling.
We just built one.
Troxen is the gateway that sits between your application and every LLM provider — enforcing per-user budgets, serving repeated answers from a semantic cache, and refusing spend you never authorised. One hostname change, no SDK rewrite, no new mental model — and the open tab that has been quietly draining your runway finally becomes a fixed, defensible number. No more 3am invoices.
Monthly invoice
app · direct to provider
$500.00
retry loop · 41,208 unbilled tokens/min
Act I — The unseen leak
The meters spin in the dark, and the bill is the only alarm.
Every other line item in your stack has a ceiling. Compute has a plan. Storage has a quota. Your LLM provider has an open tab — and it stays open while you sleep, while you demo, while a stranger holds down a key. Nobody set out to build it this way; it is simply what happens when a metered resource ships without a meter you control. The leak is not dramatic. It is patient, quiet, and it compounds.
0
requests
The runaway loop
An agent retries a malformed tool call. It never converges. By sunrise it has spent more than your seed round's monthly infra budget on tokens nobody will ever read.
$0
burned overnight
The single malicious user
One account discovers your chat endpoint has no ceiling. They script it. Your provider bill does not know the difference between a customer and an attacker.
0%
percent
The repeated question
Most production traffic is the same handful of questions. You pay full price for every identical answer, every single time, forever.
0
alerts
The silence before the invoice
Nothing in your stack is watching money. Latency graphs stay flat, error rates stay green, and the only monitor that would have caught this arrives by email, thirty days late.
Act II — The night it happens
Nobody watches the bill at 3am. That's the whole problem.
This is not a hypothetical. It is the same night, told by a dozen teams, with the timestamps moved around. Here is how it usually reads.
02:14
A retry loop begins
A tool call returns malformed JSON. Your agent tries again. And again. Nothing in the stack considers this abnormal.
03:40
10,000 requests deep
No alert fires. Latency is fine. Error rates are fine. Every dashboard you own is green, because none of them watch money.
07:02
The invoice email
Subject line: your usage has exceeded your typical spend. The verb is past tense. There is nothing left to decide.
09:00
The runway conversation
You explain to a co-founder that six weeks of runway went to tokens generated for no one, answering a question nobody asked.
11:30
The postmortem nobody can act on
You write the incident doc. Every remediation in it is a promise to be more careful — a rate limit here, a dashboard there, a reminder to check the console. None of it is enforcement, and all of it depends on somebody being awake.
Next month
It happens again, differently
Not a retry loop this time. A launch, a scraper, a demo left running over a weekend. The shape changes; the ending does not. Without a ceiling, every new surface you ship is a new way to lose money quietly.
Act III — The tollbooth at the edge
We sit between your application and the provider, and we decide before you pay.
A tollbooth is not a wall. Traffic still moves — it just moves past something that knows the price. Troxen terminates the request at the edge, checks the two things your provider will never check for you, and only then decides whether money should be spent.
01
Request
Your app calls Troxen instead of the provider. Same shape, same SDK, one hostname different.
02
Evaluate
Does this user have budget left? Has this exact question been answered before? Both checks land in single-digit milliseconds.
03
Serve, cache, or stop
Known answers return from cache. Fresh work passes through and gets metered. Exhausted budgets are refused before a token is billed.
Preview of the API
one line of code
const client = new OpenAI({
baseURL: "https://gateway.troxen.dev/v1", // <- the only change
apiKey: process.env.TROXEN_KEY,
});
// per-user ceiling, enforced at the edge
await client.chat.completions.create(
{ model: "gpt-5", messages },
{ headers: { "x-troxen-user": user.id, "x-troxen-cap": "5.00" } },
);Act IV — The mechanics
Four controls that turn an open tab into a fixed number.
None of these are dashboards. Each one is enforcement that happens before a token is billed, in the request path, whether or not anyone is watching.
Act V — The same month, twice
Identical traffic. Two very different invoices.
Same product, same users, same month of requests. The only difference is whether the spend passed through something that was allowed to say no.
Without Troxen
$0
- Two incidents nobody noticed until billing day
- Zero cached responses — every answer paid for in full
- No per-user ceiling, so no way to price your own product
- Cost forecasting done by hope
With Troxen
$0
- Both incidents stopped at the ceiling, in seconds
- 71% of traffic served from cache at cache prices
- Every user carries a hard, enforced budget
- A number you can put in a board deck without a disclaimer
Early access
Close the tab before it costs you the quarter.
We're onboarding teams in small waves so every gateway gets tuned to real traffic. Tell us what you're spending and who you route through.