Skip to main content
Stabyl applies request limits to keep API performance consistent and protect trading and wallet workflows from accidental request bursts. Limits can vary by route and account. Do not hardcode an assumed request allowance unless Stabyl has provided one for your production onboarding.

Required Headers

Send X-Api-Key on authenticated endpoints so limits are evaluated for the correct account. Send Idempotency-Key on order writes so retries are safe.

Handling Limits

When a request is rate limited, the API returns 429. Per-key limits return the JSON envelope with error code RATE_LIMITED and no Retry-After header. A separate edge limiter, applied per source IP, returns 429 with a plain-text body and a Retry-After header. Treat any 429 the same way regardless of body shape: clients must have a bounded backoff policy. Use exponential backoff with full jitter, starting near one second and capped near 30 seconds. Signed withdrawal quote and submit calls are limited separately from, and much more tightly than, the rest of the key’s traffic. Quote as part of a user action, not in a polling loop, and never retry a submit in a tight loop.

Suggested Client Behavior

Cap attempts and surface persistent rate limiting to operators. Do not retry validation, authentication, or permission failures as if they were rate limits.

Event and reconciliation guidance