Each API key refills at 10 requests per second, up to 600 requests per
minute, and can burst to 600 requests.
Live and sandbox keys have separate limits. Reads and writes share the same
limit.
When you exceed it you get 429 rate_limited with
details.retry_after_seconds. Wait that long, then retry.
Cloudflare import capacity
Live POST /domains/import can also return 429 rate_limited with
details.reason: "cloudflare_account_capacity" when all eligible Cloudflare
accounts are already handling synchronous imports.
Use POST /domains/import/jobs for bulk async imports. That endpoint queues
under the normal Partner API rate limit instead of rejecting because Cloudflare
accounts are busy.
The 429 response
HTTP status: 429. Always pair it with the Peeker-Request-Id response header
in your logs.
Backoff with jitter
Honor retry_after_seconds, then add a small random delay so a fleet of workers
does not sync into the next window.
Live and sandbox are separate
pk_live_… and pk_test_… keep independent counters. You can hammer sandbox during integration
without affecting live traffic.
Need more than 600/min?
Email support with your typical and peak request rates and we will raise the
cap. We do not auto-throttle. Production accounts that need more get more.
Webhooks are not rate-limited
Webhook deliveries do not use your API quota.
See Delivery and retries.