URL to Markdown
Paste a link and get the readable article back as Markdown. Navigation, adverts, cookie notices and scripts are dropped, so what lands on your clipboard is the part you actually wanted, at a fraction of the token count of the raw HTML.
What to convert
Conversion options
Result
Paste an address above and press Convert.
Direct links for this page
How to use it
Three steps, no account, nothing kept afterwards.
Paste the address
Any public page. Articles, documentation, changelogs and blog posts all work.
Pick your output
Markdown for notes and prompts, plain text for the bare words, JSON when you want title, author, date and body as separate fields.
Copy or download
Take it to the clipboard or save it as a file, ready to drop into a prompt, a repo or a RAG pipeline.
Direct link routes
Skip the form entirely. Build the address yourself and the result renders on its own page, or comes back as a bare document for a script.
# human page: loads instantly, shows a loader, then the output https://tinywebtools.xyz/wtm/?type=md&url=https%3A%2F%2Fexample.com%2Farticle # bare document. These three are identical, pick whichever reads better: curl "https://tinywebtools.xyz/wtm/raw/?type=md&url=https%3A%2F%2Fexample.com%2Farticle" curl "https://tinywebtools.xyz/wtm/?type=md&url=https%3A%2F%2Fexample.com%2Farticle&raw=1" curl "https://tinywebtools.xyz/wtm/?type=md&url=https%3A%2F%2Fexample.com%2Farticle/raw" # plain text and structured JSON, same three forms curl "https://tinywebtools.xyz/wtm/raw/?type=txt&url=https%3A%2F%2Fexample.com%2Farticle" curl "https://tinywebtools.xyz/wtm/raw/?type=json&url=https%3A%2F%2Fexample.com%2Farticle"
Percent-encode when you want to be certain, which the Tool tab does for you: the one case that needs it is a target carrying a parameter that shares a name with ours, such as its own type=.
| Parameter | Values | What it does |
|---|---|---|
| url | web address | The page to convert. Required. Percent-encode it. |
| type | md, txt, json | Output format. Defaults to md. markdown and text also work. |
| raw | 1 | Return the bare document with the matching content type and no HTML page around it. Same as the /wtm/raw/ route, or a literal /raw written after the address. |
| main | 1, 0 | Readable part only. Default 1. Set 0 to convert the whole body. |
| links | 1, 0 | Keep links. Default 1. Off leaves the link text in place. |
| images | 1, 0 | Keep images. Default 1. Off keeps the alt text only. |
| tables | 1, 0 | Keep tables as Markdown pipe tables. Default 1. |
| fm | 1 | Prepend a YAML front-matter block to Markdown output. |
| wrap | 40 – 200 | Hard wrap plain text at this column. Off by default. |
Fetches are rate limited per connection, roughly 20 a minute and 200 an hour. Errors come back with a real HTTP status: 400 for a bad address, 403 when the site refuses, 404 when the page is gone, 413 over 5 MB, 429 over the limit, 504 on a timeout.
Questions
Why Markdown beats HTML as LLM context
Paste a raw web page into a model and most of what you just spent is markup. Class names, inline styles, tracking pixels, nav lists, cookie banners, script tags and three layers of wrapper divs all arrive as tokens, and none of them carry meaning the model needs.
The ratio is worse than people expect. A long article that reads as maybe 1,500 words of prose often ships as 60,000 characters of HTML. Reduced to Markdown it is close to the prose plus a handful of structural characters — commonly a cut of well over half, sometimes far more on a heavy commercial page.
What you keep matters as much as what you drop. Headings survive, so the model can still see the document hierarchy. Lists stay lists, code blocks stay fenced, tables stay tables and links keep their targets. Those are exactly the cues a model uses to work out what part of a document answers a question.
The JSON output goes one step further and hands back title, byline, publication date, canonical URL, excerpt and body as separate fields. That maps directly onto a document record, so ingesting fifty sources into a RAG index does not mean writing fifty parsers.