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

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 useremail
- Optional. User's email addressname
- Optional. User's display namepartner_metadata
- Optional. Custom data to store with the userskip_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 nameper_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 descriptionper_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 interfacenativeControls=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