Quickstart

Issue your first certificate in five minutes.

1. Create an API key

  1. Sign in to Certify+.
  2. Go to Settings → API Keys.
  3. Click New API key, name it (e.g. My integration), and leave the default scopes.
  4. Copy the key shown in the dialog. It will not be shown again.

2. Find a template ID

List your templates:

curl https://YOUR_DOMAIN/api/v1/templates \
  -H "Authorization: Bearer YOUR_API_KEY"

Pick the id of the template you want to use.

3. Issue a certificate

curl -X POST https://YOUR_DOMAIN/api/v1/certificates \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "TEMPLATE_UUID",
    "recipient": {
      "name": "Jane Doe",
      "email": "jane@example.com",
      "data": { "course": "Intro to TypeScript" }
    }
  }'

Response:

{
  "data": {
    "id": "8f4d…",
    "uniqueCode": "ABC12345",
    "recipientName": "Jane Doe",
    "status": "Issued",
    "verificationUrl": "https://YOUR_DOMAIN/verify/ABC12345",
    "issuedAt": "2026-04-19T09:10:11.123Z"
  }
}

4. Verify it

Anyone can verify a certificate publicly — no API key required:

curl https://YOUR_DOMAIN/api/v1/verify/ABC12345

5. Issue in batch

Swap recipient for recipients (up to 500 per request):

{
  "templateId": "TEMPLATE_UUID",
  "recipients": [
    { "name": "Jane Doe", "email": "jane@example.com" },
    { "name": "John Smith", "email": "john@example.com" }
  ]
}

The response includes per-recipient results, so partial failures don't abort the batch.

Next steps