Home/Tools Guides/URL to Markdown

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

Public pages only. A page that builds itself with JavaScript, or one behind a login or paywall, will come back thin or empty — use Paste HTML for those.
Conversion options
Turning off Readable part only converts the whole page body, menus included.

Result

Paste an address above and press Convert.

Markdown, plain text and JSON are all produced at once.

How to use it

Three steps, no account, nothing kept afterwards.

1

Paste the address

Any public page. Articles, documentation, changelogs and blog posts all work.

2

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.

3

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"
Which form to use. Prefer /wtm/raw/. Writing /raw after the address is convenient, but a page whose own address ends in /raw — a pastebin or a code host — is then ambiguous. If you need to convert one of those, percent-encode it as %2Fraw and the marker is ignored, or use the folder route.
Encoding is optional. Paste the address as it is and it works, query string and all: everything after url= is treated as part of the target unless it is one of the parameters in the table below. So &url=https://example.com/?a=1&b=2 arrives intact, while &type=txt is still read as ours.

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=.
ParameterValuesWhat it does
urlweb addressThe page to convert. Required. Percent-encode it.
typemd, txt, jsonOutput format. Defaults to md. markdown and text also work.
raw1Return 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.
main1, 0Readable part only. Default 1. Set 0 to convert the whole body.
links1, 0Keep links. Default 1. Off leaves the link text in place.
images1, 0Keep images. Default 1. Off keeps the alt text only.
tables1, 0Keep tables as Markdown pipe tables. Default 1.
fm1Prepend a YAML front-matter block to Markdown output.
wrap40 – 200Hard 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.

Questions

How do I convert a URL to Markdown?
Paste the address above and press Convert. The page is fetched, the readable article is isolated, and the result comes back as Markdown with headings, lists, links, code blocks, block quotes and tables intact.
Why use Markdown instead of raw HTML for an LLM?
Raw HTML spends most of its length on markup a model does not need, and one page can burn thousands of tokens on class names and inline scripts. Markdown keeps the structure a model reads well and typically cuts the token count by well over half, leaving more of the context window for actual reasoning.
What does the JSON output give me?
Title, byline, publication date, canonical URL, excerpt and the body content as separate fields. That maps straight onto a document record in a RAG pipeline, so you are not writing a parser for every site you ingest.
Can I use it on a page behind a login?
No. Only public pages can be fetched. A page that needs a session, a paywall bypass or a captcha comes back empty or as the login screen, and that is correct behaviour rather than a bug.
My page came back nearly empty. Why?
Some sites build their entire body in JavaScript after load, so the HTML that arrives contains almost no text. Others block automated fetches outright. In both cases the readable-content extractor has nothing to work with.
Is this the same as Webpage to Markdown?
Yes, the same tool with the URL route brought to the front. Webpage to Markdown is the general page if you want every output option explained.

Related tools