Who may call, and what it cost.
A key carries its own rate and its own ceiling. The log keeps every attempt made behind a request. Usage is those attempts added up against what is left.
Limits live on the key.
Issue one per surface, give it its own rate and ceiling, and revoke it without touching the others. Point a provider's own secret at it instead and those calls never reach the balance.
Keys
- productionsk-hopscotch-7f3a…
workspace · created 2 Aug · last 17 Aug 18:42:00 · 600 rpm · 20 conc
- stagingsk-hopscotch-c21e…
workspace · created 9 Aug · last 17 Aug 11:18:00 · 600 rpm · 20 conc
- robsk-hopscotch-a91c…
limited · created 4 Aug · last 17 Aug 09:12:00 · 600 rpm · 20 conc
Upstream keys
- OpenAIsk-proj-4c8e…
on · set 4 Aug · last 17 Aug 18:39:04
- Anthropicsk-ant-api03-9…
on · set 4 Aug · last 17 Aug 18:42:00
- Cohereshared pool
no key on this workspace
The number you check before you ship.
Not the running total of what you have already spent, which you can do nothing about. What is left, the cap it draws against, and the day it runs dry at the rate you are on now.
Usage
747.29
tokens remaining
runs dry 13 Nov at 8.73 a day
- success
- 96.8%
- error
- 3.2%
- rerouted
- 3.8%
- inferred
- 1.4%
The same cycle, four ways.
One cycle, four cuts: which model answered, which upstream served it, which key signed it, and which class of token it was. Prompt, completion, reasoning, and a cached read do not cost the same, so a total that lumps them together is a total you cannot check.
By model
- anthropic/claude-sonnet-54.9M
- openai/gpt-5.62.3M
- google/gemini-3.6-flash1.8M
- deepseek/deepseek-v4-flash1.6M
- moonshot/kimi-k3982.8k
- qwen/qwen3.8-max737.1k
By upstream
- Anthropic5.6M
- OpenAI2.5M
- Google1.7M
- DeepSeek1.2M
- Groq744.5k
- Together620.4k
By key
- production8.5M
- staging2.3M
- rob1.6M
By class
- prompt8.1M
- completion3.9M
- reasoningbilled as completion214.6k
- cached readpass-through, not a cache we created200.0k
Issue one, and keep the rest of it shut.
A key, a limit, and a log that says where the tokens went.