Service Unavailable
The API returns503 Service Unavailable for temporary overload or a response
timeout on operations that support safe retries.
Transient Overload (503)
A 503 does not prove that the request did not execute. A load-shed rejection
happens before dispatch, but an engine response timeout can occur after the
request was admitted.
- Honor
Retry-Afterwhen present; its value is a delay in whole seconds. - Batch endpoints return a one-element array for a whole-request rejection.
- A
500withinternal_errorcan indicate an unexpected failure or an indeterminate outcome. Follow the operation’s recovery guidance before retrying.
Recover an Isolated-Margin Adjustment
ForPATCH /v1/trade/margin, amt is a signed delta, not a replacement
balance. After a 503, retry only the exact original signed payload. A newly
signed request is a separate adjustment and can apply the delta again.
A signature_already_used rejection means the original signed request was
ingested; it does not confirm that the adjustment succeeded. Its decision may
still be pending or may have rejected the adjustment.
GET /v1/account/portfolio reports committed state without a per-request
outcome. Neither an unchanged balance nor a matching delta proves what happened:
the request may still be pending, or another adjustment may explain the change.
Do not sign another adjustment for the same account until the original outcome
has been confirmed out of band. No public endpoint currently reports that
request’s terminal outcome.
Order Placement Errors
Modify Order Errors
Modify Order returns one result per requested order. A rejected modification does not change the live order, although a separately processed fill or cancellation can still change its state.
Shared account, instrument, margin, position, reduce-only, and rate-limit errors
can also reject a modification under the same conditions as a new order.
Order Cancellation Errors
A cancel sent while an order is awaiting risk checks succeeds immediately, unless the account is being liquidated. The canceled order will not enter the order book. A cancel sent while the order’s accept is still on its way to the matching engine does not fail: the exchange holds one such cancel, applies it as soon as the accept completes, and answers with the final outcome — success once the order is removed, ororder_already_terminal if the order filled or was
rejected first. If the exchange disables this behavior, is in cancel-only
maintenance mode, or the account is being liquidated, such a cancel returns
order_in_flight instead.
Auto-Cancel Errors
Returned when arming the auto-cancel switch withPATCH /v1/trade/auto-cancel.
Disarming skips these checks and is always allowed. A deadline already in the
past is rejected earlier with a plain 400 message.
auto_cancel_in_flight is transient. Arming succeeds once the engine finishes
the earlier cancellation.
Update Leverage Errors
Returned when a leverage or margin-mode update is rejected. Leverage must be positive; a zero leverage is rejected earlier with a plain400 validation
message. A disabled instrument is not rejected merely because it is disabled.
Isolated Margin Adjustment Errors
These stable identifiers are returned when an isolated margin adjustment is rejected after sequencing. Gateway signature validation can reject a stale or future-skewed timestamp earlier asinvalid signature; that request never reaches sequencing.