Skip to main content
This guide is for content providers (e.g., compliance training platforms, coaching providers, video course platforms, language learning tools) who want to integrate with their customers’ Learning Management Systems.

Overview

As a content provider, you typically need to:
  1. Read users from the LMS - automatically provision user profiles without manual signup
  2. List your courses inside the LMS - users see your catalog in their company’s LMS and get redirected to your platform
  3. Write completion data back - track which courses users have finished

Why integrate with customer LMS systems?

  • Discovery & assignment - More users find and access your courses when they’re in the LMS, and administrators can assign content directly to their learners
  • Analytics for stakeholders - HR and leadership can track training completion and correlate it with outcomes
  • Sales checkbox - “LMS integration” is a requirement in many sales cycles. Most end customers demand the content to appear in their LMS
  • ROI demonstration - Prove your platform’s value (e.g., “employees who complete 6+ hours of training score X higher on performance reviews”)

Implementation flow

The typical integration flow for content providers looks like this:

API endpoints you’ll need

EndpointPurpose
GET /lms/usersSync employee profiles from the LMS
POST /lms/coursesPush your course listings with deep links
GET /lms/course-progressionsCheck which users are assigned/enrolled
POST /lms/course-progressionsEnroll users in courses
POST /lms/course-progressions/:id/completeWrite back completion data

Step 1: Read users from the LMS

First, sync the user base from your customer’s LMS. This allows you to:
  • Know which employees exist in the organization
  • Match users when they access your platform
  • Provision accounts automatically
curl --request GET \
  --url 'https://api.kombo.dev/v1/lms/users' \
  --header 'Authorization: Bearer <api_key>' \
  --header 'X-Integration-Id: <integration_id>'
The response includes user details like email, name, and remote IDs that you can use to match users in your system.

Step 2: Push your course catalog

Create courses in the customer’s LMS with deep links that redirect users to your platform:
curl --request POST \
  --url 'https://api.kombo.dev/v1/lms/courses' \
  --header 'Authorization: Bearer <api_key>' \
  --header 'X-Integration-Id: <integration_id>' \
  --header 'Content-Type: application/json' \
  --data '{
    "course": {
      "type": "EXTERNAL",
      "title": "Introduction to Cybersecurity",
      "description": "Learn the fundamentals of cybersecurity.",
      "course_url": "https://your-platform.com/courses/cybersecurity-101",
      "thumbnail_url": "https://your-platform.com/images/cybersecurity-101.png"
    }
  }'
The course_url field should be a deep link to your platform. When users click on the course in their LMS, they’ll be redirected to your platform where they can consume the content.

Step 3: Track assignments and enrollments

Check which users have been assigned or enrolled in your courses:
curl --request GET \
  --url 'https://api.kombo.dev/v1/lms/course-progressions' \
  --header 'Authorization: Bearer <api_key>' \
  --header 'X-Integration-Id: <integration_id>'
You can filter by specific users using the user_ids query parameter:
curl --request GET \
  --url 'https://api.kombo.dev/v1/lms/course-progressions?user_ids=7xPdr68N8kG9EzLwjsN9xyz,8yQes79O9lH0FaLxktO0yza' \
  --header 'Authorization: Bearer <api_key>' \
  --header 'X-Integration-Id: <integration_id>'

Step 4: Write completions back to the LMS

When a user completes a course on your platform, mark it as complete in the LMS:
curl --request POST \
  --url 'https://api.kombo.dev/v1/lms/course-progressions/{course_progression_id}/complete' \
  --header 'Authorization: Bearer <api_key>' \
  --header 'X-Integration-Id: <integration_id>' \
  --header 'Content-Type: application/json' \
  --data '{
    "completed_at": "2024-01-15"
  }'
The completed_at field is optional and defaults to the current date if not provided. This ensures that:
  • The completion appears in the customer’s LMS reports
  • L&D teams can track training progress
  • Compliance requirements are documented

Compared to SCORM

Many content providers currently use SCORM exports (a standard package format that LMS systems accept). However, SCORM has limitations:
  • No user sync - You can’t read users from the LMS
  • No dynamic completions - You can’t write back completions programmatically
  • Worse UX - Users stay in the LMS instead of your optimized platform
Using Kombo’s API gives you the flexibility of SCORM with the added benefits of user provisioning and real-time completion tracking.

Next steps

  1. Complete the setup guide to configure your Kombo account
  2. Set up the connection flow for your customers
  3. Explore the LMS API reference for detailed endpoint documentation