ProofDeck API Integration Guide
A practical, step-by-step guide to integrating ProofDeck’s certificate issuance API into your LMS, HR system, or custom application.
With this integration, certificates are issued automatically the moment something meaningful happens: a course completion, an employee milestone, or an event check-in.
Why Integrate?
Manual uploads don’t scale. APIs do.
By integrating ProofDeck:
LMS platforms can issue certificates instantly after course completion.
HR systems can award credentials after training or compliance checks.
Event platforms can send certificates automatically when attendees check in.
No CSVs. No delays. No copy-paste mistakes.
Prerequisites
Before writing any code, make sure you have the following:
1. ProofDeck Account
You’ll need a Pro or Enterprise plan to access the API.
2. API Key
Log in to your ProofDeck dashboard
Go to Settings → Developer
Click Generate API Key
Copy and store it securely (treat it like a password)
Example:
Pd_live_12345sample
3. Template ID
Certificates are issued using a template design.
To get the ID:
Open a template in your dashboard
Copy the template Id on the template card
API Overview
Base URL
https://certifyme.pythonanywhere.com/api/v1/certificates
Step 1 – Issue a Certificate
Endpoint
POST /api/v1/certificates
Required Headers
Content-Type: application/json
X-API-Key: YOUR_API_KEY
Request Body Parameters
Field | Type | Required | Description |
template_id | Integer | Yes | Certificate template to use |
recipient_name | String | Yes | Full name of recipient |
recipient_email | String | Yes | Recipient’s email address |
course_title | String | Yes | Course or achievement name |
issue_date | String | Yes | Date (YYYY-MM-DD) |
issuer_name | String | No | Override default issuer name |
extra_fields | Object | No | Custom fields (student ID, score, etc.) |
Example Request (cURL)
curl -X POST https://certifyme.pythonanywhere.com/api/v1/certificates \ -H "Content-Type: application/json" \ -H "X-API-Key: pd_live_12345sample" \ -d '{ "template_id": 5, "recipient_name": "Alice Johnson", "recipient_email": "alice@example.com", "course_title": "Advanced Data Analytics", "issue_date": "2023-11-15" }'
Step 2 – Handle the Response
If everything goes well, you’ll receive a JSON response like this:
{ "msg": "Certificate created and dispatched successfully.", "certificate_id": 1024, "verification_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}
What Each Field Means
certificate_id
Internal ID for the issued certificate.verification_id
Public unique identifier used for verification.
You can build a verification URL like:
https://proofdeck.app/verify/a1b2c3d4-e5f6-7890-abcd-ef1234567890
Store this ID in your database if you want to:
show users their certificate link
re-send certificates
or provide verification access later
Step 3 – Automate It
Once this endpoint is wired into your system:
Trigger it after course completion
Or after HR training approval
Or after event check-in
From that point on, certificates become infrastructure.
Error Handling (Recommended)
Always check for:
HTTP status codes ≠ 200
Missing fields
Invalid API keys
Rate limits
Example logic:
401 → invalid API key
422 → missing or invalid fields
500 → server error (retry later)
Learn more
Full API documentation:
👉 https://www.proofdeck.app/docs
Product homepage:
👉 https://www.proofdeck.app