Skip to content

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.

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.

  1. Read the Retry-After header on the response.
  2. Wait at least that many seconds before retrying the same operation.
  3. Do not retry other operations against the same limit window in the meantime — most tiers share a window across more than one call.