The high-volume tier covers the endpoints you’re most likely to hammer during bulk imports.
Headers
Every response includes the current rate-limit state:When you hit the limit
The API returns429 Too Many Requests:
429s during a single window can extend the cool-off.
Patterns for staying inside the limit
Concurrency limiting
Concurrency limiting
For bulk operations, cap concurrent in-flight requests instead of firing everything at once. A
p-limit(20) in Node, or ThreadPoolExecutor(max_workers=20) in Python, keeps you well inside the 1,000/min tier without coordination overhead.Exponential backoff with jitter
Exponential backoff with jitter
On 429, wait
Retry-After. On 5xx, retry with exponential backoff (e.g. 1s → 2s → 4s) plus 10–20% jitter to avoid thundering-herd retries from multiple workers.Batch where you can
Batch where you can
The media upload endpoints accept up to 10 files per request — one
presign call plus one confirm call covers a batch of 10 and counts as just 2 requests against the rate limit. The PUT uploads themselves go directly to storage and don’t count against the API rate limit at all.Cache list responses
Cache list responses
If your code repeatedly fetches the same workspace’s profile list (e.g. in a polling loop), cache it for a few minutes instead of refetching every cycle. Profile membership rarely changes.