PDF to Markdown
PDF → Markdown · not markdown to PDF
PDF to markdown for digital PDFs with an embedded text layer. Convert one file in the browser (up to 5 pages), then use the same parse via API key or MCP — 200 free credits/month, then paid. No OCR. Not markdown to PDF.
Upload a digital PDF and get markdown back. This is pdf to markdown (PDF → Markdown), not markdown to PDF. One anonymous conversion, first 5 pages, max 4.5 MB. After that, sign up for 200 free API credits per month, then a paid plan — not a free trial. Same parse as POST /api/v2/parse and the pdf_parse MCP tool.
Digital PDFs with embedded text · no OCR · max 4.5 MB upload
Upload
Drop PDF here
- Digital PDFs with embedded text only — no OCR for scanned documents.
- Max file size: 4.5 MB. Free tier: first 5 pages, 1 conversion without sign-in.
Upload a PDF to see markdown output
Parse API
Same pdf to markdown endpoint your pipeline needs — POST /api/v2/parse for full documents
Parse API docs →Install MCP
pdf_parse in Cursor, Claude Desktop, and agent workflows — remote URL or npx
PDF MCP server →FAQ
- What is pdf to markdown on Rosetta?
- PDF to markdown extracts the embedded text layer from a digital PDF and returns markdown (plus per-page JSON on the API). It is PDF → Markdown, not markdown to PDF, and it is not OCR.
- Does this tool support scanned PDFs or OCR?
- No. Rosetta extracts text from digital PDFs with an embedded text layer only. Scanned image PDFs without a text layer are not supported.
- Is there a free trial?
- No free trial. You get one browser conversion without sign-in (first 5 pages, max 4.5 MB), then 200 free API credits per month when you create an API key. After that, paid plans apply.
- How do I convert PDF to markdown in code?
- POST to /api/v2/parse with your PDF file or URL and an X-API-Key header. See the API docs for Node, Python, and cURL examples. The MCP tool is pdf_parse.
- Is there an MCP server for Cursor?
- Yes. Use the remote PDF MCP server or npx -y rosetta-mcp. pdf_parse converts digital PDFs to markdown; local stdio also accepts a file path.