# Nero Labs Web Page Reader

> Nero Labs Web Page Reader is a paid API for AI agents from x402-agent-tools.nerolabs.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-22).

Fetches a public web page and returns its cleaned main article text plus rich metadata (title, author, dates, language, image, canonical URL) using Mozilla Readability

## Facts

- Endpoint: GET https://x402-agent-tools.nerolabs.workers.dev/read?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/nero-labs-web-page-reader-5ad1b0b3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_SeTDO48x5wqydqht1pXS_

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 nero-labs-web-page-reader-5ad1b0b3
```

Example prompt: Can you read this article for me and pull out the main text, title, author, and publish date? Here's the link: https://simonwillison.net/2024/Dec/31/llms-in-2024/ — keep it under 20000 characters.

## When to prefer this

Use this endpoint when an AI agent needs to read the actual content of a web page before summarising, quoting, or fact-checking it — especially for news articles, blog posts, and editorial content where Mozilla Readability's cleaning algorithm excels at removing navigation, ads, and boilerplate. Prefer it over generic scraping tools when you need structured metadata (author, dates, language) alongside the text, and when robots.txt compliance matters. It is charged only on success, making it cost-efficient for pipelines that encounter broken or blocked links.

## Known failure modes

- Page blocked by robots.txt — returns free error response indicating access denied
- Non-HTML content (PDF, images, binary files) — returns free error response
- Paywalled content — text may be empty or minimal with paywalled flag set to true
- URL unreachable or returns 4xx/5xx — returns error with no charge
- Page has no extractable article content — text field may be empty or very short
- Redirected URL differs from input — finalUrl field will differ from input url

## How this service works

Pay-per-call tools for AI agents, 31 in all: read web pages and RSS feeds, OCR, PDF text, transcription; email, phone and domain checks; UK, Irish and Polish company lookups and UK risk reports; website contacts, tech stack and SEO audits; PageSpeed; AI review, job post and row enrichment; data cleaning, joins, dedupe and diffs; US and EU compliance rules. No account or API key: pay each call in USDC on Base over x402.

## Output

Returns a JSON object with: cleaned main article text (up to 50,000 chars by default), page title, author name(s), publish and update timestamps, site name, language code, page type, canonical URL, image URL, word count, estimated reading time in minutes, a description excerpt, paywalled flag, truncated flag, and the final resolved URL after any redirects.

## 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"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "The http or https address of the page to read."
      },
      "max_chars": {
       "type": "integer",
       "maximum": 200000,
       "minimum": 100,
       "description": "Longest text to return. Default 50000; longer articles come back cut with truncated true."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "url": {
       "type": "string"
      },
      "text": {
       "type": "string"
      },
      "title": {
       "type": "string"
      },
      "author": {
       "type": "string"
      },
      "authors": {
       "type": "array",
       "items": {
        "type": "string"
       }
      },
      "finalUrl": {
       "type": "string"
      },
      "imageUrl": {
       "type": "string"
      },
      "language": {
       "type": "string"
      },
      "pageType": {
       "type": "string"
      },
      "siteName": {
       "type": "string"
      },
      "isArticle": {
       "type": "boolean"
      },
      "paywalled": {
       "type": "boolean"
      },
      "truncated": {
       "type": "boolean"
      },
      "wordCount": {
       "type": "number"
      },
      "modifiedAt": {},
      "description": {
       "type": "string"
      },
      "publishedAt": {},
      "canonicalUrl": {
       "type": "string"
      },
      "_example_note": {
       "type": "string"
      },
      "readingTimeMinutes": {
       "type": "number"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://simonwillison.net/2024/Dec/31/llms-in-2024/",
  "text": "31st December 2024\n\nA lot has happened in the world of Large Language Models over the course of 2024. Here’s a review of things we figured out about the field in the past twelve months, plus my attemp...",
  "title": "Things we learned about LLMs in 2024",
  "author": "Simon Willison",
  "authors": [
   "Simon Willison"
  ],
  "finalUrl": "https://simonwillison.net/2024/Dec/31/llms-in-2024/",
  "language": "en-gb",
  "pageType": "article",
  "siteName": "Simon Willison’s Weblog",
  "isArticle": true,
  "paywalled": false,
  "truncated": true,
  "wordCount": 6988,
  "modifiedAt": null,
  "description": "A lot has happened in the world of Large Language Models over the course of 2024. Here’s a review of things we figured out about the field i...",
  "publishedAt": null,
  "canonicalUrl": "https://simonwillison.net/2024/Dec/31/llms-in-2024/",
  "_example_note": "Real output, trimmed: long lists cut to their first items and long text shortened.",
  "readingTimeMinutes": 30
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/nero-labs-web-page-reader-5ad1b0b3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-agent-tools.nerolabs.workers.dev](https://www.zero.xyz/host/x402-agent-tools.nerolabs.workers.dev/llms.txt)
