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.

WindowStartsResets
5-houron your first request5 hours after it started
Weeklyon your first request7 days after it started
Monthlywith the subscriptionat 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.