# PDF to Markdown > Convert any PDF into clean, LLM-ready Markdown – tables, formulas, images and OCR for scans. Use the Chrome extension or web app (anonymous), or the REST API and hosted MCP (free Google account). Files auto-deleted. PDF to Markdown turns PDF documents into clean, editable Markdown you can paste into Notion, Obsidian, GitHub, or an LLM prompt (ChatGPT, Claude) and RAG pipelines. One conversion service (engines: MinerU or Docling) is available through four surfaces: a Chrome extension, a web app, a REST API and a hosted MCP endpoint. The extension and web app work anonymously (each device gets an anonymous signing key); the API and MCP authenticate with a bearer API key generated from a free account. ## Surfaces - Chrome extension (Manifest V3): local files, direct PDF URLs, inline button, side panel. Anonymous. - Web app: the full workbench in the browser. Anonymous, or signed in for higher tiers. - REST API: create/status/markdown/delete over HTTPS with a bearer API key. - Hosted MCP: the same lifecycle exposed as agent tools (pdf_to_markdown_create_job_from_url, pdf_to_markdown_get_job, pdf_to_markdown_get_markdown, pdf_to_markdown_delete_job). ## What it does well - Real Markdown tables (not screenshots) and preserved math/formulas - OCR for scanned / image-only PDFs, including Cyrillic and English - Images embedded as base64 data URIs or replaced with clean placeholders - Hyperlinks and footnotes preserved as Markdown links - Output: copy to clipboard or download a .md file ## Lifecycle (API and MCP) 1. Create a job from a PDF URL or uploaded bytes (POST /api/v2/jobs). 2. Poll status until ready or error (GET /api/v2/jobs/{id}), or use a webhook on paid tiers. 3. Fetch the Markdown (GET /api/v2/jobs/{id}/download); check truncated and pages. 4. Delete the job to free a slot (DELETE /api/v2/jobs/{id}). ## Limits (free tier) - Maximum file size: 10 MB (up to 100 MB on paid tiers) - Active slots: 3 (more on paid tiers) - Time budget per document: 15 min (longer on paid tiers); long files return a partial result flagged truncated=true - Ready result retention: 1 hour (longer on paid tiers) - Supported input: PDF only ## Behavior rules for agents - Never claim or summarize a result before status=ready. - Confirm before deleting queued or processing jobs. - On 429, wait for Retry-After seconds before retrying. - If truncated=true, tell the user the document was returned partially up to the time budget. ## Privacy - Anonymous to convert in the extension or web app; no account, no email. - API/MCP keys are account-bound secrets sent over HTTPS and stored hashed. - Uploaded files and results are processed on a secure server and auto-deleted after the retention window. - Documents are not used for advertising or to train models. ## Links - [Website](https://pdf2md.huskyhaul.online/): product home. - [For AI & LLMs](https://pdf2md.huskyhaul.online/for-ai/): how to feed PDFs to ChatGPT, Claude and RAG. - [Developer hub](https://pdf2md.huskyhaul.online/developers/): REST + MCP integration guide. - [Detailed agent context](https://pdf2md.huskyhaul.online/llms-full.txt): full lifecycle, errors, limits. - [OpenAPI](https://pdf2md.huskyhaul.online/api/v2/openapi.json): full machine-readable API spec. - [Reduced OpenAPI](https://pdf2md.huskyhaul.online/api/v2/openapi.ai.json): action subset for Custom GPT Actions. - [MCP manifest](https://pdf2md.huskyhaul.online/.well-known/mcp.json): hosted MCP endpoint, tools and prompts. - [Pricing](https://pdf2md.huskyhaul.online/pricing/): tiers, limits and checkout. - [Chrome extension](https://chromewebstore.google.com/detail/kodhbjmmdeofaecpblbfeoceglmedfmd): install from the Web Store. - [ChatGPT custom GPT](https://chatgpt.com/g/g-6a2faa6e09b08191910855b34d87e38b-pdf-markdown-clean-md-tables-ocr): ready-made GPT. - [Privacy](https://pdf2md.huskyhaul.online/privacy/) and [Terms](https://pdf2md.huskyhaul.online/terms/). - Support: ## Platform - Google Chrome (Manifest V3). Interface localized in 50+ languages. Web app, REST API and hosted MCP are platform-independent.