Rendlet PDF

Remote MCP server that renders HTML or ready templates (invoice, itinerary) to PDF, with full Chinese/CJK font support. Free keyless tools: list_capabilities, get_pricing, preview_pdf. Paid rendering via Stripe credit packs or USDC on Base.

Hosted MCP Server

npx add-mcp 'https://rendlet.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Send HTML, or JSON plus a clean template, and get a PDF back in one HTTP call. Built for developers and AI agents.

Get a free key

or read the quick start · see a sample PDF

Short answer: Rendlet turns HTML, or JSON plus a built-in invoice or itinerary template, into a PDF with one POST /v1/pdf call. The free plan gives 100 documents a month (up to 10 pages each). Paid plans are $7 (1,000 docs), $19 (5,000) and $59 (25,000) per month. Rendering uses headless Chromium, and Simplified Chinese works out of the box. Docs: Markdown · OpenAPI 3.1 · Comparison with PDFShift, Api2Pdf and DocRaptor. Last checked 2026-10-18 · Changelog

Sample output

A real PDF rendered by this API: POST /v1/pdf in HTML mode with the free sandbox key (which is why it has the faint SANDBOX watermark). Page 1, top half:

Top half of page 1 of a sample invoice PDF rendered by Rendlet: INVOICE INV-1001 from Acme Studio Ltd to Globex Corp, total USD 2,035.00

Download the sample PDF (29 KB) · the exact request body

Quick start

Every request is a POST to /v1/pdf with your key in Authorization: Bearer <key>. Sign up with your email to get a free key instantly (100 documents/month).

To try the examples below without signing up, use the public sandbox key. It allows 5 renders per IP per day (with a shared global cap), 1 page, up to 50 KB of HTML, and adds a "SANDBOX" watermark.

HTML → PDF

curl -X POST https://rendlet.com/v1/pdf \
  -H "Authorization: Bearer sandbox" -H "Content-Type: application/json" \
  -d '{"html":"<h1>Hello</h1><p>Rendered by Rendlet.</p>","options":{"format":"A4","margin":"15mm"}}' \
  -o hello.pdf

JSON + template → PDF

curl -X POST https://rendlet.com/v1/pdf \
  -H "Authorization: Bearer sandbox" -H "Content-Type: application/json" \
  -d '{"template":"invoice","data":{"number":"INV-1001","currency":"USD",
       "seller":{"name":"Acme Studio"},"buyer":{"name":"Globex"},
       "items":[{"description":"Design sprint","qty":1,"unit_price":1800}],"tax_rate":0.1}}' \
  -o invoice.pdf

For agents and serverless code

Add "response":"base64" to get JSON instead of a binary stream:

{"template":"itinerary","data":{...},"response":"base64"}
→ {"filename":"document.pdf","pages":1,"bytes":1710,"content_type":"application/pdf","base64":"JVBERi0x..."}

The machine-readable spec is at /openapi.json (OpenAPI 3.1). There is a short summary for LLMs at /llms.txt.

Built-in JSON templates

Templates render without a browser, so they're fast and the layout doesn't change between calls. GET /v1/templates returns a full example payload for each one.

invoice

Seller and buyer blocks, line items, tax rate, totals, notes, and an accent colour.

Fields: number, date, due, currency, seller{name,address,email}, buyer{name,address}, items[{description,qty,unit_price}], tax_rate, notes, accent

itinerary

A day-by-day travel plan with traveller details, timed activities and notes.

Fields: title, traveler, dates, days[{date,city,items[{time,activity,notes}]}], notes, accent

Your own (HTML)

Send any HTML/CSS document. It's rendered in headless Chromium with print backgrounds, page size and margins you choose.

API reference

EndpointPurpose
POST /v1/pdfRender a PDF. The body is {"html": "..."} or {"template": "invoice"|"itinerary", "data": {...}}. Optional: options.format (A4, Letter, Legal, A3, A5), options.landscape, options.margin, options.printBackground, filename, response (binary|base64).
GET /v1/templatesLists the templates with example requests. No key needed.
GET /v1/usageYour plan and month-to-date document count.
POST /v1/signupGet a free key: {"email","plan","use_case","volume"}. Returns api_key once.
GET /openapi.jsonOpenAPI 3.1 spec.

