Skip to content

fix(extract): describe Extract as generally available, on any prepared domain - #37

Merged
jonathan-zenrows merged 8 commits into
mainfrom
fix/extract-cli-readme-copy
Oct 14, 2026
Merged

jonathan-zenrows merged 8 commits into
mainfrom
fix/extract-cli-readme-copy

Conversation

@jonathan-zenrows

Copy link
Copy Markdown
Contributor

What

Brings the CLI's description of Extract in line with how it works today, everywhere the CLI ships it: the README (what npm shows), zenrows extract --help, the skills (CLI and agent-plugin), the capability registry and docs/capabilities.md.

  • Extract is no longer labelled beta, open beta or domain-gated. The capability registry marks extract as available.
  • Extract works on any domain Zenrows has prepared, with any active API key. A domain that isn't prepared yet answers 403 REQS007; the CLI still falls back to Autoparse there.
  • The AUTH010 and REQS007 errors point to the self-serve path, POST /v1/extract/prepared-domains, instead of contacting support.
  • Pricing wording ("currently free") and Batch wording are unchanged.

See https://docs.zenrows.com/extract/setup#domain-coverage.

Testing

  • npm run typecheck: clean
  • npm test: 359/359 pass
  • zenrows extract --help shows the new default-mode line

After merge

Publish a new patch version so the npm page picks up the README.

Replaces #36, which closed when its branch was renamed.

🤖 Generated with Claude Code

jonathan-zenrows and others added 4 commits October 13, 2026 15:37
…and help

The README on npm, the extract help text, the skills and the capability
registry still described extract=auto as a "domain-gated open beta". That
has not been true since the gate was removed: Extract works on any domain
Zenrows has prepared, with any active key, and a domain that isn't prepared
yet answers REQS007, which the CLI already falls back from to Autoparse.

Say that instead, and replace "contact Zenrows support to enable this
domain" in the AUTH010 and REQS007 errors with the self-serve path
(POST /v1/extract/prepared-domains). Copy only; no behaviour changes.

The npm page updates on the next publish (1.5.1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lable

Extract is out of beta, so stop labelling it that way: the README commands
table, the capability and skill registries (extract status is now
`available`), the `extract --help` text, code comments, the docs and the
skills, workflow and template that describe it. Pricing wording stays as is:
extract=auto is still described as currently free.

Batch keeps its beta label; it is unchanged here.

See https://docs.zenrows.com/extract/introduction

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread docs/capabilities.md Outdated
- **experimental** — exists but not yet promoted to a stable status.
- **beta** — open beta; usable by any key. Product-specific limits (e.g. Extract
domain coverage) are handled by adapters / API errors, not by blocking the CLI.
- **beta**: usable by any key. Product-specific limits (e.g. Batch access)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jonathan-zenrows do we want to use Batch as a beta example?
If we don't have any in beta and don't plan to, we might just remove the line.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the beta entry from the status legend in e8affaa. With Extract (this PR) and Batch (#35) both generally available, no primitive uses that status any more.

Comment thread src/core/capabilities.ts Outdated
"available-but-needs-confirmation",
// Open beta: any key can call; product-specific limits (e.g. Extract domain
// coverage, Batch 403) are handled by the adapters / API errors, not here.
// Beta: any key can call; product-specific limits (e.g. Batch 403) are

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same commit: the comment no longer uses Batch as an example. The beta value itself stays in the set, since the status enum still defines it.

@AnderRV AnderRV left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, but please check the comments

jonathan-zenrows and others added 4 commits October 13, 2026 23:22
No primitive is in beta once Extract and Batch are generally available, so
drop the beta entry from the status legend in docs/capabilities.md and the
Batch example from the comment on the usable statuses. The beta status value
itself stays in the code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
When Extract knows a kind of page but none of the fields come back filled,
the API answers 422 with code no_data_extracted. The request is not
charged, and repeating it returns the same answer.

The CLI treated every 422 as a failed fetch and suggested escalating with
--js-render --premium-proxy, which reads as if the site could not be
reached. It now returns that answer to the extract adapter as an empty
result: one request, no Autoparse fallback, a warning that says no data was
found and how to check the page rendered fully, and `noDataExtracted: true`
in --json output. Under --validate it fails with EXTRACT_VALIDATION_FAILED.
Other 422s keep the existing handling.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e-copy

# Conflicts:
#	README.md
#	agent-plugin/skills/zenrows/SKILL.md
#	docs/capabilities.md
#	skills/zenrows/SKILL.md
…led fetch

An Extract request whose fetched page was a block or error page answers 422
blocked_document (not charged). The CLI reported it as "Protected Fetch failed
with HTTP 422". It now says what happened and suggests the stronger fetch that
can get past it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jonathan-zenrows
jonathan-zenrows merged commit b452542 into main Oct 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants