Vector Solutions Web Service

 

Table of Contents

Introduction to VLMS Web Services
Overview
Required Knowledge
How to access the SWS API
Structure of an API HTTP Request
Handling HTTP Errors from the API
HTML Test Harness
Available API Resources
Get Listing of Users
Get Listing of Users for Assignment 2.0
Get Specific User
Create User
Update User
Merge Users
Reset Seamless Sign-On Key
Get Listing of User Course Registrations
Get a Specific User Course Registration
Create User Course Registration
Update User Course Registration
Get Listing of Articles
Get Specific Article
Create Article
Update Article
Get Listing of Instructor Profiles
Get Listing of Course Registrations
Get Listing of Courses Published
Authentication
Get My Courses Registrations
Get External App Module Data for Student Registrations
Update External App Module Data for a Student Registration
Get Payment Status
API Data Transfer Objects (DTOs)
User List Item Data Transfer Object (UserListItemDTO)
User Company Node Data Transfer Object (UserCompanyNodeDTO)
User CompanyNode MetaData Data Transfer Object (UserCompanyNodeMetaDataDTO)
User Profile Field DTO (UserProfileFieldDTO)
User Credential Summary (UserCredentialSummaryDTO)
User Credential (UserCredentialDTO)
User Work Experience Data Transfer Object (UserWorkExperienceDTO)
User Data Transfer Object (UserDTO)
Course Registration Data Transfer Object (CourseRegistrationDTO)
Course Completion Data Transfer Object (CourseCompletionDTO)
Course List Item Data Transfer Object (CoursesListItemDTO)
Article Data Transfer Object (ArticleDTO)
Instructor Profile Data Transfer Object (InstructorProfileDTO)
Credential Data Transfer Object (LoginCredentials)
Authentication Data Transfer Object (Authentication)
External App Module Data Transfer Object (ExternalAppData)

Table of Contents

Introduction to VLMS Web Services

Overview

This documentation presents an overview of the VLMS Web Services (SWS) RESTful API. This API adheres to the principles of REST web service architecture.

Required Knowledge

Use of this API assumes you are familiar with the following technologies:
Table of Contents

How to access the VLMS Web Service API

Accessing the SWS API is accomplished by making HTTPS Requests to specific URIs.

Structure of an API HTTPS Request

All API calls are made by making an HTTPS Request to a URI that consists of the API's base URI, a resource path, and the required Basic authorization request header containing the base64-encoded company identifier and account login key:

Example URI:
https://{base-uri}/sws/rest/{resource-path}/

URI Portion Description
Base URI This respresents the first portion of the URI.

Accepted Value(s):

https://ecomm.simplydigi.com/sws/rest
https://{your-domain}/sws/rest

Please Note:
We recommend that you always make your calls to the API securely using HTTPS.
If your site does not have the full HTTPS option enabled, please use the first request base URI of: https://ecomm.simplydigi.co/sws/rest.
Resource Path This represents the resource to access. For a complete listing of resources this API provides access to, go to the Available API Resources section of this documentation.
Authorization Header This represents the two required authentication parameters that *must* be included as basic authorization request header added to the URI called for ALL requests.
  • [company_identifier] - This parameter will be provided to you by customer support.
  • [account_login_key] - This parameter is set under a User's profile as their "Login Key" value. This value must be unique to each user.
Example Authorizaton Request Header:
Authorization: Basic AXVubzpwQDU1dzByYM==

String authHeader = System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("[company_identifier]: [account_login_key]"));
request.Headers.Add("Authorization", "Basic " + authHeader);

Important note about the "[account_login_key]" portion of the authorization header:
The Account Login Key you pass in using the [account_login_key] is part of the authentication process and it identifies the account to be used in making the various API calls. Please make sure the account being utilized has the appropriate permissions to perform the actions requested. Insufficient permissions will result in a failed request.

Handling HTTP Errors from the API

If an API call is successful, it should always return a HTTP Status code of 200 (OK).

Upon receiving any status code other than 200, review the resulting error information. This information will be returned in either an XML or a JSON data object, depending on which HTTP Accept values have been set.

XML WebServiceError Example

<WebServiceError>
<Details>[Error Message]</Details>
</WebServiceError>

JSON WebService Error Example

{"Details":"[Error Message]"}

HTML Test Harness for testing API Requests

