Skip to main content
The API returns descriptive error messages when a request is rejected. Use the HTTP status and response body to decide whether to retry or correct the request.

Service Unavailable

The API returns 503 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-After when present; its value is a delay in whole seconds.
  • Batch endpoints return a one-element array for a whole-request rejection.
  • A 500 with internal_error can indicate an unexpected failure or an indeterminate outcome. Follow the operation’s recovery guidance before retrying.

Recover an Isolated-Margin Adjustment

For PATCH /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

An exp more than 5 seconds ahead is not an error: the server clamps the command-processing deadline to 5 seconds from arrival. Earlier versions rejected it with command expiry too far in future; that error is retired.

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, or order_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 with PATCH /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 plain 400 validation message. A disabled instrument is not rejected merely because it is disabled.

Market Retirement Errors

  • instrument_close_only — user orders must be reduce-only while this market is in close-only mode.
  • instrument_settled — the market is permanently settled and cannot accept new trading work.
  • settlement_price_unavailable — settlement lacks a complete, fresh 30-minute index-price window.
  • settlement_insurance_insufficient — the insurance fund cannot cover eligible deficits while meeting its remaining obligations.
  • settlement_invalid_state — the current state cannot be settled safely, including less than 30 continuous minutes of close-only, inconsistent exposure, or work above the operation’s bound. Investigate before retrying.

Delisting cancellation statuses

Order updates can report these statuses after an operator changes a market: Settlement is an admin action. Clients receive the resulting order and position updates.

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 as invalid signature; that request never reaches sequencing.