error.code RATE_LIMITED.
Limits apply per merchant, with a separate quota for test and live (your sk_test_ / sk_live_ key). Hitting the limit on one family does not freeze other families.
Rate limit headers
On success and on 429, read these response headers:
On 429 you also get
Retry-After (seconds), matching x-ratelimit-reset.
Error body
Standard limits
Most secret key routes share the standard family.
Test mode is for development and integration testing, not load testing.
Extended limits
These foundational routes have their own higher buckets in live mode so critical flows keep moving. In test mode they use the standard limit above.Handling a 429
- Read
x-ratelimit-reset(seconds). - Pause requests to that endpoint family until the window ends.
- If you see sustained 429s across many families, pause and investigate. An unchecked poll loop is usually the cause.
Staying within limits
- Prefer webhooks over polling
GET /escrows/{id}after checkout or payout. - Cache stable lookups such as
GET /identity/banks. - Page through lists (default 20, max 100). See Pagination.
- Use idempotency keys on money moving
POSTs so timeouts do not double release or double pay.