Kestrel API errors and limits
Every error code, what caused it and what to do; rate limits by seat.
Sign in to see your own test client ID in the samples.
Errors have the shape { "error": "...", "error_description": "..." }, the same as the rest of the developer API.
| Code | Status | Cause | What to do |
|---|---|---|---|
invalid_key | 401 | No key, not ours, expired or revoked. | Send a key with the kestrel right. |
missing_right | 403 | The key has no kestrel right. | Make a key with it. |
no_seat | 402 | A live key that is not on an active seat. | Put the key on a seat on the Kestrel API page. |
tier_too_low | 403 | The endpoint needs a higher seat. It was not counted. | Upgrade the seat. |
allowance_used | 429 | A free seat used its month's calls. | Wait for next month, or buy a paid seat. |
invalid_version | 400 | Kestrel-Version is not v<major>.<minor>.<patch>. | Send a version from /versions. |
unknown_version | 404 | Not published, or retired. | Pin a published version. |
not_published | 503 | No version is published yet. | Join the waitlist. |
rate_limited | 429 | Over your app's per-minute quota. | Wait the Retry-After seconds. |
user_token_needed | 401 | A trading call without the person's token. | Send Atheron-User-Token. |
live_trading_closed | 403 | Live orders before live trading opens. | Use the paper endpoints. |
not_connected | 503 | Trading through the API is not connected yet. | Try again later. |
too_many_backtests | 429 | Five already waiting or running. | Wait for one to finish. |
Rate limits
Requests per minute: Builder 60, Pro 300, Studio 1,200, Enterprise agreed. Over the limit, requests are refused with Retry-After and still count against your quota, so a retry loop keeps you over it.
Ask Atlas
AI assistantAsk anything about Sign in with Atheron, the API or the portal. You get an answer from our docs, with links to the pages it used.