429 Too Many Requests response.
How Rate Limits Work
Rate limits are applied per API key (or per account for user-token requests). They are measured over a rolling time window. Different endpoint categories may have different limits — read operations are generally more permissive than write or transaction operations. Your current subscription plan determines your overall rate limit tier. Higher-tier plans support higher request rates.Rate Limit Headers
Every API response includes headers that tell you your current usage:| Header | Description |
|---|---|
X-RateLimit-Limit | Total requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait before retrying (only present on 429 responses) |
Handling 429 Responses
When you receive a429 Too Many Requests:
Retry-After header (or the retry_after field in the response body) and wait that many seconds before sending another request.
Implementing Retry Logic
Use exponential backoff with jitter to handle rate limits gracefully:- TypeScript
- Python
Best Practices
Monitor rate limit headers proactively
Monitor rate limit headers proactively
Check
X-RateLimit-Remaining on every response. If it falls below 10% of your limit, consider slowing down your request rate before hitting the wall entirely.Batch requests where possible
Batch requests where possible
Several Yativo endpoints support batch operations (e.g.,
POST /assets/batch-add-asset). Use them when you need to create multiple resources at once.Cache read responses
Cache read responses
For data that doesn’t change frequently (supported chains, asset lists, subscription plan details), cache the responses locally and refresh periodically rather than fetching on every request.
Use webhooks instead of polling
Use webhooks instead of polling
If you’re polling the API to check transaction status, switch to webhooks. Real-time event delivery eliminates the need for polling and dramatically reduces your request count.
Separate production and development keys
Separate production and development keys
Use separate API keys for your test and production environments. Development spikes won’t consume your production rate limit budget.

