Rendlet PDF API

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

Quick start Get a free key

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

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.

Monthly caps (no overage billing)

Refunds and cancellation

Changelog

Docs last checked 2026-10-18.

Get a free API key

Your free key appears on screen right away. Copy it, because it's shown only once. We don't send email.