# WebRead

> WebRead is a paid API for AI agents from api.youraitools.co, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-27).

Fetches any public web page and returns its content as clean Markdown, with metadata like title, links, status, and word count

## Facts

- Endpoint: GET https://api.youraitools.co/webread/v1/read?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/webread-8c1afb21
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_btTlCFV4geHlsoAM7IPhr

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 webread-8c1afb21
```

Example prompt: Can you fetch the page at https://example.com/article and give me its readable text content as Markdown?

## When to prefer this

Use WebRead when an AI agent needs to access and read the text content of any public web page on demand, especially when you need clean Markdown output suitable for LLM consumption. It is ideal for single-page reads where you need structured metadata (status, title, word count, redirect chain) alongside the content. Prefer this over generic HTTP tools when you want automatic HTML-to-Markdown conversion with truncation control and pay-per-call pricing via USDC on Base or Solana.

## Known failure modes

- URL is not publicly accessible or requires authentication — returns non-200 status
- URL points to a non-HTML resource (e.g. binary file, PDF) — may return empty or garbled Markdown
- Page blocks bots via robots.txt — robots field will indicate 'disallowed'
- Network timeout or unreachable host — fetch error returned
- maxChars below 100 or above 200000 — validation error
- Malformed or non-absolute URL provided — required field validation failure

## How this service works

URL to Markdown API for AI agents. Converts a public web page into clean Markdown for LLMs and RAG pipelines: main content only (no nav, ads or scripts), absolute links, plus title, description and language metadata. Suited to AI agents that read, cite or summarize web pages. Respects robots.txt; only successful reads are charged. Search intents: url to markdown, web page to markdown api, web scraper for llm, html to markdown, read web page api, extract article text.

## Output

A JSON object containing the page's Markdown-converted text content along with metadata: page title, detected language, HTTP status code, final URL after redirects, number of redirects, word count, character count, link count, content type, fetch latency in milliseconds, fetch timestamp, robots.txt status, truncation flag, canonical URL, and a short description if present in the page meta tags.

## 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",
       "description": "Absolute http(s) URL of a public web page (HTML or plain text)"
      },
      "maxChars": {
       "type": "integer",
       "maximum": 200000,
       "minimum": 100,
       "description": "Truncate the Markdown to this many characters (default 200000)"
      }
     },
     "description": "Search intents: url to markdown, web page to markdown api, web scraper for llm, html to markdown, read web page api, extract article text"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "url": {
       "type": "string"
      },
      "lang": {
       "type": "string"
      },
      "chars": {
       "type": "number"
      },
      "links": {
       "type": "number"
      },
      "title": {
       "type": "string"
      },
      "robots": {
       "type": "string"
      },
      "status": {
       "type": "number"
      },
      "fetchMs": {
       "type": "number"
      },
      "finalUrl": {
       "type": "string"
      },
      "markdown": {
       "type": "string"
      },
      "canonical": {},
      "fetchedAt": {
       "type": "string"
      },
      "redirects": {
       "type": "number"
      },
      "truncated": {
       "type": "boolean"
      },
      "wordCount": {
       "type": "number"
      },
      "contentType": {
       "type": "string"
      },
      "description": {},
      "sourceBytes": {
       "type": "number"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://example.com/",
  "lang": "en",
  "chars": 156,
  "links": 0,
  "title": "Example Domain",
  "robots": "allowed",
  "status": 200,
  "fetchMs": 17,
  "finalUrl": "https://example.com/",
  "markdown": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
  "canonical": null,
  "fetchedAt": "2026-10-21T21:32:28.690Z",
  "redirects": 0,
  "truncated": false,
  "wordCount": 25,
  "contentType": "text/html; charset=utf-8",
  "description": null,
  "sourceBytes": 577
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/webread-8c1afb21/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.youraitools.co](https://www.zero.xyz/host/api.youraitools.co/llms.txt)
