429 status code with a Retry-After header telling you how many seconds to wait. Design your application to honor Retry-After and retry with exponential backoff rather than on a fixed interval.
If your application needs higher limits, email support@dynamic.xyz.
Limits by action
The limits below cover the actions that matter most when designing your application. Two windows apply:- Burst: requests allowed in a 10 second window.
- Sustained: requests allowed in a one minute window.
Limits are also applied per project environment. The values above are the ones you are most likely to hit when scaling your application.
Server SDK limits
These limits apply to server-side calls, such as the Node SDK acting on server wallets with an API key.
Server signing operations are limited to the equivalent of 50 requests per second, which the 10 second burst window already enforces.
Handling rate limits
Retry a429 response after the delay in the Retry-After header, with exponential backoff between attempts.
Two cases return a different error shape so the response stays consistent with the endpoint’s contract:
- Email and SMS verification endpoints return
422with atoo_many_email_verification_attemptsortoo_many_sms_verification_attemptscode:
- Broadcast a transaction returns
200with abroadcast_rate_limitedcode.submissionStateisnot_submitted, so the transaction never reached the network and retrying with the same idempotency key is safe:
Developer API limits
Endpoints under/environments and /organizations (the Developer API, used with a dashboard token or dyn CLI) have their own limits, separate from the end user SDK limits above. General traffic is limited to 250 requests per 10 seconds and 1500 requests per minute per IP address.