Introduction
This article describes the various inputs and outputs available for the endpoint:
POST /learn/v1/lo/{id}/track
The inputs and outputs vary depending on the type of the training material identified by its ID in the API call.
Supplemental Information
Presented here is a list of possible inputs and outputs, sorted by training material type.
Assignments
Input
Parameters
type(string, required)- The type of tracking. Possible values are:
submissioncomment_reply
submission(object, required)- The data payload for the current tracking
id(integer, optional)- The reply identifier. This parameter is required only when
typeiscomment_reply. learner_reply(string, optional)- The text of the reply. This parameter is required only when
typeiscomment_reply. name(string, optional)- The title of the submitted assignment. Required only when
typeissubmission. description(string, optional)- An optional description of the submitted assignment
files(array, optional)- An array of uploaded S3 file URLs as part of the submission. Required only when
typeissubmission. url(string, required)- The URL of the file
video_url(string, optional)- The URL (for example, YouTube) submitted in the assignment. Required only when
typeissubmission.
Structure
{
track: {
type: (string, required),
submission: (object, required) {
id: (integer, required),
learner_reply: (string, required),
name: (string, required),
description: (string, optional),
files: (array, optional) [{
url: (string, required)
}],
video_url: (string, optional)
}
}
}
Output
Values
id(integer, optional)- The internal ID of the submitted item. Returned only when
typeissubmission.
Structure
{
acknowledge: {
id: (integer, optional)
}
}
File
Input
None
Output
Values
url(string, required)- The URL of the S3 file to download
Structure
{
acknowledge: {
url: (string, required)
}
}
Googledrive
Input
None
Output
Values
url(string, required)- The URL of the Google Drive file to play
Structure
{
acknowledge: {
url: (string, required)
}
}
Htmlpage
Input
None
Output
Values
content(string, required)- The HTML content to display
Structure
{
acknowledge: {
content: (string, required)
}
}
Quiz
Input
Parameters
action(string, required)- The action to perform on this quiz. Possible values are:
startcontinuenextprevsubmit_partialsubmittime_elapsed_submittime_enabled_force_exitreview
questions(object, optional)- An object containing the quiz answers to submit, indexed by question ID
[id: (string)](object, required - the ID parameter itself is a string of the question ID)-
user_status(object, required)-
answer(integer, optional)- The answer to this question. Required for question of type:
choiceextended_texttext_entryuploadinline_choice
answers(object, optional)- An object containing a list of answers. Required for question of type:
choice_multiplefill_in_the_blankassociate
[id: (string)](boolean | string | number, optional - the ID parameter itself is a string)- The selected answers to this question, indexed by answer ID. Is boolean if the question is
typechoice_multiple(for example,true = selected). Is string if the question istypefill_in_the_blank(for example,answers: {"[answ 1]": "USA", "[answ 2]": "IT"}). Is number if the question istypeassociate(for example,answers: {"12": 1, "13": 2, "14": 3}).
Structure
{
track: {
action: (string, required),
questions: (object, required) {
[id: (string, required)]: (object, required){
user_status: (object, required) {
answer: (string, optional)
answers: {
[id: (string, required)]: (boolean / string / number)
}
}
}
}
}
}
Output
Values
questions(array, required)- An array of questions for the requested page
question(string, required)- The ID of the question
question_index(integer, required)- The position of the question in the page
type(string, required)- The type of question. Possible values are:
associatechoicechoice_multipleextended_textfill_in_the_blankinline_choicetext_entrytitleupload
title(string, optional)- The question title to display
category(string, optional)- The question category
time_limit(integer, optional)- The time limit per question. Used only if time options for the test is
per_question. additional_info(object, optional)- Additional information used by specific question types
answers(array, optional)- Possible answers to the given question. Used only for questions where type is:
choicechoice_multipleinline_choiceassociate
id_answer(number, required)- The answer ID
text(string, required)- The answer title
associations(array, optional)- Possible association answers. Used only for questions where
typeisassociate.id(number, required)- The ID of the associated answer
title(string, required)- The title of the associated answer
user_status(object, optional)- An object containing the answers provided by the user so far
answer(string, optional)- The answer to this question. Required only for questions where type is:
choiceextended_texttext_entryuploadinline_choice
answers(object, optional)- An object containing the answers to this question. Required only for questions where
typeis:choice_multiplefill_in_the_blankassociate
[id: (string)](boolean | string | number, required - the ID itself is a string of the answer ID)- The selected answers to this question, indexed by answer ID. Returns a boolean value when the question
typeischoice_multiple. Returns a string when the questiontypeisfill_in_the_blank. Returns a number when the questiontypeisassociate.
page_number(integer, optional)- The page number, returned only if there is a previous or next page.
user_status(object, optional)- The user status information for the current test
status(string, required)- The current quiz status for this user. Possible values are:
not_submittedsubmitted
score(decimal, optional)- The current calculated score for the user
evaluation_status(string, optional)- If
statusissubmitted, this contains the evaluation status. Possible values are:waiting_evaluationevaluated
completion_status(string, required)- The completion status. Possible values are:
completedpassedfailedattempted
suspension_time(integer, optional)- This property sets how many minutes the user should wait before the test is unsuspended. If this value is set, the test is currently suspended.
time_consumed(string, optional)- Tracks the amount of time consumed by the user. Only used if
time_optionisper_test. attempts_consumed(integer, optional)- Tracks the number of attempts consumed by the user. Only used if
max_attemptsis not0. feedback_message(string, optional)- An optional message that depends on the actual user score. Can be displayed if the quiz is in the status:
suspendedretakablemax_attempts_reached
score_per_category(array, optional)- An optional array containing the calculated scores divided by category
category_name(string, required)- The name of the category
questions_count(integer, required)- The number of questions inside this category
score(decimal, required)- The calculated score for this category
total_score(decimal, required)- The total score
questions_id(string[], required)- An array of question IDs for this category
average_user_score(decimal, optional)- The average score of other users who have already completed the test
show_results(boolean, required)- Returns
TRUEif the results should be displayed, otherwise returnsFALSE
Structure
{
acknowledge: {
questions: [{
question: (string, required),
question_index: (integer, required),
type: (string, required),
title: (string, optional),
category: (string, optional),
time_limit: (integer, optional),
additional_info: (object, optional) {
answers: (array, optional) [{
id_answer: (number, required),
text: (string, required)
}],
associations: (array, optional) [{
id: (number, required),
title: (string, required)
}],
},
user_status: (object, optional) {
answer: (string, optional)
answers: (object, optional) {
[id: (string, required)]: (boolean / string / number, required)
}
}
}],
page_number: (integer, optional),
user_status: (object, optional) {
status: (string, required),
score: (decimal, required),
evaluation_status: (string, optional),
completion_status: (string, required),
suspension_time: (integer, optional),
time_consumed: (string, optional),
attempts_consumed: (integer, optional),
feedback_message: (string, optional),
score_per_category: (array, optional) [{
category_name: (string, required),
questions_count: (integer, required),
score: (decimal, required),
total_score: (decimal, required),
questions_id: (string[], required)
}],
average_user_score: (decimal, optional),
show_results: (boolean, required)
}
}
}
Slides Converter
Input
Parameters
bookmark(integer, required)- The last slide number played by the learner
Structure
{
track: {
bookmark: (integer, required)
}
}
Output
None
Survey
Input
Parameters
submitted(boolean, optional)- Submit the poll as completed
questions(object, optional)- A list of question ID - answer pairs
[id: string](object, required)- The ID of the question for which the answer is given
user_status(object, required)- The user answer to the question
answer(string, optional)- The answer to the question. Required only if type is:
choiceinline_choiceextended_text
answers(string[], optional)- The answers to the question. Required only if type is:
likert_scalechoice_multiple
Structure
{
track: {
submitted: (boolean, optional),
questions: (object, optional) {
[id: string]: (object, required) {
user_status: (object, required) {
answer: (string, optional),
answers: (string[], optional)
}
}
}
}
}
Output
Values
is_completed(boolean, required)- Returns
TRUEif the question is completed, otherwise returnsFALSE
Structure
{
acknowledge: {
is_completed: (boolean, required)
}
}
Video
Input
Parameters
bookmark(integer, required)- The video offset reached by the user
complete(boolean, optional)- Set to
TRUEif the video is completed
Structure
{
track: {
bookmark: (integer, required),
complete: (boolean, optional)
}
}
Output
None