Certificate Generator API

Professional PDF certificates in seconds, not hours

One simple HTTP request. That's all you need.

1. Make the Request

curl -X POST 'https://certgenapi.skalatec.com/api/v1/certificate' \
-H "Content-Type: application/json" \
-H "X-API-Key: 1010" \
-d '{
 "certificate_name": "Muhammad Rafly Atthariq",
 "template_url": "https://storage.polaric.co/certificate-template-example.pdf",
 "style": "Modern",
 "certificate_id_prefix_url": "https://polaric.co/certificates",
 "project": "polaric",
 "webhook_url": "https://api.polaric.co/api/callback/certificate/generated"
}'

2. Get Results

< 2 seconds response

PDF ready to download

QR code included

Cloud uploaded

3. Beautiful Certificate

Professional Certificate Example
4 minutes Integration time
99.9% Uptime
20k+ Certificates Generated

Why Developers Choose Our API

Lightning Fast

Generate certificates in under 2 seconds. No queues, no delays, just instant results.

Design Freedom

Use any PDF template. Our API adapts to your design, not the other way around.

You can download the PDF template as a Figma file

Auto Resizing

We auto-resize text so you don't have to worry about people with long names

Customization

Change certificate settings to your liking such as font colors, font styles and more

QR Code Integration

Automatic QR code generation with your custom verification URL

Custom Certificate IDs

Use your own certificate ID format or auto-generate secure ULIDs

Authentication

All API requests require authentication using an API key. You can provide the API key in two ways:

Method 1: Header (Recommended)

curl -H "X-API-Key: your_api_key_here" \ "https://certgenapi.skalatec.com/certificate?certificate_name=John%20Doe&template_url=https://certgenapi.skalatec.com/public/templates/classic-template.pdf&project=my-event"

Method 2: Query Parameter

curl "https://certgenapi.skalatec.com/certificate?api_key=your_api_key_here&certificate_name=John%20Doe&template_url=https://certgenapi.skalatec.com/public/templates/classic-template.pdf&project=my-event"

API Endpoints

Generate Certificate

GET /certificate POST /certificate

Generates a certificate and returns JSON with download URL and certificate details.

Parameters

Parameter Type Required Description
certificate_name string Required Full name of the certificate recipient
template_url string (URL) Required URL to the PDF certificate template
style string Optional Certificate style (default: "Classic")
certificate_id string Optional Custom certificate ID (auto-generated if not provided)
project string Required Project folder name for organizing certificates in storage (becomes part of the upload path)
certificate_id_prefix_url string Optional Base URL for QR code generation
webhook_url string (URL) Optional Webhook endpoint to receive processing notifications

Health Check

GET /health

Check the API status and health.

File Organization

The API automatically organizes generated certificates using the project folder structure. This helps maintain clean separation between different events, courses, or campaigns.

Upload Path Structure

{project-folder}/{participant-name}-{certificate-id}.pdf

Examples

Project Participant Upload Path
graduation-2024 John Doe graduation-2024/john-doe-CID-123.pdf
tech-conference Jane Smith tech-conference/jane-smith-CID-456.pdf
webinar-series Alice Johnson webinar-series/alice-johnson-CID-789.pdf

This structure makes it easy to:

  • Organize certificates by events or projects
  • Browse storage with clear folder separation
  • Manage permissions per project folder
  • Generate reports and analytics by project

Available Styles

Choose from our predefined certificate styles to match your brand and occasion:

Classic

Traditional serif font with elegant positioning. Perfect for formal ceremonies and academic achievements.

Modern

Clean, contemporary design with custom Overused Grotesk font. Certificate ID positioned in bottom right.

Modern-Dark

Same as Modern but optimized for dark background templates with light-colored text.

Professional

Business-focused design with Times Roman font. Ideal for corporate training and professional certifications.

Card

Compact design optimized for card-sized certificates and badges.

Webhook Integration

The API supports webhook notifications to inform your application about certificate processing results. When you provide a webhook_url parameter, the API will send a POST request to that endpoint with the processing results.

