Quotas & plans
Every subscription you hold carries three dollar quotas plus a request-rate limit. You can hold several subscriptions at once — a permanent Free plan plus any paid plans you buy — and each request draws from whichever of your plans covers the model.
Anchored (session-style) windows
The 5-hour and weekly quotas are sessions: they don't exist until you send your first request. The moment you do, the window starts and resets a fixed span later. Until then your dashboard shows “Send your first message”. The monthly quota tracks your subscription period.
| Window | Starts | Resets |
|---|---|---|
| 5-hour | on your first request | 5 hours after it started |
| Weekly | on your first request | 7 days after it started |
| Monthly | with the subscription | at the end of the period |
Plans cover KhaBot models (khabot/…) and KhaBot services. Pass-through models —
OpenRouter's catalog at the provider's cost — are never covered by a plan: they always bill your
credit (see Drop-in from OpenRouter).
Each request's billed cost counts against all three windows of the plan that served it. If a plan's
window is exhausted, KhaBot tries your other plans; if none can cover it, the request continues on your credit
as extra usage when one of your plans allows it — otherwise you get 402 quota_exhausted.
Multiple plans (the waterfall)
When a model is available on more than one of your subscriptions, KhaBot admits the request against
the first plan that both includes the model and has quota remaining, then bills that plan's
windows. A plan restricted to specific models (shown as “Includes: …” on the Plans page) only serves
those; “All KhaBot models” plans serve every khabot/ model. Ask for a KhaBot model none of your
plans include and you get 403 model_not_in_plan.
Upgrades & proration
Upgrading swaps one subscription for a higher plan and charges only the difference, prorating the unused value left in your current period. A fresh month starts the day you upgrade. You can also subscribe separately to keep both plans running side by side.
Auto-renew & transactions
Each paid subscription renews monthly while auto-renew is on (toggle it per subscription on your dashboard). Renewals, purchases, upgrades, code redemptions, and any extra-usage charges all appear in Billing → Transactions with a running balance.
Extra usage
There is no switch to flip: when a plan allows extra usage, requests to KhaBot models past that plan's quota are
charged to your credit balance at the model's published price, up to the plan's monthly cap
(0 means unlimited). A plan without extra usage stops at its quota with
402 quota_exhausted.
Your own monthly spend cap, set in Billing, limits the
credit you spend each month across both extra usage and pass-through (OpenRouter) models. When there
is no credit left to draw — or a cap is reached — the request is refused with a 402 instead of a
surprise charge.
Rate limits
Your effective rate_limit_rpm is the highest across your active plans. Requests flow through a token
bucket — a burst of 20, then your RPM — and going over returns 429 rate_limited with a
retry-after header. BYOK requests count against the same limit. See Rate
limits for the headers on every response and how to pace a client.
Key spending limits
Independently, each API key can carry spending limits — up to one per day, per week, per
month and a total, in dollars. The day, week and month limits count calendar windows in UTC (a week starts on
Monday); the total never resets on its own. When a key reaches any of its limits it returns
402 key_budget_exhausted until that window resets — or until you reset the counter — even if your
plan quota is fine. Keys can also be narrowed to specific models and services; see
Authentication.
All current window usage is visible under Dashboard → Usage.