# MarkItDown Web Studio — Full System & API Architecture (llms-full.txt) > Comprehensive technical documentation for AI Agents, LLM tool runners, and developers. ## Architecture - Backend: FastAPI 0.115+ running on Uvicorn. - Engine: Microsoft MarkItDown 0.1.8+ with native extensions. - OCR Pipeline: PyPDFium2 for PDF page rasterization + native Apple Vision VNRecognizeTextRequest on macOS. - Web Scraper: Requests + BeautifulSoup4 noise removal (scripts, styles, ads, cookies) + Markdownify. - Privacy Guarantee: Zero persistent storage. In-memory temporary files are unlinked in finally blocks. ## REST API Specification ### 1. Document File Upload - Endpoint: `POST https://markitdown.site/api/convert/file` - Content-Type: `multipart/form-data` - Body Parameter: `file` (Binary file content) - Supported File Extensions: `.pdf`, `.docx`, `.doc`, `.xlsx`, `.xls`, `.csv`, `.pptx`, `.png`, `.jpg`, `.jpeg`, `.webp`, `.tiff` - Response: ```json { "status": "success", "filename": "document.pdf", "markdown": "# Extracted Heading\n\nExtracted body text...", "elapsed_seconds": 0.42 } ``` ### 2. URL Web Clipper - Endpoint: `POST https://markitdown.site/api/convert/url` - Content-Type: `application/json` - Request Body: `{"url": "https://example.com/article"}` - Response: `{"status": "success", "url": "https://example.com/article", "markdown": "# Article Title..."}` ### 3. Raw HTML to Markdown - Endpoint: `POST https://markitdown.site/api/convert/html` - Content-Type: `application/json` - Request Body: `{"html": "

Title

Body

"}` - Response: `{"status": "success", "markdown": "# Title\n\nBody"}` ### 4. Table Formatter - Endpoint: `POST https://markitdown.site/api/process/table` - Content-Type: `application/json` - Request Body: `{"markdown": "|col1|col2|\n|a|b|"}` - Response: `{"status": "success", "markdown": "| col1 | col2 |\n|------|------|\n| a | b |"}` ### 5. AI Markdown Cleaner - Endpoint: `POST https://markitdown.site/api/process/clean` - Content-Type: `application/json` - Request Body: `{"markdown": "Thinking...Sure! Here is the code..."}` - Response: `{"status": "success", "markdown": "Here is the code..."}` ### 6. TOC Generator - Endpoint: `POST https://markitdown.site/api/process/toc` - Content-Type: `application/json` - Request Body: `{"markdown": "# Section 1\n## Subsection A"}` - Response: `{"status": "success", "markdown": "- [Section 1](#section-1)\n - [Subsection A](#subsection-a)\n\n# Section 1..."}`