# Pyfile Web Page to Markdown Reader

> Pyfile Web Page to Markdown Reader is a paid API for AI agents from pyfile-agent.taile3ff35.ts.net:10000, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-22).

Fetches any public web page and returns its main article text as clean, readable Markdown with navigation and ads stripped, plus the page title

## Facts

- Endpoint: GET https://pyfile-agent.taile3ff35.ts.net:10000/web/read?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/pyfile-web-page-to-markdown-reader-3202204a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_uN_F-V0PRSDBYkSxxfS26

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 pyfile-web-page-to-markdown-reader-3202204a
```

Example prompt: Can you read https://www.bbc.com/news/technology-12345678 and give me the main article text as clean markdown, keeping it under 20000 characters?

## When to prefer this

Choose this endpoint when you need to convert a specific public web page URL into clean, LLM-ready Markdown for RAG ingestion, summarization, or context injection, and want boilerplate (ads, nav, footers) automatically removed. It is especially suited for single-page article extraction in agentic pipelines that pay per call via x402. Prefer it over generic HTTP fetch tools when clean readable text — not raw HTML — is required.

## Known failure modes

- URL is not publicly accessible or requires authentication — returns an error or empty content
- Page is JavaScript-rendered and the backend cannot execute JS — may return incomplete or empty markdown
- max_chars set too low — content is heavily truncated, truncated flag is true
- Invalid or malformed URL input — likely returns a 4xx error
- Rate limiting or network timeout fetching the remote page — may return an error response
- Page has no clear article body — extraction may return minimal or low-quality markdown

## How this service works

Read any public web page as clean readable Markdown for RAG and LLM pipelines — main article text with nav/ads stripped, plus title. ?url=https://example.com&max_chars=20000

## Output

A JSON object containing: the requested URL, the page title, the main article body as clean Markdown (with navigation, ads, and boilerplate stripped), the extraction backend used, the number of bytes in the markdown, a boolean indicating whether the content was truncated at max_chars, and an ISO-8601 timestamp of when the page was fetched.

## 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",
     "properties": {}
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json",
     "description": "Output payload format."
    },
    "example": {
     "type": "object",
     "required": [
      "url",
      "markdown"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "The URL that was read."
      },
      "bytes": {
       "type": "integer",
       "description": "Size of the returned markdown in bytes."
      },
      "title": {
       "type": "string",
       "description": "Page title."
      },
      "source": {
       "type": "string",
       "description": "Extraction backend."
      },
      "markdown": {
       "type": "string",
       "description": "Main article text as clean Markdown."
      },
      "truncated": {
       "type": "boolean",
       "description": "True if markdown was cut at max_chars."
      },
      "fetched_at": {
       "type": "string",
       "description": "ISO-8601 fetch timestamp."
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pyfile-web-page-to-markdown-reader-3202204a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from pyfile-agent.taile3ff35.ts.net:10000](https://www.zero.xyz/host/pyfile-agent.taile3ff35.ts.net%3A10000/llms.txt)
