What people mean by "MarkItDown online"
MarkItDown is an open-source Python utility from Microsoft that converts files to Markdown "for use with LLMs and related text analysis pipelines." It is excellent, and it is also a library: you install it with pip, run it from a terminal or from Python code, and it needs Python 3.10 through 3.14.
There is no official MarkItDown website where you can drop a file. Searches for "markitdown online" usually come from people who want that result without the setup. That is what this page is for.
To be clear: Craft Markdown is not MarkItDown and is not affiliated with Microsoft. It is an independent browser-based converter that solves the same everyday problem, turning a document into clean Markdown, with a different set of trade-offs. The comparison below is meant to help you pick the right one.
MarkItDown vs Craft Markdown
| MarkItDown (Microsoft) | Craft Markdown (this site) | |
|---|---|---|
| What it is | Python library and CLI, MIT licensed | Free web tool |
| Where it runs | Locally in Python 3.10 to 3.14; also as an MCP server (markitdown-mcp) or in Docker | In your browser, as JavaScript |
| Install | pip install 'markitdown[all]' plus a virtual environment | None |
| Where your file goes | Stays on your machine, unless you enable the Azure or LLM options | Stays in your browser tab, never uploaded |
| Yes (plain text) | Yes (headings from font size, lists, simple tables) | |
| Word (DOCX) | Yes | Yes |
| HTML | Yes | Yes |
| CSV, JSON, XML | Yes | Yes |
| Plain text, RTF, Markdown | Text yes | Yes |
| Excel (XLSX, XLS) | Yes | Yes (also ODS), one table per sheet |
| PowerPoint (PPTX) | Yes | No |
| Images | EXIF metadata and OCR; LLM image descriptions with an OpenAI-compatible client | No |
| Audio | EXIF metadata and speech transcription | No |
| ZIP, EPUB, YouTube URLs, Outlook .msg | Yes | No |
| Scanned PDFs and complex layouts | Via Azure Document Intelligence or Azure Content Understanding (billable cloud calls) | Text-based PDFs only |
| Batch and automation | Scripts, pipelines, plugins, MCP tool for agents | One or several files dropped by hand |
| Time to first conversion | Minutes (set up Python, install, run) | Seconds (open page, drop file) |
| Cost | Free (open source); Azure features are paid | Free |
Sources: the MarkItDown README and the markitdown-mcp README, checked September 2026. Craft Markdown's format list is taken from its own converter code.
When to use which
Use Craft Markdown (this page) when:
- You have a PDF, Word, HTML, CSV, JSON, XML, TXT or RTF file and want the Markdown now.
- You do not have Python installed, or you are on a locked-down work machine.
- The document is sensitive and you want a guarantee that it never leaves your device. There is no server-side code here to upload to.
- You want a .md file you can attach or paste straight into ChatGPT, Claude, Notion or Obsidian.
Use MarkItDown when:
- You need PowerPoint, images, audio, EPUB, ZIP archives or YouTube transcripts.
- You want OCR for scanned PDFs or LLM-written image descriptions.
- You are converting hundreds of files, building a RAG ingestion pipeline, or giving an AI agent a convert_to_markdown tool over MCP.
- You are already writing Python and want conversion as a function call.
Many people use both: the browser tool for one-off files, MarkItDown in the pipeline.
How to install MarkItDown if you need it
If your use case lands on the MarkItDown side of the table, here is the short version of the official setup.
1. Create a virtual environment (Python 3.10 to 3.14):
python -m venv .venv
source .venv/bin/activate
2. Install it with every optional format:
pip install 'markitdown[all]'
Or pick only the formats you need, for example pip install 'markitdown[pdf, docx, pptx]'. The available extras are pptx, docx, xlsx, xls, pdf, outlook, az-doc-intel, az-content-understanding, audio-transcription and youtube-transcription.
3. Convert a file from the command line:
markitdown report.pdf -o report.md
You can also pipe input (cat report.pdf | markitdown) or call it from Python:
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
result = md.convert("report.pdf")
print(result.markdown)
4. Optional: use it from an AI agent. pip install markitdown-mcp and run markitdown-mcp to get a local MCP server that exposes one tool, convert_to_markdown(uri), for Claude Desktop and similar clients.
For scanned documents, the CLI accepts -d -e "
What this page converts
Craft Markdown accepts these extensions today: .pdf, .docx, .xlsx, .xls, .ods, .html, .htm, .txt, .csv, .json, .xml, .rtf and .md. Files up to 50 MB. From Word and HTML, headings, lists, links, images and emphasis are kept as Markdown syntax and tables become pipe tables; Word images are extracted into an images/ folder in a ZIP, or embedded as data URIs if you choose. Spreadsheets and CSV become pipe tables. PDFs get their paragraphs rejoined, headings guessed from font size, lists, bold and simple tables picked up, and repeating headers and footers dropped; complex tables come through as text. JSON and XML are wrapped in fenced code blocks. For a format-by-format look, see the PDF to Markdown, Word to Markdown and HTML to Markdown pages.