Error reference#
REST#
Failed requests return an HTTP error status; order-level failures also carry an error_code (ApiErrorCode) in the response body (OrderSummary.error_code, order status messages).
HTTP statuses#
| Status | Meaning |
|---|---|
401 |
Unauthorized — missing/invalid API key, bad signature, or timestamp outside X-RECV-WINDOW |
429 |
Rate limit exceeded — back off and retry |
error_code values#
Authentication / request
| Code | Description |
|---|---|
AUTHENTICATION_ERROR |
Key not recognized or not permitted |
INVALID_SIGNATURE |
X-SIGN does not match the payload |
INVALID_API_KEY |
Unknown API key |
INVALID_TIMESTAMP |
X-TIMESTAMP outside the receive window |
INVALID_REQUEST |
Malformed request |
INVALID_PARAM |
A parameter failed validation |
BATCH_OVERSIZE |
Too many orders in one batch call |
Order validation
| Code | Description |
|---|---|
INVALID_ORDER |
Order rejected at validation |
INVALID_QUANTITY |
Quantity missing, non-positive, or below exchange minimum |
QUANTITY_EXCEED |
Quantity above the allowed maximum |
INVALID_SYMBOL |
Symbol unknown on the target exchange |
INVALID_EXCHANGE |
Exchange not supported or not connected for the account |
INVALID_TRADE_STRATEGY |
Unknown strategy value |
INVALID_LIMIT_PRICE |
Limit price fails validation |
INVALID_WOULD_PRICE |
Would price fails validation |
INVALID_TRIGGER_PRICE |
Trigger price fails validation |
INVALID_END_TIME |
End time in the past or before start time |
INVALID_TRADE_TIME |
Execution window fails validation |
INVALID_FEE |
Fee parameter fails validation |
Execution / exchange
| Code | Description |
|---|---|
INSUFFICIENT_FUNDS |
Not enough balance on the venue |
EXCHANGE_ERROR |
Exchange rejected the request (unmapped venue error) |
EXCHANGE_NOT_AVAILABLE |
Venue unreachable or in maintenance |
NETWORK_ERROR |
Transient connectivity failure |
SLIPPAGE_EXCEEDED |
Fill would exceed the slippage tolerance |
EXPIRY_REACHED |
Order expired before completing |
PARENT_ORDER_WAS_TERMINATED |
Child rejected because the parent was cancelled/finished |
MAX_FEE_PER_GAS_IS_TOO_LOW |
DEX: gas fee cap too low |
MAX_PRIORITY_FEE_PER_GAS_IS_TOO_LOW |
DEX: priority fee too low |
Platform
| Code | Description |
|---|---|
RATE_LIMIT_EXCEEDED |
Account request budget exhausted |
DDOS_PROTECTION |
Venue anti-abuse triggered — reduce request rate |
EMS_INSTANCES_DOWN |
Execution engine temporarily unavailable |
SYSTEM_ERROR |
Internal error |
SYSTEM_BUSY |
Platform under load — retry |
OTHER |
Unclassified |
WebSocket#
Every subscribe/unsubscribe gets a {code, message} response:
| Code | Meaning |
|---|---|
0 |
OK — ack; message echoes your request |
5 |
RATE_LIMIT_EXCEEDED — see Rate limits |
8054 |
exchange missing or invalid |
7002 |
Invalid request — unparseable message or missing method |
7001 |
Internal error — the subscription stream terminated; re-subscribe |
Close codes: 1001 idle timeout (no client message for 5 min), 1008 policy violation (rate limits, invalid listenKey).