Skip to content

IZI API Rate Limits

Published: · IZI Team

IZI API enforces per-token request limits. This protects shared infrastructure and ensures stability for all partners.

LimitValue
Sliding window10 seconds
Max requests100 per window
Counted perToken (not IP)
Standard request cost1
Analytics request cost5–10 (depends on complexity)

The limit is sliding — not reset every 10 seconds, but continuously calculated over the last 10 seconds.

Every API response includes:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 73
X-RateLimit-Reset: 1717072920
X-RateLimit-Cost: 1
  • X-RateLimit-Remaining — requests remaining in the current window
  • X-RateLimit-Reset — Unix timestamp when the window resets
  • X-RateLimit-Cost — cost of the current request

On limit exceeded:

HTTP/1.1 429 Too Many Requests
Retry-After: 7
X-RateLimit-Remaining: 0
async function requestWithBackoff(query, variables, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
try {
return await client.request(query, variables);
} catch (error) {
if (error.status === 429) {
const retryAfter = parseInt(error.headers['retry-after'] || '5', 10);
// Add jitter to avoid synchronized retries
const delay = retryAfter * 1000 + Math.random() * 1000;
await new Promise(resolve => setTimeout(resolve, delay));
continue;
}
throw error;
}
}
throw new Error('Max retries exceeded');
}

For data sync — use webhooks instead of polling. Rather than asking “what changed?” every 5 seconds, subscribe to events and receive a push on change.

For bulk operations — group requests via batching (up to 10 per POST).

For analytics — run heavy queries during off-peak hours or cache results on your side.

Frequently asked questions

How many requests per second can I make to IZI API?

100 requests per any 10-second window per token. That's ~10 requests/sec average, but short bursts of 30–40/sec are fine as long as the sliding window limit isn't exceeded.

What to do on a 429 error?

Read the Retry-After header in the response — it tells you how many seconds to wait. Implement exponential backoff with jitter for automatic handling.

Are limits different for different operation types?

The base limit is the same. Heavy analytics queries count with a higher cost multiplier, reflected in the X-RateLimit-Cost header.