API keys and limits
Make, name, cap and revoke keys tied to your wallet, and learn how many you can hold and how fast each can run.
Your wallet owns every key it makes and pays for all of them. Sign in on angerona.chat and open Developers to manage them. Keys have no power over other keys.
You see the full key once
The format is ang_live_ plus 43 letters and digits, such as ang_live_7Gh2kLmN….
- The whole value appears one time, at creation.
- From then on, the page shows just the prefix
ang_live_7Gh2kLmN. - We hold nothing but a hash, so nobody can bring a lost key back. Make another.
Pass it as a bearer token:
Authorization: Bearer ang_live_...
Three controls sit on each key
| Setting | Details |
|---|---|
| Name | 64 characters at most, like "my-bot" |
| Monthly spend limit | An optional USD ceiling per calendar month (UTC). At the ceiling, calls return 402 spend_limit_reached until the 1st of the next month. You can delete it whenever you like |
| Revoke | Instant. The key remains on the list with a revoked mark |
The page also lists each key's name, prefix, creation date, limit and spend this month. You won't find a log of single requests, since none exists.
Your tier decides how many keys you hold
A few extra keys are a small thank-you to holders. Apart from this count, the API treats everyone alike.
| Tier | Active keys |
|---|---|
| No tier | 1 |
| Tier 1 | 2 |
| Tier 2 | 3 |
| Tier 3 | 5 |
| Tier 4 | 10 |
Tiers explains the levels. Revoked keys leave this count.
One key runs 120 requests per minute
Go faster and you receive 429 rate_limited plus a Retry-After header. OpenAI SDKs handle the retry for you.
Three habits protect a key
- Never put one in front-end code or a public repo. An environment variable or a secrets manager is the place.
- Issue one key per app, each with its own spend limit, and a single leak stays small.
- Suspect a leak? Revoke first, then make a replacement.