Rate Limits & Errors
Per-key rate limit buckets and the uniform error envelope with every status code.
Rate limits (per API key)
| Bucket | Default limit |
|---|---|
| Submits: place / cancel / strategy close | 20 req / 10 s |
Reads: signal status, order list, test | 60 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 keySeparate 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>" }| HTTP | Meaning |
|---|---|
400 | invalid payload, no LIVE strategy bound to the API key, missing idempotency-key, collectiveId not a UUID |
401 | missing/invalid signature, stale timestamp, unknown or revoked API key — may include messageSha256 (debugging) |
403 | strategy exists but is not owned by your key's account |
404 | signal not found / not yours |
413 | body over 10 KB |
429 | rate limit exceeded |
202 | not an error — signal recorded, execution pending (Trading) |
5xx | server-side problem — retry with the same idempotency-key |
Next: Quick Reference.
Updated 12 days ago
Did this page help you?