Skip to content
Agentmart
Submit a tool

batch-jobs

Scale protected fetch/extract over many URLs via Batch.

Skill by ZenRows

IndexedMIT★ 16
Write a review

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-batch-jobs-e9d4a4

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.

We use your email only for this newsletter. Privacy

About

Scale protected fetch/extract over many URLs via Batch. Cloud create/list/status/wait/results/content/cancel/pause/resume/rerun/delete work with an API key; estimate/validate run locally with no key.

Use cases: backend, writing

No 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/batch-jobs

What's inside

Skill name
batch-jobs
Description
Scale protected fetch/extract over many URLs via Batch. Cloud create/list/status/wait/results/content/cancel/pause/resume/rerun/delete work with an API key; estimate/validate run locally with no key.
License
MIT
Instructions
192 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Batch Jobs

Process large workloads reliably and asynchronously. Batch is where Zenrows'
high-scale anti-bot advantage becomes obvious: thousands to 100,000 URLs per
job, at Fetch's prices.

> Zenrows **Batch** runs on a separate host (`async.api.zenrows.com/v1`) and
> costs the same credits as Fetch (1 basic, 5 js_render, 10 premium_proxy, 25
> both; Adaptive Stealth Mode 1 to 25). Failed tasks are not billed, except
> target 404/410 answers, as on Fetch. The cloud subcommands work with any
> active API key; a 403 maps to `BATCH_ACCESS_DENIED`. The toolkit never fakes
> a cloud run.

## Spec and estimate (local, no key)

```
zenrows batch estimate jobs.jsonl [--premium-proxy] [--js-render] [--manual]
```

`jobs.jsonl` is one JSON object per line, each with a `url` (http or https,
up to 2048 bytes). Optional per-task keys:

- `external_id`: up to 128 letters, digits, `.`, `_` or `-`; echoed on each
  result row (it does not have to be unique).
- `metadata`: up to 20 string-to-string entries; keys 1 to 64 of the same
  characters, values up to 1024 bytes (UTF-8), 4 KiB in total.
- `method` and `body`: `"method": "POST"` sends `body` (up to 16 KiB): a JSON
  string goes as a form body, any other JSON value as JSON (`"body": null` means
  no body). A POST task cannot
  use `js_render`, `js_instructions` or `json_response`.
- scrape params, flat (`js_render`, `premium_proxy`, `proxy_country`, `mode`,
  `autoparse`, `extract`, ...) or nested under `zenrows_params`. Booleans are
  `true`/`false` (or `"true"`/`"false"`).

`estimate` checks every line against those limits and prices the run the way
`create` would submit it, job-level flags included, as a range: Adaptive
Stealth Mode tasks count 1 at the low end and 25 at the upper bound. It exits 1
on any invalid line.

## Extract in Batch

`"extract": "auto"` on a line runs that URL through Extract, returning
structured data instead of raw HTML.

```
{"url": "https://example.com/products", "extract": "auto", "external_id": "p1"}
```

An Extract task costs the same as a regular one, so `batch estimate` prices it
correctly. The result carries two keys: `html` (the
raw page) and `parsed` (the structured data). Validate on a single URL with
`zenrows extract <url>` before running the full batch.

## Create, wait, read

```
zenrows batch create jobs.jsonl --follow --json
zenrows batch create jobs.jsonl --manual --premium-proxy --proxy-country us --output markdown
zenrows batch create jobs.jsonl --name nightly --external-id run-42 --metadata team=growth
zenrows batch results <id> --out results.jsonl   # every row, as JSONL
zenrows batch results <id> --download out/       # each result body + _manifest.jsonl
zenrows batch content <id> <task_id>             # one task's body
```

- Every GET task runs in Adaptive Stealth Mode (`mode=auto`) by default, like
  `fetch` and `extract`: Zenrows enables JS rendering and premium proxies only
  on the pages that need them, and bills only the configuration that
  succeeds. A task that turns on `js_render` or `premium_proxy`, or sets
  `mode`, itself keeps its own settings; `--js-render` / `--premium-proxy` force that
  configuration on every task; `--manual` turns Adaptive Stealth Mode off.
  Outside Adaptive Stealth Mode, `--proxy-country` needs `--premium-proxy`.
- Job-level flags apply to every task; per-task keys override them.
- `--follow` (alias `--wait`) waits until the run ends, the run is paused, or
  `--timeout` runs out (default 10 minutes; `30s`, `5m`, `1h`; a bare number
  is milliseconds). A wait that runs out exits 0 and prints the run with a
  `note` and `next: zenrows batch wait <id>`; the job keeps running. Ctrl-C
  stops the wait, not the job, and exits 130.
- A submit of 10,000 tasks or more answers 202 with `ingest_status: pending`
  while the API still receives the tasks; results stay partial until `done`.
- `create` and `rerun` send an `Idempotency-Key` (generated, or
  `--idempotency-key`) and retry network errors and 502/503/504 under it.
  When the outcome stays unknown, the error carries `idempotency_key` and the
  exact command that repeats the request safely (the API keeps a key 24 hours
  and answers a repeat with the original job). Never repeat with a new key.
- Results are kept 14 days by default; after that a row reads `expired`, has no
  `result_url`, and `content` answers `BATCH_RESULT_EXPIRED`. `--download`
  skips expired rows and counts them. A row's `result_url` is valid 2 hours:
  list the results again for a fresh one.
- `results --status successful|failed|processing|all`, `--run <run_id>` for an
  earlier run. On a run still in progress the output has `partial: true`.

With `--json`, `create`, `status`, `wait`, `cancel`, `pause`, `resume` and
`rerun` print `{ok, job_id, run_id, status, stats, job}` (plus `jobId`, kept
for older scripts), with `paused`, `ingest_status`, `accepted_tasks`,
`rerun_of`, `retried_tasks`, `inherited_tasks`, `failure_reason` and
`failure_detail` when the API sends them, and `note` when a wait ends early.

## While it runs, and after

```
zenrows batch list [--status open|closed] [--type regular|scheduled]
zenrows batch status <id>
zenrows batch wait <id> --timeout 30m
zenrows batch pause <id>              # no new task is picked up
zenrows batch resume <id>
zenrows batch cancel <id>             # stop the run; an ended run answers as it ended
zenrows batch retry-failed <id>       # rerun the failed tasks
zenrows batch retry-failed <id> --include-pending   # also the unfinished ones
zenrows batch rerun <id>              # failed + pending tasks; successful ones carry over
zenrows batch rerun <id> --status failed,pending,processing
zenrows batch rerun <id> --all        # every task (not with --status)
zenrows batch delete <id> --yes       # job, runs and stored results; frees its slot
```

A run ends `completed`, `stopped`, `failed` or `deleted`. A paused run is not
ended: `status` shows `paused: true`, and `wait` returns at once with a note
to `zenrows batch resume <id>`.

`status`, `wait`, `create --follow` and `rerun --follow` exit 1 (`ok: false`)

From ZenRows/cli, MIT.

More from ZenRows/cli

Signals

Stars
16
Forks
2
Open issues
0
Last commit (this folder)
Oct 20, 2026 (8 days ago)
Last release
Oct 23, 2026 (5 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ZenRows

Cite this page

batch-jobs skill. Agent Mart. https://agentmart.dev/skills/zenrows-batch-jobs-e9d4a4 (last updated 2026-10-24)