extract=auto and you get every row as JSON, plus the page’s pagination details, so you can walk every page and merge the results into one dataset.
Uses: Extract (extract=auto, extract_fields), Adaptive Stealth Mode (mode=auto) and Batch for many pages
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.Extract one search results page
Point Extract at the search URL.parsed.products holds one object per result and parsed.page_context tells you which page you’re on and how many there are. Add extract_fields to keep the list fields you need: a dot path such as products.price applies to every item in the list.
parsed. Its zenrows extract command sends extract=auto with mode=auto by default, and when a domain isn’t prepared yet it retries the page with autoparse, so you always get JSON back. See the CLI guide.
Output (trimmed)
Follow every page and merge the results
Readpage_context.total_pages from the first page, build the URL of every other page, and extract each one. Keying rows by product_url merges them into one dataset and drops any item that shows up on two pages.
Output
/page/2/, ?page=2, &p=2). Open page 2 in your browser, copy its URL, and put the page number where it changes.
Extract a search page from a major retailer
The same request works on search pages of major retailers such as Walmart, Amazon, eBay and Best Buy. Field names follow each website, so run one request withoutextract_fields first and read what parsed offers.
cURL
Output (parsed, trimmed)
Hand many listing pages to Batch
Once you know the page count, put every page URL in one Batch job withextract=auto in zenrows_params. Zenrows runs the pages in parallel and stores each result as JSON with the same parsed field, ready to merge. This example uses the full catalog’s 12 listing pages.
Python (Requests)
Output
Example output
The first entries ofjackets.json, written by the pagination script above (21 products from 2 search pages):
Customize it
Troubleshooting
400withREQS004namingextract_fields: none of the names exist on this page. The error lists the fields the page offers; copy names from there.403withREQS007: the domain needs preparing for Extract. Prepare it with the search URL inexample_urls, then retry.- Page 2 returns the same items as page 1: the page URL pattern is different on this site. Open page 2 in your browser and copy its exact URL format.
- The dataset has fewer rows than
total_results: merging byproduct_urlremoved items listed twice, such as sponsored results. Key by another field, such asitem_id, to keep them. - The request takes long to return: set your HTTP client timeout to 180 seconds or more so
mode=autohas time to escalate.
Related recipes
Get structured JSON from any page
How extract=auto works on a single page.
Turn a whole catalog into a structured dataset
Crawl a store, then extract every listing page with Batch.
Validate extracted data with a schema
Type, normalize and check every row before you store it.
Prepare any website for Extract
Add a new domain’s search and product pages to Extract.