Concurrency-Limit header.
Uses: Fetch with concurrency headers, the Python SDK and the Node.js SDK
Ask your AI agent
With the Zenrows MCP server connected to Claude, Cursor or any MCP client, paste this prompt. Your agent picks the right Zenrows tools and settings on its own.Size a worker pool to your plan
Make one request, readConcurrency-Limit, then run that many workers over the rest of the list. Every worker reuses the same pattern: send, check, parse.
Example output
Results print in the order they finish, not the order of the list:Let the SDK queue requests for you
The Zenrows SDKs keep an internal queue: fire every request at once and the client keepsconcurrency of them in flight. retries re-sends transient failures. Install with pip install zenrows or npm install zenrows.
concurrency to your plan’s Concurrency-Limit. Use one client for the whole run, so every request shares the same queue.
Send very large lists to Batch
For thousands of URLs, or jobs you want to run without keeping a process alive, send the list to Batch. Zenrows queues the URLs, runs them at your plan’s concurrency, retries and stores every result for you to download. See Scrape a list of URLs.Customize it
Troubleshooting
429with codeAUTH006: more requests are in flight than your plan’s concurrency. Lower the pool size toConcurrency-Limit, and keep one pool or one SDK client for the whole run.429right after a burst of cancelled requests: a request cancelled on your side keeps its slot until Zenrows finishes it. Keep client timeouts at 180 seconds or more so you don’t cancel work in progress.- Throughput is lower than expected: slow pages hold their slot longer. Use the cheapest configuration that works, for example
mode=autoinstead of a fixedjs_render, so each request returns sooner. - One failure stops the whole run: an exception escaped a worker. Catch errors per URL, as the samples do, and collect failures for a retry pass.
Related recipes
Scrape a list of URLs
Send thousands of URLs as one Batch job.
Retry failed requests
Retry 429s and 5xx errors with backoff.
Lesson 4: Scrape every product with Batch
The Foundations lesson on moving from one URL to many.
Track usage and control spend
Keep the per-request cost low on large runs.