zenrows_params: markdown for a page you feed to an LLM, a few CSS-selected fields for a price page, a country for a localized page. Tag each task with external_id and metadata, and they come back on its result so your pipeline knows what to do with it.
Uses: Batch zenrows_params at job and task level, response_type, css_extractor, proxy_country and Adaptive Stealth Mode (mode=auto)
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.How job and task settings combine
zenrows_paramson the job applies to every task.zenrows_paramson a task is merged on top of the job’s: the task adds keys and replaces keys with the same name. Other tasks keep the job settings.external_idandmetadataon a task are returned unchanged on that task’s result.
{"mode": "auto"} and a task with {"response_type": "markdown"} runs that task with both.
Submit a job with per-task settings
This job setsmode=auto for all tasks, then gives each task its own output:
css_extractor is a JSON object sent as a string, so encode it with json.dumps or JSON.stringify. The CLI encodes it for you and sends mode=auto on every task by default. In the CLI, any key on a line other than url, external_id and metadata becomes that task’s setting.
Example output
The Python run, trimmed, with the German IP address masked:type follows its own settings: markdown, json for the CSS fields, html for the default. The CLI run:
mode=auto each task is billed for the configuration that worked.
Mix Adaptive Stealth Mode with manual settings
To render one task withjs_render and wait_for while the others use mode=auto, leave mode out of the job-level settings and set it on each task instead. A task’s settings merge with the job’s, so keep mode=auto and manual js_render or premium_proxy on separate tasks.
Python (Requests)
Output
Customize it
Troubleshooting
- The job is rejected with
invalid_argumentand aninvalid_taskslist: Batch checks every task’s settings before it starts. Each entry names the taskindexand the setting at fault: fix that setting and submit again. - A task fails with
REQS004aboutmode=auto: the task setsjs_renderorpremium_proxywhile the job setsmode=auto. Movemodefrom the job to the tasks that use it, as in Mix Adaptive Stealth Mode with manual settings. - A
css_extractorfield comes back empty: the selector doesn’t match the page Zenrows received. Check it against the HTML of a plain run of that URL, and addwait_forif the element loads late. proxy_countryis rejected on a task: use it withmode=autoor with"premium_proxy": "true"on the same task.
Related recipes
Scrape a list of URLs
Submit thousands of URLs as one Batch job.
Extract data with CSS selectors
Write and test the selectors for your fields.
Retry the tasks that failed
Rerun only the failures and keep the successes.
Download all results of a job at once
Save every page to a folder or one ZIP file.