Turn HTML into clean Markdown for LLMs, RAG pipelines, and docs. Paste HTML to convert in your browser, or enter a URL and get the live page as Markdown — rendered with headless Chrome. No signup.
URL conversion renders the page with headless Chrome and returns Markdown from the WebScraping.AI /text endpoint — the same output your pipeline would get.
The URL mode above is one call to the /text endpoint: it fetches the page through rotating proxies, renders JavaScript with headless Chrome, strips boilerplate, and returns the body as Markdown. The snippet updates as you type a URL:
text_format=plain returns raw Markdown — pipe it straight into your chunker or prompt.
text_format=json wraps the same Markdown with title and
description keys, and return_links=true adds the page's links for crawling.
2,000 free API credits · No credit card required
Raw HTML is a terrible model input: a typical page spends most of its bytes on markup, scripts, and styling, so the content you care about drowns in tokens you pay for. Markdown keeps the document structure that helps a model read — headings, lists, tables, links — at a fraction of the size, and it's the format most chunkers, embedders, and prompt templates expect.
The practical difference between this page's two modes: pasting HTML converts exactly what you paste, in your browser. The URL mode runs the real scraping pipeline — JavaScript rendering for client-side pages, proxy rotation for sites that block datacenter IPs, and boilerplate removal so navigation and cookie banners don't end up in your embeddings.
The converter emits GitHub Flavored Markdown. Invisible elements — scripts, styles,
<head> metadata, SVG — are dropped entirely.
| HTML | Markdown |
|---|---|
<h1>–<h6> | # to ###### headings |
<strong>, <em>, <del> | **bold**, *italic*, ~~strikethrough~~ |
<a href>, <img> | [text](url),  |
<ul>, <ol> (nested too) | - and 1. lists with indentation |
<pre><code class="language-py"> | Fenced code blocks with the language tag |
<code> inline | Backtick code spans (fence-safe) |
<table> | GFM pipe tables |
<blockquote> | > quoted blocks |
<hr>, <br> | ---, hard line breaks |
<script>, <style>, <svg>, comments | Removed |
How do I convert HTML to Markdown online?
Paste your HTML into the converter and the Markdown appears instantly — headings, links, lists, tables, and code blocks preserved. The conversion runs entirely in your browser with JavaScript; nothing is uploaded. Copy the result with one click.
Is there a URL to Markdown API?
Yes — the WebScraping.AI /text endpoint. GET https://api.webscraping.ai/text?url=…&text_format=plain returns the page body as Markdown, with JavaScript rendering and rotating proxies handled for you. text_format=json wraps the same Markdown with the page title and description; return_links=true adds the page's links for building crawlers.
Is it safe to paste private HTML?
Yes. Pasted HTML is converted client-side and never transmitted or logged — you can verify in the DevTools Network tab that typing produces no requests. Only the optional URL mode makes a network call, to fetch the page you asked for.
Does it work on JavaScript-rendered pages?
Paste mode converts the HTML you give it, so client-side content must already be in the markup. The URL mode renders the page with headless Chrome first, so React, Vue, and other client-rendered content is included in the Markdown.
Why convert web pages to Markdown for LLMs?
Markdown carries the document structure models actually use — headings, lists, tables — at a fraction of HTML's token count, with scripts, styles, and boilerplate gone. Cleaner input means cheaper calls and better retrieval: markup noise in embeddings degrades similarity search.
Is this HTML to Markdown converter free?
Yes — free, no signup. Pasting HTML has no usage cap since it runs in your browser. The URL mode is rate-limited because it performs real scraping requests; for unlimited conversion, sign up for a free API key with 2,000 credits.
Convert any URL to Markdown at production volume — proxies, headless Chrome, and cleaning in one API call.