HTTP status code conventions
| Status | Meaning | Example |
|---|---|---|
200 | Success — but check code field for business rejects | User tried to trade more than their balance |
201 | Resource created | Withdrawal request accepted |
400 | Client error — malformed request | Missing field, invalid address |
401 | Unauthenticated | Missing / malformed / revoked / expired X-Api-Key (see api_key_* codes) |
403 | Forbidden | Banned wallet or API-key scope missing (api_key_scope_missing) |
404 | Not found | Order doesn’t exist |
409 | Conflict — valid request, wrong state | Market not OPEN |
429 | Rate limited | Exceeded per-wallet quota |
503 | Service unavailable | Matcher down |
Business rejects vs HTTP errors
For endpoints that return a full response envelope (order, withdrawal), a business reject returns HTTP200 with status: 'REJECTED':
code to distinguish success from reject within a 200.
Error codes
Complete code reference across all endpoints.