Enroll user in course
curl --request POST \
--url https://api.kombo.dev/v1/lms/course-progressions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Integration-Id: <x-integration-id>' \
--data '
{
"user_id": "7xPdr68N8kG9EzLwjsN9xyz",
"course_revision_id": "3KMdr68N8kG9EzLwjsN9aoz"
}
'import requests
url = "https://api.kombo.dev/v1/lms/course-progressions"
payload = {
"user_id": "7xPdr68N8kG9EzLwjsN9xyz",
"course_revision_id": "3KMdr68N8kG9EzLwjsN9aoz"
}
headers = {
"X-Integration-Id": "<x-integration-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Integration-Id': '<x-integration-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_id: '7xPdr68N8kG9EzLwjsN9xyz',
course_revision_id: '3KMdr68N8kG9EzLwjsN9aoz'
})
};
fetch('https://api.kombo.dev/v1/lms/course-progressions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/lms/course-progressions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => '7xPdr68N8kG9EzLwjsN9xyz',
'course_revision_id' => '3KMdr68N8kG9EzLwjsN9aoz'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Integration-Id: <x-integration-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/lms/course-progressions"
payload := strings.NewReader("{\n \"user_id\": \"7xPdr68N8kG9EzLwjsN9xyz\",\n \"course_revision_id\": \"3KMdr68N8kG9EzLwjsN9aoz\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Integration-Id", "<x-integration-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/lms/course-progressions")
.header("X-Integration-Id", "<x-integration-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"7xPdr68N8kG9EzLwjsN9xyz\",\n \"course_revision_id\": \"3KMdr68N8kG9EzLwjsN9aoz\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kombo.dev/v1/lms/course-progressions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Integration-Id"] = '<x-integration-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": \"7xPdr68N8kG9EzLwjsN9xyz\",\n \"course_revision_id\": \"3KMdr68N8kG9EzLwjsN9aoz\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "progress-12345",
"user_id": "7xPdr68N8kG9EzLwjsN9xyz",
"course_revision_id": "3KMdr68N8kG9EzLwjsN9aoz",
"status": "COMPLETED",
"enrolled_at": "2022-08-07T14:01:29.196Z",
"completed_at": "2022-08-07T14:01:29.196Z",
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"remote_data": null,
"user": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "Sarah",
"last_name": "Johnson",
"work_email": "sarah.johnson@example.com"
},
"course_revision": {
"id": "3KMdr68N8kG9EzLwjsN9aoz",
"remote_id": "revision-12345",
"title": "Building LMS integrations with Kombo",
"course": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32"
}
}
},
"warnings": [
{
"message": "This is an example warning!"
}
]
}Progress
Enroll user in course
Enroll a user in a course revision.
POST
/
lms
/
course-progressions
Enroll user in course
curl --request POST \
--url https://api.kombo.dev/v1/lms/course-progressions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Integration-Id: <x-integration-id>' \
--data '
{
"user_id": "7xPdr68N8kG9EzLwjsN9xyz",
"course_revision_id": "3KMdr68N8kG9EzLwjsN9aoz"
}
'import requests
url = "https://api.kombo.dev/v1/lms/course-progressions"
payload = {
"user_id": "7xPdr68N8kG9EzLwjsN9xyz",
"course_revision_id": "3KMdr68N8kG9EzLwjsN9aoz"
}
headers = {
"X-Integration-Id": "<x-integration-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Integration-Id': '<x-integration-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_id: '7xPdr68N8kG9EzLwjsN9xyz',
course_revision_id: '3KMdr68N8kG9EzLwjsN9aoz'
})
};
fetch('https://api.kombo.dev/v1/lms/course-progressions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/lms/course-progressions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => '7xPdr68N8kG9EzLwjsN9xyz',
'course_revision_id' => '3KMdr68N8kG9EzLwjsN9aoz'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Integration-Id: <x-integration-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/lms/course-progressions"
payload := strings.NewReader("{\n \"user_id\": \"7xPdr68N8kG9EzLwjsN9xyz\",\n \"course_revision_id\": \"3KMdr68N8kG9EzLwjsN9aoz\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Integration-Id", "<x-integration-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/lms/course-progressions")
.header("X-Integration-Id", "<x-integration-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"7xPdr68N8kG9EzLwjsN9xyz\",\n \"course_revision_id\": \"3KMdr68N8kG9EzLwjsN9aoz\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kombo.dev/v1/lms/course-progressions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Integration-Id"] = '<x-integration-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": \"7xPdr68N8kG9EzLwjsN9xyz\",\n \"course_revision_id\": \"3KMdr68N8kG9EzLwjsN9aoz\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "progress-12345",
"user_id": "7xPdr68N8kG9EzLwjsN9xyz",
"course_revision_id": "3KMdr68N8kG9EzLwjsN9aoz",
"status": "COMPLETED",
"enrolled_at": "2022-08-07T14:01:29.196Z",
"completed_at": "2022-08-07T14:01:29.196Z",
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"remote_data": null,
"user": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "Sarah",
"last_name": "Johnson",
"work_email": "sarah.johnson@example.com"
},
"course_revision": {
"id": "3KMdr68N8kG9EzLwjsN9aoz",
"remote_id": "revision-12345",
"title": "Building LMS integrations with Kombo",
"course": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32"
}
}
},
"warnings": [
{
"message": "This is an example warning!"
}
]
}Supported integrations
Supported integrations
This feature is currently available for the following integrations:You’d like to see this feature for another integration? Please reach out!
We’re always happy to discuss extending our coverage.
This endpoint requires the permission Create and manage course progressions to be enabled in your scope config.
Example Request Body
{
"user_id": "7xPdr68N8kG9EzLwjsN9xyz",
"course_revision_id": "3KMdr68N8kG9EzLwjsN9aoz"
}
Authorizations
Headers
ID of the integration you want to interact with.
Body
application/json
POST /lms/course-progressions Request body
Response
POST /lms/course-progressions Positive response
Allowed value:
"success"Show child attributes
Show child attributes
Example:
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "progress-12345",
"user_id": "7xPdr68N8kG9EzLwjsN9xyz",
"course_revision_id": "3KMdr68N8kG9EzLwjsN9aoz",
"status": "COMPLETED",
"enrolled_at": "2022-08-07T14:01:29.196Z",
"completed_at": "2022-08-07T14:01:29.196Z",
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"remote_data": null,
"user": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "Sarah",
"last_name": "Johnson",
"work_email": "sarah.johnson@example.com"
},
"course_revision": {
"id": "3KMdr68N8kG9EzLwjsN9aoz",
"remote_id": "revision-12345",
"title": "Building LMS integrations with Kombo",
"course": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32"
}
}
}
These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console.
Show child attributes
Show child attributes
Was this page helpful?
⌘I