Unified LMS API
Upsert courses
Changed onCreate or update multiple courses in the LMS.
<Info> **Note:** This endpoint is asynchronous – it returns a `task_id` immediately and processes the request in the background. Use the corresponding `GET` endpoint to poll for the task status until it reaches `COMPLETED` or `FAILED`. Learn more in our [async endpoints guide](/lms/guides/async-endpoints). </Info> <Note> This endpoint requires the permission **Upsert courses** to be enabled in [your scope config](/scopes). </Note>Example Request Body
{
"items": [
{
"origin_id": "course-1",
"course": {
"type": "EXTERNAL",
"title": "Building LMS integrations with Kombo",
"description": "Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.",
"course_url": "https://docs.kombo.dev/lms/introduction",
"thumbnail_url": "https://kombo.dev/images/courses/lms-integrations-thumbnail.png",
"duration": 45,
"languages": [
"en",
"de-CH"
]
}
},
{
"origin_id": "course-2",
"course": {
"type": "EXTERNAL",
"title": "Introduction to TypeScript",
"description": "Learn one of the most popular programming languages of the recent years quickly and efficiently. Results guaranteed!",
"course_url": "https://example.com",
"thumbnail_url": "https://example.com/images/thumbnail.jpg",
"duration": 60,
"languages": [
"en-US",
"pl-PL"
]
}
}
]
}
post/lms/courses/bulk
Request
- Base URLhttps://api.kombo.dev/v1
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Headers
X-Integration-Idstring required
ID of the integration you want to interact with.
Request body
Response
POST /lms/courses/bulk Positive response
Changes
- breaking
the
////request property format changed from no format touri
- breaking
- info
endpoint added
- info