GET /v1/extract/domains, POST /v1/extract/prepared-domains, GET /v1/extract/prepared-domains/{domain}) and Extract (extract=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 it works
- Check coverage.
GET /v1/extract/domainslists every domain Extract serves now. It’s free. - Ask for the domain.
POST /v1/extract/prepared-domainswith the domain andexample_urls, one URL per kind of page you want (a product page, a search page). - Poll the status.
GET /v1/extract/prepared-domains/{domain}moves throughreceived,preparingandverifyingtoready. Preparation usually takes seconds to minutes. - Extract. Send
extract=autoto any page of the kinds you prepared.
Check whether a domain is covered
Output (before preparing)
extract=auto to a new domain returns 403 with REQS007, free of charge, and the message points to the next step:
Prepare the domain and wait until it’s ready
Send the domain without a scheme, and one example URL per kind of page. Then poll every 30 seconds and branch onstatus: preparing, ready or failed.
ready in under a minute:
Output
roles showing each page kind you sent:
detail sentence names any field that comes back empty on this site, so you know which fields to read before you build on them. Submitting a domain that’s already ready returns 202 with this same record, so a retry is always safe.
Extract pages from the new domain
Once the status readsready, extract=auto works on every page of the prepared kind, not just the example URL. This request reads a different product than the one used for preparation:
Example output
Theparsed field for the Women’s Tree Runner page, trimmed:
materials, technical_specs and per-size variants with SKUs. The domain also appears in GET /v1/extract/domains now (424 domains; True).
Customize it
Troubleshooting
failedwithunpreparableand a role detail of “the target could not be fetched”: that example URL returned no usable page. Resubmit with a different URL of the same kind, or with the URLs that worked.- A role reads “this page was prepared, but the domain was not finalized”: another URL in the same submission failed. Resubmit without that URL.
failedwithdiscovery_failed: resubmit withexample_urls, so Zenrows prepares the exact page kinds you point at.409within_progress: a preparation for that domain is already running. Poll its status instead of resubmitting.REQS007on a page of a ready domain: that page kind needs preparing too. Contact support with the URL to add it.- A field is always empty: check the
detailsentence on the role. It names the fields that site’s pages leave empty.
Related recipes
Get structured JSON from any page
How extract=auto works, with extract_fields and the SDKs.
Turn search and listing pages into JSON
Collect every item across search and category pages.
Validate extracted data with a schema
Type and check every row before you store it.
Scrape a list of URLs
Run Extract on thousands of pages as one Batch job.