All Resource URIs can be viewed within a browser. When applicable, data boxes will appear that allow you to GET and/or POST XML/JSON DTOs relative to the resource and action being performed. jQuery is used to populate or post from these boxes, so you can view source on the page and follow the same process that the jQuery code uses in whatever language you are familiar with (PHP, C#, Java, etc.).


Table of Contents

Available API Resources

The following section details the resources that are availble with the SWS API.

Important Tip:
All defined Resource URI values can be copied and pased into a web browser address bar to bring up the HTML Test Harness for that Resource. If utilizing this functionality, please remember to replace the an values contained with in {, }, [, and ] brackets with the appropriate values based on the identifier defined in those brackets.

Get Listing of Users

Retrieves a collection of Users based on the parameter(s) specified.

Resource URI

https://{domain-to-use}/sws/rest/users/

Resource Query String Parameters

Name Description Type
CompanyNodeUniqueID Filters results to only returned Users who are are assigned to the specified Company/Organizational Node. Optional
FirstName Filters results to only returned Users with a first name like the value specified Optional
LastName Filters results to only returned Users with a last name like the value specified Optional
Uniqueid Filters results to only returned Users with a unique ID like the value specified Optional
IncludeRegistrations Specifies whether or not to include the UserCourseRegistrations collection for a User. Optional
RegistrationsByCourseGroupId If including registrations, filters based on the included Course Group ID. Optional
Count Limits the number of results returned to the number specified.
If ommited, the number of results is defaulted to a maximum of 1000. The maximum value for this property is 1000. If more than 1000 records are needed, use count in conjunction with PageNumber and ReturnPagingSearchWrapper.
Optional
IncludeProfileFields Specifies whether or not to include the User Profile Fields collection for a User. Optional
FieldsLanguage Specifies the language to use as supported by the system.
Accepts the following:
  • en - English (default)
  • es-us - Spanish
  • fr-FR - French
  • pr-BR - Portuguese
Optional
IncludeCredentials Specifies whether or not to include the User Credentials collection for a User. Optional
IncludeUserCredentialSubmissions Specifies whether or not to include the User Degree Credential Submissions collection for a User. Optional
IncludeWorkExperiences Specifies whether or not to include the User Work Experiences collection for a User. Optional
IncludeUserYearsWorkExperience Specifies whether or not to include the User Years of Work Experience collection for a User. Optional
IncludeCourseCompletions Specifies whether or not to include the Completed Courses for the a User. Optional
IncludeUserMetaData Specifies whether or not to include the User Metadata for a User. Optional
PageNumber In cases where the recordset returned a larger that the count you specify, records will be spread across more than one page. You can use the PageNumber property to get records across different pages. The Default value is 1. Optional
ReturnPagingSearchWrapper Values can be true or false for this property. The default value is false. When true the data returned will be encapsulated in an object that will identify the results, total records, total pages and current page. The results propery returns a collection of UserListItemDTO objects in either XML or JSON.
Example JSON Returned:
                
                {
                    "PageNumber":1,
                    "Results" : [],
                    "TotalPages" : 1
                    "TotalRecords":1
                }
                
Optional
StartDate The start date for filtering the records returned. Requires IncludeProfileFields, IncludeRegistrations, IncludeCourseCompletions, IncludeCredentials, IncludeUserCredentialSubmissions or IncludeWorkexperiences. Optional
EndDate The end date for filtering the records returned. Requires IncludeProfileFields, IncludeRegistrations, IncludeCourseCompletions, IncludeCredentials, IncludeUserCredentialSubmissions or IncludeWorkexperiences. Optional
Email Filters results to only returned Users with the email equal to the value specified Optional

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a collection of UserListItemDTO objects in either XML or JSON, based on Resource Http Accept defined for the request.

Example JSON
        When ReturnPagingSearchWrapper=true
        {
            "PageNumber": 1,
            "Results": [
                {
                    "APIRecordStatus": 0,
                    "APIRecordStatusMessage": null,
                    "EmailAddress": "",
                    "FirstName": "",
                    "LastName": "",
                    "SelfAssessmentCompleted": false,
                    "Status": "Active",
                    "Uniqueid_ClientSpecified": "1",
                    "UserCompanyNodes": null,
                    "UserCourseRegistrations": null,
                    "UserCredentialSubmissions": null,
                    "UserCredentialSummaries": null,
                    "UserCredentials": null,
                    "UserProfileFields": [
                        {
                            "APIRecordStatus": 0,
                            "APIRecordStatusMessage": null,
                            "FieldName": "PQR ID",
                            "FieldValue": "",
                            "UserProfileFieldId": "9E609928-6E1A-4207-B3DF-6CA0B3DC4EA6"
                        }
                    ],
                    "UserUUID": "F20ADB3E-4A47-4617-8117-F8869B7D453C",
                    "UserWorkExperiences": null,
                    "UserYearsWorkExperience": null,
                    "isActiveIPDP": false
                }
            ],
            "TotalPages": 56260,
            "TotalRecords": 56260
        }

        When ReturnPagingSearchWrapper=false
        [
            {
                "APIRecordStatus": 0,
                "APIRecordStatusMessage": null,
                "EmailAddress": "",
                "FirstName": "",
                "LastName": "",
                "SelfAssessmentCompleted": false,
                "Status": "Active",
                "Uniqueid_ClientSpecified": "1",
                "UserCompanyNodes": null,
                "UserCourseRegistrations": null,
                "UserCredentialSubmissions": null,
                "UserCredentialSummaries": null,
                "UserCredentials": null,
                "UserProfileFields": [
                    {
                        "APIRecordStatus": 0,
                        "APIRecordStatusMessage": null,
                        "FieldName": "XYZ",
                        "FieldValue": "",
                        "UserProfileFieldId": "9E609928-6E1A-4207-B3DF-6CA0B3DC4EA6"
                    }
                ],
                "UserUUID": "F20ADB3E-4A47-4617-8117-F8869B7D453C",
                "UserWorkExperiences": null,
                "UserYearsWorkExperience": null,
                "isActiveIPDP": false
            }
        ]
    

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Get a Specific User

Retrieves a specific User based on the resource path defined.
The URI's {user_identifier} section defining the User resource to retrieve (see below).

Resource URI

https://{domain-to-use}/sws/rest/users/{user_identifier}/

Resource Query String Parameters

Name Description Type

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a UserDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Create a User

Creates a User based on the posted UserDTO object, transmitted as XML or JSON.

Resource URI

https://{domain-to-use}/sws/rest/users/

Resource Query String Parameters

Name Description Type

Http Method(s)

Http Header Accept

Http Header: Content-Type

Http POST Data Requirements

This URI accepts an XML or JSON representation of the UserDTO object.
Required fields are outlined in the following table:
Name Description
FirstName The First Name for the User
LastName The Last Name for the User
UniqueID_ClientSpecified The Unique ID for the User. This value is required to be unique.
Login ID The Login ID for the User.
SetLoginPassword The Password for the User.
CompanyNode_NonAdmin The non administrative Company Node ID.
CompanyNode_Admin The administrativ Company Node ID
PermissionGroups One or more Permission Groups to assign the User.

Resource Result

Returns a UserDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Update a User

Updates a User based on the posted UserDTO object, transmitted as XML or JSON.

Resource URI

https://{domain-to-use}/sws/rest/users/{user_identifier}/

Resource Query String Parameters

Name Description Type

Http Method(s)

Http Header Accept

Http Header: Content-Type

Http POST Data Requirements

This URI accepts an XML or JSON representation of the UserDTO object.
Required fields are outlined in the following table:
Name Description
UserUUID The UserUUID of the User being updated.
FirstName The First Name for the User
LastName The Last Name for the User
UniqueID_ClientSpecified The Unique ID for the User. This value is required to be unique.
Login ID The Login ID for the User.
CompanyNode_NonAdmin The non administrative Company Node ID.
CompanyNode_Admin The administrativ Company Node ID
PermissionGroups One or more Permission Groups to assign the User.

Resource Result

Returns the updated UserDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Merge Users

Merges all User information from one specified User to another.

Important:
Upon success, the merge from account information will be removed and no longer be accessible in the system.

Resource URI

https://{domain-to-use}/sws/rest/users/{useridfrom}/merge-into/{useridto}

Resource Query String Parameters

Name Description Type

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

Http POST Data Requirements

No additional requirements are applicable to this method.

Resource Results

When utilizing Http GET as the method, this will return two UserDTO objects; the first representing the User being merged from and the second representing the User being merged to. When utilizing Http POST as the method, this will return the a UserDTO object for the User merged to.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Reset Seamless Sign-On Key

Resets the user's seamless sign-on key and returns the new key in the result.

Resource URI

https://{domain-to-use}/sws/rest/users/{userid}/resetseamlesssignonkey

Resource Query String Parameters

Name Description Type

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

Http POST Data Requirements

No additional requirements are applicable to this method. Returns the updated UserDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Get Listing of User Course Registrations

Retrieves a collection of Course Registrations for a single User based on the parameter(s) specified.

Resource URI

https://{domain-to-use}/sws/rest/users/{user_identifier}/courseregistrations/

Resource Query String Parameters

Name Description Type
includemodules Specifies whether or not to include Course Module information for each Registration. Optional

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a collection of CourseRegistrationDTO objects in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Get a Specific User Course Registration

Retrieves a specific Course Registration for a single User based on the parameter(s) specified.

Resource URI

https://{domain-to-use}/sws/rest/users/{user_identifier}/courseregistrations/{registration_identifier}/

Resource Query String Parameters

Name Description Type

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a specific CourseRegistrationDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Create a User Course Registration

Creates a User Course Registration based on the posted CourseRegistrationDTO object, transmitted as XML or JSON.

Resource URI

https://{domain-to-use}/sws/rest/users/{user_identifier}/courseregistrations/

Resource Query String Parameters

Name Description Type

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

Http POST Data Requirements

This URI accepts an XML or JSON representation of the CourseRegistrationDTO object.
Required fields are outlined in the following table:
Name Description
CourseNumber The Course Number relative to the Course to create a registration to.
-or-
CourseID The Course ID relative to the Course to create a registration to.

Resource Results

Returns the created CourseRegistrationDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Update a User Course Registration

Updates a specific User Course Registration based on the posted CourseRegistrationDTO object, transmitted as XML or JSON.

Resource URI

https://{domain-to-use}/sws/rest/users/{user_identifier}/courseregistrations/{registration_identifier}/

Resource Query String Parameters

Name Description Type

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

Http POST Data Requirements

This URI accepts an XML or JSON representation of the CourseRegistrationDTO object.
Required and optional fields are outlined in the following table:
Name Description Type
CourseRegistrationID The Course Registration ID. Required
CompletionDate The completion date to apply to th eCourse Registration. If ommited, the current date is utilized. Optional
Score The score value to apply to the Course Registration. Optional
Status The status to apply to the Course Registration. Accepted values are:
  • NotViewed
  • InProgress
  • CompletedOrPassed
  • FailedtoMeetCourseRequirements
  • DroppedByStudent
  • FailedtoCompleteByDueDate
Required

Resource Results

Returns the updated CourseRegistrationDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Get Listing of Articles

Retrieves a collection of Articles based on the parameter(s) specified.

Resource URI

https://{domain-to-use}/sws/rest/articles/&articletype=[articletype]&searchtext=[searchtext]&count=count

Resource Query String Parameters

Name Description Type
articletype Filters results to the specified article type. Accepted values are References, FrequentlyAskedQuestions, 1, or 2 (1=References, 2=FrequentlyAskedQuestions). Required
searchtext Filters results based on a full text search of the title and body of the article. Passing an nothing to this parameter will return all results. Optional
Count Limits the number of results returned to the number specified.
If ommited, the number of results is defaulted to all results.
Optional

Http Method(s)

  • GET

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

  • application/xml will return XML to you in the response
  • application/json will return JSON to you in the response

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a collection of ArticleDTO objects in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

If the defined Article Type is FAQ (Frequently Asked Question)
  • Faq: Management Enabled
  • -or-
  • Frequently Asked Questions is Visible
If the defined Article Type is Reference
  • References: Enabled For Students
  • -or-
  • References: Management Enabled


Get a Specific Article

Retrieves a specific Article based on the resource path defined.
The URI's {id} section defining the User resource to retrieve (see below).

Resource URI

https://{domain-to-use}/sws/rest/articles/{id}/
  • {id} - Represents the identifier of the Article to retrieve. Can be found from the ID value from an ArticleDTO object:

Resource Query String Parameters

Name Description Type

Http Method(s)

  • GET

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

  • application/xml will return XML to you in the response
  • application/json will return JSON to you in the response

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a ArticleDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

If the defined Article Type is FAQ (Frequently Asked Question)
  • Faq: Management Enabled
  • -or-
  • Frequently Asked Questions is Visible
If the defined Article Type is Reference
  • References: Enabled For Students
  • -or-
  • References: Management Enabled


Create an Article

Creates an Article based on the posted ArticleDTO object, transmitted as XML or JSON.

Resource URI

https://{domain-to-use}/sws/rest/articles/?companyapitoken=[company_apitoken]&userapitoken=[user_api_token]

Resource Query String Parameters

Name Description Type
companyapitoken Your Company API Token, can be generated on the site master setup page for your company Required
userapitoken API Token for the User Account being used for authentication to the API is generated on the user edit page Required

Http Method(s)

  • POST

Http Header Accept

  • application/xml will return XML to you in the response
  • application/json will return JSON to you in the response

Http Header: Content-Type

  • application/xml indicates the post data is an XML structure
  • application/json indicates the post data is a JSON structure

Http POST Data Requirements

This URI accepts an XML or JSON representation of the ArticleDTO object.
Required fields are outlined in the following table:
Name Description
Title The title of the Article
ArticleType The article type. Possible values are References, FrequentlyAskedQuestions, 1, or 2 (1=References, 2=FrequentlyAskedQuestions)

Resource Result

Returns a ArticleDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

If the defined Article Type is FAQ (Frequently Asked Question)
  • Faq: Management Enabled
If the defined Article Type is Reference
  • References: Management Enabled


Update an Article

Updates an Article based on the posted ArticleDTO object, transmitted as XML or JSON.

Resource URI

https://{domain-to-use}/sws/rest/articles/{id}/
  • {id} - Represents the identifier of articleretrieve. Represents the value of the ID field on the ArticleDTO object:

Resource Query String Parameters

Name Description Type

Http Method(s)

  • POST

Http Header Accept

  • application/xml will return XML to you in the response
  • application/json will return JSON to you in the response

Http Header: Content-Type

  • application/xml indicates the post data is an XML structure
  • application/json indicates the post data is a JSON structure

Http POST Data Requirements

This URI accepts an XML or JSON representation of the ArticleDTO object.
Required fields are outlined in the following table:
Name Description
Title The title of the Article
ArticleType The article type. Possible values are References, FrequentlyAskedQuestions, 1, or 2 (1=References, 2=FrequentlyAskedQuestions)

Resource Result

Returns the updated ArticleDTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

If the defined Article Type is FAQ (Frequently Asked Question)
  • Faq: Management Enabled
If the defined Article Type is Reference
  • References: Management Enabled


Get Listing of Instructor Profiles

Retrieves a collection of Instructor Profiles based on the parameter(s) specified.

Resource URI

https://{domain-to-use}/sws/rest/instructorprofiles/

Resource Query String Parameters

Name Description Type
EventCutoffDate Limits the searching on Scheduled Events an Instructor is associated with to only events that are after the specified date. Optional
SearchIDS Comma delimited; filters on only User(s) who match the Unique ID values specified. Optional

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a collection of UserListItemDTO objects in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:


Get Listing of Course Registrations

Retrieves a collection of Course Registrations based on the parameter(s) specified.

Resource URI

https://{domain-to-use}/sws/rest/courseregistrations/

Resource Query String Parameters

Name Description Type
usergroupid Limits the results to Course Registrations of user's within the specified User Group group specified by the provided ID. Optional
userteamid Limits the results to Course Registrations of user's within the specified User Team specified by the provided ID. Optional
coursegroupid Limits the results to Course Registrations of user's within the specified Course Group specified by the provided ID. Optional
enrollgreaterthan Limits the results to Course Registrations with an Enrollment Date greater than or equal to the specified date value. Optional
enrolllessthan Limits the results to Course Registrations with an Enrollment Date less than or equal to the specified date value. Optional
completiongreaterthan Limits the results to Course Registrations with a Completion Date greater than or equal to the specified date value. Optional
completionlessthan Limits the results to Course Registrations with a Completion Date less than or equal to the specified date value. Optional
includecompleted Specifies whether or not to include Course Registrations that have been Completed. Optional
includenotyetviewed Specifies whether or not to include Course Registrations that have been Not Yet Viewed. Optional
includeinprogress Specifies whether or not to include Course Registrations that have been In Progress. Optional
includefailed Specifies whether or not to include Course Registrations that have been Failed. Optional
includedropped Specifies whether or not to include Course Registrations that have been Dropped. Optional
includemodules Specifies whether or not to include Course Module information for each Registration. Optional
includeFailedtoCompleteByDueDate Specifies whether or not to include Course Registrations that have been FailedtoCompleteByDueDate. Optional
includeExpired Specifies whether or not to include Course Registrations that have been Expired. Optional
lastmodifiedgreaterthan Limits the results to Course Registrations with a Updated Date greater than or equal to the specified date value. Optional
lastmodifiedlessthan Limits the results to Course Registrations with a Updated Date less than or equal to the specified date value. Optional

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a collection of CourseRegistrationDTO objects in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Get Listing of Published Courses

Retrieves a collection of Published Courses in order of last updated based on the parameter(s) specified.

Resource URI

https://{domain-to-use}SWS/rest/coursespublished/

Resource Query String Parameters

Name Description Type
coursename Filters results based on a full text search of the course name. Passing an nothing to this parameter will return all results. Optional
coursenumber Filters results based on a full text search of the course number. Passing an nothing to this parameter will return all results. Optional
showonlylatestmasterversion Limits results based on if dataset needs to only have the latest master version. Passing an nothing to this parameter will return all results. Accepted values are true/false. Optional
count Limits the number of results returned to the number specified. If ommited, the number of results is defaulted to all results. Optional

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns a collection of CoursesListItemDTO objects in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Authentication

Returns an Authentication DTO based on the LoginCredentialsDTO specified.   If "Seamless sign-on keys can be auto-generated via the API" is checked in System Tools > Site Master Setup > Login and Password Settings, then a seamless sign-on key will automatically be generated for the user if one does not exist.

Resource URI

https://{domain-to-use}/sws/rest/authentication/?setcompanyid=[company_identifier]

Resource Query String Parameters

Name Description Type
setcompanyid Your Company ID, as obtained from Customer Service Required

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

Http POST Data Requirements

This URI accepts an XML or JSON representation of the LoginCredentials DTO object.
Required fields are outlined in the following table:
Name Description
Login Login
Password Password

Resource Results

Returns a Authentication DTO in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Gets a list of Course Registration of the authenticated user

Get a list of Course Registration of the authenticated user. The authenticated user is the user associated with the value passed in via the seamlesssignonkey.

Resource URI

https://{domain-to-use}/sws/rest/mycourseregistrations/

Resource Query String Parameters

Name Description Type
iscoursepreview Determines whether to get live course registrations from My Courses or registrations being previewed in Manage Courses. The default is to retrieve live registrations from My Courses Optional
includenotyetviewed Includes registrations that have not been viewed by the student. Default is false Optional
includecompleted Includes registrations that have been completed by the student. Default is false Optional
includeinprogress Includes registrations that are in progress by the student. Default is false Optional
includeinprogress Includes registrations that have been failed by the student. Default is false Optional

Http Method(s)

Http Header: Authorization

Basic authorization in this format "[company_identifier]: [account_login_key]" encoded as a Base64 string.

Http Header: Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Results

Returns an array of CourseRegistrationDTO objects in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Get External App Module Data for Student Registrations

Get's the External App Module Data associated with Course Registrations.

Resource URI

https://{domain-to-use}/sws/rest/externalappmoduleapi/

Resource Query String Parameters

Name Description Type
companyapitoken Your Company API Token, can be generated on the site master setup page for your company Required
userapitoken API Token for the User Account being used for authentication to the API is generated on the user edit page Required
iscoursepreview Determines whether to get live course registrations from My Courses or registrations being previewed in Manage Courses. The default is to retrieve live registrations from My Courses Optional
includenotyetviewed Includes registrations that have not been viewed by the student. Default is false Optional
includecompleted Includes registrations that have been completed by the student. Default is false Optional
includeinprogress Includes registrations that are in progress by the student. Default is false Optional
includeinprogress Includes registrations that have been failed by the student. Default is false Optional
coursemoduleid Filters results by that match the coursemoduleid.  This value is a GUID.  The default is null. Optional
courseregistrationmoduleid Filters results that match the courseregistrationmoduleid.  This value is a GUID.  The Default is null. Optional

Http Method(s)

Http Header Accept

Http Header: Content-Type

This resource does not accept a POST verb and does not require this header information be set.

Http POST Data Requirements

This resource does not accept a POST verb and does not have any data requirements.

Resource Result

Returns an array of External App Module DTO objects in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Update an External App Module for a Student Registration

Updates an External App Module within a course regitration based on the posted External App Module DTO object, transmitted as XML or JSON.

Resource URI

https://{domain-to-use}/sws/rest/externalappmoduleapi/?companyapitoken=[company_apitoken]&userapitoken=[user_api_token]

Resource Query String Parameters

Name Description Type
companyapitoken Your Company API Token, can be generated on the site master setup page for your company Required
userapitoken API Token for the User Account being used for authentication to the API is generated on the user edit page Required

Http Method(s)

Http Header Accept

Http Header: Content-Type

Http POST Data Requirements

This URI accepts an XML or JSON representation of the External App Module DTO object.
Required fields are outlined in the following table:
Name Description
CourseRegistrationID The unique ID of the registration
CourseRegistrationModuleID The unique id of the external app module within the registration
CourseModuleStatus String value representing the status of the module.  The values are NotYetViewed, InProgress, Completed values are Failed
Score A value between 0 and 100 that represents the module's score.
TotalSecondsInModule An integer value that must be 0 or greater representing the time spent in the module.
SuspendData Any string value that the course developer wants persisted to the LMS to later be retrieved and used by the course.

Resource Result

Returns the updated External App Module DTO object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:

Receive External Payment Status Change

Listener for Pesapal payment status change to complete orders. When adding the call to the Pesapal account, the companyapitoken & userapitoken will needed to be provided in the listener field, the other 3 fields will be appended by Pesapal when it calls the API.

Resource URI

https://{domain-to-use}/sws/rest/payments/?companyapitoken=[company_apitoken]&userapitoken=[user_api_token]&pesapal_notification_type=[notification_type]&pesapal_merchant_reference=[merchant_reference]&pesapal_transaction_tracking_id=[transaction_tracking_id]

Resource Query String Parameters

Name Description Type
companyapitoken Your Company API Token, can be generated on the site master setup page for your company Required
userapitoken API Token for the User Account being used for authentication to the API is generated on the user edit page Required
pesapal_notification_type Notification Type provied by Pesapal Required
pesapal_merchant_reference Merchant Reference provided by Pesapal Required
pesapal_transaction_tracking_id Transaction Tracking ID provided by Pesapal Required

Http Method(s)

Http Header Accept

Http Header: Content-Type

Resource Result

Returns a boolean for testing purposes only when the status has been checked and order has been updated accordingly object in either XML or JSON, based on Resource Http Accept defined for the request.

Required Permission(s)

The following permission(s) are required to be set for the account accessing via the API:
Table of Contents

Data Transfer Objects (DTOs)

The Data Transfer Objects (DTOs) are used as both the structure returned from, and passed to the various API URI's supported by the SWS.

All objects must be created and posted as either XML or JSON.

A complete listing of what Data Transfer Objects this API utilizes are outlined in the sections below.

User List Item Data Transfer Object (UserListItemDTO)

This DTO represents a summary of base User information.

Please Note:
This DTO is for retrieval only and is not used in any POST methods.

Data Structure

Field Name Description Data Type
FirstName Represents the first name of a User. (String, Max Length 50)
LastName Represents the last name of a User. (String, Max Length 50)
Status Represents the status of a User. Active
Inactive
UserUUID Represents the data record ID generated for the User. UUID value (for an overview, go here)
UniqueID_ClientSpecified Represents the Unique ID value for a User. (String, Max Length 255)
AllRequiredProfileFieldsCompleted Represents whether or not the User has completed all required fields on their User Profile. true
false
EmailAddress Represents the E-mail Address for a User. (String, Max Length
SelfAssessmentCompleted Represents whether or not the User has completed their Self-Assessment true
false
isActiveIPDP Represents whether or not the User has an active Professional Development Plan true
false
MiddleName Represents the middle name of a User. (String, Max Length 50)
PrefixName Represents the prefix name of a User. (String, Max Length 50)
SuffixName Represents the suffix name of a User. (String, Max Length 50)
Createdate Represents the creation date to be assigned to a user. String, Required format of one of the following: Note: All dates are and must be in UTC.
Createdate_ClientUsage Represents the creation date to be assigned to a user. String, Required format of one of the following: Note: All dates are and must be in UTC.
Updatedate Represents the last date the user was updated. String, Required format of one of the following: Note: All dates are and must be in UTC.
TimeZone Represents the time zone of the user. String, Max Length 50)
UserInactivationDate Represents the deletion (termination, inactive) date to be assigned to a user. String, Required format of one of the following: Note: All dates are and must be in UTC.
PhoneNumberDay Daytime phone number to assign to the User. (String, Max Length 20)
PhoneNumberDayExt Daytime phone number extension to assign to the User. (String, Max Length 10)
PhoneNumberEvening Evening phone number to assign to the User. (String, Max Length 20)
PhoneNumberEveningext Evening phone number extension to assign to the User. (String, Max Length 10)
Address1 Address Line 1 to assign to the User. (String, Max Length 320)
Address2 Address Line 2 to assign to the User. (String, Max Length 320)
City City to assign to the User. (String, Max Length 320)
State_Province Represents the state or province of the user. State/Province abbreviation matching a value in the system
PostalCode The postal code to assign to the User. (String, Max Length 32)
DOB The birth date to assign to the User. String, Required format of one of the following: Note: All dates are and must be in UTC.
Gender The gender to assign to the User. Male
Female
Unknown
Country The country to assign to the User. Country name matching a value in the system
UserFreeFormField1Value The free form field (1) to assign to the User. (String, Max Length 500)
UserFreeFormField2Value The free form field (2) to assign to the User. (String, Max Length 500)
UserFreeFormField3Value The free form field (3) to assign to the User. (String, Max Length 500)
UserFreeFormField4Value The free form field (4) to assign to the User. (String, Max Length 500)
Language Represents the language of the user. (String, Max Length 5)
UserCompanyNodes Collection of UserCompanyNodeDTO. XML/JSON
UserCompanyNodeMetaData Collection of UserCompanyNodeMetaDataDTO. XML/JSON
UserProfileFields Collection of UserProfileFieldDTO. XML/JSON
UserCourseRegistrations Collection of CourseRegistrationDTO. XML/JSON
UserCourseCompletions Collection of CourseCompletionDTO. XML/JSON
UserCredentialsSummaries Collection of UserCredentialSummaryDTO. XML/JSON
UserCredentials Collection of UserCredentialDTO. XML/JSON
UserCredentialSubmissions Collection of UserCredentialSubmissionsDTO. XML/JSON
UserWorkExperiences Collection of UserWorkExperienceDTO. XML/JSON
UserYearsWorkExperience Collection of UserYearsWorkExperienceDTO. XML/JSON

XML Example

<UserListItem>
<UserID></UserID>
<FirstName></FirstName>
<LastName></LastName>
<Uniqueid_ClientSpecified></Uniqueid_ClientSpecified>
<Status></Status>
<EmailAddress></EmailAddress>
<isActiveIPDP></SelfAssessmentCompleted>
<SelfAssessmentCompleted></SelfAssessmentCompleted>
<UserCompanyNodes>
<UserCompanyNode>
<UserID></UserID>
<CompanyNodeID></CompanyNodeID>
<CompanyNodeName></CompanyNodeName>
<CompanyNodeUniqueID></CompanyNodeUniqueID>
<CompanyNodeTypeName></CompanyNodeTypeName>
<MetaData>
<MetaDataItem>
<Name></Name>
<Value></Value>
</MetaDataItem>
</MetaData>
</UserCompanyNode>
</UserCompanyNodes>
<UserProfileFields>
<UserProfileField>
<UserProfileFieldId></UserProfileFieldId>
<FieldName></FieldName>
<FieldValue></FieldValue>
</UserProfileField>
</UserProfileFields>
<UserCourseRegistrations></UserCourseRegistrations>
<UserCredentialsSummaries>
<UserCredentialSummary>
<UserID></UserID>
<CredentialGroupID></CredentialGroupID>
<CredentialGroupName></CredentialGroupName>
<UserRankValue></UserRankValue>
<UserRankName></UserRankName>
</UserCredentialSummary>
</UserCredentialsSummaries>
<UserCredentials>
<UserCredential>
<UserID></UserID>
<CredentialGroupID></CredentialGroupID>
<CredentialGroupName></CredentialGroupName>
<DateAwarded></DateAwarded>
<PointsOnAwardDate></PointsOnAwardDate>
<ExpirationDate></ExpirationDate>
</UserCredential>
</UserCredentials>
<UserWorkExperiences>
<UserWorkExperience>
<UserID></UserID>
<WorkExperienceID></WorkExperienceID>
<WorkExperienceName></WorkExperienceName>
<ExperienceMetric></ExperienceMetric>
<Experience></Experience>
</UserWorkExperience>
</UserWorkExperiences>
</UserListItem>

JSON Example

[{"FirstName":"","LastName":"","Status":"","Uniqueid_ClientSpecified":"","UserID":""}]


User Company Node Transfer Object (UserCompanyNodeDTO)

This DTO represents Company Node (Organizational) information associated with a User.

Data Structure

Field Name Description Data Type & Accepted Values Required On
UserID Represents the data record ID generated for the User. UUID value (for an overview, go here) Read Only
CompanyNodeID Represents the ID of the Company Node. UUID Read Only
CompanyNodeName Represents the Name of the Company Node. String Read Only
CompanyNodeUniqueID Represents the Unique ID of the Company Node. String Read Only
Status Represents the verification status of a User Company Node. Verified"
"Unverified"
Read Only
MetaData XML or JSON Data Structure containing one or more Meta Data values associated with the User's Company Node record.

XML Example:
<MetaData>
    <MetaDataItem>
        <Name>[Name of Meta Data Item]</Name>
        <Value>[Value of Meta Data Item]</Value>
    </MetaDataItem>
    <MetaDataItem>
        <Name>[Name of Meta Data Item]</Name>
        <Value>[Value of Meta Data Item]</Value>
    </MetaDataItem>
</MetaData>

JSON Example:
"MetaData":[{"Name":"","Value":""},{"Name":"","Value":""}]
String Read Only

XML Example

<UserCompanyNode>
<UserID></UserID>
<CompanyNodeID></CompanyNodeID>
<CompanyNodeName></CompanyNodeName>
<CompanyNodeUniqueID></CompanyNodeUniqueID>
<Status></Status>
</UserCompanyNode>

JSON Example

{"UserID":"","CompanyNodeID":"","CompanyNodeName":"","CompanyNodeUniqueID":"","Status":""}

User Company Node MetaData Data Transfer Object (UserCompanyNodeMetaDataDTO)

This DTO represents a collection Company Node MetaData Items (Organizational) information associated with a User.

Data Structure

Field Name Description Data Type & Accepted Values Required On
UserID Represents the data record ID generated for the User. UUID value (for an overview, go here) Read Only
CompanyNodeID Represents the ID of the Company Node. UUID Read Only
CompanyNodeName Represents the Name of the Company Node. String Read Only
Name Represents the Name of Meta Data Item. String Read Only
Value Represents the Value of Meta Data Item. String Read Only
CreateDate Represents the date then Meta Data Item was created. String Read Only
UpdateDate Represents the date the Meta Data Item was last updated. String Read Only

XML Example

<UserCompanyNodeMetaDataItem>
<UserID></UserID>
<CompanyNodeID></CompanyNodeID>
<CompanyNodeName></CompanyNodeName>
<Name></Name>
<Value></Value>
<CreateDate></CreateDatee>
<UpdateDate></UpdateDate>
</UserCompanyNodeMetaDataItem>

JSON Example

{"UserID":"","CompanyNodeID":"","CompanyNodeName":"","Name":"","Value":"","CreateDate":"","UpdateDate":""}

User Data Transfer Object (UserDTO)

This DTO represents User information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
UserUUID Represents the data record ID generated for the User. UUID value (for an overview, go here) Update Only
FirstName Represents the first name of a User. (String, Max Length 50) Create & Update
LastName Represents the last name of a User. (String, Max Length 50) Create & Update
MiddleName Represents the middle name of a User. (String, Max Length 50) Not Required
GotoPageAfterLogin Represents the page a user should be taken to upon successful login. SystemDesignatedDefault
Home
CourseCatalog
CollaborationTab
UsersAndOrgTab
ManageLearningTab
ReportingTab
SystemToolsTab
SiteMap
MyLearningPath
ManageContent
Not Required
PrefixName Represents the prefix name of a User. (String, Max Length 50) Not Required
SuffixName Represents the suffix name of a User. (String, Max Length 50) Not Required
Createdate_ETSUsage Represents the creation date to be assigned to a user. String, Required format of one of the following: Note: All dates are and must be in UTC. Not Required
Deletedate_ClientUsage Represents the deletion (termination, inactive) date to be assigned to a user. String, Required format of one of the following: Note: All dates are and must be in UTC. Not Required
Reassignmentdate Represents the reassignment date to be assigned to a user. String, Required format of one of the following: Note: All dates are and must be in UTC. Not Required
Status Represents the status of a User. "Active"
"Inactive"
Create & Update
UniqueID_ClientSpecified Represents the Unique ID value for a User. (String, Max Length 255) Create & Update
LoginID Represents the Login ID value for a User. (String, Max Length 50) Create & Update
SetLoginPassword Represents the Password value for a User. (String, Max Length 50) Not Required
CompanyNode_NonAdmin Represents the ID of the company node to assign the user to for their Student node mapping.

Tip: Admins can login to the LMS and edit the Node within the Organizational Hierarchy to view the UUID for the Node.
UUID value (for an overview, go here) Create & Update
CompanyNode_Admin Represents the ID of the company node to assign the user to for their Administrative node mapping.

Tip: Admins can login to the LMS and edit the Node within the Organizational Hierarchy to view the UUID for the Node.
UUID value (for an overview, go here) Create & Update
PhoneNumberDay Daytime phone number to assign to the User. (String, Max Length 20) Not Required
PhoneNumberDayExt Daytime phone number extension to assign to the User. (String, Max Length 10) Not Required
PhoneNumberEvening Evening phone number to assign to the User. (String, Max Length 20) Not Required
PhoneNumberEveningext Evening phone number extension to assign to the User. (String, Max Length 10) Not Required
EmailAddress The e-mail address to assign to the User. (String, Max Length 255) Not Required
Address1 Address Line 1 to assign to the User. (String, Max Length 320) Not Required
Address2 Address Line 2 to assign to the User. (String, Max Length 320) Not Required
City City to assign to the User. (String, Max Length 320) Not Required
State State value to assign to the User. State/Province abbreviation matching a value in the system Not Required
PostalCode The postal code to assign to the User. (String, Max Length 32) Not Required
Birthdate The birth date to assign to the User. String, Required format of one of the following: Note: All dates are and must be in UTC. Not Required
Gender The gender to assign to the User. Male
Female
Unknown
Not Required
ImportDeleteExempt An indicator telling the system if the user is exempt from being set to Inactive based on importing rules. true
false
Not Required
DisableonDeleteDate An indicator telling the system if the user is automatically set to inactive when the defined Deletedate_ClientUsage date value is reached. true
false
Not Required
Country The country to assign to the User. Country name matching a value in the system Not Required
SetSeamlessSignonKey The Login Key to assign to the User. (String, Max Length 50)
(must be unique)
Not Required
IsSeamlessSignonKeySet A value indicating whether the Seamless Signon Key has been set or not. true
false
Read Only
UserFreeFormField1Value The free form field (1) to assign to the User. (String, Max Length 500) Not Required
UserFreeFormField2Value The free form field (2) to assign to the User. (String, Max Length 500) Not Required
UserFreeFormField3Value The free form field (3) to assign to the User. (String, Max Length 500) Not Required
UserFreeFormField4Value The free form field (4) to assign to the User. (String, Max Length 500) Not Required
PermissionGroups XML or JSON Data Structure containing one or more Permission Groups to assign to the User.

XML Example:
<PermissionGroups>
<PermissionGroup>
<Name>[Permission Group Name]</Name>
</PermissionGroup>
</PermissionGroups>

JSON Example:
"PermissionGroups":[{"ID":null,"Name":"[Permission Group Name]"}]
(String) Create & Update
StudentNodes XML or JSON Data Structure containing one or more Student Nodes to associated to the User.

XML Example:
<StudentNodes>
<CompanyNodeAccess>
<NodeUniqueID>[Unique ID for the Node]</NodeUniqueID>
</CompanyNodeAccess>
</StudentNodes>

- or -

<StudentNodes>
<CompanyNodeAccess>
<CompanyNodeID>[GUID value for the Node]</CompanyNodeID>
</CompanyNodeAccess>
</StudentNodes>

JSON Example:
"StudentNodes":[{"NodeUniqueID":"[Unique ID for the Node]"}]

- or -

"StudentNodes":[{"CompanyNodeID":"[GUID value for the Node]"}]

Important Note:
When specifying a node to be associated to a user, you can specify either the NodeUniqueID -or- the CompanyNodeID.
(String) Create & Update
UserAttributes1 XML or JSON Data Structure containing one or more User Attributes - Type 1 - to associated to the User.

XML Example:
<UserAttributes1>
<UserAttribute>
<AttributeID>[GUID value for the User Attribute]</AttributeID>
<AttributeName>[Name value for the User Attribute]</AttributeName>
</UserAttribute>
</UserAttributes1>

JSON Example:
"UserAttributes1":[{"AttributeID":"[GUID value for the User Attribute]","AttributeName":"[Name value for the User Attribute]"}]

Important Notes:
When specifying an attribute to be associated to a user, you can specify either the ID -or- the Name. To clear all attributes, pass in a value of "CLEARALL".
(String) Create & Update
UserAttributes2 XML or JSON Data Structure containing one or more User Attributes - Type 2 - to associated to the User.

XML Example:
<UserAttributes1>
<UserAttribute>
<AttributeID>[GUID value for the User Attribute]</AttributeID>
<AttributeName>[Name value for the User Attribute]</AttributeName>
</UserAttribute>
</UserAttributes1>

JSON Example:
"UserAttributes1":[{"AttributeID":"[GUID value for the User Attribute]","AttributeName":"[Name value for the User Attribute]"}]

Important Notes:
When specifying an attribute to be associated to a user, you can specify either the ID -or- the Name. To clear all attributes, pass in a value of "CLEARALL".
(String) Create & Update
UserAttributes3 XML or JSON Data Structure containing one or more User Attributes - Type 3 - to associated to the User.

XML Example:
<UserAttributes1>
<UserAttribute>
<AttributeID>[GUID value for the User Attribute]</AttributeID>
<AttributeName>[Name value for the User Attribute]</AttributeName>
</UserAttribute>
</UserAttributes1>

JSON Example:
"UserAttributes1":[{"AttributeID":"[GUID value for the User Attribute]","AttributeName":"[Name value for the User Attribute]"}]

Important Notes:
When specifying an attribute to be associated to a user, you can specify either the ID -or- the Name. To clear all attributes, pass in a value of "CLEARALL".
(String) Create & Update
UserAttributes4 XML or JSON Data Structure containing one or more User Attributes - Type 4 - to associated to the User.

XML Example:
<UserAttributes1>
<UserAttribute>
<AttributeID>[GUID value for the User Attribute]</AttributeID>
<AttributeName>[Name value for the User Attribute]</AttributeName>
</UserAttribute>
</UserAttributes1>

JSON Example:
"UserAttributes1":[{"AttributeID":"[GUID value for the User Attribute]","AttributeName":"[Name value for the User Attribute]"}]

Important Notes:
When specifying an attribute to be associated to a user, you can specify either the ID -or- the Name. To clear all attributes, pass in a value of "CLEARALL".
(String) Create & Update

XML Example

<UserDTO>
<UserUUID></UserUUID>
<FirstName></FirstName>
<LastName></LastName>
<MiddleName/>
<GotoPageAfterLogin></GotoPageAfterLogin>
<PrefixName/>
<SuffixName/>
<Createdate_ClientUsage></Createdate_ClientUsage>
<Deletedate_ClientUsage/>
<Reassignmentdate></Reassignmentdate>
<Status></Status>
<UniqueID_ClientSpecified></UniqueID_ClientSpecified>
<LoginID></LoginID>
<CompanyNode_NonAdmin></CompanyNode_NonAdmin>
<CompanyNode_Admin></CompanyNode_Admin>
<PhoneNumberDay/>
<PhonenumberDayExt/>
<PhoneNumberEvening/>
<EmailAddress></EmailAddress>
<Address1/>
<Address2/>
<City/>
<State/>
<PostalCode/>
<BirthDate/>
<Gender></Gender>
<ImportDeleteExempt></ImportDeleteExempt>
<DisableonDeleteDate></DisableonDeleteDate>
<Country></Country>
<SetSeamlessSignonKey/>
<IsSeamlessSignonKeySet/>
<UserFreeFormField1Value/>
<UserFreeFormField2Value/>
<UserFreeFormField3Value/>
<UserFreeFormField4Value/>
<SetLoginPassword/>
<PermissionGroups>
<PermissionGroup>
<Name></Name>
</PermissionGroup>
</PermissionGroups>
<StudentNodes>
<CompanyNodeAccess>
<NodeUniqueID></NodeUniqueID>
<CompanyNodeID></CompanyNodeID>
</CompanyNodeAccess>
</StudentNodes>
<UserAttributes1>
<UserAttribute>
<AttributeID></AttributeID>
<AttributeName></AttributeName>
</UserAttribute>
</UserAttributes1>
<UserAttributes2>
<UserAttribute>
<AttributeID></AttributeID>
<AttributeName></AttributeName>
</UserAttribute>
</UserAttributes2>
<UserAttributes3>
<UserAttribute>
<AttributeID></AttributeID>
<AttributeName></AttributeName>
</UserAttribute>
</UserAttributes3>
<UserAttributes4>
<UserAttribute>
<AttributeID></AttributeID>
<AttributeName></AttributeName>
</UserAttribute>
</UserAttributes4>
</UserDTO>

JSON Example

{"Address1":"","Address2":"","BirthDate":"","City":"","CompanyNode_Admin":"","CompanyNode_NonAdmin":"","Country":"","Createdate_ClientUsage":"","Deletedate_ClientUsage":"","DisableonDeleteDate":,"EmailAddress":"","FirstName":"","Gender":"","GotoPageAfterLogin":"","ImportDeleteExempt":,"LastName":"","LoginID":"","MiddleName":"","PasswordHint":"","PermissionGroups":[{"ID":null,"Name":""},{"ID":null,"Name":""}],"PhoneNumberDay":"","PhoneNumberEvening":"","PhonenumberDayExt":"","Phonenumbereveningext":,"PostalCode":"","PrefixName":"","Reassignmentdate":"","SetLoginPassword":"","SetSeamlessSignonKey":"","IsSeamlessSignonKeySet":"","State":"","Status":"","SuffixName":"","UniqueID_ClientSpecified":"","UserFreeFormField1Value":"","UserFreeFormField2Value":"","UserFreeFormField3Value":"","UserFreeFormField4Value":"","UserUUID":"","StudentNodes":[{"CompanyNodeID":"","NodeUniqueID":""}],"UserAttributes1":[{"AttributeID":"","AttributeName":""}],"UserAttributes2":[{"AttributeID":"","AttributeName":""}],"UserAttributes3":[{"AttributeID":"","AttributeName":""}],"UserAttributes4":[{"AttributeID":"","AttributeName":""}]}

Course Registration Data Transfer Object (CourseRegistrationDTO)

This DTO represents Course Registration information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
CourseRegistrationId Represents the ID of the registration. UUID value (for an overview, go here) Update Only
CourseID Represents the ID of the course. UUID value (for an overview, go here) Create Only - Optional *
Note:
* If ommited on Create, CourseNumber must be specified as an alternative.
UserID Represents the data record ID generated for the User. UUID value (for an overview, go here) Read Only
UniqueID_ClientSpecified Represents the Unique ID value for a User. (String, Max Length 255) Read Only
FirstName Represents the first name of a User. (String, Max Length 50) Read Only
LastName Represents the last name of a User. (String, Max Length 50) Read Only
UserStatus Represents the status of the User. (String, Max Length 50) Read Only
EnrollDate Represents the date the course registration was made. Note: All dates are in UTC. Read Only
CompletionDate Represents the date the course registration was completed. String, Required format of one of the following: Note: All dates are and must be in UTC. Not Required
Score The score assigned to the course registration. Integer between 0 and 100. Not Required
Status The status value assigned to the course registration. NotViewed
InProgress
CompletedOrPassed
FailedtoMeetCourseRequirements
DroppedByStudent
FailedtoCompleteByDueDate
Expired
Update Only
SecondsinRegistration The total number of seconds assigned to the course registration. Integer Read Only
CourseVersion The version of the course assigned to the course registration. Integer Read Only
CourseName The name of the course assigned to the course registration. (String, Max Length 150) Read Only
CourseNumber The number of the course assigned to the course registration. (String, Max Length 150) Create Only - Optional *
Note:
* If ommited on Create, CourseID must be specified as an alternative.
Credits XML or JSON Data Structure containing one or more Credits received for completiong the Course.

XML Example:
<Credits>
<Credit>
<Name>Example Credit</Name>
<Hours>2.00</Hours>
</Credit>
</Credits>

JSON Example:
"Credits":[{"Name":"Example Credit Name","Hours":"2.00"}]
XML/JSON Read Only
CourseRegistrationModules XML or JSON Data Structure containing one or more Course Modules associated with a Course Registration.

XML Example:
<CourseRegistrationModule>
<CourseInstanceUUID>927793af-c4ed-11e3-806e-0026b9471ac1</CourseInstanceUUID>
<CourseModuleInstanceUUID>36bb37ed-65f7-42c8-87fc-7e9560300b5d</CourseModuleInstanceUUID>
<CourseModuleStatus>Completed</CourseModuleStatus>
<TotalSecondsInModule>4</TotalSecondsInModule>
<Score>0</Score>
<CourseModuleName>Factory Floor Basics</CourseModuleName>
<CourseModuleType>Scorm</CourseModuleType>
<CompletionDate>4/15/2014 10:37:20 PM</CompletionDate>
<Ordinal>1</Ordinal>
<CreateDate>4/15/2014 10:37:09 PM</CreateDate>
</CourseRegistrationModule>

JSON Example:
"Credits":[{"Name":"Example Credit Name","Hours":"2.00"}]
XML/JSON Read Only

XML Example

<CourseRegistration>
<CourseRegistrationId></CourseRegistrationId>
<CourseID></CourseID>
<UserID></UserID>
<Uniqueid_ClientSpecified></Uniqueid_ClientSpecified>
<FirstName></FirstName>
<LastName></LastName>
<EnrollDate></EnrollDate>
<CompletionDate></CompletionDate>
<Score></Score>
<Status></Status>
<SecondsinRegistration></SecondsinRegistration>
<CourseVersion></CourseVersion>
<CourseName></CourseName>
<CourseNumber></CourseNumber>
</CourseRegistration>

JSON Example

{"CompletionDate":"","CourseID":"","CourseName":"","CourseNumber":"","CourseRegistrationId":"","CourseVersion":,"EnrollDate":"","Score":,"SecondsinRegistration":,"Status":"","UserID":,"UniqueID_ClientSpecified":"","FirstName":"","LastName":"","UserStatus":""}

Course Completion Data Transfer Object (CourseCompletionDTO)

This DTO represents Course Completion information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
CourseRegistrationId Represents the ID of the registration. UUID value (for an overview, go here) Update Only
CourseID Represents the ID of the course. UUID value (for an overview, go here) Create Only - Optional *
Note:
* If ommited on Create, CourseNumber must be specified as an alternative.
UserID Represents the data record ID generated for the User. UUID value (for an overview, go here) Read Only
UniqueID_ClientSpecified Represents the Unique ID value for a User. (String, Max Length 255) Read Only
FirstName Represents the first name of a User. (String, Max Length 50) Read Only
LastName Represents the last name of a User. (String, Max Length 50) Read Only
UserStatus Represents the status of the User. (String, Max Length 50) Read Only
EnrollDate Represents the date the course registration was made. Note: All dates are in UTC. Read Only
CompletionDate Represents the date the course registration was completed. String, Required format of one of the following: Note: All dates are and must be in UTC. Not Required
Score The score assigned to the course registration. Integer between 0 and 100. Not Required
Status The status value assigned to the course registration. NotViewed
InProgress
CompletedOrPassed
FailedtoMeetCourseRequirements
DroppedByStudent
FailedtoCompleteByDueDate
Update Only
SecondsinRegistration The total number of seconds assigned to the course registration. Integer Read Only
CourseVersion The version of the course assigned to the course registration. Integer Read Only
CourseName The name of the course assigned to the course registration. (String, Max Length 150) Read Only
CourseNumber The number of the course assigned to the course registration. (String, Max Length 150) Create Only - Optional *
Note:
* If ommited on Create, CourseID must be specified as an alternative.
Credits XML or JSON Data Structure containing one or more Credits received for completiong the Course.

XML Example:
<Credits>
<Credit>
<Name>Example Credit</Name>
<Hours>2.00</Hours>
</Credit>
</Credits>

JSON Example:
"Credits":[{"Name":"Example Credit Name","Hours":"2.00"}]
XML/JSON Read Only
CourseRegistrationModules XML or JSON Data Structure containing one or more Course Modules associated with a Course Registration.

XML Example:
<CourseRegistrationModule>
<CourseInstanceUUID>927793af-c4ed-11e3-806e-0026b9471ac1</CourseInstanceUUID>
<CourseModuleInstanceUUID>36bb37ed-65f7-42c8-87fc-7e9560300b5d</CourseModuleInstanceUUID>
<CourseModuleStatus>Completed</CourseModuleStatus>
<TotalSecondsInModule>4</TotalSecondsInModule>
<Score>0</Score>
<CourseModuleName>Factory Floor Basics</CourseModuleName>
<CourseModuleType>Scorm</CourseModuleType>
<CompletionDate>4/15/2014 10:37:20 PM</CompletionDate>
<Ordinal>1</Ordinal>
<CreateDate>4/15/2014 10:37:09 PM</CreateDate>
</CourseRegistrationModule>

JSON Example:
"Credits":[{"Name":"Example Credit Name","Hours":"2.00"}]
XML/JSON Read Only

XML Example

<CourseCompletion>
<CourseRegistrationId></CourseRegistrationId>
<CourseID></CourseID>
<UserID></UserID>
<Uniqueid_ClientSpecified></Uniqueid_ClientSpecified>
<FirstName></FirstName>
<LastName></LastName>
<EnrollDate></EnrollDate>
<CompletionDate></CompletionDate>
<Score></Score>
<Status></Status>
<SecondsinRegistration></SecondsinRegistration>
<CourseVersion></CourseVersion>
<CourseName></CourseName>
<CourseNumber></CourseNumber>
</CourseCompletion>

JSON Example

{"CompletionDate":"","CourseID":"","CourseName":"","CourseNumber":"","CourseRegistrationId":"","CourseVersion":,"EnrollDate":"","Score":,"SecondsinRegistration":,"Status":"","UserID":,"UniqueID_ClientSpecified":"","FirstName":"","LastName":"","UserStatus":""}

Course List Item Data Transfer Object (CourseListItemDTO)

This DTO represents Published Courses information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
CourseUUID Represents the ID of the Course. UUID value (for an overview, go here) Read Only
CourseName The name of the Course. (String, Max Length 150) Read Only
CourseNumber The client specified number for a Course. (String, Max Length 50) Read Only
CourseVersion The numeric version number of the Course. Integer Read Only
CourseVersionType The type of course version (Standard, MasterVersion). (String, Max Length 50) Read Only

XML Example

<CourseModel>
<CourseUUID></CourseUUID>
<CourseName></CourseName>
<CourseNumber></CourseNumber>
<CourseVersion></CourseVersion>
<CourseVersionType></CourseVersionType>
</CourseModel>

JSON Example

{"CourseUUID":"","CourseName":"","CourseNumber":"","CourseVersion":,"CourseVersionType":""}

Article Data Transfer Object (ArticleDTO)

This DTO represents Article information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
ID Represents the ID of the Article. UUID value (for an overview, go here) Update Only
Title The title of the Article (String, Max Length 200) Create & Update
Content The HTML content for the article (String, unlimited length) Not Required
Note:
This field is used for JSON requests only and is escaped accordingly
ContentCData The HTML content for the article (String, unlimited length) Not Required
Note:
This CDATA element is used for XML requests only. When submitting data make sure this element adheres to the format of a CDATA XML element: <ContentCData><![CDATA[YOUR TEXT]]></ContentCData>
CategoryID Represents the CategoryID for the article UUID value (for an overview, go here) Not Required
Note:
An emply string or 00000000-0000-0000-0000-000000000000 represents a blank value.
ArticleType Enumeration that identifies the Article type as a reference or frequently asked question. Accepted values are References,FrequentlyAskedQuestions, 1, or 2. (1=References and 2=FrequentlyAskedQuestions) Create & Update
RelativeURL The relative URL to the Article. The relative URL to the Article. Readonly

XML Example

<Article>
<ID></ID>
<Title></Title>
<ContentCData><![CDATA[]]></ContentCData>
<CategoryID></CategoryID>
<ArticleType></ArticleType>
<RelativeURL></RelativeURL>
</Article>

JSON Example

{"ArticleType":"","CategoryID":"","Content":"","ID":"","RelativeURL":"","Title":""}

User Profile Field Transfer Object (UserProfileFieldDTO)

This DTO represents User Profile Field information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
UserProfileFieldId Represents the ID of the User Profile Field. UUID Read Only
FieldName Represents the name of the User Profile Field. String Read Only
FieldValue Represents the value of the User Profile Field. String Read Only
CreateDate Represents the last date the User Profile Field was updated. String, Required format of one of the following: Note: All dates are and must be in UTC. Read Only
UpdateDate Represents the date the User Profile Field was created. String, Required format of one of the following: Note: All dates are and must be in UTC. Read Only

XML Example

<UserProfileField>
<UserProfileFieldId></UserProfileFieldId>
<FieldName></FieldName>
<FieldValue></FieldValue>
<CreateDate></CreateDate>
<UpdateDate></UpdateDate>
</UserProfileField>

JSON Example

{"UserProfileFieldId":"","FieldName":"","FieldValue":"", "CreateDate":"", "UpdateDate":""}

User Credential Summary Data Transfer Object (UserCredentialSummaryDTO)

This DTO represents a Summary of User Credential information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
UserID Represents the data record ID generated for the User. UUID value (for an overview, go here) Read Only
CredentialGroupID Represents the ID of the Credential Group. UUID Read Only
CredentialGroupName Represents the name of the Credential Group. String Read Only
UserRankValue Represents the numeric rank value for the User's highest earned Credential within the Credential Group UUID Read Only
UserRankName Represents the label/name of the User's highest earned Credential within the Credential Group String Read Only

XML Example

<UserCredentialSummary>
<UserID></UserID>
<CredentialGroupID></CredentialGroupID>
<CredentialGroupName></CredentialGroupName>
<UserRankValue></UserRankValue>
<UserRankName></UserRankName>
</UserCredentialSummary>

JSON Example

{"UserID":"","CredentialGroupID":"","CredentialGroupName":"","UserRankValue":"","UserRankName":""}

User Credential Data Transfer Object (UserCredentialDTO)

This DTO represents User Credential information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
UserID Represents the data record ID generated for the User. UUID value (for an overview, go here) Read Only
CredentialGroupID Represents the ID of the Credential Group. UUID Read Only
CredentialGroupName Represents the name of the Credential Group. String Read Only
CredentialID Represents the ID of the Credential. UUID Read Only
CredentialName Represents the name of the Credential. String Read Only
DateAwarded Represents the date the Credential was awarded. DateTime Note: All dates are in UTC. Read Only
PointsOnAwardDate Represents the number of points awarded. Integer Read Only
ExpirationDate Represents the date the Credential expires. DateTime
Note: All dates are in UTC.
Read Only

XML Example

<UserCredential>
<UserID></UserID>
<CredentialGroupID></CredentialGroupID>
<CredentialGroupName></CredentialGroupName>
<CredentialID></CredentialID>
<CredentialName></CredentialName>
<DateAwarded></DateAwarded>
<PointsOnAwardDate></PointsOnAwardDate>
<ExpirationDate></ExpirationDate>
</UserCredential>

JSON Example

{"UserID":"","CredentialGroupID":"","CredentialGroupName":"","CredentialID":"","CredentialName":"","DateAwarded":,"PointsOnAwardDate":,"ExpirationDate":""}

User Credential Submissions Data Transfer Object (UserCredentialSubmissionsDTO)

This DTO represents User Credential Submissions information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
AcademicDegreeID Represents the Academic Degree ID generated for the User. UUID value (for an overview, go here) Read Only
Award Represents the Award. String Read Only
AreaOfStudy Represents the Area Of Study. String Read Only
Status Represents verification status of the Award. Verified"
"Unverified"
Read Only
HighestDegree Represents Highest Degree awarded to the User. String Read Only

XML Example

<UserCredentialSubmissions>
<CredentialSubmissions>
<UserCredentialSubmission>
<AcademicDegreeID></AcademicDegreeID>
<Award></Award>
<AreaOfStudy></AreaOfStudy>
<Status></Status>
</UserCredentialSubmission>
</CredentialSubmissions>
<HighestDegree> </HighestDegree>
</UserCredentialSubmissions>

JSON Example

"UserCredentialSubmissions":{"CredentialSubmission":[{"AcademicDegreeID":"","Award":"","CredentialGroupName":"","AreaOfStudy":"","Status":""}],"HighestDegree":""}

User Work Experience Data Transfer Object (UserWorkExperienceDTO)

This DTO represents User Work Experience information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
UserID Represents the data record ID generated for the User. UUID value (for an overview, go here) Read Only
WorkExperienceID Represents the ID of the Work Experience. UUID Read Only
WorkExperienceName Represents the name of the Work Experience. String Read Only
ExperienceMetric Represents the metric for the Experience value. String - (Month or Year) Read Only
Experience Represents the recorded Experience value. Decimal Read Only

XML Example

<UserWorkExperience>
<UserID></UserID>
<WorkExperienceID></WorkExperienceID>
<WorkExperienceName></WorkExperienceName>
<ExperienceMetric></ExperienceMetric>
<Experience></Experience>
</UserWorkExperience>

JSON Example

{"UserID":"","WorkExperienceID":"","WorkExperienceName":"","ExperienceMetric":"","Experience":}

User Years Work Experience Data Transfer Object (WorkYearsExperienceDTO)

This DTO represents User Years of Work Experience information.

Data Structure

Field Name Description Data Type & Accepted Values Required On
UserYearsWorkExperience Represents the User Years of Work Experience. String Read Only

XML Example

<UserYearsWorkExperience> </UserYearsWorkExperience>

JSON Example

{"UserYearsWorkExperience":""}

Instructor Profile Data Transfer Object (InstructorProfileDTO)

This DTO represents a summary of base User information.

Please Note:
This DTO is for retrieval only and is not used in any POST methods.

Data Structure

Field Name Description Data Type
InstructorProfileID Represents the data record ID generated for the Instructor Profile. UUID value (for an overview, go here)
UserUUID Represents the data record ID generated for the User. UUID value (for an overview, go here)
UniqueID_ClientSpecified Represents the Unique ID value for a User. (String, Max Length 255)
FirstName Represents the first name of a User. (String, Max Length 50)
LastName Represents the last name of a User. (String, Max Length 50)
EmailAddress Represents the E-mail Address for a User. (String, Max Length 255)
HasEvents Represents whether or not the Instructor is associated with any Scheduled Events.
(see the EventCutoffDate parameter for additional informatiotn)
Boolean

XML Example

<InstructorProfile>
<InstructorProfileID></InstructorProfileID>
<Uniqueid_ClientSpecified></Uniqueid_ClientSpecified>
<UserUUID></UserUUID>
<FirstName></FirstName>
<LastName></LastName>
<EmailAddress></EmailAddress>
<HasEvents></HasEvents>
</InstructorProfile>

JSON Example

[{"APIRecordStatus":0,"APIRecordStatusMessage":null,"PersistAction":0,"EmailAddress":"","FirstName":"","HasEvents":false,"InstructorProfileID":"","LastName":"","UniqueID_ClientSpecified":"","UserUUID":""}]


Login Credentials DTO (LoginCredentialsDTO)

This DTO is used to pass login information.

Data Structure

Field Name Description Data Type
Login Login (String)
Password Password (String)

XML Example

<LoginCredentials>
<Login></Login>
<Password></Password>
</LoginCredentials>

JSON Example

{"Login":"","Password":""}


Authentication Data Transfer Object (AuthenticationDTO)

This DTO represents user authentication information

Please Note:
This DTO is for retrieval only and is not used in any POST methods.

Data Structure

Field Name Description Data Type
FirstName Represents the first name of a User. (String, Max Length 50)
LastName Represents the last name of a User. (String, Max Length 50)
UniqueID Represents the Unique ID value for a User. (String, Max Length 64)
userapitoken Represents the userapitoken used in API calls String

XML Example

<Authentication>
<FirstName></FirstName>
<LastName></LastName>
<UniqueID></UniqueID>
<userapitoken></userapitoken>
</Authentication>

JSON Example

{"FirstName":"","LastName":"","Status":"","UniqueID":"","userapitoken":""}


ExternalAppModuleDTO

This DTO represents data associated with External App Module registrations.

Data Structure

Field Name Description Data Type & Accepted Values Required On
CourseRegistrationID Represents the data record ID generated for the Registration. UUID value (for an overview, go here) Read Only
CourseRegistrationModuleID Represents the data record ID generated for the Registration Module. UUID Read Only
CourseModuleID Represents the data record ID generated for the Module. UUID Read Only
CourseModuleName Represents the Name of the Module. String Read Only
CourseModuleType Represents the type of the Module. String Read Only
CourseModuleStatus Status of the module. Acceptable values are NotYetViewed, InProgress, Completed and Failed String Update
Score Value between 0 and 100 Int Update
TotalSecondsInModule Value greater than 0 that course developers can use to track the time spent in the content Int Update
SuspendData Value course developers can use save data that they may want to use between sessions of viewing the content. String Update
CompletionDate String, Required format of one of the following: Note: All dates are and must be in UTC. String Update

XML Example

<ExternalAppData>
<CourseRegistrationID></CourseRegistrationID>
<CourseRegistrationModuleID></CourseRegistrationModuleID>
<CourseModuleID></CourseModuleID>
<CourseModuleName></CourseModuleName>
<CourseModuleType></CourseModuleType>
<CourseModuleStatus></CourseModuleStatus>
<Score></Score>
<TotalSecondsInModule></TotalSecondsInModule>
<SuspendData></SuspendData>
<CompletionDate></CompletionDate>
</ExternalAppData>

JSON Example

{"CompletionDate":"","CourseModuleID":"","CourseModuleName":"","CourseModuleStatus":"","CourseModuleType":"","CourseRegistrationID":"","CourseRegistrationModuleID":"","Ordinal":,"Score":0,"SuspendData":"","TotalSecondsInModule":0}