# AgentRead API - Web Content Extractor

> AgentRead API - Web Content Extractor is a paid API for AI agents from agentread.omar-cv.workers.dev, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-30).

Fetches and converts any public web page into clean Markdown text optimized for AI agent consumption, billed per successful extraction via x402 micropayment.

## Facts

- Endpoint: POST https://agentread.omar-cv.workers.dev/v1/extract?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agentread-api-web-content-extractor-9677e6d5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_RgyFgGcEL_kFuC7Yzdu5z

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 agentread-api-web-content-extractor-9677e6d5 -d '<json body>'
```

Example prompt: Fetch and clean the content of https://techcrunch.com/2024/01/15/openai-latest-news/ into Markdown so I can read it — keep the links in and limit it to 50000 characters.

## When to prefer this

Choose AgentRead when you need clean, AI-readable Markdown from any arbitrary public URL with pay-per-use pricing (no subscription), especially in agent pipelines where you only pay for successful extractions. Prefer this over browser automation tools when you need lightweight text extraction without JavaScript rendering overhead, and over general scraping APIs when you want Markdown output with metadata like word counts and redirect tracking built in.

## Known failure modes

- URL is not publicly accessible or requires authentication — extraction fails with error
- URL uses non-default ports or IP literals — rejected by input validation
- Requested URL returns a non-HTML content type that cannot be converted to Markdown
- Payment signature missing or invalid — HTTP 402 returned with x402 payment requirements; must retry with valid PAYMENT-SIGNATURE header
- maxCharacters below 100 or above 100000 — validation error
- URL exceeds 2048 characters — rejected
- Page loads but extraction produces no meaningful content — empty or near-empty Markdown returned

## How this service works

Clean web content for AI agents, paid per request via x402. Paid endpoints return HTTP 402 with x402 v2 payment requirements; retry with a `PAYMENT-SIGNATURE` header produced by an x402 client (e.g. @x402/fetch). Only successful extractions are settled.

## Output

A JSON object containing the page title, the final resolved URL (after redirects), clean Markdown-formatted body text, a description if available, and extraction metadata including word count, character count, content type, fetch duration in milliseconds, HTTP status code, bytes fetched, and whether the output was truncated. Returns schemaVersion 1.0.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "maxLength": 2048,
   "minLength": 1,
   "description": "Absolute public http:// or https:// URL. Default ports only; no credentials; no IP literals."
  },
  "includeLinks": {
   "type": "boolean",
   "description": "Keep hyperlinks and images in the Markdown (default true). When false, link text is kept as plain text."
  },
  "maxCharacters": {
   "type": "integer",
   "maximum": 100000,
   "minimum": 100,
   "description": "Maximum Markdown characters to return (default 20000, max 100000)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "title": "Example Domain",
  "finalUrl": "https://example.com/",
  "headings": [],
  "markdown": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
  "operation": "extract_url",
  "truncated": false,
  "extraction": {
   "words": 25,
   "method": "lite",
   "charset": "utf-8",
   "warnings": [],
   "redirects": 0,
   "characters": 156,
   "durationMs": 140,
   "statusCode": 200,
   "contentType": "text/html",
   "bytesFetched": 577,
   "totalCharacters": 156
  },
  "description": null,
  "requestedUrl": "https://example.com/",
  "schemaVersion": "1.0"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentread-api-web-content-extractor-9677e6d5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agentread.omar-cv.workers.dev](https://www.zero.xyz/host/agentread.omar-cv.workers.dev/llms.txt)
