API Reference

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 Collection

Base URL: https://api.credcanvas.com/v1

Authentication

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!

HeaderAuthorization
FormatBearer <token>
bash
curl https://api.credcanvas.com/v1/templates \
  -H "Authorization: Bearer cm_test_123456789"

List Jobs

GET/api/v1/jobs

Returns a paginated list of all your bulk certificate issuance jobs.

Parameters

pageinteger

Page number (default: 1).

limitinteger

Items per page (default: 20).

bash
curl https://api.credcanvas.com/v1/jobs?page=1&limit=20 \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "jobs": [...],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 5,
    "total_pages": 1
  }
}

Create a Job

POST/api/v1/jobs/create

Creates a new bulk certificate issuance job. You must provide the event ID, template ID, and an array of recipient data.

Parameters

namestringRequired

Name of the batch/job.

event_idstringRequired

UUID of the event.

certificate_template_idstringRequired

UUID of the template.

data_sourcearrayRequired

Array of recipient details.

bash
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"}]}'

Response

json
{
  "success": true,
  "job_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "draft",
  "message": "Job created successfully..."
}

Get Job Status

GET/api/v1/jobs/:jobId

Retrieves the details of an existing job.

Parameters

jobIdstringRequired

The ID of the job.

bash
curl https://api.credcanvas.com/v1/jobs/123e4567... \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "job": {
    "id": "123e4567...",
    "name": "Batch 2025",
    "status": "completed"
  }
}

Delete a Job

DELETE/api/v1/jobs/:jobId

Deletes a job if it is in draft or failed state.

Parameters

jobIdstringRequired

The ID of the job to delete.

bash
curl -X DELETE https://api.credcanvas.com/v1/jobs/123e4567... \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "message": "Job deleted successfully"
}

List Events

GET/api/v1/events

Returns a list of your events.

bash
curl https://api.credcanvas.com/v1/events \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "events": [
    { "id": "def-456", "name": "Annual Summit 2025" }
  ]
}

Create Event

POST/api/v1/events

Creates a new event.

Parameters

namestringRequired

Name of the event.

descriptionstring

Description of the event.

event_datestring

ISO 8601 date string.

bash
curl -X POST https://api.credcanvas.com/v1/events \
  -H "Authorization: Bearer cm_test_123" \
  -H "Content-Type: application/json" \
  -d '{"name":"Hackathon 2025"}'

Response

json
{
  "success": true,
  "event": { "id": "def-456", "name": "Hackathon 2025" }
}

Get Event

GET/api/v1/events/:eventId

Get details of a single event.

Parameters

eventIdstringRequired

UUID of the event.

bash
curl https://api.credcanvas.com/v1/events/def-456 \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "event": { "id": "def-456", "name": "Hackathon 2025" }
}

Update Event

PUT/api/v1/events/:eventId

Update an existing event.

Parameters

eventIdstringRequired

UUID of the event.

namestring

Name of the event.

bash
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"}'

Response

json
{
  "success": true,
  "event": { "id": "def-456", "name": "Updated Hackathon 2025" }
}

Delete Event

DELETE/api/v1/events/:eventId

Delete an event.

Parameters

eventIdstringRequired

UUID of the event.

bash
curl -X DELETE https://api.credcanvas.com/v1/events/def-456 \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "message": "Event deleted successfully"
}

List Templates

GET/api/v1/templates

Returns a list of your certificate templates.

bash
curl https://api.credcanvas.com/v1/templates \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "templates": [
    { "id": "abc-123", "name": "Completion Certificate" }
  ]
}

Get Template

GET/api/v1/templates/:templateId

Get details of a specific certificate template.

Parameters

templateIdstringRequired

UUID of the template.

bash
curl https://api.credcanvas.com/v1/templates/abc-123 \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "template": { "id": "abc-123", "name": "Completion Certificate" }
}

List Certificates

GET/api/v1/certificates

List all issued certificates with optional filtering.

Parameters

pageinteger

Page number (default: 1).

limitinteger

Items per page (default: 20).

job_idstring

Filter by job ID.

emailstring

Filter by recipient email.

bash
curl https://api.credcanvas.com/v1/certificates?email=jane@example.com \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "certificates": [...],
  "pagination": { "page": 1, "limit": 20, "total": 1 }
}

Get Certificate

GET/api/v1/certificates/:id

Get details of a specific issued certificate.

Parameters

idstringRequired

UUID of the certificate.

bash
curl https://api.credcanvas.com/v1/certificates/cert-uuid \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "certificate": { "id": "cert-uuid", "recipient_email": "jane@example.com" }
}

Revoke Certificate

POST/api/v1/certificates/:id/revoke

Revoke an issued certificate.

Parameters

idstringRequired

UUID of the certificate.

bash
curl -X POST https://api.credcanvas.com/v1/certificates/cert-uuid/revoke \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "message": "Certificate successfully revoked"
}

Verify Certificate

GET/api/v1/certificates/:id/verify

Verify if an issued certificate is valid.

Parameters

idstringRequired

UUID or Certificate Number.

bash
curl https://api.credcanvas.com/v1/certificates/cert-uuid/verify \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "is_valid": true,
  "certificate": { "id": "cert-uuid", "status": "generated" }
}

List Email Templates

GET/api/v1/email-templates

Returns a list of your email templates.

bash
curl https://api.credcanvas.com/v1/email-templates \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "templates": [
    { "id": "email-123", "subject": "Your Certificate is Ready!" }
  ]
}

List Badge Classes

GET/api/v1/badge-classes

Returns a list of your badge classes.

bash
curl https://api.credcanvas.com/v1/badge-classes \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "badge_classes": [
    { "id": "b1", "name": "Gold Contributor", "image_url": null }
  ]
}

List Document Templates

GET/api/v1/documents/templates

Returns a list of your document templates.

bash
curl https://api.credcanvas.com/v1/documents/templates \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "templates": [
    { "id": "dt-1", "name": "Offer Letter", "type": "joining_letter" }
  ]
}

Issue Document

POST/api/v1/documents/issue

Issue a new document to a recipient using a document template.

Parameters

document_template_idstringRequired

UUID of the document template.

recipient_namestringRequired

Full name of the recipient.

recipient_emailstringRequired

Email address of the recipient.

recipient_dataobject

Key-value pairs to fill template placeholders.

expires_atstring

ISO 8601 date string for document expiry.

bash
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"}'

Response

json
{
  "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"
  }
}

Get Account Usage

GET/api/v1/account/usage

Get the number of certificates issued in the current billing period.

bash
curl https://api.credcanvas.com/v1/account/usage \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "usage": { "certificates_issued_this_month": 150 }
}

Get Account Plan

GET/api/v1/account/plan

Get information about the current subscription plan.

bash
curl https://api.credcanvas.com/v1/account/plan \
  -H "Authorization: Bearer cm_test_123"

Response

json
{
  "success": true,
  "plan": { "name": "pro", "status": "active" }
}