Rate Limits
Inzi enforces per-endpoint rate limits on all API keys.
Limits
| Endpoint | Limit |
|---|---|
POST /v1/checkouts | 60 requests / minute |
GET /v1/checkouts/{id} | 120 requests / minute |
GET /v1/checkouts (list) | 30 requests / minute |
Limits are per API key, not per IP address.
Response headers
Every API response includes rate limit headers:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1712145960| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Exceeding the limit
When you exceed the rate limit, you receive a 429 Too Many Requests response:
{
"error": {
"type": "rate_limit",
"message": "Rate limit exceeded. Retry after 42 seconds."
}
}Best practices
- Use webhooks instead of polling. Don’t poll
GET /v1/checkouts/{id}in a tight loop — wait for the webhook. - Cache checkout responses. A checkout’s final state (
completed,expired) won’t change. - Implement exponential backoff. When you hit a
429, wait and retry with increasing delays. - Use the list endpoint sparingly. For dashboards, cache results and paginate efficiently.
- Monitor
X-RateLimit-Remaining. Proactively throttle before hitting the limit.