Default: 600 requests/minute per key, burst to 1,200, with headers telling you where you stand. Batch endpoints move bulk data efficiently — if you're looping single-record calls, use the batch variant instead.
The limits
600 req/min sustained per key, 1,200 burst, per-workspace aggregate cap at 3,000/min. Higher tiers by plan; contact support for pipeline-migration exceptions.
Reading the headers
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. On 429, honor Retry-After — the SDKs do this automatically with backoff.
Batch endpoints
POST /contacts/batch (up to 500 records/call) and equivalents for accounts, enrollments, and activities. One batch call = one rate-limit unit — 100x more efficient than looping.
Design for limits
Sync patterns should be delta-based (use updated_since filters) rather than full-scan. A nightly full-scan of 500k contacts is 1,000 batch calls; a delta sync is usually ten.