Skip to main content
ZapFetch enforces per-API-key rate limits to protect the platform and your own credit balance from runaway loops. Limits are applied globally across all ZapFetch endpoints, so a burst on one endpoint counts against the same budget as traffic on another.

Per-plan limits

Plan/scrape, /search, /map, /extract (req/sec)/crawl (req/sec)Concurrent crawls
Free522
Starter501010
Pro2003020
Scale5007550
Business1,000150100
Enterprisecustomcustomcustom
These numbers are indicative. The authoritative values for your account are shown in the Console under your current plan.

Why /v1/crawl has a tighter budget

/v1/crawl carries a lower per-second limit than other endpoints because each call can dispatch hundreds of background page fetches. The concurrent crawls column caps the number of /v1/crawl jobs in-flight for a single API key — completed or cancelled crawls do not count against the limit.

429 response shape

When you exceed a limit, ZapFetch returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait:
HTTP/1.1 429 Too Many Requests
Retry-After: 12
Content-Type: application/json

{
  "success": false,
  "error": "rate_limited",
  "message": "You have exceeded 50 requests/second for the Starter plan."
}
Always honor the Retry-After header literally. Retrying before the specified time returns another 429 and does not reset the window. Ignoring this header is the most common cause of sustained rate-limit loops.
  • Honor Retry-After literally — do not retry before the header says you can.
  • Use exponential backoff with jitter on repeated 429s: sleep(min(cap, base * 2^attempt) + random_jitter).
  • Batch work where possible/v1/crawl accepts a limit and maxDepth, so you do not need to orchestrate per-page /v1/scrape calls yourself.
  • Pool connections per process — a burst of one-shot calls hits rate limits faster than a steady stream with keep-alive connections.

Requesting higher limits

Pro customers with bursty workloads can request a higher per-minute ceiling by emailing support@zapfetch.com. Requests are reviewed case-by-case. Note that rate limits never exceed what your credit balance can actually support — the limits are a safety net, not a bottleneck for normal usage.