Certified Compliance Training, Now Programmable

The CertBerry API lets you assign training, track completions, and retrieve verifiable certificates — all through clean, secure endpoints.

API integration illustration

API Endpoints

All endpoints require authentication via API key in the Authorization header.

User Management

Create and manage users in your CertBerry integration. Users are required before you can assign courses or track progress.

Create a new user

POST /api/v1/users

Request Body:
  • external_id - Required. Your unique identifier for this user
  • email - Optional. User's email address
  • name - Optional. User's display name
  • partner_metadata - Optional. Custom data to store with the user
  • skip_auto_assignments - Optional. Skip automatic bundle assignments (default: false)
Behavior:
  • Creates new user if external_id doesn't exist
  • Syncs existing user if external_id already exists
  • Automatically assigns user to active bundles (unless skipped)
  • Sets user role to 'user' with standard access

List all users

GET /api/v1/users

Query Parameters:
  • search - Optional. Search by external_id, email, or name
  • per_page - Optional. Number of results per page (default: 20, max: 100)

Get user details

GET /api/v1/users/{user}

URL Parameters:
  • {user} - Required. The user ID to retrieve

Deactivate user

PATCH /api/v1/users/{user}/deactivate

URL Parameters:
  • {user} - Required. The user ID to deactivate
Behavior:
  • Sets user role to 'inactive'
  • User can no longer access training courses
  • Existing completion records are preserved
  • User can be reactivated later using activate endpoint

Activate user

PATCH /api/v1/users/{user}/activate

URL Parameters:
  • {user} - Required. The user ID to activate
Behavior:
  • Sets user role to 'user' (standard access)
  • User can access training courses again
  • Previous completion records remain intact
  • User can be assigned to new courses

Course Management

Manage course assignments and track user progress through training.

Get course catalog

GET /api/v1/courses

Query Parameters:
  • search - Optional. Search by course title or description
  • per_page - Optional. Number of results per page (default: 20, max: 100)

Assign course to user

POST /api/v1/users/{user}/assign/{course}

URL Parameters:
  • {user} - Required. The user ID to assign the course to
  • {course} - Required. The course ID to assign
Behavior:
  • If user is not assigned to course: Creates new assignment
  • If user is already assigned: Updates assignment with new due date
  • If user completed course previously: Course becomes available for retake with new due date

Unassign course from user

DELETE /api/v1/users/{user}/assign/{course}

URL Parameters:
  • {user} - Required. The user ID to unassign from
  • {course} - Required. The course ID to unassign
Behavior:
  • Deactivates the course assignment (soft delete)
  • Course no longer appears in user's active assignments
  • Completion records are preserved for audit trail
  • Course can be reassigned later using the assign endpoint

Get user assignments

GET /api/v1/users/{user}/assignments

URL Parameters:
  • {user} - Required. The user ID to get assignments for
Query Parameters:
  • active - Optional. Filter by active status (true/false)

Progress Tracking

Monitor user progress through assigned courses and retrieve completion status.

Get user progress

GET /api/v1/users/{user}/progress

URL Parameters:
  • {user} - Required. The user ID to get progress for

Get course progress

GET /api/v1/users/{user}/courses/{course}/progress

URL Parameters:
  • {user} - Required. The user ID to get progress for
  • {course} - Required. The course ID to get progress for

Certificate Management

Retrieve and verify certificates issued upon course completion. All certificates are cryptographically signed and tamper-proof.

Get certificate details

GET /api/v1/certificates/{certificate}

URL Parameters:
  • {certificate} - Required. The certificate ID to retrieve

Get user certificates

GET /api/v1/users/{user}/certificates

URL Parameters:
  • {user} - Required. The user ID to get certificates for

Iframe Player Setup

Embed the CertBerry training player directly into your platform using our secure iframe implementation.

Basic Implementation

The iframe player provides a complete training experience with video lessons, quizzes, and certificate generation. It's designed to work seamlessly within your existing platform.

HTML Implementation:

<iframe 
   src="https://api.certberry.com/api/iframe/v1/player/{userId}?api_key=YOUR_API_KEY"
   width="100%" 
   height="600px"
   frameborder="0"
   allowfullscreen>
 </iframe>

JavaScript Implementation:

// Create iframe dynamically
const iframe = document.createElement('iframe');
iframe.src = `https://api.certberry.com/api/iframe/v1/player/${userId}?api_key=${apiKey}`;
iframe.width = '100%';
iframe.height = '600px';
iframe.frameBorder = '0';
iframe.allowFullscreen = true;

// Add to your container
document.getElementById('training-container').appendChild(iframe);

Configuration Options

Customize the player behavior and appearance using URL parameters.

URL Parameters:

  • themeColor=XXXXXX - Custom hex color for UI theming (6 characters, no # symbol)
  • mobile=true - Enable mobile-optimized interface
  • nativeControls=true - Use native video controls

Example with Parameters:

https://api.certberry.com/api/iframe/v1/player/{userId}?api_key=YOUR_API_KEY&themeColor=FF6B35&mobile=true

Webhooks (Coming Soon)

Real-time notifications for course completions, certificate issuance, and other important events.

Webhook Events

Webhooks will allow you to receive instant notifications when important events occur in your training system. This enables real-time integration with your existing workflows.

Planned Events

  • course.completed - Fired when a user completes a course
  • lesson.completed - Fired when a user completes a lesson
  • user.created - Fired when a new user is created via API
  • certificate.issued - Fired when a certificate is generated

Security

Webhooks will be secured with HMAC signatures to ensure authenticity and prevent tampering.

  • • HMAC-SHA256 signatures for payload verification
  • • Configurable retry logic for failed deliveries
  • • Webhook endpoint validation
  • • Rate limiting to prevent abuse

Webhooks are currently in development. Sign up for our developer newsletter to be notified when they're available.

Contact Us for Early Access