Budgets & controls
A budget that alerts is a budget that was already spent.
TokenLock enforces at the request, not in a report a week later. When someone reaches a limit the request is refused or served by a cheaper model, and the person is told which.
Period
hourly
daily
weekly
monthly
Scope
per person
shared pool
per application key
per end user
Action
block
fall back to a cheaper model
The person learns
A notice you wrote, appended to the reply in their own client.
The notice nobody expects
Most governance tools stop a request and leave the person staring at a 429. TokenLock appends an explanation you wrote, in the client they are already looking at.
It is added after the model answers and stripped before anything goes back in, so the model never sees it and the conversation is not polluted.
Write it once per policy. Most teams put a channel name in it.
~/payments-api · claude code
Done. The migration script now retries on
throttling and logs the profile that served
each call.
[TokenLock] You have reached your monthly
budget of $120.00. Requests will be served
by claude-haiku-4-5 until 1 September.
Ask #platform-help if this needs raising.
Seeded demo tenant. The wording is yours.
Four policies, one estate
A shared pool for a team that spikes, a hard cap for contractors, a per-end-user budget behind one application key.
| Policy | Scope | On limit | Quota | Used |
|---|---|---|---|---|
| Engineering default | per person · monthly | fall back | $120.00 | $61.40 |
| Platform pool | shared · monthly | fall back | $8,000.00 | $6,140.28 |
| Contractors | per person · weekly | block | $40.00 | $39.10 |
| support-assistant | per end user · daily | block | $2.50 | $0.84 |
One key, a budget per end user
An internal application holds a single key. A header declares which end user the request is for, and TokenLock enforces that person's budget behind it.
Support assistants, review bots and internal chat surfaces stop being one anonymous line on the bill.
POST /v1/messages Authorization: Bearer tl_sk_live_... X-TokenLock-End-User: a.rahman@acme.com X-TokenLock-Project: support-triage