Skip to main content
Retail sites are a top source of web data. This page covers the jobs behind price tracking, catalog building and competitor research on public product pages, using Amazon as the worked example. The same code works on the other retailers Zenrows has prepared for Extract, such as Walmart, eBay and Best Buy. Uses: Fetch with Adaptive Stealth Mode (mode=auto), Extract (extract=auto, extract_fields), proxy_country, Batch

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.
To track a whole catalog, give the agent the full list of product URLs and ask for the same fields in one batch.

Get a product’s price and stock

Send the product URL with extract=auto. Zenrows returns the page’s fields as JSON in parsed, and extract_fields keeps only the groups you read. proxy_country=us shows the page a US shopper sees, with US prices and delivery.

Example output

Drop extract_fields to get every field the page provides. On Amazon product pages that includes ratings_summary (average rating and star breakdown), review_insights, feature_bullets, technical_specs and variations.
Field names come from each website, and pages of different kinds on one site can carry different groups. Send one request without extract_fields, read the names in parsed, then pin the ones you need.

Turn a search page into product URLs

Search and category pages parse too. On Amazon, parsed.results holds one entry per listing with its ASIN, title, price and rating, and parsed.pagination holds the next page. Build product URLs from the ASINs and skip sponsored slots:
Python (Requests)
Prefix next_page_url with https://www.amazon.com to request the next page. To collect every product link on a smaller store, let Crawl walk the catalog for you.

Compare prices across countries

Retailers price by storefront and by shopper location. Request each country’s storefront with a matching proxy_country and compare:
Python (Requests)
Each price is in the storefront’s currency (USD and GBP here). proxy_country takes any ISO 3166-1 alpha-2 code.

Track many products with Batch

For hundreds or thousands of product URLs, submit them as one Batch job. Every task uses the same zenrows_params, and external_id ties each result back to your SKU or ASIN.
Python (Requests)
For more than one page of results, follow next_cursor, as shown in Collect your results. To run the same job every day, make it a scheduled job.

Customize it

Troubleshooting

  • pricing is null or availability says the item can’t ship: the request came from a location the store doesn’t deliver to. Add proxy_country for the storefront’s country, for example us for amazon.com.
  • REQS004 with an “Available fields” list: this kind of page uses different field names. Pick names from the list in the error, or omit extract_fields. See REQS004.
  • REQS007: this domain is ready to be prepared. Send example URLs to POST /v1/extract/prepared-domains, see REQS007.
  • Search results include sponsored slots: filter on is_sponsored, as in the search example.

Build a price monitor

Track prices on a schedule and store the history.

Get structured JSON from any page

How extract=auto, extract_fields and prepared domains work.

Scrape a list of URLs

Batch jobs from the API, SDKs and CLI.

Get content as seen from any country

Geotarget any request with proxy_country.