The CredCanvas API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
Download Postman CollectionBase URL: https://api.credcanvas.com/v1
Authenticate your account when using the API by including your secret API key in the request. You can manage your API keys in the Dashboard. Your API keys carry many privileges, so be sure to keep them secure!
curl https://api.credcanvas.com/v1/templates \ -H "Authorization: Bearer cm_test_123456789"
/api/v1/jobsReturns a paginated list of all your bulk certificate issuance jobs.
Page number (default: 1).
Items per page (default: 20).
curl https://api.credcanvas.com/v1/jobs?page=1&limit=20 \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"jobs": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 5,
"total_pages": 1
}
}/api/v1/jobs/createCreates a new bulk certificate issuance job. You must provide the event ID, template ID, and an array of recipient data.
Name of the batch/job.
UUID of the event.
UUID of the template.
Array of recipient details.
curl -X POST https://api.credcanvas.com/v1/jobs/create \
-H "Authorization: Bearer cm_test_123" \
-H "Content-Type: application/json" \
-d '{"name":"Batch 2025","event_id":"uuid","certificate_template_id":"uuid","data_source":[{"name":"Jane","email":"jane@example.com"}]}'{
"success": true,
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "draft",
"message": "Job created successfully..."
}/api/v1/jobs/:jobIdRetrieves the details of an existing job.
The ID of the job.
curl https://api.credcanvas.com/v1/jobs/123e4567... \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"job": {
"id": "123e4567...",
"name": "Batch 2025",
"status": "completed"
}
}/api/v1/jobs/:jobIdDeletes a job if it is in draft or failed state.
The ID of the job to delete.
curl -X DELETE https://api.credcanvas.com/v1/jobs/123e4567... \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"message": "Job deleted successfully"
}/api/v1/eventsReturns a list of your events.
curl https://api.credcanvas.com/v1/events \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"events": [
{ "id": "def-456", "name": "Annual Summit 2025" }
]
}/api/v1/eventsCreates a new event.
Name of the event.
Description of the event.
ISO 8601 date string.
curl -X POST https://api.credcanvas.com/v1/events \
-H "Authorization: Bearer cm_test_123" \
-H "Content-Type: application/json" \
-d '{"name":"Hackathon 2025"}'{
"success": true,
"event": { "id": "def-456", "name": "Hackathon 2025" }
}/api/v1/events/:eventIdGet details of a single event.
UUID of the event.
curl https://api.credcanvas.com/v1/events/def-456 \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"event": { "id": "def-456", "name": "Hackathon 2025" }
}/api/v1/events/:eventIdUpdate an existing event.
UUID of the event.
Name of the event.
curl -X PUT https://api.credcanvas.com/v1/events/def-456 \
-H "Authorization: Bearer cm_test_123" \
-H "Content-Type: application/json" \
-d '{"name":"Updated Hackathon 2025"}'{
"success": true,
"event": { "id": "def-456", "name": "Updated Hackathon 2025" }
}/api/v1/events/:eventIdDelete an event.
UUID of the event.
curl -X DELETE https://api.credcanvas.com/v1/events/def-456 \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"message": "Event deleted successfully"
}/api/v1/templatesReturns a list of your certificate templates.
curl https://api.credcanvas.com/v1/templates \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"templates": [
{ "id": "abc-123", "name": "Completion Certificate" }
]
}/api/v1/templates/:templateIdGet details of a specific certificate template.
UUID of the template.
curl https://api.credcanvas.com/v1/templates/abc-123 \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"template": { "id": "abc-123", "name": "Completion Certificate" }
}/api/v1/certificatesList all issued certificates with optional filtering.
Page number (default: 1).
Items per page (default: 20).
Filter by job ID.
Filter by recipient email.
curl https://api.credcanvas.com/v1/certificates?email=jane@example.com \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"certificates": [...],
"pagination": { "page": 1, "limit": 20, "total": 1 }
}/api/v1/certificates/:idGet details of a specific issued certificate.
UUID of the certificate.
curl https://api.credcanvas.com/v1/certificates/cert-uuid \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"certificate": { "id": "cert-uuid", "recipient_email": "jane@example.com" }
}/api/v1/certificates/:id/revokeRevoke an issued certificate.
UUID of the certificate.
curl -X POST https://api.credcanvas.com/v1/certificates/cert-uuid/revoke \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"message": "Certificate successfully revoked"
}/api/v1/certificates/:id/verifyVerify if an issued certificate is valid.
UUID or Certificate Number.
curl https://api.credcanvas.com/v1/certificates/cert-uuid/verify \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"is_valid": true,
"certificate": { "id": "cert-uuid", "status": "generated" }
}/api/v1/email-templatesReturns a list of your email templates.
curl https://api.credcanvas.com/v1/email-templates \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"templates": [
{ "id": "email-123", "subject": "Your Certificate is Ready!" }
]
}/api/v1/badge-classesReturns a list of your badge classes.
curl https://api.credcanvas.com/v1/badge-classes \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"badge_classes": [
{ "id": "b1", "name": "Gold Contributor", "image_url": null }
]
}/api/v1/documents/templatesReturns a list of your document templates.
curl https://api.credcanvas.com/v1/documents/templates \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"templates": [
{ "id": "dt-1", "name": "Offer Letter", "type": "joining_letter" }
]
}/api/v1/documents/issueIssue a new document to a recipient using a document template.
UUID of the document template.
Full name of the recipient.
Email address of the recipient.
Key-value pairs to fill template placeholders.
ISO 8601 date string for document expiry.
curl -X POST https://api.credcanvas.com/v1/documents/issue \
-H "Authorization: Bearer cm_test_123" \
-H "Content-Type: application/json" \
-d '{"document_template_id":"dt-1","recipient_name":"Jane Doe","recipient_email":"jane@example.com"}'{
"success": true,
"document": {
"id": "doc-1",
"document_number": "abc123",
"recipient_name": "Jane Doe",
"recipient_email": "jane@example.com",
"status": "issued",
"verification_url": "https://www.credcanvas.com/verify/document/abc123",
"created_at": "2025-06-01T12:00:00Z"
}
}/api/v1/account/usageGet the number of certificates issued in the current billing period.
curl https://api.credcanvas.com/v1/account/usage \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"usage": { "certificates_issued_this_month": 150 }
}/api/v1/account/planGet information about the current subscription plan.
curl https://api.credcanvas.com/v1/account/plan \ -H "Authorization: Bearer cm_test_123"
{
"success": true,
"plan": { "name": "pro", "status": "active" }
}