Skip to main content
Limits apply in three windows at once: per minute, per day, and per month. Exceeding any one of them returns 429, even if the other two have room. See plans for the numbers on your tier, and credits for what each call costs. Limits are counted in credits, so a 50-wallet batch consumes 50 of your per-minute allowance, not one.

Headers

Every response carries the current state: X-RateLimit-Reset is seconds since the epoch, not seconds from now. Convert it rather than treating it as a duration.

Handling 429

The response also carries the rate limit headers, so read X-RateLimit-Reset to know exactly when to retry.
Retry with exponential backoff and jitter. Retrying immediately on a shared minute boundary is how a fleet of workers turns one 429 into a synchronized stampede that keeps every one of them limited.
A worked example of the whole loop:

Staying under the limit

Batch aggressively. One 50-wallet batch and 50 single lookups cost the same 50 credits, but the batch is one request against your per-minute request budget instead of fifty, and it is far faster. Deduplicate before submitting. Batch charges on addresses submitted, not on unique addresses resolved. Cache your own results. The underlying records change on the order of days, not seconds. Re-resolving the same wallet within a single campaign is spend with no new information attached. Check /v1/usage rather than guessing. It reports all three windows and costs nothing.