Course registrations
This API is designed to manage user registrations for courses. It makes it possible to get all existing registrations within the administrator roles, change their status, and create new ones. API does not provide such extensive registration administration capabilities as are available to administrators on the portal. Registrations can be:
Created in “Not Started” status
Transferred to “Completed” status.
Transferred to “Approved” status.
Transferred to “Withdrawn” status.
The API will not support any kind of event-based courses (online or in-person), because the conference format is replacing them and API already supports conferences. Also attempts to create registration for a course that does not require registration (like Article) will be rejected.
Permissions
Roles
Web service accounts must have “Course attendance manager” or “Batch registration manager” roles to have access to the API.
Course filtering logic
The courses that will be filtered to show registrations for them are determined by the groups for which the Webservice account has the necessary roles. Only registrations for courses from these groups and subgroups can be displayed.
User filtering logic
The users that will be filtered to show registrations for them are determined by the groups for which the Webservice account has the necessary roles. Only user registrations from these groups and subgroups can be displayed.
Identification flexibility
In order to simplify working with the API and enable external systems to create registrations based on the data stored in them, this API supports various ways to identify users and courses in KMI LMS through API calls.
To indicate for which course registration needs to be created one of the following parameters can be passed:
The operation will be successful if KMI LMS finds one and only one course that satisfies one of the parameters in order of priority as well as if the necessary access to such a course exists. To indicate for which user registration needs to be created one of the following parameters can be passed:
The operation will be successful if KMI LMS finds one and only one user that satisfies one of the parameters in order of priority as well as if the necessary access to such a user exists.
API Schema
Represents a course registration entity in the LMS.
/registrations/ GET
/registrations/Get course registrations. Returns a list of active registrations in any status for courses that satisfy the filtering criteria. Additionally, the 'course_id' or/and 'user_id' filters can be passed to limit responses for showing registrations for one specified course and/or user only.
Responses
[
{
"id": 100500,
"courseId": 58,
"courseName": "Ford - Achieving Boardroom Excellence",
"createdDate": "2024-05-24T14:58:41Z",
"registrationDate": "2025-05-24T14:58:41Z",
"completionDate": "2018-07-24T14:58:41Z",
"statusName": "Completed",
"externalId": "a123456",
"userExternalId": "123456",
"userId": 123456.0,
"score": 100.0
}
]
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Too many requests"
}
/registrations/ POST
/registrations/Register a user for a specified course. Only active users can be registered for active courses already published in LMS. The service account should have the proper permissions on the course and the user account.An email (PatternId=222) will be sent to the user in case of successful registration.
Request parameters
{
"courseId": 2000,
"courseName": "Ford - Achieving Boardroom Excellence",
"userId": 1000,
"userExternalId": "123456",
"userEmail": "breathtaking.lms_user@gmail.com",
"externalId": "a123456"
}
Responses
{
"id": 100500,
"courseId": 58,
"courseName": "Ford - Achieving Boardroom Excellence",
"createdDate": "2024-05-24T14:58:41Z",
"registrationDate": "2025-05-24T14:58:41Z",
"completionDate": "2018-07-24T14:58:41Z",
"statusName": "Completed",
"externalId": "a123456",
"userExternalId": "123456",
"userId": 123456.0,
"score": 100.0
}
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Too many requests"
}
/registrations/external/{registration_external_id}/ GET
/registrations/external/{registration_external_id}/Returns a single registration by External ID. The service account should have the proper permissions on the course and the user account.
Responses
{
"id": 100500,
"courseId": 58,
"courseName": "Ford - Achieving Boardroom Excellence",
"createdDate": "2024-05-24T14:58:41Z",
"registrationDate": "2025-05-24T14:58:41Z",
"completionDate": "2018-07-24T14:58:41Z",
"statusName": "Completed",
"externalId": "a123456",
"userExternalId": "123456",
"userId": 123456.0,
"score": 100.0
}
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Not registered for this course."
}
{
"detail": "Too many requests"
}
/registrations/external/{registration_external_id}/approve/ POST
/registrations/external/{registration_external_id}/approve/Responses
{
"id": 100500,
"courseId": 58,
"courseName": "Ford - Achieving Boardroom Excellence",
"createdDate": "2024-05-24T14:58:41Z",
"registrationDate": "2025-05-24T14:58:41Z",
"completionDate": "2018-07-24T14:58:41Z",
"statusName": "Completed",
"externalId": "a123456",
"userExternalId": "123456",
"userId": 123456.0,
"score": 100.0
}
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Too many requests"
}
/registrations/external/{registration_external_id}/complete/ POST
/registrations/external/{registration_external_id}/complete/Request parameters
{
"score": 42,
"success": "true"
}
Responses
{
"id": 100500,
"courseId": 58,
"courseName": "Ford - Achieving Boardroom Excellence",
"createdDate": "2024-05-24T14:58:41Z",
"registrationDate": "2025-05-24T14:58:41Z",
"completionDate": "2018-07-24T14:58:41Z",
"statusName": "Completed",
"externalId": "a123456",
"userExternalId": "123456",
"userId": 123456.0,
"score": 100.0
}
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Too many requests"
}
/registrations/external/{registration_external_id}/withdraw/ POST
/registrations/external/{registration_external_id}/withdraw/Withdraws the specified registration by External ID. The service account should have the proper permissions on the course and the user account.
Responses
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Too many requests"
}
/registrations/{id}/ GET
/registrations/{id}/Returns a single registration by KMI LMS ID. The service account should have the proper permissions on the course and the user account.
Responses
{
"id": 100500,
"courseId": 58,
"courseName": "Ford - Achieving Boardroom Excellence",
"createdDate": "2024-05-24T14:58:41Z",
"registrationDate": "2025-05-24T14:58:41Z",
"completionDate": "2018-07-24T14:58:41Z",
"statusName": "Completed",
"externalId": "a123456",
"userExternalId": "123456",
"userId": 123456.0,
"score": 100.0
}
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Not registered for this course."
}
{
"detail": "Too many requests"
}
/registrations/{id}/approve/ POST
/registrations/{id}/approve/Responses
{
"id": 100500,
"courseId": 58,
"courseName": "Ford - Achieving Boardroom Excellence",
"createdDate": "2024-05-24T14:58:41Z",
"registrationDate": "2025-05-24T14:58:41Z",
"completionDate": "2018-07-24T14:58:41Z",
"statusName": "Completed",
"externalId": "a123456",
"userExternalId": "123456",
"userId": 123456.0,
"score": 100.0
}
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Too many requests"
}
/registrations/{id}/complete/ POST
/registrations/{id}/complete/Request parameters
{
"score": 42,
"success": "true"
}
Responses
{
"id": 100500,
"courseId": 58,
"courseName": "Ford - Achieving Boardroom Excellence",
"createdDate": "2024-05-24T14:58:41Z",
"registrationDate": "2025-05-24T14:58:41Z",
"completionDate": "2018-07-24T14:58:41Z",
"statusName": "Completed",
"externalId": "a123456",
"userExternalId": "123456",
"userId": 123456.0,
"score": 100.0
}
{
"detail": "Invalid token."
}
{
"detail": "Forbidden"
}
{
"detail": "Too many requests"
}
/registrations/{id}/withdraw/ POST
/registrations/{id}/withdraw//users/ GET
/users/Responses
[
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"createdDate": "2018-07-24T14:58:41Z",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"id": 58,
"lastName": "Smith",
"loginName": "miles_davis",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"updatedDate": "2018-07-24T14:58:41Z",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
]
/users/ POST
/users/Request parameters
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"lastName": "Smith",
"loginName": "miles_davis",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
Responses
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"createdDate": "2018-07-24T14:58:41Z",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"id": 58,
"lastName": "Smith",
"loginName": "miles_davis",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"updatedDate": "2018-07-24T14:58:41Z",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
Read a specific user information by external identifier.
/users/external_id/{external_id}/Read a specific user information by external identifier.
Responses
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"createdDate": "2018-07-24T14:58:41Z",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"id": 58,
"lastName": "Smith",
"loginName": "miles_davis",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"updatedDate": "2018-07-24T14:58:41Z",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
Update an existing user account by external identifier.
/users/external_id/{external_id}/Update an existing user account by external identifier.
Request parameters
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"lastName": "Smith",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
Responses
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"createdDate": "2018-07-24T14:58:41Z",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"id": 58,
"lastName": "Smith",
"loginName": "miles_davis",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"updatedDate": "2018-07-24T14:58:41Z",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
This method marks the user account as deleted.
/users/external_id/{external_id}/This method marks the user account as deleted.
Read a specific user information by KMI LMSs identifier.
/users/{id}/Read a specific user information by KMI LMSs identifier.
Responses
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"createdDate": "2018-07-24T14:58:41Z",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"id": 58,
"lastName": "Smith",
"loginName": "miles_davis",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"updatedDate": "2018-07-24T14:58:41Z",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
Update an existing user account by KMI LMSs identifier.
/users/{id}/Update an existing user account by KMI LMSs identifier.
Request parameters
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"lastName": "Smith",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
Responses
{
"address": "1600 Pennsylvania Ave NW",
"address2": "app 17",
"city": "Washington",
"country": "US",
"createdDate": "2018-07-24T14:58:41Z",
"email": "email@address.com",
"expirationDate": "2018-07-24T14:58:41Z",
"externalId": "0B77D17A_9D14",
"firstName": "John",
"id": 58,
"lastName": "Smith",
"loginName": "miles_davis",
"ovFormWithInput12": "Text value for "input" parameter",
"state": "DC",
"updatedDate": "2018-07-24T14:58:41Z",
"workSettingsOtherSpecify": "Text value for "Other (specify)" parameter",
"workSettingsPrivateIndustryExcept": "false",
"zip": "20500"
}
This method marks the user account as deleted.
/users/{id}/This method marks the user account as deleted.
Last modified: 06 January 2025