# Agent Fetch Hub — Batch Web Extraction (x402)

> Agent Fetch Hub — Batch Web Extraction (x402) is a paid API for AI agents from fetch.netzhandwerker.de, paid per call via x402, $0.008/call, status unknown (last checked 2026-09-16).

Fetches one or more URLs and returns clean Markdown content, billed per call in USDC via x402 with no signup or API key required.

## Facts

- Endpoint: POST https://fetch.netzhandwerker.de/batch/extract
- Price: $0.008/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-fetch-hub-batch-web-extraction-x402-b92ebd4c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Y2ADENuHjtCo8ihJt7fzb

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agent-fetch-hub-batch-web-extraction-x402-b92ebd4c -d '<json body>'
```

Example prompt: Fetch these three URLs for me and return their content as clean Markdown, keeping it under 5000 characters each: https://example.com/article1, https://example.com/article2, and https://example.com/article3.

## When to prefer this

Choose this endpoint when you need to extract readable text from one or more web pages without setting up an account or managing API keys, and want to pay only per call in USDC. It is especially well-suited for AI agent pipelines that need clean Markdown output ready for LLM consumption, and for scenarios where batch fetching multiple URLs in a single request is more efficient than sequential single-URL fetches.

## Known failure modes

- URL unreachable or returns HTTP error — content for that URL may be empty or contain an error indicator
- Payment failure via x402 — call is rejected before extraction occurs
- Malformed or inaccessible URLs in the array — partial results or error entries per URL
- Page requires JavaScript rendering — static extraction may return incomplete content
- Response truncated aggressively if max_chars is set very low

## How this service works

Extract up to ten URLs in one paid call.

## Output

Returns a JSON object containing the extracted content of each requested URL rendered as clean Markdown text, optionally truncated to a specified character limit and formatted according to the requested format parameter.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "urls": {
   "type": "array",
   "items": {
    "type": "string",
    "format": "uri"
   },
   "maxItems": 10,
   "minItems": 1
  },
  "format": {
   "enum": [
    "markdown",
    "text",
    "html"
   ],
   "type": "string",
   "default": "markdown"
  },
  "max_chars": {
   "type": "integer",
   "default": 200000,
   "maximum": 400000,
   "minimum": 500
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "items": [
   {
    "ok": true,
    "url": "https://example.com/a",
    "title": "A",
    "word_count": 420
   },
   {
    "ok": false,
    "url": "https://example.com/b",
    "error": "fetch_failed"
   }
  ],
  "ok_count": 1,
  "failed_count": 1
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-fetch-hub-batch-web-extraction-x402-b92ebd4c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from fetch.netzhandwerker.de](https://www.zero.xyz/host/fetch.netzhandwerker.de/llms.txt)
