Rate limits
Most v1 API operations are rate limited per caller, across one or more rolling windows. Signed, user-scoped requests are limited per authenticated user; public, unauthenticated requests are limited per IP address.
A request over the limit receives a 429 response with a Retry-After header giving the number of seconds to wait before retrying. Treat that header as authoritative — read it and back off accordingly rather than hard-coding a client-side assumption about the limit.
Current tiers
Section titled “Current tiers”Each operation’s entry in the generated API reference states its own current limit directly in its description; the tiers below are a summary, not the source of truth, since a given operation’s tier can change independently of this page.
| Tier | Typical limit | Used for |
|---|---|---|
| Public read | 30/minute, 300/hour | Unauthenticated read-only lookups (health, supported assets, on-chain status, vault opportunities) |
| Public account | 5/minute, 20/hour, 100/day | Login and account creation |
| Standard read | 30/minute, 300/hour | Authenticated reads (agent snapshots, positions, activity, memories) |
| Standard write | 15/minute, 120/hour | Authenticated writes (creating/updating an agent, saving a memory) |
| Expensive mutate | 5/minute, 30/hour | Operations that prepare or submit on-chain-adjacent actions (deposits, withdrawals) |
| Chat | 6/minute, 20/5 minutes | Sending a message to an agent conversation |
| Simulate | 3/minute, 10/hour | Preview-only allocation simulations |
A handful of operations, such as reading aggregate platform statistics, currently have no explicit rate limit.
Handling a 429
Section titled “Handling a 429”- Read the
Retry-Afterheader on the response. - Wait at least that many seconds before retrying the same operation.
- Do not retry other operations against the same limit window in the meantime — most tiers share a window across more than one call.