Overview
The Arcus API enforces rate limits per API key to ensure fair usage across all integrations. Limits are applied using a sliding-window bucket per key.Default limits
Elevated limits are available on request for high-volume integrations. Contact support via the in-app Help button with your use case and expected volume.
Rate limit headers
Every response includes these headers:
When you exceed the limit, the API returns
429 Too Many Requests with an additional header:
Handling rate limits
SDK auto-retry
All SDKs handle 429 responses automatically using theRetry-After header:
Best practices for high-volume integrations
- Bulk endpoints: prefer batch operations (e.g. bulk product import) over individual creates in a loop
- Pagination: use
limit=100to minimize list requests - Concurrency: keep concurrent requests below 10 per key; spread load across multiple keys if needed
- Backpressure: implement exponential backoff even for retries that are not rate-limit-related
- Webhooks over polling: subscribe to webhook events instead of polling list endpoints; polling is the most common cause of rate limit exhaustion
Idempotency and retries
Always includeIdempotency-Key on POST/PATCH/DELETE requests before retrying. If you hit a 429 and retry without an idempotency key, you may create duplicate records after the window resets.
