Markdown Conversion API

One API.
Any File You Need.

Send plain markdown. Receive polished PDFs, Word docs, slides, HTML — whatever format the world expects. A single API call, output that looks designed.

See How It Works
No credit card required
5 formats, 1 API
Stateless by default

Trusted by engineering teams worldwide

0
API Calls / Day
0
Output Formats
0
Uptime SLA
0
SDK Languages

Building Conversion In-House Is a Trap

Markdown has won as an authoring format. But the world still expects PDFs, Word documents, and slide decks. Rolling your own converter always starts simple — and ends in three wasted sprints.

  • Headless Chrome quirks with fonts, page breaks, and images break PDF output
  • OOXML is complex — Word docs look fine until opened in Google Docs
  • Emoji in DOCX falls back to wrong fonts. Nested tables break layouts.
  • Each format is a separate dependency tree to maintain forever
🛠

Week 1 — Looks easy

First version handles 90% of cases. Ship it.

⚠️

Week 3 — Edge cases appear

Nested tables break PDFs. Emojis cause font fallbacks.

🔥

Sprint 2 — Page numbers land

What started as an afternoon now owns the roadmap.

Use Markdown instead

One API. All formats. Every edge case already handled.

A Conversion API Built for
the Modern Stack

One HTTP endpoint. Multiple output formats. A renderer tuned specifically for each — not a single engine producing awkward approximations.

📄

Input: Pure Markdown

Send a string, a folder of linked files, or a stream for large documents. The API is stateless — nothing retained after the request unless you opt in.

⚙️

Process: Format-native Rendering

Each format runs through its own dedicated renderer — not a generic engine. PDF, DOCX, HTML, PPTX, and EPUB are each treated as first-class outputs.

🎯

Output: Polished Files

Receive raw bytes, signed URLs, or both. Outputs look like something a designer produced — not a script bolted together at the last minute.

Everything Real Documents Actually Need

Beyond basic conversion — the full feature set that production documents require, built in from the start.

📑

Tables of Contents

Automatically generated from heading structure. Links work in PDF, map to bookmarks natively in each format.

PDF · DOCX · EPUB
🔢

Page Numbers & Headers

Custom headers, footers, and page numbering with full positioning control. Restart numbering per section.

PDF · DOCX
🧮

Math via LaTeX

Inline and block equations rendered precisely through LaTeX — preserved with full fidelity in PDF and HTML output.

PDF · HTML
💻

Syntax Highlighting

Code blocks highlighted across dozens of languages. Themes match your document style, not a generic highlighter default.

All Formats
📊

Mermaid Diagrams

Inline Mermaid definitions compiled to clean, scalable SVG — embedded correctly in every output format.

PDF · HTML · DOCX
🎨

Theming System

One brand definition — coherent PDF, web page, and Word doc from the same source. Clone, customize, done.

All Formats
🖼

Image Embedding

Reference images by URL or upload them directly. Captions survive every format transition — no orphaned alt text.

All Formats
📝

Footnotes & Callouts

Academic-style footnotes and styled callout blocks — rendered correctly in print, web, and document formats alike.

PDF · DOCX · HTML

Streaming & Parallelism

Stream output for large documents. Parallel rendering for multi-file inputs. Warm pools for consistent low latency.

Enterprise

From Markdown to File in
One Request

The whole interaction is a single API call. Choose your format, set your options, receive a finished file.

1

Send Markdown Content

POST your markdown string with target format "pdf" and optional theme name.

2

Renderer Processes Layout

The PDF renderer handles real page breaks, orphans/widows, embedded fonts, and typographic details.

3

Receive Polished PDF

Get back raw bytes or a signed URL. Output is print-ready, with TOC, page numbers, and headers fully applied.

● POST /v1/convert → application/pdf
{
  "format": "pdf",
  "content": "# Annual Report\n...",
  "options": {
    "toc": true,
    "pageNumbers": true,
    "pageSize": "A4",
    "margins": "normal"
  },
  "theme": "executive"
}

// Response
{
  "url": "https://cdn.markdown.ms/...",
  "pages": 12,
  "bytes": 284921
}
1

