HR

Certificate generator API

An elegant award certificate — issue thousands automatically when learners finish a course.

Issue a beautiful certificate the moment someone finishes your course, training or event. Pass the recipient name, achievement and date, and PDFgen renders an elegant, bordered certificate ready to download or email.

It’s built for scale: trigger one API call per completion and personalise thousands of certificates from a single template.

Generate a Certificate of Completion PDF via the API

POST your data to /api/v1/generate and get a PDF back. Copy-paste an example, swap in your API key, and loop over a list to render thousands — one certificate of completion per record.

curl -X POST https://pdfgen.com/api/v1/generate \
-H "Authorization: Bearer pdfg_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"html": "<div style=\"padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#111827;\">\n <div style=\"border:10px solid #b45309;border-radius:4px;padding:60px 56px;text-align:center;background:#fffbeb;\">\n <p style=\"font-size:13px;letter-spacing:4px;text-transform:uppercase;color:#b45309;margin:0;\">Certificate of Completion</p>\n <p style=\"margin:36px 0 8px;font-size:14px;color:#6b7280;\">This certifies that</p>\n <h1 style=\"font-size:42px;font-weight:800;margin:0;color:#111827;font-family:Georgia,serif;\">{{recipient}}</h1>\n <p style=\"margin:20px auto 0;max-width:480px;font-size:15px;color:#374151;line-height:1.6;\">has successfully completed <strong>{{course}}</strong>{{#if hours}} ({{hours}} hours){{/if}}.</p>\n <div style=\"display:flex;justify-content:space-between;align-items:flex-end;margin-top:60px;max-width:480px;margin-left:auto;margin-right:auto;\">\n <div style=\"text-align:center;\">\n <div style=\"border-top:1px solid #9ca3af;width:160px;padding-top:6px;font-size:13px;color:#6b7280;\">{{signatory.name}}<br><span style=\"font-size:11px;\">{{signatory.title}}</span></div>\n </div>\n <div style=\"text-align:center;\">\n <div style=\"border-top:1px solid #9ca3af;width:160px;padding-top:6px;font-size:13px;color:#6b7280;\">{{formatDate date}}<br><span style=\"font-size:11px;\">Date</span></div>\n </div>\n </div>\n </div>\n</div>",
"engine": "handlebars",
"format": "A4",
"data": {
"recipient": "Maria González",
"course": "Advanced Data Analytics",
"hours": 40,
"date": "2026-06-20",
"signatory": {
"name": "Dr. Alan Pierce",
"title": "Program Director"
}
}
}' --output certificate.pdf

Working in another language? Follow a full guide for your stack:

What you can build

  • Awarding certificates automatically on course completion
  • Bulk-generating certificates for a cohort or webinar
  • Issuing CPD / training certificates from an LMS
  • Personalising event or competition awards at scale

Frequently asked questions

Can certificates be issued automatically?
Yes — call the API from your course-completion event with the learner’s name and achievement, and attach the returned certificate PDF to their email.
Can I change the design and add a signature?
Yes. The certificate is an editable HTML template — adjust the border, fonts and wording, and add signatory names or a signature image.
How many certificates can I generate?
As many as your plan allows — each completion is one API call, so generating thousands is just a loop over your recipients.

Related templates

Ship your certificate of completion PDF endpoint today

Generate this template with AI, tweak it to match your brand, then render at scale with a single API call — no headless browsers to babysit.