Skip to main content

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 the Retry-After header:

Best practices for high-volume integrations

  1. Bulk endpoints: prefer batch operations (e.g. bulk product import) over individual creates in a loop
  2. Pagination: use limit=100 to minimize list requests
  3. Concurrency: keep concurrent requests below 10 per key; spread load across multiple keys if needed
  4. Backpressure: implement exponential backoff even for retries that are not rate-limit-related
  5. 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 include Idempotency-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.