Skip to main content
ScrapeUnblocker limits traffic per API key, not per IP. Your plan sets one limit: concurrent requests - how many of your requests can be in flight at once. A request counts from the moment it reaches us until its response is sent, so slow targets hold a slot longer. Idle keep-alive connections do not count, and each HTTP/2 stream counts separately. Custom plans have their own limits. The plan card in the dashboard shows the limit that applies to your key right now. Your monthly request quota is separate - see Monthly quota below.

When you hit the limit

A request over the limit is refused immediately with 429 Too Many Requests (body Concurrency limit exceeded, headers X-SU-Deny-Reason: concurrency and Retry-After: 1) - it is not queued. Wait for one of your running requests to finish, then send the next. 429 responses are not billed. The recommended client behavior:
  1. Run a fixed worker pool no larger than your concurrent requests limit.
  2. On 429, wait the number of seconds in the Retry-After header, then retry. If it is missing, back off (for example 1-5 seconds).
  3. Resume.

Monthly quota

When you’ve used your monthly quota, requests return 402 Payment Required with the body Quota exceeded. Upgrade your plan or wait for the next billing cycle. You can monitor remaining quota in the dashboard. Quota is only one of three reasons for a 402 - an unpaid balance past your credit limit and a card that has failed repeatedly produce the same status code with different messages. See 402 payment required for all three and how each clears.

Need more throughput?

Contact us via the help center - we offer custom limits for high-volume customers.