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 API key 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 without an API key. 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.

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.
Do I need an API key?
No. All endpoints work without authentication, subject to IP-based rate limits (500 requests/day). API keys are optional and provide higher monthly limits. Pass via Authorization: Bearer mk_... header or ?api_key=mk_... query parameter.
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.