Defaults
Per-tenant: 300 requests per minute with a burst window of 60 requests. Per-IP (for unauthenticated public endpoints like checkout pages): 120 requests per minute per IP, with a burst of 30. Per-checkout polling (when a customer is on the checkout page): 60 requests per minute per checkout token. This protects the indexer-polling path that auto-detects on-chain payments. If you genuinely need a higher tenant limit, contact us. We’ve raised the cap for high-volume tenants on request without negotiation overhead.Response headers
Every response includes:X-RateLimit-Limit: total requests allowed in the current window.X-RateLimit-Remaining: requests still available before the window resets.X-RateLimit-Reset: unix timestamp when the window resets.
When you get rate-limited
Retry-After header is in seconds. Wait at least that long before retrying.
Back-off strategy
If you’re regularly hitting limits, the simplest fix is exponential back-off with jitter:Why per-IP limits exist
Public endpoints (the checkout page itself, the public chain-status pages) are unauthenticated. Without a per-IP limit, an abusive client could DoS the indexer. The per-IP limit kicks in before any per-tenant accounting, so an authenticated tenant request from the same IP isn’t double-counted.See also
- Errors for the full error envelope
- Authentication for which endpoints are tenant-scoped