How the OmniRoute 1.53B Token Budget Works: Per-API-Key Rate Limiting Explained
OmniRoute enforces a hard per‑API‑key token budget that aggregates consumption across configurable time windows (day, week, month) and rejects excess requests with HTTP 429, while optionally rerouting blocked traffic to emergency fallback models.
The diegosouzapw/OmniRoute gateway implements a granular 1.53B token budget system to prevent runaway costs and ensure equitable resource distribution among clients. This mechanism tracks every prompt and completion token against limits stored in the database, applying the most restrictive matching rule across global, provider, and model scopes.
Core Architecture of the 1.53B Token Budget
Usage Tracking Middleware
At the heart of the budget system lies the usage‑tracking middleware located in open‑sse/utils/usageTracking.ts. When a request containing a model payload arrives, this middleware extracts the token count from the upstream provider’s response (or the prompt_tokens and completion_tokens fields supplied by the client). It then updates the usage record with specific budget counters: context_budget_prompt_tokens, context_budget_total_tokens, and context_budget_input_tokens. These fields feed the real‑time quota calculation that determines whether the next request should be allowed to proceed.
Budget Storage and Lookup
Budget configurations persist in the budget table defined in src/lib/db/reasoningRoutingRules.ts. During request processing, OmniRoute queries the accumulated usage for the calling API key and compares it against the configured limit for the current window. If the total exceeds the threshold, the request is blocked before reaching the upstream provider.
Enforcement Rules and Scope Hierarchy
Scoped Limit Resolution
The 1.53B token budget supports three levels of scoping:
- Global – applies to all requests from the API key regardless of provider or model.
- Provider – restricts usage for a specific upstream provider (e.g., OpenAI, Anthropic).
- Model – sets a hard cap on individual model variants (e.g.,
gpt‑4,claude‑2).
When multiple rules exist, the system selects the most restrictive matching limit to enforce.
HTTP 429 Rejection Logic
Once an API key exhausts its allowance, OmniRoute returns HTTP 429 Too Many Requests with a clear error message (Daily budget exceeded). This behavior is implemented via the budget guardrail documented in docs/security/GUARDRAILS.md. The guardrail consults the current window totals stored in the usage tables and terminates the request immediately when quotas are exceeded.
Configuring Token Budgets via API Endpoints
Operators manage budgets programmatically through the /api/usage/budget endpoint implemented in src/app/api/usage/budget/route.ts. The endpoint supports GET, POST, and DELETE methods for inspecting, setting, or removing limits.
Fetch the current token budget for an API key:
await fetch('http://localhost:20128/api/usage/budget', {
method: 'GET',
headers: { 'Authorization': `Bearer ${API_KEY}` },
});
// → returns { limits: [{ model: 'gpt‑4', tokens: 50000, window: 'daily' }, …] }
Update a specific model’s daily limit:
await fetch('http://localhost:20128/api/usage/budget', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
body: JSON.stringify({
model: 'claude‑2',
tokens: 75000, // new daily token limit
window: 'daily'
})
});
Keys that lack explicit rate_limits entries inherit a default daily limit defined by DEFAULT_RATE_LIMIT_PER_DAY in src/shared/utils/apiKeyPolicy.ts.
Emergency Fallback When Budgets Are Exhausted
When the OMNIROUTE_EMERGENCY_FALLBACK environment variable is enabled (documented in docs/reference/ENVIRONMENT.md), requests that hit their token budget are automatically rerouted to a free fallback provider or model (e.g., the free‑tier nvidia model). This logic resides in open‑sse/services/emergencyFallback.ts. The feature ensures service continuity for critical workloads even when primary quotas are depleted, though it may trade latency or capability for cost savings.
Bypassing Budget Checks with Guardrail Headers
For testing or emergency administrative tasks, the budget guardrail can be disabled on a per‑request basis by including the x‑omniroute‑disabled‑guardrails header with the value budget:
await fetch('http://localhost:20128/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'x-omniroute-disabled-guardrails': 'budget' // bypass budget check
},
body: JSON.stringify({ model: 'gpt‑4', messages: [{ role: 'user', content: 'Hi' }] })
});
Warning: Disabling guardrails exposes the gateway to uncontrolled token consumption; use this capability only in secure, monitored environments.
The Distinction Between Context and Thinking Token Budgets
OmniRoute maintains a separation between the context token budget (tracked via the usage tables) and the thinking/reasoning token budget. When a client supplies a thinking object with budget_tokens, the value is mapped to an effort level (low, medium, high) in src/shared/reasoning/effortStandardization.ts. This mapped value then folds into the overall token‑budget calculation, allowing fine‑grained control over inference‑time compute without affecting the broader 1.53B context limits.
Summary
- Tracking: The 1.53B token budget accumulates usage in
open‑sse/utils/usageTracking.ts, updatingcontext_budget_*fields on every request. - Enforcement: Limits apply per API key across global, provider, or model scopes, returning HTTP 429 when exceeded.
- Configuration: Manage budgets via
/api/usage/budgetendpoints or set defaults insrc/shared/utils/apiKeyPolicy.ts. - Resilience: Enable
OMNIROUTE_EMERGENCY_FALLBACKto reroute exhausted traffic to free models viaopen‑sse/services/emergencyFallback.ts. - Flexibility: Bypass checks with
x‑omniroute‑disabled‑guardrails: budgetfor testing, and map reasoning budgets viasrc/shared/reasoning/effortStandardization.ts.
Frequently Asked Questions
What happens when an API key exceeds the 1.53B token budget?
OmniRoute rejects the request with HTTP 429 Too Many Requests and a Daily budget exceeded message. If the OMNIROUTE_EMERGENCY_FALLBACK feature flag is enabled, the request is automatically rerouted to a free fallback model instead of being blocked.
How do I configure a custom token budget for a specific model?
Send a POST request to /api/usage/budget with the model name, desired token limit, and time window (daily, weekly, or monthly). The configuration is stored in src/lib/db/reasoningRoutingRules.ts and takes effect immediately for subsequent requests from that API key.
Can I temporarily disable budget enforcement for testing?
Yes. Include the header x‑omniroute‑disabled‑guardrails: budget in your request to bypass the budget guardrail. This should only be used in development or administrative contexts, as it removes the spending protection provided by the 1.53B token budget mechanism.
What is the difference between the context budget and thinking budget in OmniRoute?
The context budget tracks all input and output tokens consumed during normal operation and enforces the hard 1.53B limit. The thinking budget is a separate allocation specified in the thinking object of a request; it is mapped to effort levels (low, medium, high) in src/shared/reasoning/effortStandardization.ts and contributes to the overall token calculation without being tracked independently.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →