API documentation

FAQ

Access and keys

Is there a testnet or sandbox? No — production only, for now. Safe on-ramp: start with a read-tier key (it physically cannot trade), then trade tiny amounts, and fence real keys with risk shields.

Which subscription do I need for API access? Keys are created in the LEXX Terminal; availability depends on your plan — see billing (profile → settings → billing) or lexx-trade.com. Request budgets are described in Rate limits.

How many API keys can I have? Up to 10 active keys per account. Best practice: one key per application/bot (why).

What does full give me over trade? Today — nothing in the Public API: no endpoint requires more than trade. Key management lives only in the Terminal UI.

Can I create or revoke keys via the API? No, by design: keys are managed only in the Terminal UI, so a leaked key can never mint new keys.

Signing and errors

I get 401 with “Duplicate request signature” — why? You re-sent an identical timestamp+signature (typical in a retry loop). Every attempt — including automatic retries — must be re-signed with a fresh timestamp; a timestamp+ signature pair is single-use (details).

INVALID_SIGNATURE and I can’t see why. Top three causes, in order: (1) you signed the path from /api/v2/... — it must start at /v2/...; (2) you forgot the query string; (3) the body you signed isn’t byte-identical to the body you sent (pretty-print, re-serialization). Full checklist and a test vector to verify your crypto in one minute.

TIMESTAMP_EXPIRED keeps happening. Your clock is off by more than 5 s. Fix NTP, or take the offset from GET /server/time at startup — both reference clients do this.

How do I retry order creation safely after a timeout? Same X-Idempotency-Key, fresh signature, retry. Whatever happened during the timeout, you end up with exactly one order — the full pattern is placeOrderReliably.

Orders and data

Where do I get the order history from last week? As orders — nowhere: GET /orders serves a live cache (open + closed within ~1 hour). Older activity is available as fills via GET /orders/trades — one order may map to several fills.

Where is the market data (orderbook, candles, tickers)? Not in this API — it is deliberately about your account. Use the exchanges’ public APIs for market data (what the API does not do).

Is there a WebSocket stream of my fills? No fill-level events. Fills arrive aggregated inside ORDER_UPDATE (executedQty, fillPrice); per-execution history is REST (why).

My WebSocket subscription was confirmed but delivers nothing. Almost certainly the silent-subscription trap: an unsupported filter combination (e.g. symbol without exchange, or any filter on botStatus) is ACKed but never matches. Fix the filters and re-subscribe.

Why are all amounts strings? JSON numbers are floats; money in floats loses cents. Parse with decimal types; the one documented exception (non-money bot configuration knobs) returns plain numbers (Conventions).

Bots

I created a bot but it won’t start / goes ERROR. Creation validates only type and settings.exchange — everything else is checked when the bot is built (deep validation). Usual suspects: FIBO without the mandatory "0"/"1" channels, depositePercent not summing to 100, wrong symbol shape or timeFrame units for the type (shapes table).

Can I change a running bot’s config? Not via PATCH — stop it first (PATCH on a running bot returns 409), or use restart: true to apply-and-restart in one call. For live adjustments without stopping, use the runtime commands: stop-losses can be added/updated on the fly.

How do I stop a bot and liquidate its position at once? DELETE /bots/{id}/runs/{runId}?cleanup=cancelAllOrders&action=stop_and_sell — cancels the bot’s open orders and market-sells the remainder (lifecycle).

How do I start 15 bots without burning my rate limit? POST /bots/batch/runs — up to 20 bots in one request, one unit of rate limit, per-bot results in the response.

Limits

I keep hitting 429. What’s the right reaction? Wait exactly Retry-After seconds, then retry with a fresh signature. Better: watch X-RateLimit-Remaining and slow down before the wall (self-throttling).

Do WebSocket messages count against my REST limits? No — the WebSocket has its own fixed backstops (200 msgs / 10 s per socket etc.), not scaled by subscription (WS limits). That is one more reason to prefer streams over polling.

When something is broken

I think my key leaked. Revoke first, investigate second — the incident runbook is five steps.

I found a bug / the API behaves differently from these docs. File a ticket via the support portal support.lexx-trade.com (the “Contact us” widget) or email support@lexx-trade.com, with the meta.requestId, the endpoint and the timestamp. The requestId lets the team find your exact request (contacting support).

Verified against API spec v2.0.0 · 2026-07-12

Cookie Preferences

Manage your cookie preferences below. Necessary cookies are always active as they are essential for the website to function properly.

Strictly Necessary

Essential for the website to function. These cookies cannot be disabled.

Analytics

Help us understand how visitors interact with our website by collecting and reporting information anonymously.

Marketing

Used to track visitors across websites to display relevant advertisements.

Preferences

Allow the website to remember choices you make, such as language or region.