Enforce budgets before every call
Agent, team and organization limits are checked before the call runs, not found on the invoice.
Keep your existing SDK
Change the base URL and the API key. Text calls through Chat Completions, Responses and Messages work as they are; the docs list what the gateway refuses.
Let agents request more
Requests with a reason, approvals by policy or a person, and a complete audit trail.
- 3.3 ms
- of gateway work per call, p95, in our load test against a local mock provider; not a production guarantee
- 0
- limits exceeded in our load test: 5,000 calls, 100 at a time
- 11
- providers behind one gateway, plus any OpenAI-compatible server
- Every
- change and approval in a hash-chained log, verified hourly
Why the limit has to sit in the path
An agent stuck in a loop spends while nobody is watching. A usage dashboard shows the bill afterwards; a provider can only limit its own account. DORET Prism decides before each call, for every provider at once.
| Usage dashboards and provider limits | DORET Prism | |
|---|---|---|
| When | Show spend after the calls are made | Checks every call before it runs |
| Scope | One provider, one account or project | Every provider your agents use |
| Granularity | The whole account or project | Each agent, team and the company; per day, month and call |
| At the limit | An alert, or everything on that key stops | Only that agent stops, and it can ask for more |
| Record | A usage export | Spend, approvals and every change in one audit log |
One call, start to finish
A real call to Claude Haiku through the gateway, step by step.
- 1CheckThe agent's key, its allowed models, its call rate.key valid · model allowed
- 2ReserveThe most the call could cost, held on the agent, its group and the company at once.$0.000020 held
- 3CallSent to the provider with only an output cap and usage reporting added, streaming included. Your key never leaves the gateway.16 tokens in, 6 out
- 4SettleCharged from the tokens in the provider's answer, at the model's price; the rest returns to the budget.$0.000005 charged · $0.000015 back
When an agent needs more
An agent that hits its limit asks for more through the API, with the amount, the time and the reason. Your policy decides who may approve it; on Business, small requests can be approved automatically within limits you set in advance.
AI can recommend. Only a person or your policy decides.
For the people who pay
Finance sees the month the way the ledger recorded it, and every decision that shaped it.
| Group | Calls | Spent |
|---|---|---|
| Research | 2,064 | $619.26 |
| Customer support | 1,027 | $308.13 |
| Sales operations | 180 | $54.01 |
| Total | 3,271 | $981.40 |
- Dana approved $50.00 for pricing-scraper
- pricing-scraper asked for $50.00 for 24 h
- Alex changed the limits of Research: monthly $600 → $800
- Alex connected a key for Anthropic, ending 4f2a
- Priya created the agent lead-enricher
Two lines for your developers
Agents keep the SDK they use. They get their own key and the gateway's address; for text calls, nothing else in the code changes. When a budget cannot cover a call, the agent gets an answer it can act on.
const client = new OpenAI({
apiKey: "aib_live_…", // the agent's own key
baseURL: "https://treasury.example.com/gw/openai/v1",
});HTTP 402 budget_exceeded Agent daily limit cannot cover this request. limit $0.05 · remaining $0.0099 · required $0.0202 ask for more: POST /v1/agent/budget-requests
Every provider your agents use
OpenAI and Anthropic are priced by DORET Prism; the others at the prices you set. A model without a price is refused: a limit is only as good as the price behind it.
- OpenAI
- Anthropic
- Google Gemini
- Mistral
- xAI
- DeepSeek
- Groq
- Together AI
- Fireworks AI
- OpenRouter
- Azure OpenAI
- Your OpenAI-compatible server
Provider keys are encrypted per key, bound to your organization and never shown again. How DORET Prism protects your data
Who it is for
Companies with agent teams
A budget per team and per agent, managers approving their own team's requests, finance approving the large ones.
Agencies
A group per client (Startup and up): each client's agents share that client's budget, and on Business the monthly statement splits spend by client.
AI products
A hard ceiling on what any one workload can cost you, enforced before the call rather than found on the invoice.
Questions teams ask first
Does it slow my agents down?
In our internal load tests the gateway's own work was about 3 ms per call (p95 3.3 ms). That is a measurement against a local mock provider, not a promise: in production add the network hop to the gateway, which depends on where your agents run and where it is hosted. Prompts over 4,000 tokens add one call to the provider's token counter, unless Policies is set to the strict bound.
Do you see my prompts?
They pass through the gateway on their way to the provider, but are not stored. A transaction keeps the model, the tokens, the cost and the status; for a call the provider rejects, the first 200 characters of its error, which can quote the request.
What happens if DORET Prism is down?
Agents call through it, so it is in the path. Run more than one instance; they share nothing but Postgres. A call that cannot be checked is refused, never let through unchecked.
What do I change in my agents?
The base URL and the key in the SDK they already use; images, audio, files and built-in tools are refused, because their cost cannot be capped in advance. To ask for more budget, an agent calls one endpoint, or uses the small TypeScript or Python helper.
Who pays the providers?
You do, with your own keys, as today. DORET Prism holds no funds and issues no cards; budgets are allocations of your spend.
Can a limit ever be exceeded?
Not by calls through the gateway, with one known case: a few OpenAI-compatible providers bill reasoning beyond max_tokens. For those models you set an allowance that every call reserves; without one, an overrun is charged, flagged and reported to you, and the next call is refused.
Give your first agent a budget.
The Developer plan is free. Connect a provider, create an agent, watch a call get checked.
