Webpage to Markdown
Turn any public web page into clean Markdown, plain text or structured JSON. Menus, banners, scripts and cookie notices are dropped, so what you get is the part you actually wanted to read.
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: an article, a documentation page, a changelog, a product listing.
Pick a format
Markdown for notes and docs, plain text for reading or feeding a model, JSON when a script has to read it.
Copy or download
All three formats are produced in one pass, so switching between them is instant.
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.