# Hermes x402 Toolkit – Batch Web Page Fetcher

> Hermes x402 Toolkit – Batch Web Page Fetcher is a paid API for AI agents from api.zlovev.com, paid per call via x402, $0.03/call, status unknown (last checked 2026-09-18).

Fetches up to 5 URLs in a single call and returns clean, LLM-ready extracted text from each web page, paid per-call via USDC on Base with no API key required.

## Facts

- Endpoint: GET https://api.zlovev.com/api/web/batch
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-18
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hermes-x402-toolkit-batch-web-page-fetcher-aa0e6132
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_6UnaXarNkdWnIvNLxo-wU

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 hermes-x402-toolkit-batch-web-page-fetcher-aa0e6132
```

Example prompt: Fetch these three pages and give me clean readable text from each: https://techcrunch.com/latest, https://www.bbc.com/news, and https://reuters.com — truncate each to 10000 characters.

## When to prefer this

Choose this endpoint when you need to fetch and extract clean text from multiple web pages in a single paid call without setting up API keys or accounts — ideal for AI agents that need LLM-ready content from 2–5 URLs at once and want to pay per use via USDC micropayments on Base. Prefer it over single-URL fetchers when batching reduces round trips, and over free-tier scrapers when no-signup simplicity matters.

## Known failure modes

- URL is unreachable or returns non-200 status — that URL's result has ok:false and the failed count increments
- More than 5 URLs provided — request is rejected or only first 5 are processed
- Payment in USDC not completed — 402 response returned, no data delivered
- URL is not an absolute http(s) URL — validation error
- Target page is behind a login wall or bot protection — text extraction may be empty or incomplete
- max_chars exceeds 50000 — capped or rejected

## How this service works

Pay-per-call data API for AI agents. No API key, no account, no signup — pay USDC on Base (eip155:8453) per request; free /api/meta lists all 22 endpoints. One call each: web page to LLM-ready text and link previews; China A-share quotes and limit-up pool; Chinese text and pinyin; Base/Ethereum on-chain reads (address, token, ERC-20 balances, tx, blocks, transfer history, gas price in USD); NFT records (collection, owner, and ipfs:// tokenURI resolved through public gateways); full-page screenshots; email verification without sending mail; ENS forward/reverse resolution; smart-contract due diligence (ABI, verified source, proxy); token security facts (owner, renounced ownership, paused, bytecode capability selectors); domain dossier (RDAP, DNS, TLS certificate, HTTP facts, hosting network).

## Output

A JSON object with an `ok` flag, counts of requested/succeeded/failed URLs, and a `results` array where each entry contains the URL, extracted plain text (truncated to max_chars), page title, character count, and a per-URL success flag.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "urls"
     ],
     "properties": {
      "urls": {
       "type": "string",
       "description": "Comma-separated absolute http(s) URLs, max 5"
      },
      "max_chars": {
       "type": "integer",
       "description": "Per-URL text truncation (default 8000, max 50000)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "failed": 0,
  "results": [
   {
    "ok": true,
    "url": "https://example.com",
    "path": "http",
    "text": "Example Domain ...",
    "chars": 129,
    "title": "Example Domain"
   }
  ],
  "requested": 2,
  "succeeded": 2
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hermes-x402-toolkit-batch-web-page-fetcher-aa0e6132/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.zlovev.com](https://www.zero.xyz/host/api.zlovev.com/llms.txt)
