Rate limits and constraints
Request limits, batch sizes, and best practices for efficient API usage.
Rate limits
| Parameter | Value |
|---|---|
| Max requests | 100 per 60-second window |
| Max inputs per request | 5 |
| Scope | Per client |
Both walletPositions and poolDetails share the same rate limit. Exceeding the limit returns an error:
Batch size
Each request accepts up to 5 inputs. This applies to both queries:
Other constraints
| Constraint | Details |
|---|---|
| Query depth | Maximum 7 levels of nesting |
| Request size | Maximum 100KB per request |
| Batch queries | Disabled — each HTTP request must contain a single GraphQL operation |
| Introspection | Disabled |
Best practices
1
Batch protocols into single requests
Query up to 5 protocol/chain/wallet combinations in one request instead of making separate requests for each.
2
Handle partial failures
Always process both data and errors arrays. Don't discard successful results because one protocol failed.
3
Use exponential backoff
If you hit the rate limit, wait before retrying. Double the wait time on each retry (e.g. 1s, 2s, 4s).
4
Request only the fields you need
GraphQL lets you select specific fields. Smaller responses are faster — don't request fields you won't use.