Use case · Quotes
The quote and proposal PDF API
A quote is a sales document before it's a financial one. It carries your branding, a cover page, line items and a validity date — and it usually reaches the buyer as an email attachment, so it has to look right on the first open.
Render the quote HTML your CRM or app already produces. Full modern CSS means the proposal that looks good in the browser looks the same as a PDF, without a design round-trip.
01How it works
On brand, first time
Your fonts, colours and cover page render exactly as designed — this is Chrome, not a limited CSS subset.
Totals your app computed
Line items and totals come from your data, so the arithmetic is never the renderer's guess.
Revise and resend
Each revision is a fresh render with its own key, so v1 and v2 stay distinct and reproducible.
02One request
curl https://rendral.com/api/v1/pdf \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{ "html": "<div class="cover">…</div><table class="items">…</table>",
"options": { "format": "A4", "printBackground": true,
"pageNumbers": true } }' \
-o quote-Q-2291.pdfFrequently asked
Will my cover page background print?
Set printBackground: true. Browsers drop background graphics when printing by default, and cover pages nearly always need them.
Can I include a signature or acceptance block?
Yes — render it as part of the HTML, and use page-break-inside: avoid so it doesn't split across pages.
How do I keep revisions apart?
Give each revision its own Idempotency-Key, e.g. quote-2291-v2. Re-requesting a key returns that exact document rather than re-rendering.
Can I email it directly?
The response is the PDF itself, so attach the bytes to whatever mail provider you already use — nothing extra to store first.
Related
Reports PDF API
Turn dashboards, analytics and charts into shareable PDF reports via API.
Compare vs PDFShift
How PDFShift and Rendral differ on pricing, features, and setup.
PDFs in Node.js
A step-by-step guide to generating PDFs from Node.js.
A free tier, five endpoints, and SDKs for Node and Python.