Send Markdown Content

POST with format "docx". Include any template reference or brand assets.

2

OOXML Generation

Headings map to Word styles. Tables become real OOXML tables. Lists preserve indentation and numbering.

3

Opens Cleanly Everywhere

Output opens in Word, Google Docs, and alternatives with formatting fully intact — no HTML-in-disguise.

● POST /v1/convert → application/docx
{
  "format": "docx",
  "content": "# Proposal\n\n## Budget...",
  "options": {
    "trackChanges": false,
    "styles": "corporate"
  }
}

// Response
{
  "url": "https://cdn.markdown.ms/...",
  "wordCount": 1840,
  "compatible": ["Word","Docs"]
}
1

Write Slides as Markdown

Each top-level heading becomes a slide title. Content below it becomes the slide body.

2

Theme & Layout Applied

Your theme controls positioning, typography, and transitions. Speaker notes are preserved separately.

3

Native PPTX Output

Opens in PowerPoint, Keynote, and Google Slides. No PDF workaround — a real, editable deck.

● POST /v1/convert → application/pptx
{
  "format": "pptx",
  "content": "# Title Slide\n\nContent...",
  "options": {
    "speakerNotes": true,
    "aspect": "16:9"
  },
  "theme": "modern-deck"
}

// Response
{
  "url": "https://cdn.markdown.ms/...",
  "slides": 18
}
1

Choose Standalone or Fragment

Full document shell for publishing, or clean semantic markup to embed inside an existing site.

2

Theme Styles Applied

CSS variables and theme tokens applied inline — fragment output won't conflict with host site styles.

3

Publish or Embed

Drop the fragment into your CMS, email template, or documentation engine. Client-side library also available.

● POST /v1/convert → text/html
{
  "format": "html",
  "content": "# Blog Post\n...",
  "options": {
    "mode": "fragment",
    "highlight": true
  }
}

// Response: clean semantic HTML
{
  "html": "<article>...</article>",
  "readTime": "4 min"
}

Four Distinctions That Matter in Production

🌐

Breadth Without Compromise

Most converters treat one format as first-class and the rest as afterthoughts. Every Markdown renderer is genuinely tuned for its output.

🎯

Fidelity Across Every Format

Tables stay aligned. Code keeps highlighting. Headings become real Word styles, real PDF bookmarks, real slide outlines. Nothing lost in translation.

🎨

Cross-Format Theming

One brand definition produces coherent documents wherever they end up. PDF, web, and Word look like they came from the same design system.

🔒

Operational Seriousness

Per-key rate limits, request logs, latency metrics, and signed URLs from day one — not added apologetically later. Sits cleanly inside real production pipelines.

Performance at a Glance

PDF Render Time (p95)
< 1.2s
DOCX Conversion Speed
< 0.4s
Uptime (Last 90 Days)
99.9%
Edge Case Coverage
Full
Self-hosted option
Same API. Same SDKs. Your infrastructure. Full data residency control.

Built for Teams That Ship Content

From AI-native applications to documentation platforms, Markdown removes the conversion layer so teams can focus on what they're actually saying.

🤖

AI & Agent Workflows

LLMs produce markdown almost by default. Add Markdown to your pipeline and the model focuses on content — the API handles format. Meeting summarizers ship Word docs. Report agents deliver PDFs. Prompt-to-slides works out of the box.

LLM OutputAgentic AIRAG Pipelines
📚

Documentation Platforms

Publish the same source as interactive web docs, downloadable PDFs, and offline EPUBs — without maintaining three separate rendering stacks. One source, every format your users expect.

Static SitesDev PortalsEPUB
📊

Reporting & Analytics Tools

Templated markdown in, client-ready PDFs out. No bespoke PDF generation code. Apply brand themes, add page numbers, embed charts — your reporting product delivers something that looks designed.

Client ReportsDashboardsScheduled
📧

Newsletter & Content Tools

Write once, deliver everywhere. Render the same content for web reading, email delivery, and PDF download — each format tuned for its medium, all from a single markdown source.

