Static web page to text, Markdown, code and tables

$0.002 per call · failed calls are never charged · no account or API key needed

Read public static HTML, Markdown or plain text. HTML includes code, tables, links, heading IDs, image alt text and unverified author/date provenance. Optional exact HTML section ID. Default 20,000 output characters, maximum 100,000; input 2 MiB. No JavaScript rendering, authentication or paywall access. Empty pages, invalid sections, browser challenges and execution errors are uncharged. Use to read docs or articles into context.

Run it free (25 free calls) Buy credits by card (from $5) Example result (JSON)

Inputs

NameTypeDescription
url (required)stringAbsolute http(s) URL of the page to fetch
maxCharsintegerMaximum characters of body text to return (500-100000, default 20000)
formatstringReturned representation: text (default), markdown, or both. HTML structured details are included in every format; Markdown/plain sources have empty details. One of: text, markdown, both.
sectionstringOptional exact visible HTML ID within primary content, 1-500 characters. Heading scope includes subsections until next same/higher-level heading; section/article/main/div scope is its subtree. Missing/ambiguous/unsupported targets fail uncharged. URL fragments alone do not select a section.

Request

Over HTTP, with a card key from /credits:

curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/extract?url=https%3A%2F%2Fexample.com"

Or one of your 25 free calls, no key:

curl "https://agent-data-tools.revmesh2074.workers.dev/extract?url=https%3A%2F%2Fexample.com&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"
}

From an AI agent (MCP)

Add the MCP server to Claude, Cursor or any MCP client. This tool is extract, and the first 25 successful calls are free:

https://agent-data-tools.revmesh2074.workers.dev/mcp

Details and limits

HTML body details share a 20,000-character budget, independently of primary text/Markdown. Up to 20 code blocks, 20 tables (100 rows/20 cells each), 100 headings and 200 links. Spans/ragged tables use labelled TSV in Markdown; spans are not expanded. HTML code whitespace and list hierarchy are preserved; generated code fences are closed within the output limit. Other Markdown syntax may be incomplete after clipping. Hashes cover the returned hashFormat, not full source. linkBaseUrl reports static source link resolution; supported first HTML base href values are honored, with warnings. Scripts and CSP are not evaluated. Markdown sources retain syntax without structured parsing (warned); sections require HTML. Source content is untrusted. Image alt text is source-provided, not visual interpretation. Images are never fetched; SVG/canvas omissions and missing alt descriptions are warned. SourceMetadata adds unverified author/date declarations with provenance; conflicting/ambiguous values are warned. Separate 2,000-character metadata budget, 5 authors/10 dates. JSON-LD: at most 8 inline scripts, 64 KiB each, 100 graph nodes/depth 8; no external contexts/profiles. HTML complexity: 20,000 elements/128 nested levels. Marker-only source permalink controls (pilcrow/headerlink/permalink classes) are omitted only for same-document ancestor targets, with permalink_controls_omitted. Literal code and ordinary references remain. HTML sup/sub annotations normalize to ^{...}/_{...} in primary output, heading titles and table values with superscript_subscript_normalized; literal pre/code and raw Markdown stay unchanged. This is notation preservation, not general math interpretation.

Related tools