# ScrapeMole Reader — Web Page to Markdown

> ScrapeMole Reader — Web Page to Markdown is a paid API for AI agents from reader.scrapemole.workers.dev, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-12).

Fetches any public web page and returns its content as clean Markdown (or plain text), preserving links and images, with configurable length truncation.

## Facts

- Endpoint: GET https://reader.scrapemole.workers.dev/v1/read?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/scrapemole-reader-web-page-to-markdown-39122076
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WaWsltDEm8ZisgBq6U_eH

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 scrapemole-reader-web-page-to-markdown-39122076
```

Example prompt: Fetch the article at https://www.example.com/blog/ai-trends and give me its content as clean Markdown, keeping all links but skipping images, capped at 20000 characters.

## When to prefer this

Choose this endpoint when an AI agent needs to read and process the body content of a specific public web page as structured Markdown or plain text, without needing to set up accounts or API keys. It is ideal for one-off or pay-per-use reads in agent pipelines where billing per successful call (USDC via x402) is acceptable. Prefer this over browser automation or full-crawl services when you only need clean readable content from a single URL, not JavaScript-heavy rendering or bulk crawling.

## Known failure modes

- URL is not publicly accessible or requires authentication — returns error, no charge
- URL is malformed or missing — schema validation error before payment
- Page returns non-200 HTTP status — call is not charged
- Timeout fetching the remote page — no charge on failed calls
- Content exceeds maxChars and is silently truncated — truncated flag set to true in response

## How this service works

Pay-per-call web reading for agents: any public page as clean Markdown, link-preview/SEO metadata (Open Graph, Twitter card, favicon, JSON-LD), RSS/Atom/JSON feeds normalized, every link on a page (internal/external, rel) and a site's XML sitemap as a URL list. USDC via x402, no accounts or API keys; failed calls are never charged.

Payments: x402 v2, scheme "exact", USDC on Base (eip155:8453). The payment is verified before the work and settled only when the response is 200. Terms: https://reader.scrapemole.workers.dev/terms

## Output

A JSON object containing the page title, the rendered content in Markdown or plain text, detected language code, character count, word count, the final resolved URL (after redirects), and a flag indicating whether the content was truncated at the requested maxChars limit.

## 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",
       "examples": [
        "https://example.com"
       ],
       "description": "Public http(s) URL of the page."
      },
      "links": {
       "type": "string",
       "default": "true",
       "description": "Keep hyperlinks as Markdown links (true/false)."
      },
      "format": {
       "enum": [
        "markdown",
        "text"
       ],
       "type": "string",
       "default": "markdown",
       "description": "Output format."
      },
      "images": {
       "type": "string",
       "default": "true",
       "description": "Keep images as Markdown image links (true/false)."
      },
      "maxChars": {
       "type": "string",
       "default": "50000",
       "description": "Cut the content at this many characters (1000-200000)."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://example.com",
  "lang": "en",
  "chars": 230,
  "title": "Example Domain",
  "format": "markdown",
  "content": "# Example Domain\n\nThis domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n\n[More information...](https://www.iana.org/domains/example)",
  "finalUrl": "https://example.com/",
  "truncated": false,
  "wordCount": 30
 }
}
```

## More

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