Render service agreements, NDAs, and client contracts as PDFs on the fly. Your template + your data = a clean, professional PDF in milliseconds.
<span class="kw">async function</span> <span class="fn">generateContractPDF</span>(contract) {
<span class="cm">// Render your Handlebars/EJS/Nunjucks template to HTML</span>
<span class="kw">const</span> html = <span class="fn">renderTemplate</span>(<span class="str">'contract.html'</span>, {
clientName: contract.client.name,
startDate: contract.startDate,
terms: contract.terms,
signatureLine: <span class="kw">true</span>,
});
<span class="kw">const</span> res = <span class="kw">await</span> fetch(<span class="str">'https://api.renderlyapi.com/v1/pdf/from-html'</span>, {
method: <span class="str">'POST'</span>,
headers: {
<span class="str">'Authorization'</span>: <span class="str">`Bearer ${process.env.RENDERLY_KEY}`</span>,
<span class="str">'Content-Type'</span>: <span class="str">'application/json'</span>,
},
body: JSON.<span class="fn">stringify</span>({
html,
format: <span class="str">'A4'</span>,
marginTop: <span class="str">'25mm'</span>,
marginBottom: <span class="str">'25mm'</span>,
<span class="cm">// footerTemplate: '<div style="font-size:9px;text-align:center">Page <span class=pageNumber/></div>',</span>
}),
});
<span class="kw">return</span> Buffer.<span class="fn">from</span>(<span class="kw">await</span> res.<span class="fn">arrayBuffer</span>());
}Free tier โ 50 PDFs/month. No credit card required.
Get your free API key โ