# Agent Data Tools: Rendered Web Page Extractor

> Agent Data Tools: Rendered Web Page Extractor is a paid API for AI agents from agent-data-tools.revmesh2074.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-19).

Fetches and renders a public web page using a headless browser, returning its content as clean text, markdown, or both, along with headings, links, tables, and metadata.

## Facts

- Endpoint: GET https://agent-data-tools.revmesh2074.workers.dev/extract/rendered?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-19
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-data-tools-rendered-web-page-extractor-73756d5d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_otRGc6cDyTjN1xFBsJMSk

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 agent-data-tools-rendered-web-page-extractor-73756d5d
```

Example prompt: Fetch and render the page at https://docs.example.com/quickstart and give me its content as markdown, limiting the output to 10000 characters.

## When to prefer this

Choose this endpoint when the target URL is a JavaScript-rendered or single-page application (SPA) page whose content is not present in the raw HTML response. It is the right choice over a static-fetch extractor when the page requires client-side rendering (React, Vue, Angular, etc.) to display its content. Use it when you need structured output including headings, tables, links, and code blocks alongside clean text or markdown, and when you need a content hash for deduplication or change detection.

## Known failure modes

- URL is not publicly accessible or requires authentication — returns an error status
- Page takes too long to render (timeout) — returns a timeout error
- URL scheme is not http/https — rejected by schema validation
- maxChars outside the 500–100000 range — validation error
- Target page actively blocks headless browsers — may return incomplete or empty content
- Network errors or DNS failures — propagated as error responses

## How this service works

181 pay-per-call tools for AI agents over HTTP or MCP, most at $0.003. Every caller gets 25 free calls; then pay per call in USDC via x402 (Base, Polygon, Arbitrum, Monad, World Chain) or by card with prepaid credits from /credits. No account needed; failed calls are never charged; per-tool reliability is public at /status. Crypto: token prices and wallet portfolios from Uniswap v3, chain reads on Base, Ethereum, Arbitrum, Optimism and Polygon, OFAC sanctions screening. Web: Read public static documentation, pages, PDFs and RSS feeds as clean text, plus link previews and sitemaps. Business: company profiles, domain and email checks. Also Bitcoin, FX, weather, holidays, geocoding, AI text, and JSON, date and validation utilities.

## Output

A JSON object containing the rendered page's plain text, markdown, page title, detected language, headings array (with level and id), links array, tables array, code blocks, content hash, content type, fetch timestamp, final URL after redirects, truncation status, warnings, and source metadata including detected authors and dates. The 'rendered' field confirms JavaScript was executed before extraction.

## 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",
       "examples": [
        "https://example.com/"
       ],
       "description": "Absolute public http(s) URL of the page"
      },
      "format": {
       "enum": [
        "text",
        "markdown",
        "both"
       ],
       "type": "string",
       "examples": [
        "markdown"
       ],
       "description": "text (default), markdown or both"
      },
      "section": {
       "type": "string",
       "examples": [
        "main"
       ],
       "description": "Optional exact HTML id to read only that element"
      },
      "maxChars": {
       "type": "integer",
       "examples": [
        20000
       ],
       "description": "Output limit, 500-100000 characters (default 20000)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "url": {
       "type": "string"
      },
      "lang": {
       "type": "string"
      },
      "text": {
       "type": "string"
      },
      "links": {
       "type": "array",
       "items": {}
      },
      "title": {
       "type": "string"
      },
      "format": {
       "type": "string"
      },
      "status": {
       "type": "number"
      },
      "tables": {
       "type": "array",
       "items": {}
      },
      "section": {},
      "finalUrl": {
       "type": "string"
      },
      "headings": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "id": {},
         "text": {
          "type": "string"
         },
         "level": {
          "type": "number"
         }
        }
       }
      },
      "markdown": {
       "type": "string"
      },
      "rendered": {
       "type": "boolean"
      },
      "warnings": {
       "type": "array",
       "items": {}
      },
      "canonical": {},
      "fetchedAt": {
      
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://agent-data-tools.revmesh2074.workers.dev/examples/extract/sources/short-article.html",
  "lang": "en",
  "text": "A short release note\n\nVersion 1.1.1 preserves literal code whitespace and nested list structure.\n\nThe price remains $0.002 per successful extraction. This is an owned sample, not a purchase receipt.",
  "links": [],
  "title": "Owned sample: short article",
  "format": "both",
  "status": 200,
  "tables": [],
  "section": null,
  "finalUrl": "https://agent-data-tools.revmesh2074.workers.dev/examples/extract/sources/short-article.html",
  "headings": [
   {
    "id": null,
    "text": "A short release note",
    "level": 1
   }
  ],
  "markdown": "# A short release note\n\nVersion 1.1.1 preserves literal code whitespace and nested list structure.\n\nThe price remains $0.002 per successful extraction. This is an owned sample, not a purchase receipt.",
  "rendered": true,
  "warnings": [],
  "canonical": null,
  "fetchedAt": "2026-10-16T11:06:01.780Z",
  "truncated": false,
  "codeBlocks": [],
  "hashFormat": "text",
  "textLength": 198,
  "contentHash": "sha256:6cd3137dc4735c9ab317c764c78b47712dc9ca8eabe435dd0db9142bdaacbe2c",
  "contentType": "text/html;charset=utf-8",
  "description": null,
  "linkBaseUrl": "https://agent-data-tools.revmesh2074.workers.dev/examples/extract/sources/short-article.html",
  "sourceFormat": "html",
  "sourceMetadata": {
   "dates": [],
   "authors": [],
   "truncated": false,
   "verification": "not_verified"
  },
  "contentSelection": "main"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-data-tools-rendered-web-page-extractor-73756d5d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-data-tools.revmesh2074.workers.dev](https://www.zero.xyz/host/agent-data-tools.revmesh2074.workers.dev/llms.txt)
