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.