Responses and limits

Successful renders return headers X-Pages, X-Plan, X-Quota-Limit and X-Quota-Remaining. Errors are JSON {"error": "...", "message"?: "..."}: 400 bad request, 401 missing key, 403 invalid key, 413 too large or too many pages, 429 quota exceeded, 500 render failed.

For HTML input, JavaScript is disabled and only data: URIs and public https:// assets are loaded.

Simplified Chinese is supported out of the box: both modes include Noto Sans SC, covering Latin and the 6,763 common GB2312 characters. For other scripts, embed a web font in your HTML.

LimitSandboxFreeStarterProScale
Documents5 / IP / day100 / month1,000 / month5,000 / month25,000 / month
Requests per minute3103060120
Pages per document11050200500
HTML size50 KB1 MB2 MB2 MB2 MB
WatermarkYesNoNoNoNo

Keys are issued only through email signup: one free key per email, and at most 3 signups per network per day. Keys are stored hashed, so we can't show a key again, only rotate it.

Pricing

Every plan includes both HTML and template rendering. A document counts as one successful render.

Free

$0

100 documents/month
Up to 10 pages each
No watermark

Get free key

Starter

$7 /mo

1,000 documents/month
Up to 50 pages each
Email support

Subscribe

Pro

$19 /mo

5,000 documents/month
Up to 200 pages each
Priority support

Subscribe

Scale

$59 /mo

25,000 documents/month
Up to 500 pages each
Custom template on request

Subscribe

Paid plans are live: click Subscribe and paste your free key to upgrade it.

Prepaid credit packs

1,000 credits

$9

One-time. Never expire.
Used only after your monthly cap.

Buy credits

5,000 credits

$35

One-time. Never expire.
Used only after your monthly cap.

Buy credits

One credit = one document past your plan's monthly cap. Pay by card (Stripe) or with USDC on Base. Details.

Monthly caps (no overage billing)

  • Every plan has a hard monthly cap: 100 (Free), 1,000 (Starter), 5,000 (Pro) or 25,000 (Scale) documents. You are never billed for extra documents.
  • At the cap, prepaid credits (if any) are used one per document. With no credits left, requests return 429 quota_exceeded with an upgrade_url, a credits_url and the next plan, until the 1st of next month (UTC) or until you upgrade. Upgrading takes effect as soon as payment completes.
  • Failed renders (4xx/5xx) never count toward the cap. X-Quota-Remaining shows what's left.

Refunds and cancellation

  • Cancel any time. Your plan stays active until the end of the paid period, with no further charges.
  • 7-day money-back guarantee: if you're not happy within 7 days of your first payment and have used fewer than 20% of the included documents, email us for a full refund.
  • Credit packs: an entirely unused pack is refundable within 14 days of purchase; used credits are not refundable; USDC payments are refunded manually to the sending address on Base. Full terms.
  • Service credits: if monthly availability drops below 99.5%, we credit 10% of that month's fee on request. Credits can't be exchanged for cash.

Changelog

Docs last checked 2026-10-18.

  • 2026-10-18: Overage billing removed. Every plan now has a hard monthly cap: at the cap the API returns 429 with an upgrade URL, and you are never charged for extra documents.
  • 2026-10-18: Moved to rendlet.com. Paid plans are live through Stripe Checkout. Added the Markdown docs, the comparison page and llms.txt updates.
  • 2026-10-18: Renamed from the working name PageForge to Rendlet.
  • 2026-10-17: Usage metering and rate limits, email-issued hashed keys, the sandbox key, Simplified Chinese fonts (Noto Sans SC), and refund terms.
  • 2026-10-17: First release: POST /v1/pdf (HTML and JSON templates), invoice and itinerary templates, OpenAPI spec.