ParseJet

HTML to Markdown Converter

Upload an HTML file or paste a page URL and get clean, readable Markdown. ParseJet handles messy real-world HTML — nested divs, inline styles, legacy markup — and maps every element to proper Markdown syntax. Built for content migration, documentation, and LLM pipelines.

Drop a file here or browse

Accepts HTML,HTM files

Free — 3 requests/day, no signup. for 300 credits/month free.

How it works

1

Upload HTML or paste a URL

Drop an .html file above, or paste the URL of a live page. Both paths produce the same clean Markdown output.

2

Convert to Markdown

ParseJet parses the HTML, discards scripts, styles, and tracking code, and maps headings, lists, tables, links, and code blocks to Markdown.

3

Copy or use the API

Copy the result, or integrate the API to convert HTML to Markdown inside your application or migration script.

Key features

What makes this html to markdown stand out.

Full element mapping

h1–h6, ordered and unordered lists, tables, blockquotes, code blocks, bold/italic, and links all convert to their exact Markdown equivalents.

Messy HTML handled

Real-world HTML is rarely clean. ParseJet copes with unclosed tags, deeply nested divs, inline styles, and legacy markup without breaking the output.

Script and style removal

JavaScript, CSS, tracking pixels, and HTML comments are stripped completely — none of it leaks into your Markdown.

File or URL input

Convert saved .html files (like WordPress exports) or fetch live pages by URL — the same endpoint handles both.

Entity and encoding safe

HTML entities (&,  , —) are decoded to real characters, and output is always UTF-8 — no mojibake in your Markdown.

Batch API conversion

Convert an entire export folder of HTML files to Markdown with a short script. See the Python example below.

Use cases

Common scenarios where this tool saves you time.

CMS and blog migration

Move content from WordPress, Ghost, or a legacy CMS into a Markdown-based stack like Hugo, Astro, or Jekyll — without hand-cleaning HTML.

Documentation conversion

Convert HTML-based docs and wiki exports (Confluence, MediaWiki) into Markdown for docs-as-code workflows in Git.

LLM input preprocessing

Raw HTML wastes tokens on markup noise. Convert to Markdown first and feed models compact, structured text that preserves the document hierarchy.

Scraping pipeline output

Turn the HTML your crawler collects into clean Markdown for storage, indexing, or downstream NLP — one API call per document.

Automate with the API

Use the same tool programmatically. Works with any language — just HTTP.

cURL
# Convert a local HTML file to Markdown
curl -X POST https://api.parsejet.com/v1/parse/auto/file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]"

# Convert a live page by URL
curl -X POST https://api.parsejet.com/v1/parse/webpage \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/page"}'
Python
import httpx
from pathlib import Path

# Batch-convert an HTML export folder to Markdown files
html_dir = Path("export/")
md_dir = Path("markdown/")
md_dir.mkdir(exist_ok=True)

for html_file in html_dir.glob("*.html"):
    resp = httpx.post(
        "https://api.parsejet.com/v1/parse/auto/file",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        files={"file": (html_file.name, html_file.read_bytes(), "text/html")},
    )
    md_path = md_dir / html_file.with_suffix(".md").name
    md_path.write_text(resp.json()["text"], encoding="utf-8")
    print(f"Converted {html_file.name} -> {md_path.name}")
JavaScript
// Convert an HTML file (e.g. from a file input) to Markdown
const formData = new FormData();
formData.append("file", htmlFile); // File or Blob with .html content

const res = await fetch("https://api.parsejet.com/v1/parse/auto/file", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY" },
  body: formData,
});
const { text } = await res.json();
console.log(text); // Markdown string

Want to automate this?

ParseJet API gives you the same parsing power via a single HTTP endpoint. No ffmpeg, no poppler, no tesseract — just one API call.

curl -X POST https://api.parsejet.com/v1/parse/auto/url \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com"}'
Read API Docs

Frequently asked questions

How do I convert HTML to Markdown?

Upload an .html file above or paste a page URL. ParseJet parses the markup and returns clean Markdown with headings, lists, tables, and links preserved. For automation, POST to /v1/parse/auto/file or /v1/parse/webpage.

Are tables converted properly?

Yes. HTML tables become Markdown tables with header rows and aligned columns. Nested lists, blockquotes, and code blocks are also mapped to their Markdown equivalents.

What happens to scripts, styles, and comments?

They are removed entirely. The output contains only the readable content of the document — no JavaScript, CSS, or tracking code.

Can I convert a live webpage instead of a file?

Yes. Paste the URL in the tool above, or use the URL to Markdown tool which is optimized for extracting the main content of live pages and removing navigation and ads.

How do I convert HTML to Markdown in Python?

POST the file to /v1/parse/auto/file with httpx or requests — the "text" field of the response is your Markdown. No html2text, BeautifulSoup, or markdownify to install. See the Python example above.

Is it free?

Yes. You get 3 free conversions per day with no signup. Create a free account for 300 credits per month. Paid plans start at $19/month for batch migrations.

Start extracting text for free

No signup required. Parse your first file in seconds.

View Pricing