Webhook Events

Event Description When Triggered
certificate.generated Certificate successfully created When PDF generation and upload complete successfully
certificate.failed Certificate generation failed When any error occurs during processing

Webhook Payload

All webhooks are sent as POST requests with the following JSON structure:

{ "event": "certificate.generated", "timestamp": "2024-01-15T10:30:00.000Z", "data": { "certificate_name": "John Doe", "certificate_id": "CID-01HKQRST9V8WXY2Z3ABC4DEF5G", "style": "Modern", "uploaded_url": "https://storage.certgenapi.skalatec.com/certificates/john-doe.pdf", "project_folder": "tech-conference", "certificate_id_prefix_url": "https://certgenapi.skalatec.com/verify" } }

Webhook Requirements

  • HTTPS Only: Webhook URLs must use HTTPS protocol
  • Response Time: Your endpoint should respond within 10 seconds
  • Status Code: Return 2xx status code to acknowledge receipt
  • Content-Type: Webhooks are sent with Content-Type: application/json
  • User-Agent: Requests include User-Agent: Certificate-Generator-API/2.0.0

Error Handling

If webhook delivery fails, the error will be logged but won't affect the certificate generation process. The API will continue to return the PDF file regardless of webhook delivery status.

Example Usage

Basic Certificate Generation

# Generate a certificate with minimal parameters curl -H "X-API-Key: your_api_key" \ "https://certgenapi.skalatec.com/certificate?certificate_name=Jane%20Smith&template_url=https://certgenapi.skalatec.com/public/templates/classic-template.pdf&project=graduation-2024"

Advanced Certificate with QR Code

# Generate a Modern style certificate with QR code curl -H "X-API-Key: your_api_key" \ "https://certgenapi.skalatec.com/certificate?certificate_name=John%20Doe&template_url=https://certgenapi.skalatec.com/public/templates/modern-template.pdf&project=tech-conference&style=Modern&certificate_id_prefix_url=https://verify.mycompany.com"

Certificate with Custom ID

# Generate certificate with custom certificate ID curl -H "X-API-Key: your_api_key" \ "https://certgenapi.skalatec.com/certificate?certificate_name=Alice%20Johnson&template_url=https://certgenapi.skalatec.com/public/templates/classic-template.pdf&project=training-workshop&style=Professional&certificate_id=CUSTOM-2024-001"

Certificate with Webhook Notification

# Generate certificate and receive webhook notification curl -H "X-API-Key: your_api_key" \ "https://certgenapi.skalatec.com/certificate?certificate_name=Alice%20Johnson&template_url=https://certgenapi.skalatec.com/public/templates/modern-template.pdf&project=webinar-series&style=Modern&webhook_url=https://your-app.com/webhooks/certificate"

JavaScript/Node.js Example

// GET request with query parameters const params = new URLSearchParams({ certificate_name: 'John Doe', template_url: 'https://certgenapi.skalatec.com/public/templates/classic-template.pdf', project: 'my-event' }); const response = await fetch(`https://certgenapi.skalatec.com/certificate?${params}`, { headers: { 'X-API-Key': 'your_api_key' } }); const result = await response.json(); console.log('Certificate URL:', result.data.uploaded_url); // POST request with JSON body const postResponse = await fetch('https://certgenapi.skalatec.com/certificate', { method: 'POST', headers: { 'X-API-Key': 'your_api_key', 'Content-Type': 'application/json' }, body: JSON.stringify({ certificate_name: 'John Doe', template_url: 'https://certgenapi.skalatec.com/public/templates/classic-template.pdf', project: 'my-event' }) }); const postResult = await postResponse.json();

Webhook Endpoint Example (Node.js/Express)

