# Avasis Web Reader

> Avasis Web Reader is a paid API for AI agents from agents.avasis.ai, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-31).

Fetches any public web page and returns clean, LLM-ready markdown with metadata including title, author, links, word count, token estimate, and a content hash for change detection.

## Facts

- Endpoint: GET https://agents.avasis.ai/v1/web/read?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/avasis-web-reader-69780379
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_m5loSflu5ylsHVudimrTs

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 avasis-web-reader-69780379
```

Example prompt: Can you grab the main content of https://en.wikipedia.org/wiki/Artificial_intelligence as clean markdown, include outgoing links, and let me know if it's changed since this hash: 9f2c1234abcd?

## When to prefer this

Choose this endpoint when you need to feed live web content to an LLM and want clean, pre-processed markdown without writing your own HTML parser. It is ideal for single-page article extraction, content change detection via SHA256 comparison, and quickly estimating token budgets before passing content to a model. It handles redirects, strips boilerplate (nav, ads, scripts), and returns rich metadata in one call, all without requiring an API key — just USDC on Base.

## Known failure modes

- 4xx/5xx on the target page returns HTTP 424 (not charged)
- Non-text content types (binary, images, video) return HTTP 415 (not charged)
- Private/internal hostnames or IPs return HTTP 400 (not charged)
- More than 5 redirects causes a failure
- Response body exceeds 2 MB cap
- Fetch timeout after 8 seconds
- Malformed or overly long URL (>2048 chars) rejected

## How this service works

Read any public web page as clean, LLM-ready markdown in one call: main content (nav/ads/scripts stripped), title, description, author, published date, canonical, language, outgoing links, word count, approx tokens and a content_sha256 for change detection (pass since_sha256 to get changed:true|false). HTML, plain text, JSON and XML. Redirects followed (5 max), 2 MB cap, 8 s budget, 60 s cache. Page 4xx/5xx -> 424, non-text -> 415, private hosts -> 400: never charged. USDC on Base, no API key.

## Output

Returns a JSON object with the cleaned page content in markdown or plain text, the final URL after any redirects, page title, description, author, language, canonical URL, published date, outgoing links (up to 100), word count, approximate token count, a SHA256 hash of the content for change detection, whether the content was truncated, the HTTP status code, fetch time in ms, cache status, and if since_sha256 was supplied, a boolean changed flag.

## 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 public http(s) URL to read (max 2048 chars)"
      },
      "links": {
       "type": "string",
       "description": "1 (default) to include up to 100 outgoing links, 0 to omit"
      },
      "format": {
       "type": "string",
       "description": "markdown (default) or text"
      },
      "max_chars": {
       "type": "string",
       "description": "Max characters of content returned (500-100000, default 20000)"
      },
      "since_sha256": {
       "type": "string",
       "description": "content_sha256 from a previous read: the answer adds changed:true|false (change detection)"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "url",
      "final_url",
      "content",
      "content_sha256"
     ],
     "properties": {
      "url": {
       "type": "string"
      },
      "links": {
       "type": "array"
      },
      "title": {
       "type": [
        "string",
        "null"
       ]
      },
      "content": {
       "type": "string"
      },
      "final_url": {
       "type": "string"
      },
      "truncated": {
       "type": "boolean"
      },
      "word_count": {
       "type": "integer"
      },
      "http_status": {
       "type": "integer"
      },
      "approx_tokens": {
       "type": "integer"
      },
      "content_sha256": {
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://en.wikipedia.org/wiki/HTTP_402",
  "lang": "en",
  "image": null,
  "links": [
   {
    "href": "https://en.wikipedia.org/wiki/X402",
    "text": "x402"
   }
  ],
  "title": "HTTP 402 - Wikipedia",
  "byline": null,
  "cached": false,
  "format": "markdown",
  "content": "# HTTP 402\n\nHTTP 402 Payment Required is a client error status code reserved for future use ...",
  "fetch_ms": 310,
  "modified": null,
  "canonical": "https://en.wikipedia.org/wiki/HTTP_402",
  "final_url": "https://en.wikipedia.org/wiki/HTTP_402",
  "published": null,
  "redirects": 0,
  "site_name": null,
  "truncated": false,
  "fetched_at": "2026-10-30T12:00:00.000Z",
  "word_count": 812,
  "description": null,
  "http_status": 200,
  "links_total": 57,
  "total_chars": 5210,
  "content_type": "text/html",
  "approx_tokens": 1303,
  "content_sha256": "9f2c…(64 hex)"
 }
}
```

## More

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