Read a web page as Markdown (paid)
read_urlRead a web page as clean Markdown for an LLM. Fetches the URL (robots.txt respected), extracts the main content (drops navigation, headers, footers, sidebars, cookie banners) and returns GitHub-flavoured Markdown with headings, lists, tables, code blocks (with language) and absolute links, plus metadata (title, description, author, published/modified dates, site name, language, canonical URL, image), an outline of headings, word count and a token estimate. Options: mode=full for the whole page, links=false to save tokens, images=true, include_links=true for the link list, max_tokens to truncate, chunk_tokens to get RAG-ready chunks with heading paths. Also converts native Markdown, plain text, JSON and RSS/Atom feeds. Never charged when it fails: unreachable or 4xx/5xx targets, robots.txt disallow, unsupported types (PDF, images) and empty/JavaScript-only pages return an error and are not settled. $0.001 per page. Costs $0.001 USDC per call via x402 (charged only on success). Without an x402 wallet you get the payment terms and the paid HTTP URL instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) URL of the page to read. | |
| mode | No | "main" (default): the article / main content only, without navigation, headers, footers, sidebars and cookie banners. "full": the whole page body. | |
| links | No | Keep inline links as [text](url) in the Markdown. Default true; false saves tokens. | |
| images | No | Keep images as . Default false. | |
| max_tokens | No | Truncate the Markdown to about this many tokens, at a paragraph boundary (`truncated` tells you). Default: no limit (400k characters max). | |
| chunk_tokens | No | Also return `chunks`: the Markdown split at headings/paragraphs into pieces of at most about this many tokens, each with its heading path. For RAG. | |
| include_links | No | Also return `links`: every link in the content as {url, text} (up to 500). Default false. |