# Toll402 Web Page Reader

> Toll402 Web Page Reader is a paid API for AI agents from toll402.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-14).

Fetches any public web page or PDF URL and returns clean, LLM-ready Markdown with title, metadata, and links — boilerplate, ads, and scripts stripped out.

## Facts

- Endpoint: GET https://toll402.dev/v1/read
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/toll402-web-page-reader-c16542cf
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_QTyBRFBq9SJ77KOBEyxgu

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 toll402-web-page-reader-c16542cf
```

Example prompt: Fetch the content of https://example.com/article and give me the clean markdown version with all the links included.

## When to prefer this

Choose this endpoint when you need to ingest a specific public web page or PDF URL into an LLM pipeline as clean, structured Markdown — especially when you want boilerplate and ads stripped automatically. Prefer it over raw HTTP fetches when you need title, links, and word count alongside the body. If you need to extract structured JSON matching a custom schema, use the Toll402 structured extraction sibling instead.

## Known failure modes

- URL is not publicly accessible or requires authentication — returns an error or empty content
- Page is JavaScript-rendered only and content cannot be extracted server-side
- PDF is encrypted or corrupted and cannot be parsed
- URL times out or returns a non-200 HTTP status
- maxChars truncation cuts off content mid-sentence if the page is very large
- malformed or invalid URL returns a validation error

## How this service works

Fetch any public web page (or PDF) and return clean, LLM-ready Markdown with title, metadata and links. Boilerplate, ads and scripts removed.

## Output

Returns a JSON object containing: the final resolved URL, page title, full body in Markdown (and/or plain text), an array of extracted hyperlinks (each with href and anchor text), word count, and the time taken in milliseconds. Boilerplate, navigation, ads, and scripts are removed.

## 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 read"
      },
      "format": {
       "enum": [
        "markdown",
        "text",
        "both"
       ],
       "type": "string",
       "default": "markdown",
       "description": "Which body format(s) to return"
      },
      "maxChars": {
       "type": "integer",
       "default": 200000,
       "maximum": 500000,
       "minimum": 500,
       "description": "Truncate body to this many characters"
      },
      "includeLinks": {
       "type": "boolean",
       "default": true
      },
      "includeImages": {
       "type": "boolean",
       "default": false
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "ms": {
       "type": "integer"
      },
      "ok": {
       "type": "boolean"
      },
      "tool": {
       "type": "string"
      },
      "result": {
       "type": "object",
       "properties": {
        "url": {
         "type": "string"
        },
        "links": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "href": {
            "type": "string"
           },
           "text": {
            "type": "string"
           }
          }
         }
        },
        "title": {
         "type": "string"
        },
        "markdown": {
         "type": "string"
        },
        "wordCount": {
         "type": "integer"
        }
       }
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://en.wikipedia.org/wiki/HTTP_402",
  "links": [
   {
    "href": "https://x402.org",
    "text": "x402"
   }
  ],
  "title": "HTTP 402",
  "markdown": "# HTTP 402\n\n...",
  "wordCount": 812
 }
}
```

## More

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