Email HTMLWebPDF Archive

Works With Your Existing Stack

SDKs in every major language. Drop-in connectors for the platforms you already use. CLI for shell pipelines and CI.

🟨JavaScript
🔷TypeScript
🐍Python
🐹Go
💎Ruby
🐘PHP

Platform Connectors

Claude Code
Cursor / Cline
Static Site Generators
CMS Platforms
AI Agent Frameworks
Zapier / Make
Webhook Pipelines
GitHub Actions
Self-Hosted Option

Built for Production Pipelines

The operational features that decide whether a service belongs inside a real enterprise pipeline — present from day one.

🔑

Per-Key Rate Limits

Granular API key controls. Set rate limits, usage quotas, and access scopes per key. Rotate without downtime.

📋

Request-Level Logs

Full audit trail per request — format, size, latency, status. Export to your SIEM or log aggregation platform.

🔗

Signed Output URLs

Time-limited, scoped signed URLs for outputs. Files never public by default. Configurable retention window or zero-write mode.

🏢

Self-Hosted Deployment

Same API surface, same SDKs, same output quality — running entirely on your infrastructure with full data residency.

📊

Latency & Error Metrics

Prometheus-compatible metrics endpoint. p50, p95, p99 latency per format. Error rates and queue depth exposed.

🛡

Stateless by Default

No content retained beyond request lifetime unless explicitly opted into persistence. Zero-knowledge rendering available.

SOC 2 Type II
GDPR Ready
HIPAA Compatible
ISO 27001
TLS 1.3
Zero-Write Mode

Trusted by Teams Who Ship Daily

★★★★★

We replaced three different PDF libraries and a weekend of maintenance with one API call. The output quality is noticeably better, and we've had zero format regressions since switching.

JS
James S.
Lead Engineer, DocFlow
★★★★★

Our AI pipeline generates markdown automatically. Markdown.ms takes that output and ships proper PDFs and decks to clients. It's the missing last mile we didn't want to build ourselves.

PK
Priya K.
CTO, ReportAI
★★★★★

The theming system is what sold us. One brand definition — our PDFs, web exports, and Word docs finally look like they came from the same company. We should have done this two years ago.

ML
Marcus L.
Head of Product, ContentOps

Common Questions

What markdown features are supported?

Full CommonMark plus tables, footnotes, task lists, definition lists, math via LaTeX, Mermaid diagrams, callout blocks, code blocks with syntax highlighting in 60+ languages, and image embedding by URL or upload. Custom extensions can be registered per-account for specialized workflows.

How does the API handle large documents?

Small documents return synchronously. Large inputs automatically switch to async mode — the response includes a job ID and you poll for completion or provide a webhook URL for callback. For very large multi-file documents, parallel rendering is available on Professional and Enterprise plans.

Is content retained after conversion?

No. The API is stateless by default — your content is not retained beyond the request lifetime. Output files are stored temporarily as signed URLs with a configurable expiry (default 1 hour). Zero-write mode is available for environments with strict data handling requirements where outputs are streamed directly without any disk writes.

Can I use custom fonts and brand colors?

Yes. The template system accepts custom fonts (including self-hosted), brand colors, logos for headers and footers, and full CSS overrides for HTML/PDF outputs. DOCX templates accept Word .dotx base templates. A library of starter themes covers the common cases and each can be cloned and modified to match your brand.

Do you offer a self-hosted option?

Yes. The self-hosted edition exposes the same API surface as the cloud service and works with all the same SDKs and themes. Rendering happens entirely within your infrastructure — you own the compute, the storage, and the data. Available on Enterprise plans with support for Docker, Kubernetes, and air-gapped deployments.

What are the rate limits on the free tier?

The free tier includes 100 conversions per day across all formats, with a maximum file size of 500KB per request. The dashboard shows exactly what each request consumed and how long it took, so you can gauge usage before upgrading. Paid plans start at generous limits and scale with your workload — no surprises.

Stop Building Converters.
Start Shipping Files.

Create an account, generate an API key, and send your first request in minutes. Default themes produce great output immediately — no configuration required.

Explore Features