Skip to main content
Maintenance mode lets Limitless temporarily restrict trading actions during planned maintenance, incidents, or other operational events. Integrations should treat it as part of normal exchange availability and check it before placing or cancelling orders.
Maintenance mode is public status information. It does not require authentication.

When to check status

Call GET /maintenance/status when your app starts and refresh it before submitting trading actions. Bots and partner backends should also handle 425 Too Early responses with a trading-mode code from trading endpoints, because active restrictions can change after your last status check.

Trading modes

Maintenance status is reported through effects. For trading, the possible mode values are:

Trading behavior by mode

Use the active trading effect to decide which actions your integration should attempt. When an action is blocked by maintenance mode, trading endpoints can return 425 Too Early with a trading-mode code. Do not retry the same blocked action in a tight loop. Refresh maintenance status and wait until the active mode allows the action again. If a market uses taker delay, a taker order may already be accepted with execution.settlementStatus: "DELAYED" before maintenance starts. Active maintenance can postpone the delayed fill past its eligibleAt timestamp. Do not treat that gap as a failed order; keep listening for order events and reconcile on the terminal MINED or FAILED event.

Active vs scheduled maintenance

The status response has two arrays: Scheduled entries are notices. They tell you what is planned and when, but your integration should still rely on active and trading endpoint responses for the current enforced state.
1

Read maintenance status

Call GET /maintenance/status?target=trading to get trading-specific maintenance information.
2

Apply active restrictions

If active contains a trading effect, adjust your UI or bot behavior to the reported mode.
3

Show scheduled notices

If scheduled contains entries, surface the publicMessage, startsAt, and endsAt values to users or operators.
4

Handle trading endpoint failures

If a trading request returns 425 with a trading-mode code, stop retrying the same action immediately and refresh maintenance status. Retry only when the mode allows that action again.

Example

Error handling

When a trading action is blocked by maintenance mode, trading endpoints can return 425 Too Early. Treat this as an exchange state signal, not as a malformed request. For POST /orders, 425 is also used by receive-window checks. Use the response body to distinguish the cases: a trading-mode code means maintenance mode; a receive-window response does not include that code.

425 maintenance examples

post_only blocks non-post-only order creation. Cancellations and post-only orders are expected to remain available.
cancel_only blocks new order creation. Cancellations are expected to remain available.
disabled blocks both order creation and cancellations.
resumeAt may be omitted if no expected end time is available. Recommended behavior:
  • Refresh GET /maintenance/status?target=trading.
  • Do not keep submitting blocked order actions in a tight loop.
  • Continue actions that are allowed by the current mode, such as cancellations during cancel_only.
  • For delayed taker orders, keep waiting for order events if maintenance is active when eligibleAt passes.
  • Resume normal trading only after status and endpoint responses indicate trading is available again.