Rate Limits & Errors

Per-key rate limit buckets and the uniform error envelope with every status code.

Rate limits (per API key)

BucketDefault limit
Submits: place / cancel / strategy close20 req / 10 s
Reads: signal status, order list, test60 req / 10 s

Exceeding a bucket returns:

{ "status": false, "message": "Rate limit exceeded" }

with HTTP 429 — back off and retry after the window.

📘

Limits apply per key

Separate bot deployments with separate keys don't contend with each other. This is another reason to use one key per deployment.

Error envelope

Every error, from any endpoint:

{ "status": false, "message": "<human-readable reason>" }
HTTPMeaning
400invalid payload, no LIVE strategy bound to the API key, missing idempotency-key, collectiveId not a UUID
401missing/invalid signature, stale timestamp, unknown or revoked API key — may include messageSha256 (debugging)
403strategy exists but is not owned by your key's account
404signal not found / not yours
413body over 10 KB
429rate limit exceeded
202not an error — signal recorded, execution pending (Trading)
5xxserver-side problem — retry with the same idempotency-key

Next: Quick Reference.


Did this page help you?