# x402 Markdown Reader

> x402 Markdown Reader is a paid API for AI agents from x402-reader.xbtbot.workers.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-27).

Fetches a public web page and returns clean Markdown of its main content, stripping boilerplate, navigation, ads, and scripts, along with title, byline, excerpt, and site name.

## Facts

- Endpoint: GET https://x402-reader.xbtbot.workers.dev/read?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-markdown-reader-e6eafce5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ZVo9F3gh9LNWhDcGi4g3Y

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 x402-markdown-reader-e6eafce5
```

Example prompt: Can you fetch this article and give me the clean, readable text — strip out all the ads and navigation: https://www.theverge.com/2024/5/1/example-article?

## When to prefer this

Use this endpoint when an agent needs to read the human-readable content of a public web article, blog post, or documentation page without dealing with raw HTML parsing, ad noise, or navigation boilerplate. It is especially well-suited when you need a clean Markdown representation ready for LLM summarization or analysis. Prefer this over generic HTTP fetch tools when content cleanup and structure extraction (title, byline, excerpt) are important, and the page is publicly accessible via a standard HTTP/HTTPS URL.

## Known failure modes

- Private or non-public hosts (IP literals, localhost, intranet) are rejected
- Pages exceeding 2 MB are not fetched
- Pages that take longer than 10 seconds to load result in a timeout error
- Redirects to disallowed hosts after initial fetch may be rejected
- Heavily JavaScript-rendered pages may return incomplete or empty markdown if content requires JS execution
- No charge is incurred if the page fetch or conversion fails

## How this service works

Fetch any public web page and return clean, readable Markdown of its main content (boilerplate, nav, ads and scripts removed) plus title, byline, excerpt and site name. Use when an agent needs to read or summarize an article, docs page or blog post without parsing raw HTML. GET /read?url=<http(s) URL>. Public hostnames only (no IP literals/private hosts); 2 MB page cap; 10 s timeout; markdown truncated at 200k chars. You are only charged if the page is fetched and converted successfully.

## Output

A JSON object containing: the final URL after redirects, page title, byline (author), excerpt, siteName, fetchedAt timestamp, a truncated boolean flag, and the main page content converted to clean Markdown with boilerplate removed. Markdown is capped at 200,000 characters.

## 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",
       "format": "uri",
       "description": "Absolute http(s) URL of a public web page"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "properties": {
    "url": {
     "type": "string",
     "description": "Final URL after redirects"
    },
    "title": {
     "type": "string"
    },
    "byline": {
     "type": "string"
    },
    "excerpt": {
     "type": "string"
    },
    "markdown": {
     "type": "string",
     "description": "Main content as Markdown"
    },
    "siteName": {
     "type": "string"
    },
    "fetchedAt": {
     "type": "string"
    },
    "truncated": {
     "type": "boolean"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://example.com/",
  "title": "Example Domain",
  "byline": "",
  "excerpt": "This domain is for use in documentation examples…",
  "markdown": "This domain is for use in documentation examples without needing permission…",
  "siteName": "",
  "fetchedAt": "2026-10-13T00:00:00.000Z",
  "truncated": false
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-markdown-reader-e6eafce5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-reader.xbtbot.workers.dev](https://www.zero.xyz/host/x402-reader.xbtbot.workers.dev/llms.txt)
