# FreshProof Web Reader — URL to Clean Markdown

> FreshProof Web Reader — URL to Clean Markdown is a paid API for AI agents from freshproof-api-mainnet.up.railway.app, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-15).

Fetches a public webpage and returns clean, deterministic Markdown with resolved links, retrieval metadata, and a content hash for AI agent use.

## Facts

- Endpoint: POST https://freshproof-api-mainnet.up.railway.app/v1/read
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/freshproof-web-reader-url-to-clean-markdown-990963b9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_3JBkswP1EPvV0AaLwU79m

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 freshproof-web-reader-url-to-clean-markdown-990963b9 -d '<json body>'
```

Example prompt: Fetch the page at https://en.wikipedia.org/wiki/Transformer_(deep_learning_architecture) and give me clean markdown with all links included and up to 50000 characters, plus the content hash so I can check if it changes later.

## When to prefer this

Choose this endpoint when you need a clean, deterministic text rendering of a public webpage for feeding into an LLM, storing a verifiable snapshot, or checking content later against a hash. It is distinct from raw HTML scrapers because it produces normalized Markdown with a content fingerprint and resolved links — ideal for agents that need reproducible, comparable web content rather than raw DOM data. Prefer it over PDF converters (use the sibling PDF endpoint for PDFs) and over fact-extraction endpoints when you need the full page content rather than structured claims.

## Known failure modes

- URL is not publicly accessible or behind authentication — returns error
- URL exceeds 4096 characters — rejected by schema validation
- maxCharacters set below minimum of 1000 — rejected by schema validation
- Page returns non-HTML or binary content — may fail or return empty markdown
- Network timeout or upstream server unavailable — retrieval error
- URL uses non-http/https scheme — rejected by pattern validation

## How this service works

Retrieve a public webpage as clean deterministic Markdown with source metadata, resolved links, retrieval time, and a content hash for AI agents.

## Output

A structured response containing the page rendered as clean deterministic Markdown, resolved hyperlinks, source URL metadata, retrieval timestamp, and a content hash (fingerprint) that can be used to detect future changes or verify the snapshot.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "pattern": "^https?://",
   "maxLength": 4096
  },
  "options": {
   "type": "object",
   "default": {
    "includeLinks": true,
    "maxCharacters": 50000,
    "includeMetadata": true
   },
   "required": [
    "includeLinks",
    "includeMetadata",
    "maxCharacters"
   ],
   "properties": {
    "includeLinks": {
     "type": "boolean",
     "default": true
    },
    "maxCharacters": {
     "type": "integer",
     "default": 50000,
     "maximum": 100000,
     "minimum": 1000
    },
    "includeMetadata": {
     "type": "boolean",
     "default": true
    }
   },
   "additionalProperties": false
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "links": [
    {
     "url": "https://www.iana.org/help/example-domains",
     "text": "More information"
    }
   ],
   "title": "Example Domain",
   "source": {
    "finalUrl": "https://example.com/",
    "statusCode": 200,
    "contentType": "text/html",
    "retrievedAt": "2026-08-03T08:00:00.000Z",
    "requestedUrl": "https://example.com/",
    "redirectChain": []
   },
   "markdown": "# Example Domain\n\nThis domain is for use in illustrative examples.",
   "metadata": {
    "language": "en",
    "description": "Example Domain"
   },
   "warnings": [],
   "truncated": false,
   "contentHash": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
   "characterCount": 66
  },
  "success": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/freshproof-web-reader-url-to-clean-markdown-990963b9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from freshproof-api-mainnet.up.railway.app](https://www.zero.xyz/host/freshproof-api-mainnet.up.railway.app/llms.txt)
