Irmu
Free tool

HTML to Markdown converter

Paste HTML on the left, get clean Markdown on the right. Free, no signup, and your HTML never leaves your browser.

HTML input
Markdown output
0 characters · 0 words · 0 linesConverted locally in your browser — nothing is uploaded.
Code examples

Do the same thing in your own pipeline

The tool above uses Turndown. Here is the equivalent conversion with the standard library in each language.

# pip install markdownify

from markdownify import markdownify as md

html = """
<h1>Shipping a crawler</h1>
<p>Retry transient failures with <strong>jitter</strong>.</p>
<ul><li>Cap concurrency</li><li>Log status codes</li></ul>
"""

markdown = md(html, heading_style="ATX", bullets="-", strip=["script", "style"])
print(markdown)
How it works

What the converter does to your HTML

  • Scripts, styles, noscript, iframes and comments are removed first, so no tracking code survives.
  • Headings, lists, emphasis, links, images, blockquotes and code blocks map to their Markdown equivalents.
  • GitHub Flavored rules keep tables, strikethrough and task lists intact.
  • Unknown or purely presentational tags are unwrapped — their text content is kept, the markup is dropped.
  • Blank runs are collapsed so the output is diff-friendly.
With Irmu

When you also need to fetch the page

Irmu returns the page HTML — rendering, proxies and retries included. Convert it to Markdown with the same libraries above.

crawl_to_markdown.py
# 1. Fetch the page with Irmu (rendering, proxies and retries handled for you)
# 2. Convert the returned HTML to Markdown locally

import os, requests
from markdownify import markdownify as md

resp = requests.get(
    "https://app.irmu.com/api/crawl",
    headers={"Authorization": f"Bearer {os.environ['IRMU_API_KEY']}"},
    params={"url": "https://example.com/article", "render": "true"},
    timeout=60,
)
resp.raise_for_status()

markdown = md(resp.text, heading_style="ATX")
print(markdown[:500])
FAQ

Questions about this tool

Turn any URL into clean data

Fetch, render and extract with one API. 1,000 free credits every month, no card required.