Read a JavaScript-rendered page as text or Markdown
Same output as /extract, but the page is first rendered in a real browser, so single-page apps and pages that build their content with JavaScript come back with their text instead of an empty shell. Waits for the network to settle (up to 15 seconds). Public pages only; no login. Use when /extract returns EXTRACTION_EMPTY or too little text for a page you can read in a browser.
Inputs
| Name | Type | Description |
|---|---|---|
url (required) | string | Absolute public http(s) URL of the page |
format | string | text (default), markdown or both. One of: text, markdown, both. |
maxChars | integer | Output limit, 500-100000 characters (default 20000) |
section | string | Optional exact HTML id to read only that element |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/extract/rendered?url=https%3A%2F%2Fexample.com%2F"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/extract/rendered?url=https%3A%2F%2Fexample.com%2F&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum, Monad, World Chain or Tempo) and retries.
Example result
{
"url": "https://agent-data-tools.revmesh2074.workers.dev/examples/extract/sources/short-article.html",
"finalUrl": "https://agent-data-tools.revmesh2074.workers.dev/examples/extract/sources/short-article.html",
"status": 200,
"contentType": "text/html;charset=utf-8",
"sourceFormat": "html",
"linkBaseUrl": "https://agent-data-tools.revmesh2074.workers.dev/examples/extract/sources/short-article.html",
"sourceMetadata": {
"verification": "not_verified",
"authors": [],
"dates": [],
"truncated": false
},
"title": "Owned sample: short article",
"description": null,
"lang": "en",
"canonical": null,
"headings": [
{
"level": 1,
"text": "A short release note",
"id": null
}
],
"section": null,
"links": [],
"tables": [],
"codeBlocks": [],
"contentSelection": "main",
"warnings": [],
"format": "both",
"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.",
"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.",
"textLength": 198,
"truncated": false,
"contentHash": "sha256:6cd3137dc4735c9ab317c764c78b47712dc9ca8eabe435dd0db9142bdaacbe2c",
"hashFormat": "text",
"fetchedAt": "2026-10-16T11:06:01.780Z",
"rendered": true
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is extract_rendered, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp