Plan rates
The published default rates vary by plan:
There is also a default 10 RPS per-sub-organization limit across plans.
Rates are enforced as per-minute buckets that refill continuously, so short
bursts above the per-second rate are absorbed until the bucket empties.
An organization’s custom limits can differ from these defaults. Contact
Support to confirm capacity for your workload or
request an adjustment.
How limits are applied
A request can count toward multiple rate-limit buckets:- Shared across a parent organization and its sub-organizations. The plan rate is applied here.
- A single organization or sub-organization. The 10 RPS per-sub-organization default is applied here.
- A particular query endpoint or activity type.
- A group of related operations, such as signing.
Endpoint-specific limits
The Broadcast EVM transaction and Broadcast SVM transaction activities, and the Get balances query, have separate default 10 RPS limits across all plans. Do not assume your plan’s rate applies to these endpoints. Authentication also has abuse-prevention limits. See OTP rate limits for the per-user controls used with OTP authentication.Handle rate-limit errors
When a request is rate limited, the API returns HTTP 429 with one of these messages, depending on which limit was exceeded:
Query endpoints and unauthenticated endpoints return
Resource exhausted; please wait a minute and try again. If you keep submitting
activities while limited, the API returns one of the “has been rate limited”
messages listed under API errors.
Handle the 429 status in your retry logic rather than matching on message text.
A 429 that says signing is disabled because your organization is over its
allotted quota is a monthly signing quota, not a rate limit; see
API errors.
- Rate limits usually clear within a few seconds. Start retries with a short delay, then back off exponentially with jitter. Avoid having every worker retry at the same moment.
- The API does not return rate-limit or
Retry-Afterheaders. Schedule retries from your own backoff logic. - For activity retries, preserve the original request body while it is within
the signed-request validity window.
Changing
timestampMscreates a new activity. If you have an activity ID, query its status rather than creating another activity. - If throttling persists, contact Support with your organization ID, endpoint or activity type, timestamps, and observed request rate.