API rate limits
Per-second and per-minute caps, how to read the rate-limit headers, and the right backoff strategy when you hit a 429.
Last updated 2026-05-10
The SellStein API rate limits are designed for normal app traffic, not bulk export. Here are the numbers.
The limits
- Read endpoints (GET): 100 req/sec, 1000 req/min per API key
- Write endpoints (POST/PATCH/DELETE): 25 req/sec, 200 req/min per API key
- Search and list: 10 req/sec for /search and large list pages
Live and sandbox have separate buckets. Restricted API keys share the bucket with the parent account.
Headers we send
Every response includes:
- X-RateLimit-Limit. Your current ceiling
- X-RateLimit-Remaining. How many requests left in this window
- X-RateLimit-Reset. Unix timestamp when the window resets
If Remaining hits 0 you'll get HTTP 429 with a Retry-After header (seconds). Wait that long, then continue.
Recommended backoff
Exponential with jitter:
```js async function withRetry(fn, max = 5) { for (let i = 0; i < max; i++) { try { return await fn(); } catch (e) { if (e.status !== 429 && e.status !== 503) throw e; const base = 1000 * 2 ** i; const jitter = Math.random() * 500; await new Promise(r => setTimeout(r, base + jitter)); } } throw new Error('rate limit retries exhausted'); } ```
Don't retry 4xx errors other than 429. Those are client errors and won't fix themselves.
Bulk operations
For migrating large catalogues, use the bulk endpoints (POST /v1/products/bulk, /v1/customers/bulk). Each call accepts up to 1000 records and counts as one request against your write quota. A 50,000-product import goes through in 50 calls instead of 50,000.
If you don't have bulk endpoints for what you need, batch and pace: do 20 requests, sleep 1 second, repeat. Don't fire 1000 concurrent calls. You'll hit the per-second cap and get 429'd.
Higher limits
If you need more than the defaults, contact sales. We bump dedicated-account limits to 500 req/sec on writes and 5000 req/sec on reads for high-volume merchants and platform integrations. Standard pricing.
Webhooks have no rate limit (on you)
Outbound webhooks from us to your endpoint don't count against your API quota. We retry up to 5 times with exponential backoff if your endpoint returns 5xx or times out.