MintPDF HTML & Markdown → PDF API · MCP native Guides GET A FREE KEY
01 · PURPOSE

Markdown in. Finished document out.

A PDF API for developers and AI agents. No template editor, no template IDs, no dashboard. One POST request, or one MCP tool call. Markdown comes with a stylesheet that makes agent-written documents look right by default.

built forinvoices · receipts · reports · agent output
sendMarkdown, HTML, or a public URL
get backPDF bytes, or a link that expires in an hour
02 · OUTPUT
markdown in → invoice
# Invoice #42

| Item   | Price  |
|--------|--------|
| Widget | $9.00  |
rendered · 0.9s · A4

Invoice #42

ItemPrice
Widget$9.00
Gadget$24.00
Generated with MintPDF1 / 1
03 · INPUT
# no signup needed, 10 seconds
curl -X POST https://mintpdf.dev/v1/pdf \
  -H "Content-Type: application/json" \
  -d '{"markdown":"# Invoice #42\n\n| Item | Price |\n|---|---|\n| Widget | $9.00 |\n| Gadget | $24.00 |","pageNumbers":true}' \
  --output invoice.pdf

# → 200 application/pdf · one A4 page, table already styled

# want a link instead of bytes? add:
  "output": "url"  → {"download_url": "…", "expires_at": "…"}
04 · MCP
# one line in your MCP config
"mintpdf": {
  "command": "npx",
  "args": ["-y", "mintpdf-mcp"]
}

# or point straight at the hosted endpoint with mcp-remote:
# …railway.app/mcp
toolsgenerate_pdf · pdf_from_url
transportstreamable HTTP, stateless
returnsdownload URL, 1h TTL
05 · HOW IT WORKS

One request. Chromium renders it. You get a document.

bash — a real session
# send content, not a template id
$ curl -sS -X POST https://mintpdf.dev/v1/pdf \
     -H 'Content-Type: application/json' \
     -d '{"markdown":"# Q3 report\n\nRevenue grew **12%**.",
          "pageNumbers":true, "footerText":"Acme Ltd"}' \
     -o report.pdf -D -

HTTP/2 200
content-type: application/pdf
x-ratelimit-remaining: 2

$ pdfinfo report.pdf | head -3
Pages:          3
Page size:      595 x 842 pts (A4)
File size:      166 kB

# prefer a link? add "output":"url"
$ curl -sS …/v1/pdf -d '{"markdown":"# Hi","output":"url"}'
{"download_url":"https://mintpdf.dev/f/…",
 "expires_at":"…","size_bytes":6751}  
# the file is deleted an hour later
01 · SEND

Markdown, HTML, or a URL

One POST, or one MCP tool call from an agent. No template to design first, no template id to keep in sync with your code.

02 · RENDER

Headless Chromium, with print CSS that behaves

Markdown gets a stylesheet that keeps code blocks and tables whole across page breaks and repeats table headers. Send HTML instead and your own CSS is used as-is.

03 · TAKE IT

PDF bytes, or a link that expires

Stream the file straight into your response, or take a download URL valid for one hour. Nothing is stored afterwards.

06 · FREE KEY
100 renders/month, free

One email, one key, no card. Or try 3 renders a day with no signup at all.

Your key appears here, instantly.
# or from the terminal
curl -X POST …/v1/keys \
  -d '{"email":"you@example.com"}'
07 · OPTIONS
formatA4 · Letter · Legal · A3 · A5
marginany, e.g. "18mm"
landscapetrue / false
header / footertext on every page
pageNumbers"3 / 7" in footer
engineChromium. Your CSS works
08 · PRICE
Free · 100 renders/month
$19 /month · Solo · 2,000 renders/month
Upgrades the key you already have. No seats, no sales calls, cancel anytime.
09 · RETENTION

Your documents are rendered and forgotten. Generated files auto-delete after one hour. No accounts, no document storage, no tracking of what you render. Requests to private and internal addresses are blocked at the browser layer.