From 252bb9a7eea6575cef5b46945e628c965d4e88c6 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 14 Oct 2026 10:18:51 +0200 Subject: [PATCH 1/2] docs: one format for every capability row, method and endpoint included Every status reads **available** followed by the request it makes, like the Fetch row. Notes that sat in the status column move to the description, and the README examples say prepared domain instead of enabled domain. Co-Authored-By: Claude Opus 5.5 --- README.md | 16 ++++++++-------- skills/zenrows/SKILL.md | 17 +++++++++++------ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 9dd2bb8..ec5ac79 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,12 @@ that endpoint with extraction parameters, not a separate product. | Command | What it does | Status (this build) | | --- | --- | --- | | `zenrows fetch` | Fetch — retrieve a protected page | **available** — `GET https://api.zenrows.com/v1/` | -| `zenrows extract` | Extract: `extract=auto` (any prepared domain; falls back to Autoparse on one not prepared yet), CSS, or Markdown | **available**: same `/v1/` | -| `zenrows batch` | Batch: fan out over many URLs | **available**: `https://async.api.zenrows.com/v1`; local validate/estimate need no key | -| `zenrows crawl` | Crawl (new) — collect the URLs behind one start page, optionally with each page's HTML | **available** — `https://api.zenrows.com/v1/crawls` | -| `zenrows browser` | Browser Sessions REST API (same backend as MCP `browser_*`) | **available** — escalation-only; bills by bandwidth + time | -| `zenrows mcp` | MCP server config (remote + local) | **available** | -| Zenrows CLI | this repo | **available** | +| `zenrows extract` | Extract — turn a page into structured data: `extract=auto` on any prepared domain (falls back to Autoparse on one not prepared yet), CSS selectors, or Markdown | **available** — `GET https://api.zenrows.com/v1/?extract=auto` | +| `zenrows batch` | Batch — run Fetch and Extract over many URLs in one job; specs validate and estimate locally with no key | **available** — `POST https://async.api.zenrows.com/v1/jobs` | +| `zenrows crawl` | Crawl (new) — collect the URLs behind one start page, optionally with each page's HTML | **available** — `POST https://api.zenrows.com/v1/crawls` | +| `zenrows browser` | Browser Sessions — a real cloud browser over REST (same backend as MCP `browser_*`); escalation-only, billed by bandwidth + time | **available** — `POST https://mcp.zenrows.com/browser/sessions` | +| `zenrows mcp` | MCP — set up the Zenrows MCP server in your client, remote or local | **available** — `https://mcp.zenrows.com/mcp` | +| `zenrows` | CLI — this repo: the commands above, plus skills and templates | **available** — `npm install -g @zenrows/cli` | The CLI maintains a **capability matrix** (`registry/capabilities.json`). Every command checks status before any cloud call, so the toolkit never fakes behavior @@ -55,7 +55,7 @@ matrix. npm install -g @zenrows/cli # puts `zenrows` on PATH (466 ms, zero deps) zenrows init zenrows fetch https://httpbin.io/html # auto-provisions a Free plan account on first use -zenrows extract https://www.owler.com/company/meltwater # extract=auto on an enabled domain +zenrows extract https://www.owler.com/company/meltwater # extract=auto on a prepared domain zenrows extract https://www.scrapingcourse.com/ecommerce/ --autoparse # Autoparse (any domain) ``` @@ -116,7 +116,7 @@ zenrows fetch --proxy-country us --wait-for ".price" ## 8. Extract ```bash -zenrows extract https://www.owler.com/company/meltwater # extract=auto (enabled domain) +zenrows extract https://www.owler.com/company/meltwater # extract=auto (prepared domain) zenrows extract https://www.scrapingcourse.com/ecommerce/ --autoparse # Autoparse (any domain) zenrows extract --css '{"title":"h1","price":".price"}' --validate zenrows extract --outputs emails,links # built-in output filters → JSON diff --git a/skills/zenrows/SKILL.md b/skills/zenrows/SKILL.md index fe09702..87d7c70 100644 --- a/skills/zenrows/SKILL.md +++ b/skills/zenrows/SKILL.md @@ -71,12 +71,17 @@ Run `zenrows status` for the live capability matrix. As of this toolkit: | Primitive | Command | Status | | --- | --- | --- | -| Protected Fetch | `zenrows fetch` | available (`GET /v1/`) | -| Extract (extract=auto / Autoparse/CSS/Markdown) | `zenrows extract` | available (same `/v1/`; extract=auto falls back to autoparse) | -| Batch | `zenrows batch` | available: runs cloud jobs (create/status/results); cheapest path at scale. Estimate specs locally with no key | -| Crawl | `zenrows crawl` | new — collect the URLs behind one start page, optionally with each page's HTML | -| Browser | `zenrows browser` | available (Browser Sessions REST API / MCP) | -| MCP | `zenrows mcp` | available (remote + local server) | +| Protected Fetch | `zenrows fetch` | **available** — `GET https://api.zenrows.com/v1/` | +| Extract (`extract=auto`, Autoparse, CSS, Markdown) | `zenrows extract` | **available** — `GET https://api.zenrows.com/v1/?extract=auto` | +| Batch | `zenrows batch` | **available** — `POST https://async.api.zenrows.com/v1/jobs` | +| Crawl (new) | `zenrows crawl` | **available** — `POST https://api.zenrows.com/v1/crawls` | +| Browser | `zenrows browser` | **available** — `POST https://mcp.zenrows.com/browser/sessions` | +| MCP | `zenrows mcp` | **available** — `https://mcp.zenrows.com/mcp` | + +- Extract: `extract=auto` falls back to Autoparse on a domain not prepared yet. +- Batch: the cheapest path at scale (create, status, results). Estimate specs locally with no key. +- Crawl: collects the URLs behind one start page, optionally with each page's HTML. +- Browser: escalation-only, for pages Fetch can't handle; same backend as the MCP `browser_*` tools. Protected Fetch and Extract are the same API (`GET /v1/`) used two ways. The command consults the capability matrix before any cloud call — it never From 1f04c250e92f6f9e71dcb508823b1b9dc9f6888b Mon Sep 17 00:00:00 2001 From: Ander Date: Wed, 14 Oct 2026 10:34:02 +0200 Subject: [PATCH 2/2] docs: capability rows use colons, not em dashes Co-Authored-By: Claude Opus 5.5 --- README.md | 14 +++++++------- skills/zenrows/SKILL.md | 12 ++++++------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index ec5ac79..1f7180f 100644 --- a/README.md +++ b/README.md @@ -36,13 +36,13 @@ that endpoint with extraction parameters, not a separate product. | Command | What it does | Status (this build) | | --- | --- | --- | -| `zenrows fetch` | Fetch — retrieve a protected page | **available** — `GET https://api.zenrows.com/v1/` | -| `zenrows extract` | Extract — turn a page into structured data: `extract=auto` on any prepared domain (falls back to Autoparse on one not prepared yet), CSS selectors, or Markdown | **available** — `GET https://api.zenrows.com/v1/?extract=auto` | -| `zenrows batch` | Batch — run Fetch and Extract over many URLs in one job; specs validate and estimate locally with no key | **available** — `POST https://async.api.zenrows.com/v1/jobs` | -| `zenrows crawl` | Crawl (new) — collect the URLs behind one start page, optionally with each page's HTML | **available** — `POST https://api.zenrows.com/v1/crawls` | -| `zenrows browser` | Browser Sessions — a real cloud browser over REST (same backend as MCP `browser_*`); escalation-only, billed by bandwidth + time | **available** — `POST https://mcp.zenrows.com/browser/sessions` | -| `zenrows mcp` | MCP — set up the Zenrows MCP server in your client, remote or local | **available** — `https://mcp.zenrows.com/mcp` | -| `zenrows` | CLI — this repo: the commands above, plus skills and templates | **available** — `npm install -g @zenrows/cli` | +| `zenrows fetch` | Fetch: retrieve a protected page | **available**: `GET https://api.zenrows.com/v1/` | +| `zenrows extract` | Extract: turn a page into structured data with `extract=auto` on any prepared domain (falls back to Autoparse on one not prepared yet), CSS selectors, or Markdown | **available**: `GET https://api.zenrows.com/v1/?extract=auto` | +| `zenrows batch` | Batch: run Fetch and Extract over many URLs in one job; specs validate and estimate locally with no key | **available**: `POST https://async.api.zenrows.com/v1/jobs` | +| `zenrows crawl` | Crawl (new): collect the URLs behind one start page, optionally with each page's HTML | **available**: `POST https://api.zenrows.com/v1/crawls` | +| `zenrows browser` | Browser Sessions: a real cloud browser over REST (same backend as MCP `browser_*`); escalation-only, billed by bandwidth + time | **available**: `POST https://mcp.zenrows.com/browser/sessions` | +| `zenrows mcp` | MCP: set up the Zenrows MCP server in your client, remote or local | **available**: `https://mcp.zenrows.com/mcp` | +| `zenrows` | CLI: this repo, the commands above, plus skills and templates | **available**: `npm install -g @zenrows/cli` | The CLI maintains a **capability matrix** (`registry/capabilities.json`). Every command checks status before any cloud call, so the toolkit never fakes behavior diff --git a/skills/zenrows/SKILL.md b/skills/zenrows/SKILL.md index 87d7c70..c782a36 100644 --- a/skills/zenrows/SKILL.md +++ b/skills/zenrows/SKILL.md @@ -71,12 +71,12 @@ Run `zenrows status` for the live capability matrix. As of this toolkit: | Primitive | Command | Status | | --- | --- | --- | -| Protected Fetch | `zenrows fetch` | **available** — `GET https://api.zenrows.com/v1/` | -| Extract (`extract=auto`, Autoparse, CSS, Markdown) | `zenrows extract` | **available** — `GET https://api.zenrows.com/v1/?extract=auto` | -| Batch | `zenrows batch` | **available** — `POST https://async.api.zenrows.com/v1/jobs` | -| Crawl (new) | `zenrows crawl` | **available** — `POST https://api.zenrows.com/v1/crawls` | -| Browser | `zenrows browser` | **available** — `POST https://mcp.zenrows.com/browser/sessions` | -| MCP | `zenrows mcp` | **available** — `https://mcp.zenrows.com/mcp` | +| Protected Fetch | `zenrows fetch` | **available**: `GET https://api.zenrows.com/v1/` | +| Extract (`extract=auto`, Autoparse, CSS, Markdown) | `zenrows extract` | **available**: `GET https://api.zenrows.com/v1/?extract=auto` | +| Batch | `zenrows batch` | **available**: `POST https://async.api.zenrows.com/v1/jobs` | +| Crawl (new) | `zenrows crawl` | **available**: `POST https://api.zenrows.com/v1/crawls` | +| Browser | `zenrows browser` | **available**: `POST https://mcp.zenrows.com/browser/sessions` | +| MCP | `zenrows mcp` | **available**: `https://mcp.zenrows.com/mcp` | - Extract: `extract=auto` falls back to Autoparse on a domain not prepared yet. - Batch: the cheapest path at scale (create, status, results). Estimate specs locally with no key.