| 400 | invalid_request | Malformed body or parameter, including an X-Arena-Org value that is not an organization id. The message names the field. | No |
| 401 | unauthorized | No credential presented. | No |
| 401 | invalid_token | Key is malformed, unknown, revoked or expired. | No |
| 401 | session_required | An API key was sent to key management. Use a session. | No |
| 403 | insufficient_scope | Key lacks the endpoint’s scope. Create a key with it. | No |
| 403 | guest_account | Key management needs a signed-in Google or Apple account. | No |
| 403 | scope_not_available | Scope is not available right now (trade:write while trading with keys is switched off). | No |
| 403 | venue_data_off | Venue prices are not served on the keyed API yet. | No |
| 403 | organization_forbidden | X-Arena-Org names an organization this key cannot use. The personal account is not read or traded. | No |
| 402 | membership_required | Opening a position needs Arena Basic. Sells work without it. | No |
| 404 | route_not_found | No such path under /api/v1. | No |
| 404 | order_not_found | No order with that id on this account. | No |
| 404 | trade_not_found | Sell of a position that is not open. | No |
| 404 | key_not_found | No active key with that id on this account. | No |
| 404 | trader_not_found | No trader has that id or display name. | No |
| 404 | account_not_found | The key’s account has no balance yet; it gets one with its first trade. | No |
| 404 | instrument_not_found | No public instrument has that id or slug. | No |
| 404 | game_not_found | No game with a public instrument has that id or slug. | No |
| 404 | organization_not_found | No organization matches X-Arena-Org. The personal account is not the fallback. | No |
| 405 | method_not_allowed | Path does not serve this method. See the Allow header. | No |
| 409 | key_limit_reached | Ten active keys already. Revoke one first. | No |
| 409 | price_moved | Market order refused: price moved past maxPriceCents or minPriceCents. | No |
| 409 | already_closed | Sell of a position that is no longer open. | No |
| 429 | rate_limited | Over the plan’s per-minute limit. | After Retry-After |
| 429 | quota_exceeded | Over the plan’s monthly quota. | After Retry-After |
| 429 | key_creation_limited | Twenty keys created in 24 hours, rotations included. | After Retry-After |
| 500, 503 | internal_error | Server-side failure, or the key or data could not be read right now. The key may be fine. | With backoff |
| 503 | trading_off | Trading with API keys is switched off right now. | After Retry-After |
| 409 | kalshi_key_missing | Live Kalshi amend with no trading key saved in Settings. | No |
| 503 | live_trading_unavailable | Live Kalshi amend while live submission is unavailable. | After Retry-After |