extract
Turn protected pages into structured data with Extract / CSS / Markdown (Autoparse is deprecated).
Skill by ZenRows
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/zenrows-extract-c92f83
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, frontend, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/extract
What's inside
- Skill name
extract- Description
- Turn protected pages into structured data with Extract / CSS / Markdown (Autoparse is deprecated).
- License
- MIT
- Instructions
- 76 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Extract
Convert protected pages into structured data. The value is **protected page
access + extraction**, not generic LLM parsing.
## Methods
```
zenrows extract <url> # extract=auto (default), any prepared domain
zenrows extract <url> --autoparse # deprecated general-purpose Autoparse (any domain)
zenrows extract <url> --css '{"title":"h1","price":".price"}' # selector map
zenrows extract <url> --outputs emails,links # built-in output filters → JSON
zenrows extract <url> --output markdown # Markdown conversion
zenrows extract <url> --validate # fail if not valid JSON
```
## When to use which
- **Extract** (`extract=auto`, default): richest fields; works on any prepared
domain (you can prepare one yourself, see below).
- **Autoparse** (deprecated): only with `--autoparse`. Never automatic; do not
build new work on it.
- **CSS**: you know the exact fields/selectors and want determinism.
- **Markdown/plaintext**: feed clean content to an LLM yourself.
## REQS007: prepare the domain, then extract again
`extract=auto` works on any prepared domain, and you can prepare one yourself.
When Extract refuses a page with `403 REQS007`, `zenrows extract` says which
of three cases it is and prints the next step. It never retries with Autoparse.
| Error code | Meaning | Next step |
| --- | --- | --- |
| `EXTRACT_DOMAIN_NOT_PREPARED` | The domain is not prepared yet (also the legacy `402 AUTH010`). | Prepare it (below), then extract again. |
| `EXTRACT_PAGE_NOT_RECOGNISED` | The domain is prepared, but Extract did not recognise this page as one it can extract (a page with nothing to extract, such as a home page, or a transient failure). | Try a product, article or listing page on the same site instead. If this page should work, retry it once in a few minutes; do not retry in a loop. Otherwise use `--css`. Preparing the domain again does not change this. |
| `EXTRACT_DOMAIN_NOT_ENABLED` | Extract is not enabled for the site. | Use `--css`, or contact Zenrows support to have the site enabled. Preparing does not change this. |
Preparing a domain:
```
zenrows extract https://www.example.com/products/a # 1. fails: EXTRACT_DOMAIN_NOT_PREPARED
zenrows extract prepare example.com \
--url https://www.example.com/products/a \
--url https://www.example.com/products/b \
--url https://www.example.com/products/c --wait
# 2. prepare it and wait until ready (a few minutes)
zenrows extract https://www.example.com/products/a # 3. extract again
```
- `--url`: 1 to 5 real pages you want to extract. One works; we recommend 3 or
more of the same page type (e.g. 3 product pages), because Extract compares
pages of one type to check the fields it found and fill in fields one page is
missing. Several page types can share the 5 (e.g. 3 product pages + 2
search-result pages). With fewer than 3 the command prints a tip on stderr;
it is never an error.
- Without `--wait` the command returns at once; then check about every 30
seconds with `zenrows extract prepare status example.com` until it says
`ready`. `--wait` polls at the same pace.
- The domain is the host: `shop.example.com` and `example.com` are prepared
separately, and a leading `www.` is dropped.
- Preparing takes a few minutes and costs no credits. Each new domain uses one
slot of the account's monthly allowance; `prepare status` shows `used` /
`limit` / `remaining`.
- `EXTRACT_PREPARE_OUT_OF_ALLOWANCE`: no slots left this month; use `--css`.
`EXTRACT_PREPARE_UNAVAILABLE`: retry in a few minutes; do not loop.
A `failed` status prints the next step for its failure code and says whether
the attempt used an allowance slot.
- A domain that is already prepared answers `ready` at once
(`already_prepared`) and uses no slot: run the extract. If it then fails with
`EXTRACT_PAGE_NOT_RECOGNISED`, follow that row of the table, not `prepare`.
## Rules
- Validate on a single page before scaling across many URLs.
- Check `empty` in `--json` output: true means every field came back null or
empty, so the result is not data.
- If a field is missing, switch to `--css` with explicit selectors. Auto
mode already renders JS when the target needs it, so reach for
`--manual --js-render` only after auto mode has returned an incomplete page:
it costs several times a basic call ([[cost-control]]) and it makes the
escalation yours.
See [[protected-fetch]] for retrieval semantics.From ZenRows/cli, MIT.
More from ZenRows/cli
- 0.640score
crawl
ZenRows
Collect the URLs behind one start page with Crawl (new): create a crawl, wait for it, read the kept URLs and optionally each page's HTML, stop it.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
protected-fetch
ZenRows
Use Zenrows Protected Fetch in auto mode for anti-bot-protected page retrieval.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
batch-jobs
ZenRows
Scale protected fetch/extract over many URLs via Batch.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
interact-browser
ZenRows
Escalate to Zenrows MCP browser_* sessions only when scrape/extract cannot do the job.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
protected-fetch
ZenRows
Use the Zenrows MCP scrape tool for anti-bot-protected page retrieval.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
zenrows
ZenRows
Master playbook for choosing the right Zenrows MCP primitive for any web-data task, with cost and escalation rules.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
compliance-policy
ZenRows
Respect domain allow/deny rules, credit limits, and secret handling.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
batch-jobs
ZenRows
Scale protected fetch/extract over many URLs via Zenrows MCP batch_* tools.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
interact-browser
ZenRows
Escalate to browser sessions only when fetch/extract cannot do the job.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
trace-debug
ZenRows
Read run traces and choose the next action when a fetch/extract fails.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
zenrows
ZenRows
Master playbook for choosing the right Zenrows primitive for any web-data task, with cost and escalation rules.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
cost-control
ZenRows
Pick the cheapest reliable primitive and understand the Zenrows cost multipliers.
SkillAFreshness: A★ 16Claude Code +9
Signals
- Stars
- 16
- Forks
- 2
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (9 days ago)
- Last release
- Oct 23, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/ZenRows/cli
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ZenRows
- 0.652score
Zenrows MCP
ZenRows
Zenrows MCP server: Fetch, Extract, Batch, and Browser Sessions for AI agents
ConnectorAFreshness: ARemoteLocal★ 20Claude Code +5 - 0.640score
crawl
ZenRows
Collect the URLs behind one start page with Crawl (new): create a crawl, wait for it, read the kept URLs and optionally each page's HTML, stop it.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
batch-jobs
ZenRows
Scale protected fetch/extract over many URLs via Batch.
SkillAFreshness: A★ 16Claude Code +9 - 0.637score
protected-fetch
ZenRows
Use Zenrows Protected Fetch in auto mode for anti-bot-protected page retrieval.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
interact-browser
ZenRows
Escalate to Zenrows MCP browser_* sessions only when scrape/extract cannot do the job.
SkillAFreshness: A★ 16Claude Code +9 - 0.634score
extract
ZenRows
Turn protected pages into structured data with the Zenrows MCP extract tool (and scrape extraction params).
SkillAFreshness: A★ 16Claude Code +9
Cite this page
extract skill. Agent Mart. https://agentmart.dev/skills/zenrows-extract-c92f83 (last updated 2026-10-24)