app.post('/webhooks/certificate', (req, res) => { const { event, timestamp, data } = req.body; if (event === 'certificate.generated') { console.log(`Certificate generated for ${data.certificate_name}`); console.log(`Download URL: ${data.uploaded_url}`); // Process successful certificate generation } else if (event === 'certificate.failed') { console.error(`Certificate failed for ${data.certificate_name}: ${data.error}`); // Handle certificate generation failure } res.status(200).send('OK'); });

Response Format

Success Response

On successful certificate generation, the API returns a JSON response with certificate details:

{ "event": "certificate.generated", "timestamp": "2025-06-26T12:00:00.000Z", "data": { "certificate_name": "John Doe", "certificate_id": "CID-01HKQRST9V8WXY2Z3ABC4DEF5G", "style": "Classic", "uploaded_url": "https://storage.certgenapi.skalatec.com/certificates/john-doe-CID-123.pdf", "project_folder": "graduation-2024", "certificate_id_prefix_url": "https://verify.mycompany.com" } }

Error Response

In case of errors, the API returns a JSON response:

{ "success": false, "message": "Error description", "data": { "error": "Detailed error information" } }

Error Codes

Status Code Description Common Causes
400 Bad Request Missing required parameters, invalid template URL, or malformed request
401 Unauthorized Missing or invalid API key
500 Internal Server Error Server-side processing error, template processing failure

Built-in Certificate Verification

Every certificate includes a QR code for instant verification. Connect it to your own verification system.

QR Code Generation

Each certificate automatically includes a QR code in the bottom-right corner linking to your verification URL with the certificate ID.

Custom Verification URLs

Use the certificate_id_prefix_url parameter to point QR codes to your own verification system or database.

Unique Certificate IDs

Every certificate gets a unique, cryptographically secure ID (ULID) that you can use for verification and tracking.

Example QR Code URL: https://your-verification-site.com/verify/CID-01HKQRST9V8WXY2Z3ABC4DEF5G
How it works: Set certificate_id_prefix_url=https://your-verification-site.com/verify and the API will generate QR codes linking to your verification page with the certificate ID appended.

Features

  • Auto Resizing: We auto-resize text so you don't have to worry about people with long names
  • Customization: Change certificate settings to your liking such as font colors, font styles and more
  • QR Code Integration: Automatic QR code generation with your custom verification URL and certificate ID
  • Custom Fonts: Support for custom fonts including Overused Grotesk
  • Custom Certificate IDs: Use your own certificate ID format or auto-generate secure ULIDs
  • Multiple Styles: Pre-configured styles for different use cases
  • Template Flexibility: Use any PDF template as a base
  • Cloud Storage: Automatic upload to Cloudflare R2
  • Webhook Integration: Real-time notifications for processing results
  • Comprehensive Logging: Detailed request and error logging
  • Certificate Verification: QR codes link to your verification system with certificate IDs

Simple, Affordable Pricing

Start small, scale as you grow. Cancel anytime, no long-term contracts.

Starter

$9
per month
  • Up to 1,000 certificates/month
  • All certificate styles
  • Custom templates
  • QR code generation
  • Image embedding
  • Cloud storage included
  • Email support
  • API documentation
Get Started

Enterprise

$99
per month
  • Unlimited certificates
  • Everything in Professional
  • Dedicated support
  • SLA guarantee
  • Custom integrations
  • On-premise deployment
  • Multi-region hosting
  • Volume discounts available
Contact Sales
Perfect for: SaaS platforms, e-learning sites, event management, HR systems, course providers, and any application that needs automated certificate generation.

All plans include: No setup fees • Cancel anytime • 99.9% uptime SLA

Ready to Get Started?

Join hundreds of developers who've already streamlined their certificate generation

Get Started

Get instant API access to start generating certificates

Email: febrilian@skalatec.com

Pre-Sales Questions

Need a custom integration or have specific requirements?

Quick Response: Usually within 2-4 hours

Perfect for: SaaS platforms, e-learning sites, event management, HR systems, course providers, and any application that needs automated certificate generation.

All plans include: No setup fees • Cancel anytime • 99.9% uptime SLA

Technical Documentation

Complete API reference and integration guides

Base URL: https://certgenapi.skalatec.com
Authentication: API Key via header or query parameter
Response Format: PDF file or JSON error

View Full Documentation →