# x402 Reader – Web Page to Markdown Extractor

> x402 Reader – Web Page to Markdown Extractor is a paid API for AI agents from reader.outbid.sh, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-02).

Fetches any public web URL and returns its main content as clean Markdown, billed at $0.002 USDC per call via the x402 micropayment protocol

## Facts

- Endpoint: GET https://reader.outbid.sh/content/extract?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-reader-web-page-to-markdown-extractor-dfa52b30
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_diWft-fdKbEHEU8F40dR-

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-reader-web-page-to-markdown-extractor-dfa52b30
```

Example prompt: Grab the content of https://techcrunch.com/2024/01/15/openai-news/ and give it to me as clean markdown so I can read it without all the noise.

## When to prefer this

Choose this endpoint when you need to programmatically read any public web page as clean, LLM-friendly Markdown without managing headless browsers or scraping infrastructure. It is ideal for one-off URL reads, agent pipelines that need to ingest web content, or any workflow where $0.002 per page is acceptable and the content is publicly accessible HTML. Prefer it over raw HTTP fetches when you want readability-style content extraction (ads and boilerplate stripped) and a structured JSON response with metadata like word count and content hashes.

## Known failure modes

- URL is not publicly accessible or requires authentication — origin_status will reflect the HTTP error (403, 401, etc.)
- URL points to a non-HTML resource (PDF, binary) — extraction may return empty or partial content
- Target site blocks scrapers or returns bot-detection pages — markdown may contain anti-bot messaging instead of article content
- Malformed or non-HTTP(S) URL provided — request validation fails before fetch
- Target site is slow or times out — call may return an error or partial result
- Paywalled content returns only the teaser/preview rather than the full article

## How this service works

Read any ordinary public web page as clean Markdown for $0.005 USDC per call over x402.

## Output

A JSON object containing: the extracted page content as Markdown (`markdown`/`content`), the page `title`, `word_count`, `final_url` (after any redirects), `requested_url`, `fetched_at` timestamp, `origin_status` code, `origin_content_type`, byte size of the original body, SHA-256 hashes of both the markdown and the original HTML body, and the `extractor_version` used. The `ok` boolean indicates success.

## 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": "Public http(s) URL to convert to markdown"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "title": "Example article",
  "content": "# Example article",
  "markdown": "# Example article",
  "final_url": "https://example.com/article",
  "fetched_at": "2026-09-13T00:00:00.000Z",
  "word_count": 2,
  "origin_status": 200,
  "requested_url": "https://example.com/article",
  "markdown_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
  "extractor_version": "x402-reader.readability-markdown.v1",
  "origin_body_bytes": 1234,
  "origin_body_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
  "origin_content_type": "text/html; charset=utf-8"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-reader-web-page-to-markdown-extractor-dfa52b30/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from reader.outbid.sh](https://www.zero.xyz/host/reader.outbid.sh/llms.txt)
