File to Markdown

Convert any file to clean, AI-ready Markdown. Paste a file URL or upload directly. Powered by Cloudflare Workers AI toMarkdown().

20+ file formats
🌐 URL or upload
🔒 No signup required
Supports: .pdf .docx .xlsx .jpg .png .csv .json and more. Max 10 MB, 30s timeout.
📄
Drop a file here or click to browse
Max 10 MB · PDF, DOCX, XLSX, images, CSV, JSON, TXT, XML & more
📎

API Reference

No authentication required. Convert files programmatically with simple HTTP requests.

GET /:file-url
Pass a remote file URL in the path. Returns plain Markdown text.
curl -s 'https://markdown.new/\ https://example.com/report.pdf'
POST /
Send a remote file URL as JSON. Returns JSON with metadata and tokens.
curl -s 'https://markdown.new/' \ -H 'Content-Type: application/json' \ -d '{"url": "https://example.com/report.pdf"}'
GET /:file-url?format=json
Same as GET but returns JSON instead of plain Markdown.
curl -s 'https://markdown.new/\ https://example.com/data.xlsx?format=json'
POST /convert
Upload a local file from disk. Use when you don’t have a public URL.
curl -s 'https://markdown.new/convert' \ -F 'file=@document.pdf'

500 requests/day per IP. POST /convert is only needed for local file uploads — for remote files, use POST / or GET /:url.

What You Get Back

Clean Markdown with metadata. URL-based and upload conversions return slightly different JSON shapes.

URL-based — POST / or GET /:url
{ "success": true, "url": "https://example.com/report.pdf", "title": "Quarterly Report", "content": "# Quarterly Report\n\n...", "method": "Workers AI (file)", "duration_ms": 1200, "tokens": 850 }
Upload — POST /convert
{ "success": true, "data": { "title": "Q4 Report", "content": "# Q4 Report\n\n...", "filename": "report.xlsx", "file_type": ".xlsx", "tokens": 1250, "processing_time_ms": 320 } }

Supported Formats

Powered by Cloudflare Workers AI toMarkdown(). New formats added regularly.

📄
Documents
.pdf .docx .odt
📊
Spreadsheets
.xlsx .xls .xlsm .xlsb .et .ods .numbers
🖼
Images
.jpg .jpeg .png .webp .svg
📝
Text & Data
.txt .md .csv .json .xml .html .htm

Images use AI models for object detection and summarization. .html/.htm uploads are converted via Workers AI; URL .html uses the web page pipeline.

Need Multiple Pages?

Use Crawl to Markdown to convert entire website sections — up to 100 pages per job with automatic link discovery, configurable depth, and a single-file download.

Try Crawl to Markdown

Frequently Asked Questions

Everything you need to know about file conversion.

What file formats can I convert?
PDF, DOCX, XLSX, images (JPEG, PNG, WebP, SVG), HTML, XML, CSV, JSON, ODS, ODT, Apple Numbers, and plain text files. Over 20 formats supported via Cloudflare Workers AI toMarkdown().
Can I convert a file by URL without uploading?
Yes! Paste a direct file URL (e.g. https://example.com/report.pdf) in the URL tab or use the API: curl https://markdown.new/https://example.com/report.pdf. The file is fetched and converted automatically.
Is authentication required?
No. All endpoints work without authentication, subject to IP-based rate limits (500 requests/day). Limits reset daily.
What is the maximum file size?
Files up to 10 MB are supported for both upload and URL-based conversion. URL-based fetches have a 30-second timeout.
How does image conversion work?
Images are processed by Workers AI models that perform object detection and generate a text description of the visual content. The result is returned as Markdown text.
Are my files stored or shared?
No. Files are processed in memory on Cloudflare’s edge network and discarded immediately after conversion. Nothing is stored, cached, or logged. The conversion happens entirely within the Worker request lifecycle.
What does the token count mean?
The tokens field is an estimated count of tokens in the converted Markdown, useful for LLM context window budgeting. It’s also returned in the x-markdown-tokens response header.