Download OpenAPI specification:Download
We designed the Domoscio API in a Restful way, so that your user experience is simple and straightforward.
You will find in this documentation all the information necessary to interact with the API.
To keep in touch with the latest developments, check the Changelog just here!
The workflow to authentify is based on Oauth2 protocol. The AuthorizationToken is given to the user when he starts working with the Domoscio API. This token must remain secret. To have access to Domoscio functionalities the user should follow these steps:
The AuthorizationToken should be used inside the Header of the request when calling the API for the first time & when the RefreshToken expires:
Authorization: Bearer < AuthorizationToken >
Inside the response Header, the AccessToken and RefreshToken will be given:
AccessToken: < AccessToken >
RefreshToken: < RefreshToken >
The RefreshToken should now be used in the header of the API request with the AccessToken. Here is an example on how to retrieve the AccessToken & RefreshToken:

Domoscio API uses conventional HTTP response codes to indicate the success or failure of an API request. In general:
| HTTP Status Code | Description |
| 200 - OK | Everything worked as expected. |
| 400 - Bad Request | The request was unacceptable, often due to missing a required parameter. |
| 401 - Unauthorized | No valid Authentication Token provided. |
| 404 - Not Found | The requested resource doesn't exist. |
| 422 - Unprocessable Entity | The parameters were valid but the request failed, often due to already existing Objects with the input parameters. |
| 500, 502, 503, 504 - Server Errors | Something went wrong on Domoscio API's end. Please contact the Domoscio support. |
A Content is any learning or evaluation resource. It can be a video, some text, a question, a picture, and so on. It is related to specific KnowledgeNode object.
Create contents with payload parameters
| uid required | string UID of the content. |
| name | string Name of the content. |
| content_url | string Url of the content. |
| content_sources | object (Content_sources) Specify different content_sources (URL) for different student_groups (ID/UID). |
| knowledge_node_id | integer Id of the Knowledge Node linked to the content. |
| difficulty | number <float> Difficulty of the content in the scope of the Knowledge Node specified. |
| type | string Type of the content that can be "Evaluation", "Learning" or "Action". Evaluation contents represent questions to test the student. Learning contents represent texts, videos and so on. Action contents represent challenges that the student can fulfill in real life. |
| qti | string Based on QTI references for interoperability. Represent the .xml of the content to display. Please ask us to provide you with examples for each content types if you want to use this feature. |
{- "uid": "content_uid",
- "name": "Question 3 - Equations",
- "knowledge_node_id": 1,
- "difficulty": 3,
- "type": "Evaluation",
- "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n"
}{- "id": 45,
- "uid": "uid_object",
- "type": "Evaluation",
- "name": "Question 3 - Equations",
- "archived": true,
- "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}Get contents with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
string or Array of strings (GetName) Fetch the object(s) with name. | |
| archived | boolean (GetArchived) Fetch the object(s) that are archived or not. |
| type | string Type of the content that can be "Evaluation", "Learning" or "Action". Evaluation contents represent questions to test the student. Learning contents represent texts, videos and so on. Action contents represent challenges that the student can fulfill in real life. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "uid": "content_uid"
}[- {
- "id": 45,
- "uid": "uid_object",
- "type": "Evaluation",
- "name": "Question 3 - Equations",
- "archived": true,
- "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}
]Get a specific Content
required | integer or string Content ID or UID |
{- "id": 45,
- "uid": "uid_object",
- "type": "Evaluation",
- "name": "Question 3 - Equations",
- "archived": true,
- "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}Update a Content with payload parameters
required | integer or string Content ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| uid | string (Uid) Object UID. |
| name | string (Name) Object name. |
| content_url | string Url of the Content. |
| content_sources | object (Content_sources) Specify different content_sources (URL) for different student_groups (ID/UID). |
| qti | string Based on QTI references for interoperability. Represent the .xml of the content to display. Please ask us to provide you with examples for each content types if you want to use this feature. |
{- "key_type": "uid",
- "uid": "string",
- "name": "string",
- "content_url": "string",
- "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n"
}{- "id": 45,
- "uid": "uid_object",
- "type": "Evaluation",
- "name": "Question 3 - Equations",
- "archived": true,
- "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}Archive or Unarchive Contents with payload parameters. Archived Contents won't be accessible in Adaptive and Memorize Objectives but statistics on the Content will still be available.
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| status required | boolean (Status) If set to true it will archive the Object, if set to false it will unarchive the Object. |
{- "id": 45,
- "status": true
}trueA KnowledgeGraph (KG) is the first object to instantiate while setting up your content on our API. It is the top level of aggregation for knowledge nodes and edges. You can use it to describe your course, a book or even your whole knowledge map.
Create KnowledgeGraphs with payload parameters
| name | string (Name) Object name. |
| uid | string (Uid) Object UID. |
{- "name": "Corporate Finance",
- "uid": "fin101"
}{- "id": 45,
- "name": "string",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "uid": "string"
}Get KnowledgeGraphs with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
string or Array of strings (GetName) Fetch the object(s) with name. | |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 45,
- "name": "Corporate Finance",
- "created_at": "2020-04-06T11:33:34.756Z",
- "updated_at": "2020-04-06T11:33:34.883Z",
- "uid": "fin101"
}, - {
- "id": 46,
- "name": "Marketing",
- "created_at": "2020-04-06T11:33:56.814Z",
- "updated_at": "2020-04-06T11:33:56.865Z",
- "uid": "fin102"
}, - {
- "id": 47,
- "name": "Business Administration",
- "created_at": "2020-04-06T11:34:06.274Z",
- "updated_at": "2020-04-06T11:34:06.297Z",
- "uid": "fin103"
}
]Get a specific knowledge graph
| id required | integer <int64> Knowledge Graph ID |
{- "id": 45,
- "name": "Corporate Finance",
- "uid": "fin101",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}Update a knowledge graph
| id required | integer <int64> Knowledge Graph ID |
| name | string (Name) Object name. |
| uid | string (Uid) Object UID. |
{- "name": "No more Corporate Finance",
- "uid": "fin101"
}{- "id": 45,
- "name": "string",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "uid": "uid_object"
}A KnowlegeGraphNode (KGN) represents the relation between a specific KnowledgeNode and a KnowledgeGraph. A KnowledgeGraph can be linked to multiple KnowledgeNodes as a KnowledgeNode can be linked to multiple KnowledgeGraphs.
Create a KnowledgeGraphNode object
| knowledge_graph_id required | integer (Knowledge_graph_id_required) Object related to a specific KnowledgeGraph ID, required only if no other knowledge_graph parameter in input. |
| knowledge_graph_uid required | string (Knowledge_graph_uid_required) Object related to a specific KnowledgeGraph ID, required only if no other knowledge_graph parameter in input. |
| knowledge_node_id required | integer Object related to a specific KnowledgeNode ID, required only if no other knowledge_node parameter in input. |
| knowledge_node_uid required | string Object related to a specific KnowledgeNode UID, required only if no other knowledge_node parameter in input. |
{- "knowledge_graph_id": 45,
- "knowledge_node_id": 64
}{- "id": 0,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "knowledge_graph_id": 0,
- "knowledge_node_id": 0
}Get KnowledgeGraphNodes with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| knowledge_graph_ids | Array of arrays Object related to a set of KnowledgeGraph IDs. |
| knowledge_graph_uids | Array of arrays Object related to a set of KnowledgeGraph UIDs. |
| knowledge_node_ids | Array of arrays Object related to a set of KnowledgeNode IDs. |
| knowledge_node_uids | Array of arrays Object related to a set of KnowledgeNode UIDs. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "created_at": "2020-04-07T09:33:21.171Z",
- "updated_at": "2020-04-07T09:33:21.171Z",
- "knowledge_graph_id": 112,
- "knowledge_node_id": 899
}, - {
- "id": 2,
- "created_at": "2020-04-07T09:33:21.171Z",
- "updated_at": "2020-04-07T09:33:21.171Z",
- "knowledge_graph_id": 112,
- "knowledge_node_id": 890
}
]Get a specific KnowledgeGraphNode with ID of the object
| id required | integer KnowledgeGraphNode ID |
{- "id": 1,
- "created_at": "2020-04-07T09:52:09.142Z",
- "updated_at": "2020-04-07T09:52:09.142Z",
- "knowledge_graph_id": 45,
- "knowledge_node_id": 64
}Update a KnowledgeGraphNode
required | integer or string Knowledge Node ID |
| knowledge_graph_id | integer (Knowledge_graph_id) Object related to a specific KnowledgeGraph ID. |
| knowledge_node_id | integer (Knowledge_node_id) Object related to a specific KnowledgeNode |
{- "knowledge_graph_id": 0,
- "knowledge_node_id": 0
}{- "id": 0,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "knowledge_graph_id": 0,
- "knowledge_node_id": 0
}A KnowledgeNode (KN) is the second object to instantiate while setting up your content on our API. It is the central model of the application; it can be linked to multiple KnowledgeGraphs. You can use it to describe your content architecture, i.e skills, knowledges, know-hows, etc.
Create a KnowledgeNode object
| name | string (Name) Object name. |
| uid required | string (Uid) Object UID. |
| knowledge_graph_id | integer Object related to a set of KnowledgeGraph ID. It will create automatically the KnowledgeGraphNode that correspond to this association. |
| knowledge_graph_uid | String Object related to a set of KnowledgeGraph UID. It will create automatically the KnowledgeGraphNode that correspond to this association. |
| knowledge_graph_ids | Array Object related to a set of KnowledgeGraph IDs. It will create automatically the KnowledgeGraphNodes that correspond to the associations. |
| knowledge_graph_uids | Array Object related to a set of KnowledgeGraph UIDs. It will create automatically the KnowledgeGraphNodes that correspond to the associations. |
| description | string (Description) Object description |
| mean | number (Mean) Default: 60 Object's mean |
| standard_deviation | number (Standard_deviation) Default: 15 Object's standarddeviation |
{- "name": "Financial Assets",
- "uid": "fa",
- "knowledge_graph_id": 45
}{- "id": 0,
- "knowledge_graph_id": 0,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "name": "string",
- "uid": "string",
- "difficulty": 1,
- "description": "string"
}Get KnowledgeNodes with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| knowledge_graph_id | integer (Knowledge_graph_id) Object related to a specific KnowledgeGraph ID. |
| knowledge_graph_uid | string (Knowledge_graph_uid) Object related to a specific KnowledgeGraph UID. |
string or Array of strings (GetName) Fetch the object(s) with name. | |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "knowledge_graph_id": 45,
- "created_at": "2020-04-07T09:33:21.171Z",
- "updated_at": "2020-04-07T09:33:21.171Z",
- "name": "Financial Assets",
- "uid": "fa",
- "difficulty": 1,
- "description": null
}, - {
- "id": 2,
- "knowledge_graph_id": 45,
- "created_at": "2020-04-07T09:52:09.142Z",
- "updated_at": "2020-04-07T09:52:09.142Z",
- "name": "Financial Assets 2",
- "uid": "fa2",
- "difficulty": 1,
- "description": null
}
]Get a specific KnowledgeNode with ID or UID of the object
required | integer or string KnowledgeNode ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "key_type": "uid"
}{- "id": 2,
- "knowledge_graph_id": 45,
- "created_at": "2020-04-07T09:52:09.142Z",
- "updated_at": "2020-04-07T09:52:09.142Z",
- "name": "Financial Assets 2",
- "uid": "fa2",
- "difficulty": 1,
- "description": null
}Update a KnowledgeNode
required | integer or string Knowledge Node ID or UID |
| name | string (Name) Object name. |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| knowledge_graph_id | integer (Knowledge_graph_id) Object related to a specific KnowledgeGraph ID. |
| knowledge_graph_uid | string (Knowledge_graph_uid) Object related to a specific KnowledgeGraph UID. |
| description | string (Description) Object description |
| mean | number (Mean) Default: 60 Object's mean |
| standard_deviation | number (Standard_deviation) Default: 15 Object's standarddeviation |
{- "name": "No more Financial Assets"
}{- "id": 0,
- "knowledge_graph_id": 0,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "name": "string",
- "uid": "string",
- "difficulty": 1,
- "description": "string"
}A KnowledgeNodeContent (KNC) represents the relation between a specific Content and a KnowledgeNode object, it encapsulates several properties of the Content, like the difficulty and the importance degree, relative to the KnowledgeNode. Some will be computed based on the data gathered but some expect some initialization.
Create KnowledgeNodeContents with payload parameters
| knowledge_node_id required | integer (Knowledge_graph_id_required) Object related to a specific KnowledgeGraph ID, required only if no other knowledge_graph parameter in input. |
| knowledge_node_uid | string (Knowledge_graph_uid_required) Object related to a specific KnowledgeGraph ID, required only if no other knowledge_graph parameter in input. |
| content_id required | integer (Content_id_required) Object related to a specific Content ID, required only if no content_uid. |
| content_uid | string (Content_uid_required) Object related to a specific Content UID, required only if no content_id. |
| difficulty | number <float> Default: 0 Difficulty of the content for this specific knowledge node |
{- "knowledge_node_id": 0,
- "knowledge_node_uid": "string",
- "content_id": 0,
- "content_uid": "string",
- "difficulty": 3
}{- "id": 45,
- "knowledge_node_id": 0,
- "content_id": 0,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "difficulty": 3,
- "content": {
- "id": 2005,
- "name": "Question 1 - Equations",
- "uid": "content_2005_uid"
}
}Get Knowledge Node Contents with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| knowledge_node_id | integer (Knowledge_graph_id) Object related to a specific KnowledgeGraph ID. |
| knowledge_node_uid | string (Knowledge_graph_uid) Object related to a specific KnowledgeGraph UID. |
| content_id | integer (Content_id) Object related to a specific Content |
| content_uid | string (Content_uid) Object related to a specific Content |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 45,
- "knowledge_node_id": 0,
- "content_id": 0,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "difficulty": 3,
- "content": {
- "id": 2005,
- "name": "Question 1 - Equations",
- "uid": "content_2005_uid"
}
}
]Get a specific KnowledgeNodeContent
| id required | integer KnowledgeNodeContent ID |
{- "id": 45,
- "knowledge_node_id": 0,
- "content_id": 0,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "difficulty": 3,
- "content": {
- "id": 2005,
- "name": "Question 1 - Equations",
- "uid": "content_2005_uid"
}
}Update a KnowledgeNodeContent with payload parameters
| id required | integer KnowledgeNodeContent ID |
| difficulty | number <float> Default: 0 Difficulty of the Content for this specific KnowledgeNode. |
{- "difficulty": 3
}{- "id": 45,
- "knowledge_node_id": 0,
- "content_id": 0,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "difficulty": 3,
- "content": {
- "id": 2005,
- "name": "Question 1 - Equations",
- "uid": "content_2005_uid"
}
}Tag object represents any type of metadata that you may add to any existing object. This object contains the semantical information to tag. You can use Tagging objects to actually "tag" these "taggable" existing object.
As a convenience, you can gather a specific set of Tags into a TagSet object. Moreover, it lets you organize a hierarchical level of Tag objects. It can contain as many Tag and TagEdge objects as desired.
Create a TagSet object
| name | string (Name) Object name. |
| uid required | string (Uid) Object UID. |
| user_modelisation | boolean (User_modelisation) Default: false True if this tag set is used for user modelisation. |
{- "name": "Evaluation",
- "uid": "eval"
}{- "id": 4,
- "name": "Evaluation",
- "created_at": "2020-04-15T08:50:53.193Z",
- "updated_at": "2020-04-15T08:50:53.193Z",
- "uid": "eval",
- "user_modelisation": false
}Get TagSets with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| name | string (Name) Object name. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "name": "Nature",
- "created_at": "2020-04-05T13:13:40.224Z",
- "updated_at": "2020-04-05T13:13:40.224Z",
- "uid": "Nature_of_contents",
- "user_modelisation": false
}, - {
- "id": 2,
- "name": "Cost",
- "created_at": "2020-04-05T13:13:40.281Z",
- "updated_at": "2020-04-05T13:13:40.281Z",
- "uid": "Cost",
- "user_modelisation": false
}, - {
- "id": 3,
- "name": "filter_allowed",
- "created_at": "2020-04-05T13:13:40.295Z",
- "updated_at": "2020-04-05T13:13:40.295Z",
- "uid": "filter_allowed",
- "user_modelisation": false
}, - {
- "id": 4,
- "name": "Evaluation",
- "created_at": "2020-04-15T08:50:53.193Z",
- "updated_at": "2020-04-15T08:50:53.193Z",
- "uid": "eval",
- "user_modelisation": false
}
]Get a specific Tagset with ID or UID
required | integer or string Example: 4 TagSet ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "key_type": "uid"
}{- "id": 4,
- "name": "Evaluation",
- "created_at": "2020-04-15T08:50:53.193Z",
- "updated_at": "2020-04-15T08:50:53.193Z",
- "uid": "eval",
- "user_modelisation": false
}Update a Tagset
required | integer or string Example: 4 TagSet ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| name | string (Name) Object name. |
{- "name": "New Evaluation"
}{- "id": 4,
- "name": "New Evaluation",
- "created_at": "2020-04-15T08:01:22.715Z",
- "updated_at": "2020-04-15T09:13:14.588Z",
- "uid": "tagset1",
- "user_modelisation": true
}The Tagging object represents a logical link between a Taggable object and a Tag. Taggable object types: KnowledgeGraph, KnowledgeNode, KnowledgeEdge, KnowledgeNodeContent, Content, Objective, Student.
Create a Tagging object
| tag_id required | integer (Tag_id_required) The Tag ID this Tagging object belongs to, required if no tag_uid |
| tag_uid required | string (Tag_uid_required) The Tag UID this Tagging object belongs to, required if no tag_id |
| taggable_id required | integer (Taggable_id_required) The Taggable Object ID this Tagging object belongs to, required if no taggable_uid |
| taggable_uid required | integer (Taggable_uid_required) The Taggable Object UID this Tagging object belongs to, required if no taggable_id |
| taggable_type required | string (Taggable_type) Enum: "KnowledgeGraph" "KnowledgeNode" "KnowledgeEdge" "KnowledgeNodeContent" "Content" "Objective" "Student" The Taggable Object Type this Tagging object belongs to. |
| strength | number <float> (Strength) Relationship Strength between the object and the tag |
{- "tag_id": 1,
- "taggable_id": 2,
- "taggable_type": "KnowledgeNode"
}{- "id": 3,
- "tag_id": 1,
- "taggable_id": 2,
- "taggable_type": "KnowledgeNode",
- "created_at": "2020-04-15T11:53:46.391Z",
- "updated_at": "2020-04-15T11:53:46.391Z",
- "strength": null
}Get Taggings with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| tag_id | integer (Tag_id) The Tag ID this Tagging object belongs to |
| tag_uid | string (Tag_uid) The Tag UID this Tagging object belongs to |
| taggable_id | integer (Taggable_id) The Taggable Object ID this Tagging object belongs to |
| content_uid | string (Content_uid) Object related to a specific Content |
| taggable_type | string (Taggable_type) Enum: "KnowledgeGraph" "KnowledgeNode" "KnowledgeEdge" "KnowledgeNodeContent" "Content" "Objective" "Student" The Taggable Object Type this Tagging object belongs to. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "tag_id": 1,
- "taggable_id": 1,
- "taggable_type": "Content",
- "created_at": "2020-04-14T12:09:54.159Z",
- "updated_at": "2020-04-14T12:09:54.159Z",
- "strength": null
}, - {
- "id": 2,
- "tag_id": 1,
- "taggable_id": 2,
- "taggable_type": "Content",
- "created_at": "2020-04-14T12:10:05.415Z",
- "updated_at": "2020-04-14T12:10:05.415Z",
- "strength": null
}, - {
- "id": 3,
- "tag_id": 1,
- "taggable_id": 2,
- "taggable_type": "KnowledgeNode",
- "created_at": "2020-04-15T11:53:46.391Z",
- "updated_at": "2020-04-15T11:53:46.391Z",
- "strength": null
}
]Get a specific Tagging.
| id required | integer <int64> Example: 1 Tagging ID |
{- "id": 1,
- "tag_id": 1,
- "taggable_id": 1,
- "taggable_type": "Content",
- "created_at": "2020-04-14T12:09:54.159Z",
- "updated_at": "2020-04-14T12:09:54.159Z",
- "strength": null
}A LearningProgram can be used to group Objectives together and orchestrate them through starting strategies.
Create LearningPrograms with payload parameters
| uid required | string (Uid) Object UID. |
| name | string (Name) Object name. |
| description | string (Description) Object description |
| start_strategy | string Enum: "at_subscription" "previous_objective_validated" "with_trigger" Start strategy to define for all the Objectives of the LearningProgram |
| start_session_at | date Starting date of the sessions of all Objectives of the LearningProgram. This attribute will override the start_strategy and days_after_subscription. |
| days_after_subscription | integer The number of days after subscription date to start all Objectives of the LearningProgram. This attribute will override the start_strategy. |
| active_duration_days | integer The number of days after subscription to close all Objectives of the LearningProgram. |
{- "uid": "lp_1",
- "name": "Course 1",
- "start_strategy": "at_subscription"
}{- "id": 1,
- "uid": "lp_1",
- "archived": false,
- "closed": false,
- "name": "Course 1",
- "description": null,
- "start_strategy": "at_subscription",
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "created_at": "2021-03-15T20:38:33.459Z",
- "updated_at": "2021-03-15T20:38:33.692Z"
}Get LearningPrograms with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
| id | integer (Id) Object ID. |
| uid | string (Uid) Object UID. |
| archived | boolean Whether the LearningProgram is archived |
| name | string (Name) Object name. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
| with_details | boolean (WithDetails) Default: false This option gives a list of associated knowledge nodes and knowledge graphs |
[ ][- {
- "id": 1,
- "archived": false,
- "closed": false,
- "uid": "lp_1",
- "name": "Course 1",
- "description": null,
- "start_strategy": "at_subscription",
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "created_at": "2021-03-15T20:38:33.459Z",
- "updated_at": "2021-03-15T20:38:33.692Z"
}
]Get a specific LearningProgram with ID or UID
required | integer or string Example: lp_1 LearningProgram ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "key_type": "uid"
}{- "id": 1,
- "uid": "lp_1",
- "archived": false,
- "closed": false,
- "name": "Course 1",
- "description": null,
- "start_strategy": "at_subscription",
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "created_at": "2021-03-15T20:38:33.459Z",
- "updated_at": "2021-03-15T20:38:33.692Z"
}Update a LearningProgram
required | integer or string Example: lp_1 LearningProgram ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| uid | string (Uid) Object UID. |
| archived | boolean To archive/unarchive a LearningProgram |
| closeed | boolean To close/unclose a LearningProgram |
| name | string (Name) Object name. |
| description | string (Description) Object description |
| start_strategy | string Enum: "at_subscription" "previous_objective_validated" "with_trigger" Start strategy to define for all the Objectives of the LearningProgram |
| start_session_at | date Starting date of the sessions of all Objectives of the LearningProgram. This attribute will override the start_strategy and days_after_subscription. |
| days_after_subscription | integer The number of days after subscription date to start all Objectives of the LearningProgram. This attribute will override the start_strategy. |
| active_duration_days | integer The number of days after subscription to close all Objectives of the LearningProgram. |
{- "key_type": "uid",
- "name": "New Course 1"
}{- "id": 1,
- "uid": "lp_1",
- "archived": false,
- "closed": false,
- "name": "New Course 1",
- "description": null,
- "start_strategy": "at_subscription",
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "created_at": "2021-03-15T20:38:33.459Z",
- "updated_at": "2021-03-15T20:38:33.692Z"
}Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.
required | integer or string Example: lp_1 LearningProgram ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "key_type": "uid"
}trueA LearningProgramStudent represents a student's subscription to a LearningProgram, including Hub-specific progression and time tracking fields.
Returns the list of LearningProgramStudents — a student's enrollment in a LearningProgram. Supports filtering by student, learning program, and archived status. Results are paginated.
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| uid | string (Uid) Object UID. |
| student_id | integer (Student_id) Student ID. |
| student_uid | string (Student_uid) Student UID, required if no student_id. |
| learning_program_id | integer (Learning_program_id) LearningProgram ID. |
| learning_program_uid | string (Learning_program_uid) LearningProgram UID. |
| archived | boolean (Archived) Whether the object is archived or not. Archived objects are not considered in adaptive and memorize objectives. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "learning_program_uid": "lp_uid_1",
- "page": 1,
- "per_page": 50
}[- {
- "id": 42,
- "uid": "lps_uid_1",
- "learning_program_id": 10,
- "learning_program_uid": "lp_uid_1",
- "student_id": 7,
- "student_uid": "student_uid_1",
- "hub_status": "in_progress",
- "version": 1,
- "start_strategy": "at_subscription",
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "archived": false,
- "hub_progression": 65,
- "time_spent": 12400,
- "time_saved": 3600,
- "nb_knowledge_nodes": 12,
- "nb_objectives": 3,
- "nb_knowledge_nodes_with_recommendations": 8,
- "nb_recommendations_followed": 5,
- "next_action": {
- "learning_session": {
- "id": 2,
- "type": "LearningSessionPositioning"
}, - "objective": {
- "id": 34,
- "uid": "obj_uid_1",
- "name": "Introduction to Rails",
- "positioning_type": "standard",
- "knowledge_nodes_count": 8,
- "positioning_time": 240000
}
}, - "created_at": "2024-01-15T10:00:00.000Z",
- "updated_at": "2024-11-03T14:22:00.000Z"
}
]Returns a specific LearningProgramStudent by its ID.
| id required | integer LearningProgramStudent ID. |
{- "id": 42,
- "uid": "lps_uid_1",
- "learning_program_id": 10,
- "learning_program_uid": "lp_uid_1",
- "student_id": 7,
- "student_uid": "student_uid_1",
- "hub_status": "in_progress",
- "version": 1,
- "start_strategy": "at_subscription",
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "archived": false,
- "hub_progression": 65,
- "time_spent": 12400,
- "time_saved": 3600,
- "nb_knowledge_nodes": 12,
- "nb_objectives": 3,
- "nb_knowledge_nodes_with_recommendations": 8,
- "nb_recommendations_followed": 5,
- "next_action": {
- "learning_session": {
- "id": 2,
- "type": "LearningSessionPositioning"
}, - "objective": {
- "id": 34,
- "uid": "obj_uid_1",
- "name": "Introduction to Rails",
- "positioning_type": "standard",
- "knowledge_nodes_count": 8,
- "positioning_time": 240000
}
}, - "created_at": "2024-01-15T10:00:00.000Z",
- "updated_at": "2024-11-03T14:22:00.000Z"
}A LearningProgramSupervisor represents the association between a Supervisor and a LearningProgram, granting the supervisor access to monitor learners in that program.
Returns the list of supervisors assigned to a given Learning Program. This route is accessible via two nested paths:
GET /learning_programs/{learning_program_id}/supervisorsGET /supervisors/{supervisor_id}/learning_programs — returns Learning Programs for a supervisor instead.| learning_program_id required | integer <int64> Learning Program ID. |
[- {
- "id": 5,
- "uid": "supervisor_uid_1",
- "created_at": "2024-01-10T08:00:00.000Z",
- "updated_at": "2024-01-10T08:00:00.000Z"
}
]Creates an association between a supervisor and a learning program. Accessible via:
POST /learning_programs/{learning_program_id}/supervisorsPOST /supervisors/{supervisor_id}/learning_programs| learning_program_id required | integer <int64> Learning Program ID. |
| supervisor_id required | integer ID of the supervisor to assign. |
{- "supervisor_id": 5
}{- "supervisor": {
- "id": 5,
- "uid": "supervisor_uid_1"
}, - "learning_program": {
- "id": 10,
- "uid": "lp_uid_1",
- "name": "Onboarding Program"
}
}Removes the association between a supervisor and a learning program. Accessible via:
DELETE /learning_programs/{learning_program_id}/supervisors/{supervisor_id}DELETE /supervisors/{supervisor_id}/learning_programs/{learning_program_id}| learning_program_id required | integer <int64> Learning Program ID. |
| supervisor_id required | integer <int64> Supervisor ID. |
{- "error": {
- "message": "error_message",
- "status": 404
}
}An Objective should be considered a pedagogical learning objective or learning path, composed of several KnowledgeNode objects. It only includes the concepts you want the learner to master, we analyze the gap between his/her current knowledge state and the knowledge objective that is set to provide recommendations or revisions. To do this, we use the knowledge structure among other things and the parameters set while assigning the Objective object to a Student.
Create an Objective object
| adaptive | boolean If it's a Hub objective. |
| memorize | boolean If it's a Lock objective. |
| name | string (Name) Object name. |
| uid required | string (Uid) Object UID. |
| learning_program_id | integer (Learning_program_id) LearningProgram ID. |
| learning_program_uid | string (Learning_program_uid) LearningProgram UID. |
required | object Set of objects; IDs or UIDs of KnowledgeNodes, KnowledgeGraphs, Tags related to this Objective |
| target_only | boolean This parameter can be used to restrict the Objective. If true, the reviews and the instruction will be kept to the objects declared in the Objective. Otherwise it will extend to the KnowledgeNode ancestors. |
| validation_strategy | string Default: "mastery" Enum: "mastery" "number" "ratio" "streak" The strategy used to validate the Objective by the Student. It can either be:
|
| validation_threshold | number <float> The threshold value to reach to validate the Objective. Depending the validation strategy choosen, it can either be:
|
| validation_thresholds | object Specify a certain threshold for each KnowledgeNode associated to the Objective. You can either Specify this or the validation_threshold. |
object This attribute contains all the options concerning the Adaptive Learning Objective. | |
object This attribute contains all the options concerning the Memorization Objective. |
{- "adaptive": true,
- "memorize": false,
- "name": "Objective 1",
- "learning_program_id": 1,
- "learning_program_uid": "uid_experience",
- "objects": {
- "knowledge_node_ids": [
- 1,
- 2,
- 3
], - "tags": [
- 22,
- 45,
- 10
]
}, - "target_only": true,
- "uid": "Obj2",
- "validation_strategy": "number",
- "validation_thresholds": {
- "knowledge_node_ids": {
- "1": 4,
- "2": 7
}, - "knowledge_node_uids": {
- "kn_uid_3": 3
}
}
}{- "id": 0,
- "uid": "string",
- "adaptive": true,
- "memorize": false,
- "name": "string",
- "learning_program_id": 0,
- "learning_program_uid": "string",
- "objects": {
- "knowledge_node_ids": [
- 1,
- 2,
- 3
], - "knowledge_node_uids": null,
- "knowledge_graph_ids": null,
- "knowledge_graph_uids": null,
- "tags": [
- 22,
- 45,
- 10
], - "tag_filters": {
- "knowledge_nodes": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}, - "contents": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}
}
}, - "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "target_only": false,
- "validation_strategy": "number",
- "validation_threshold": 4,
- "validation_thresholds": { },
- "adaptive_options": { },
- "memorize_options": {
- "wider_interval": true
}
}Get Objectives with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| learning_program_id | integer (Learning_program_id) LearningProgram ID. |
| learning_program_uid | string (Learning_program_uid) LearningProgram UID. |
string or Array of strings (GetName) Fetch the object(s) with name. | |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "uid": "Obj1",
- "name": "Objective 1",
- "adaptive": true,
- "memorize": false,
- "learning_program_id": 1,
- "learning_program_uid": "uid_experience",
- "objects": {
- "knowledge_node_ids": [
- 1,
- 2,
- 3
], - "knowledge_node_uids": null,
- "knowledge_graph_ids": null,
- "knowledge_graph_uids": null,
- "tags": null,
- "tag_filters": {
- "knowledge_nodes": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}, - "contents": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}
}
}, - "created_at": "2020-04-08T12:19:37.238Z",
- "updated_at": "2020-04-08T12:19:37.238Z",
- "target_only": true,
- "validation_strategy": "number",
- "validation_threshold": 4,
- "validation_thresholds": null,
- "adaptive_options": { },
- "memorize_options": { }
}, - {
- "id": 2,
- "uid": "Obj2",
- "name": "Objective 2",
- "adaptive": true,
- "memorize": false,
- "learning_program_id": 1,
- "learning_program_uid": "uid_experience",
- "objects": {
- "knowledge_node_ids": [
- 2,
- 3
], - "knowledge_node_uids": null,
- "knowledge_graph_ids": null,
- "knowledge_graph_uids": null,
- "tags": null,
- "tag_filters": {
- "knowledge_nodes": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}, - "contents": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}
}
}, - "created_at": "2020-04-08T12:19:37.238Z",
- "updated_at": "2020-04-08T12:19:37.238Z",
- "target_only": true,
- "validation_strategy": "number",
- "validation_threshold": 4,
- "validation_thresholds": null,
- "adaptive_options": { },
- "memorize_options": { }
}
]Get a specific Objective with ID or UID of the object
required | integer or string Example: 1 Objective ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "key_type": "uid"
}{- "id": 1,
- "uid": "Obj1",
- "name": "Objective 1",
- "adaptive": true,
- "memorize": false,
- "learning_program_id": 1,
- "learning_program_uid": "uid_experience",
- "objects": {
- "knowledge_node_ids": [
- 1,
- 2,
- 3
], - "knowledge_node_uids": null,
- "knowledge_graph_ids": null,
- "knowledge_graph_uids": null,
- "tags": null,
- "tag_filters": {
- "knowledge_nodes": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}, - "contents": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}
}
}, - "created_at": "2020-04-08T12:19:37.238Z",
- "updated_at": "2020-04-08T12:19:37.238Z",
- "target_only": true,
- "validation_strategy": "number",
- "validation_threshold": 4,
- "validation_thresholds": null,
- "adaptive_options": { },
- "memorize_options": { }
}Update an Objective
required | integer or string Example: 1 Objective ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| uid | string Objective UID. Same UID cannot be set for two different Objectives, it must be unique. |
| name | string (Name) Object name. |
| objects | object Set of objects; IDs or UIDs of KnowledgeNodes, KnowledgeGraphs, Tags related to this Objective |
{- "name": "New Objective name"
}{- "id": 1,
- "uid": "Obj1",
- "name": "New Objective name",
- "adaptive": true,
- "memorize": false,
- "learning_program_id": 1,
- "learning_program_uid": "uid_experience",
- "objects": {
- "knowledge_node_ids": [
- 1,
- 2,
- 3
], - "knowledge_node_uids": null,
- "knowledge_graph_ids": null,
- "knowledge_graph_uids": null,
- "tags": null,
- "tag_filters": {
- "knowledge_nodes": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}, - "contents": {
- "adaptive": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}, - "memorize": {
- "tag_id": {
- "include": null,
- "exclude": null
}, - "tag_uid": {
- "include": null,
- "exclude": null
}
}
}
}
}, - "created_at": "2020-04-08T12:19:37.238Z",
- "updated_at": "2020-04-08T12:19:37.238Z",
- "target_only": true,
- "validation_strategy": "number",
- "validation_threshold": 4,
- "validation_thresholds": null,
- "adaptive_options": { },
- "memorize_options": { }
}An ObjectiveKnowledgeNode represents the KnowledgeNode scope of the Objective.
Get ObjectiveKnowledgeNodes with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| knowledge_node_id | integer (Knowledge_node_id) Object related to a specific KnowledgeNode |
| knowledge_node_uid | string (Knowledge_node_uid) Object related to a specific KnowledgeNode |
| objective_id | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "created_at": "2020-04-08T12:19:37.868Z",
- "updated_at": "2020-04-08T12:19:38.362Z",
- "objective_id": 1,
- "knowledge_node_id": 3,
- "instance_id": 1,
- "target": true
}, - {
- "id": 2,
- "created_at": "2020-04-08T12:19:38.386Z",
- "updated_at": "2020-04-08T12:19:38.412Z",
- "objective_id": 1,
- "knowledge_node_id": 1,
- "instance_id": 1,
- "target": true
}, - {
- "id": 3,
- "created_at": "2020-04-08T12:19:38.458Z",
- "updated_at": "2020-04-08T12:19:38.489Z",
- "objective_id": 1,
- "knowledge_node_id": 2,
- "instance_id": 1,
- "target": true
}
]Get a specific ObjectiveKnowledgeNode by ID
| id required | integer <int64> Example: 1 ObjectiveKnowledgeNode ID |
{- "id": 1,
- "created_at": "2020-04-08T12:19:37.868Z",
- "updated_at": "2020-04-08T12:19:38.362Z",
- "objective_id": 1,
- "knowledge_node_id": 3,
- "instance_id": 1,
- "target": true
}An ObjectiveStudent (OS) is created to assign an Objective to a Student. It encapsulates several parameters regarding the student and the specific objective it is related to. It can be an Adapative ObjectiveStudent or a Memorize one. An ObjectiveStudent is set as reached when the current Student’s mastery bypass all the encompassed KnowledgeNode mastery threshold.
Create an ObjectiveStudent object
| uid | string (Uid) Object UID. |
| student_id required | integer (Student_id) Student ID. |
| student_uid required | string (Student_uid) Student UID, required if no student_id. |
| objective_id required | integer (Objective_id) Objective ID. |
| objective_uid required | string (Objective_uid) Objective UID, required if no objective_id. |
| memorize | boolean (Memorize) Default: true Activates memorization process after learning process (if adaptive set to true) or if no learning process will start immediately. |
| deadline | string <date> (Deadline) Deprecated Deadline for the review sessions in the memorization process. |
| adaptive | boolean (Adaptive) Default: false Activates adaptive learning process (CAT, Evaluation/learning Recommendations, ...) |
| required_score | number (Required_score) Expected student score (the score representing the level of mastery of the student between 0 and 1) to validate the objective. |
| mastery_percentage | number (Mastery_percentage) Expected mastery percentage to validate the objective. The mastery percentage is a threshold (between 0 and 1) based on the difficulties of the questions. Higher the mastery percentage is, higher are the difficulties of the questions that the student have to succeed to validate the objective. |
| knowledge_node_strategy | string (Knowledge_node_strategy) Used strategy to choose the best KnowledgeNode. Please consult us to discuss which strategy best fits your needs otherwise use default value to trigger a standard behaviour. |
| content_strategy | string (Content_strategy) Used strategy to choose the best content. Please consult us to discuss which strategy best fits your needs otherwise use default value to trigger a standard behaviour. |
| knowledge_node_level | object (Knowledge_node_level) Threshold value for validation per knowledge node (value between -4 and 4). |
object This attribute contains all the options concerning the Adaptive Learning Objective. | |
object This attribute contains all the options concerning the Memorization Objective. | |
object This attribute contains all the options concerning Positioning Attempts. | |
| skip_delay | boolean Whether to initialize adaptive/memorize objective for the student synchronously or not. |
{- "student_id": 14,
- "objective_id": 3,
- "memorize": true
}{- "id": 30,
- "uid": null,
- "objective_id": 59,
- "student_id": 35,
- "adaptive": true,
- "memorize": false,
- "active": true,
- "closed": null,
- "reached": false,
- "adaptive_options": { },
- "memorize_options": { },
- "attempt_options": { },
- "next_action": {
- "learning_session": {
- "id": 2,
- "type": "LearningSessionPositioning"
}, - "objective": {
- "id": 59,
- "uid": "obj_uid_1",
- "name": "Introduction to Rails",
- "positioning_type": "standard",
- "knowledge_nodes_count": 8,
- "positioning_time": 240000
}
}, - "created_at": "2021-05-04T13:51:50.851Z",
- "updated_at": "2021-05-04T13:51:50.851Z"
}Get ObjectiveStudent with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| student_id | integer (Student_id) Student ID. |
| student_uid | string (Student_uid) Student UID, required if no student_id. |
| objective_id | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 30,
- "uid": null,
- "objective_id": 59,
- "student_id": 35,
- "adaptive": true,
- "memorize": false,
- "active": true,
- "closed": null,
- "reached": false,
- "adaptive_options": { },
- "memorize_options": { },
- "attempt_options": { },
- "next_action": {
- "learning_session": {
- "id": 2,
- "type": "LearningSessionPositioning"
}, - "objective": {
- "id": 59,
- "uid": "obj_uid_1",
- "name": "Introduction to Rails",
- "positioning_type": "standard",
- "knowledge_nodes_count": 8,
- "positioning_time": 240000
}
}, - "created_at": "2021-05-04T13:51:50.851Z",
- "updated_at": "2021-05-04T13:51:50.851Z"
}
]Update Multiple ObjectiveStudents.
| id required | integer (RespId) Object ID |
| uid required | string (Uid) Object UID. |
| active | boolean Whether the ObjectiveStudent is active or not |
| closed | boolean Whether the ObjectiveStudent is closed or not |
| interest | integer Score of interest between the student and his Objective. |
| time_spent | integer Time spent by the Student in this Objective. |
| knowledge_node_strategy | string (Knowledge_node_strategy) Used strategy to choose the best KnowledgeNode. Please consult us to discuss which strategy best fits your needs otherwise use default value to trigger a standard behaviour. |
| content_strategy | string (Content_strategy) Used strategy to choose the best content. Please consult us to discuss which strategy best fits your needs otherwise use default value to trigger a standard behaviour. |
| deadline | string <date> Objective deadline for a specific Student. |
{- "id": [
- 12,
- 13,
- 17
], - "closed": true
}[- {
- "id": 30,
- "uid": null,
- "objective_id": 59,
- "student_id": 35,
- "adaptive": false,
- "memorize": true,
- "active": true,
- "closed": true,
- "reached": false,
- "adaptive_options": { },
- "memorize_options": {
- "start_review_at": "2021-05-04 15:50:00"
}, - "attempt_options": { },
- "created_at": "2021-05-04T13:51:50.851Z",
- "updated_at": "2021-05-04T13:51:50.851Z"
}
]Get a specific ObjectiveStudent with ID
| id required | integer <int64> Example: 30 ObjectiveStudent ID |
{- "id": 30,
- "uid": null,
- "objective_id": 59,
- "student_id": 35,
- "adaptive": true,
- "memorize": false,
- "active": true,
- "closed": null,
- "reached": false,
- "adaptive_options": { },
- "memorize_options": { },
- "attempt_options": { },
- "next_action": {
- "learning_session": {
- "id": 2,
- "type": "LearningSessionPositioning"
}, - "objective": {
- "id": 59,
- "uid": "obj_uid_1",
- "name": "Introduction to Rails",
- "positioning_type": "standard",
- "knowledge_nodes_count": 8,
- "positioning_time": 240000
}
}, - "created_at": "2021-05-04T13:51:50.851Z",
- "updated_at": "2021-05-04T13:51:50.851Z"
}Update an ObjectiveStudent object
| id required | integer <int64> Example: 30 ObjectiveStudent ID |
| closed | boolean |
| active | boolean Status of the objective linked to the student. |
| interest | integer Score of interest between the student and his Objective. |
| time_spent | integer Time spent by the Student in this Objective. |
| knowledge_node_strategy | string (Knowledge_node_strategy) Used strategy to choose the best KnowledgeNode. Please consult us to discuss which strategy best fits your needs otherwise use default value to trigger a standard behaviour. |
| content_strategy | string (Content_strategy) Used strategy to choose the best content. Please consult us to discuss which strategy best fits your needs otherwise use default value to trigger a standard behaviour. |
| uid | string (Uid) Object UID. |
| deadline | string <date> Objective deadline for a specific Student. |
{- "closed": true
}{- "id": 30,
- "uid": null,
- "objective_id": 59,
- "student_id": 35,
- "adaptive": false,
- "memorize": true,
- "active": true,
- "closed": true,
- "reached": false,
- "adaptive_options": { },
- "memorize_options": {
- "start_review_at": "2021-05-04 15:50:00"
}, - "attempt_options": { },
- "created_at": "2021-05-04T13:51:50.851Z",
- "updated_at": "2021-05-04T13:51:50.851Z"
}Create multiple ObjectiveStudents (OS) in one request.
| objective_students | Array of arrays An array of OS in JSON format, please refer to the single OS object for the required parameters. |
| synchronous | boolean Default: false Specify if the batch_create should run synchronously. |
| return_records | boolean Default: false Whether to display the created OSs. |
{- "objective_students": [
- {
- "objective_id": 23,
- "student_id": 47,
- "uid": "OS1",
- "adaptive": true,
- "memorize": true
}, - {
- "student_uid": "student_1",
- "objective_uid": "objective_1",
- "uid": "OS2",
- "adaptive": true,
- "memorize": false
}
], - "synchronous": true,
- "return_records": true
}[- {
- "id": 30,
- "uid": null,
- "objective_id": 59,
- "student_id": 35,
- "adaptive": false,
- "memorize": true,
- "active": true,
- "closed": null,
- "reached": false,
- "adaptive_options": { },
- "memorize_options": {
- "start_review_at": "2021-05-04 15:50:00"
}, - "created_at": "2021-05-04T13:51:50.851Z",
- "updated_at": "2021-05-04T13:51:50.851Z"
}, - {
- "id": 31,
- "uid": null,
- "objective_id": 59,
- "student_id": 36,
- "adaptive": false,
- "memorize": true,
- "active": true,
- "closed": null,
- "reached": false,
- "adaptive_options": { },
- "memorize_options": {
- "start_review_at": "2021-05-04 15:50:00"
}, - "created_at": "2021-05-04T13:51:50.851Z",
- "updated_at": "2021-05-04T13:51:50.851Z"
}
]Only available for clients with a Domoscio Hub/Lock web application.
Generate a SCORM package.
To get SCORM name, please look at 'filename' key in the 'Content-Disposition' header.
| learning_program_uid required | string (Learning_program_uid_required) LearningProgram UID, required only if no learning_program_id. |
| student_group_uid | string StudentGroup UID to link students to. |
| type | string Fill out this parameter if you need to get .zip for all student_groups or objectives. Default SCORM when empty string or no parameter.
|
{- "learning_program_uid": "my_learning_program_uid",
- "student_group_uid": "my_student_group_uid"
}Renders files data from SCORM package.
A Subscription enrolls a Student or a StudentGroup to an Objective or a LearningProgram.
Create a Subscription. There are two types of Subscription. You can either subscribe a Student to a LearningProgram or directly to an Objective.
| uid | string (Uid) Object UID. |
| student_id | integer ID of the Student concerned by the Subscription (Student or StudentGroup is required in input) |
| student_uid | string UID of the Student concerned by the Subscription (Student or StudentGroup is required in input) |
| student_group_id | integer ID of the StudentGroup concerned by the Subscription (Student or StudentGroup is required in input) |
| student_group_uid | string UID of the StudentGroup concerned by the Subscription (Student or StudentGroup is required in input) |
| objective_id | integer ID of Objective which the Student(s) will be enrolled (Objective or LearningProgram is required in input) |
| objective_uid | string UID of Objective which the Student(s) will be enrolled (Objective or LearningProgram is required in input) |
| learning_program_id | integer ID of LearningProgram which the Student(s) will be enrolled (Objective or LearningProgram is required in input) |
| learning_program_uid | string UID of LearningProgram which the Student(s) will be enrolled (Objective or LearningProgram is required in input) |
| synchronous_init | boolean Whether to perform the initialization of the Subscription synchronously or asynchronously. That can be interesting to perform the initialization asynchronously in case of subscription of a large number of Students. |
| start_strategy | string Enum: "at_subscription" "previous_objective_validated" "with_trigger" Start strategy to define for all the Objectives of the LearningProgram. It will override start_strategy defined in LearningProgram and Objectives. |
| start_session_at | date Starting date of the sessions of all Objectives of the LearningProgram. This attribute will override the start_strategy and days_after_subscription. |
| days_after_subscription | integer The number of days after subscription date to start all Objectives of the LearningProgram. This attribute will override the start_strategy. |
| active_duration_days | integer The number of days after subscription to close all Objectives of the LearningProgram. |
{- "learning_program_uid": "lp_1",
- "student_uid": "student_1",
- "synchronous_init": true
}{- "id": 1,
- "uid": null,
- "learning_program_id": 1,
- "learning_program_uid": "lp_1",
- "student_id": 1,
- "student_uid": "student_1",
- "start_strategy": null,
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "created_at": "2020-04-15T08:02:51.902Z",
- "updated_at": "2020-04-15T08:02:51.902Z"
}Get Subscriptions with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| type required | string Type of Subscription to consider when fetching Subscriptions. |
integer or Array of integers Fetch Subscriptions with Student ID(s). | |
string or Array of strings Fetch Subscriptions with Student UID(s). | |
integer or Array of integers Fetch Subscriptions with StudentGroup ID(s). | |
string or Array of strings Fetch Subscriptions with StudentGroup UID(s). | |
integer or Array of integers Fetch Subscriptions with Objective ID(s). | |
string or Array of strings Fetch Subscriptions with Objective UID(s). | |
integer or Array of integers Fetch Subscriptions with LearningProgram ID(s). | |
string or Array of strings Fetch Subscriptions with LearningProgram UID(s). | |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "uid": null,
- "learning_program_id": 1,
- "learning_program_uid": "lp_1",
- "student_id": 1,
- "student_uid": "student_1",
- "start_strategy": null,
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "created_at": "2020-04-15T08:02:51.902Z",
- "updated_at": "2020-04-15T08:02:51.902Z"
}, - {
- "id": 2,
- "uid": null,
- "learning_program_id": 1,
- "learning_program_uid": "lp_1",
- "student_id": 2,
- "student_uid": "student_2",
- "start_strategy": null,
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "created_at": "2020-04-15T08:02:51.902Z",
- "updated_at": "2020-04-15T08:02:51.902Z"
}
]Unsubscribe Student(s) from LearningProgram(s) or Objective(s)
integer or Array of integers Student ID(s) to unsubscribe. | |
string or Array of strings Student UID(s) to unsubscribe. | |
integer or Array of integers StudentGroup ID(s) to unsubscribe. | |
string or Array of strings StudentGroup UID(s) to unsubscribe. | |
integer or Array of integers Objective ID(s) to unsubscribe the Student(s) from. | |
string or Array of strings Objective UID(s) to unsubscribe the Student(s) from. | |
integer or Array of integers LearningProgram ID(s) to unsubscribe the Student(s) from. | |
string or Array of strings LearningProgram UID(s) to unsubscribe the Student(s) from. |
{- "learning_program_uid": "lp_1",
- "student_uid": "student_1"
}trueGet a specific Subscription with ID or UID
required | integer or string Example: 2 Subscription ID or UID |
| type | string Enum: "LearningProgram" "Objective" Type of Subscription to consider when fetching Subscriptions. |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "type": "LearningProgram"
}{- "id": 2,
- "uid": null,
- "learning_program_id": 1,
- "learning_program_uid": "lp_1",
- "student_id": 2,
- "student_uid": "student_2",
- "start_strategy": null,
- "start_session_at": null,
- "days_after_subscription": null,
- "active_duration_days": null,
- "created_at": "2020-04-15T08:02:51.902Z",
- "updated_at": "2020-04-15T08:02:51.902Z"
}Start manually an Objective for a given Student
| student_id | integer ID of the Student concerned to start the Objective. |
| student_uid | string UID of the Student concerned to start the Objective. |
| objective_id | integer ID of Objective to initialize. |
| objective_uid | string UID of Objective to initialize. |
{- "objective_uid": "obj_1",
- "student_uid": "student_1"
}trueCreate Students and Civil profiles with payload parameters
| uid required | integer UID of the student. |
| active | boolean Default: true Status of the student. |
| is_test_student | boolean Default: false Whether the student is a test student or a real one. |
| student_group_id | integer (StudentGroupID) The StudentGroup to which the Student is related. |
object Information about the student civil profile. |
{- "uid": "student_uid",
- "active": true,
- "is_test_student": false,
- "student_group_id": 0,
- "civil_profile_attributes": {
- "student_infos": {
- "name": "John",
- "date_of_birth": "01/04/2000"
}
}
}{- "id": 45,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "uid": "student_uid",
- "active": true,
- "is_test_student": false,
- "student_group_id": 0,
- "last_activity": null
}Get Students with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
string or Array of strings (GetName) Fetch the object(s) with name. | |
| student_group_id | integer (StudentGroupID) The StudentGroup to which the Student is related. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "uid": "uid_object"
}[- {
- "id": 45,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "instance_id": 3,
- "uid": "uid_object",
- "active": true,
- "is_test_student": false,
- "student_group_id": 0,
- "last_activity": "2020-03-25T13:34:08.909Z",
- "learning_profile": {
- "capacity": 0.5
}, - "civil_profile": {
- "student_infos": { }
}
}
]Get a specific Student with his ID or UID
required | integer or string Student ID or uid if key_type='uid' |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "key_type": "uid"
}[- {
- "id": 45,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "uid": "student_uid",
- "active": true,
- "is_test_student": false,
- "student_group_id": 0,
- "last_activity": null,
- "learning_profile": {
- "capacity": 0.5
}, - "civil_profile": {
- "student_infos": { }
}
}
]Update a specific Student with his ID or UID
required | integer or string Student ID or UID if key_type='uid' |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| active | boolean Status of the student. |
| is_test_student | boolean Default: false Whether the student is a test student or a real one. |
| student_group_id | integer (StudentGroupID) The StudentGroup to which the Student is related. |
| uid | integer UID of the student. |
object Information about the student civil profile. |
{- "key_type": "uid",
- "active": true,
- "is_test_student": false,
- "student_group_id": 0,
- "uid": "student_uid",
- "civil_profile_attributes": {
- "student_infos": {
- "name": "John",
- "date_of_birth": "01/04/2000"
}
}
}{- "id": 45,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z",
- "uid": "string",
- "active": true,
- "is_test_student": false,
- "student_group_id": 0,
- "last_activity": null,
- "learning_profile": {
- "capacity": 0.5
}, - "civil_profile": {
- "student_infos": {
- "name": "John",
- "date_of_birth": "01/04/2000"
}
}
}A StudentGroup is an object that can be used to group a specific set of students. Note that a Student can belong to only one StudentGroup.
Create a StudentGroup object
| name | string (Name) Object name. |
| uid required | string (Uid) Object UID. |
{- "name": "group_1",
- "uid": "gp1"
}{- "id": 1,
- "uid": "gp1",
- "name": "group_1",
- "created_at": "2020-04-15T08:02:51.902Z",
- "updated_at": "2020-04-15T08:02:51.902Z"
}Get StudentGroups with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| name | string (Name) Object name. |
[ ][- {
- "id": 1,
- "uid": "gp1",
- "name": "group_1",
- "created_at": "2020-04-05T13:13:40.271Z",
- "updated_at": "2020-04-05T13:13:40.271Z"
}, - {
- "id": 2,
- "uid": "gp2",
- "name": "group_2",
- "created_at": "2020-04-05T13:13:40.276Z",
- "updated_at": "2020-04-05T13:13:40.276Z"
}, - {
- "id": 3,
- "uid": "gp3",
- "name": "group_3",
- "created_at": "2020-04-05T13:13:40.290Z",
- "updated_at": "2020-04-05T13:13:40.290Z"
}
]Get a specific StudentGroup with ID or UID
required | integer or string Example: 2 StudentGroup ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "key_type": "uid"
}{- "id": 2,
- "uid": "gp2",
- "name": "group_2",
- "created_at": "2020-04-05T13:13:40.276Z",
- "updated_at": "2020-04-05T13:13:40.276Z"
}Update a StudentGroup
required | integer or string Example: 2 StudentGroup ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| name | string (Name) Object name. |
| uid | string (Uid) Object UID. |
{- "name": "new_group_2"
}{- "id": 2,
- "uid": "gp2",
- "name": "new_group_2",
- "created_at": "2020-04-05T13:13:40.276Z",
- "updated_at": "2020-04-15T08:35:39.187Z"
}A LearningSession groups Events or ObjectiveStudentAssessments together under a single learning context. Four types exist, each driving a different flow:
next_question, nbr_kn_validated, nbr_kn_to_validate.next_recommendation, recommendations_to_read_count, time_saved.Create LearningSessions with payload parameters
| uid | string (Uid) Object UID. |
| student_id required | integer (Student_id) Student ID. |
| student_uid required | string (Student_uid) Student UID, required if no student_id. |
| objective_id | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| type required | string Default: "LearningSessionMemorize" Value: "LearningSessionMemorize" The LearningSession type. Only Memorize sessions can be created directly via the API. |
| starting_time | string <date> (Starting_time) Starting time scope |
| ending_time | string <date> (Ending_time) Ending time scope |
| origin | string Origin where the LearningSession is created. Can be used when using multiple platforms to create LS. |
{- "student_id": 1,
- "objective_id": 34,
- "type": "LearningSessionAdaptive",
- "starting_time": "2020-04-14T14:33:57.640Z",
- "ending_time": "2020-04-14T14:33:57.640Z"
}{- "id": 1,
- "uid": null,
- "student_id": 1,
- "objective_id": 34,
- "objective_ids": [ ],
- "active": true,
- "type": "LearningSessionMemorize",
- "starting_time": "2020-04-12T10:33:57.640Z",
- "ending_time": "2020-04-12T10:45:57.640Z",
- "origin": null,
- "payload": { },
- "interaction_count": 10,
- "result_count": 8,
- "rating_count": 2,
- "read_count": 0,
- "review_count": 0,
- "error_count": 0,
- "osa_count": 0,
- "success_count": 4,
- "percentage_success": 0.5,
- "theta_initial": null,
- "theta_final": null,
- "capacity_initial": null,
- "capacity_final": null,
- "mean_step_review": null,
- "time_spent": 340210,
- "average_time_spent": 2340,
- "last_event_at": "2021-03-07T17:58:37.459Z",
- "last_interaction_at": "2021-03-07T17:58:37.459Z",
- "created_at": "2021-03-15T20:38:33.459Z",
- "updated_at": "2021-03-15T20:38:33.692Z"
}Get LearningSessions with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
| student_id | integer (Student_id) Student ID. |
| student_uid | string (Student_uid) Student UID, required if no student_id. |
| objective_id | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| type | string Enum: "LearningSessionPositioning" "LearningSessionAdaptive" "LearningSessionMemorize" Filter by session type. |
| attempt_nb | integer The attempt number to which the LearningSession is linked to, for a Positioning LS with multiple attempts. |
| date_start | string <date> LearningSession's starting date |
| date_end | string <date> LearningSession's ending date |
| origin | string Origin where the LearningSession is created. Can be used when using multiple platforms to create LS. |
| active | boolean Whether the LearningSession is active or not |
| objective_student_id | integer Filter by ObjectiveStudent ID. |
| lang | string Language code for content name translations (e.g. "fr", "en"). |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 2,
- "uid": null,
- "student_id": 7,
- "objective_id": 34,
- "active": true,
- "type": "LearningSessionPositioning",
- "objective_student_id": 88,
- "starting_time": "2024-06-01T09:00:00.000Z",
- "ending_time": null,
- "interaction_count": 4,
- "result_count": 4,
- "rating_count": 0,
- "read_count": 0,
- "review_count": 0,
- "osa_count": 0,
- "success_count": 2,
- "error_count": 0,
- "percentage_success": 0.5,
- "time_spent": 96000,
- "average_time_spent": 24000,
- "last_event_at": "2024-06-01T09:04:00.000Z",
- "last_interaction_at": "2024-06-01T09:04:00.000Z",
- "created_at": "2024-06-01T09:00:00.000Z",
- "updated_at": "2024-06-01T09:04:00.000Z",
- "attempt_nb": 1,
- "theta_initial": null,
- "theta_final": null,
- "nbr_kn_validated": 2,
- "nbr_kn_to_validate": 6,
- "next_question": {
- "id": 55,
- "content_id": 99,
- "knowledge_node_id": 14,
- "qti": { }
}
}
]Returns a specific LearningSession. The response schema varies by session type — see the schemas below for type-specific fields (next_question for Positioning, next_recommendation for Adaptive, etc.).
| id required | integer <int64> LearningSession ID |
{- "id": 2,
- "uid": null,
- "student_id": 7,
- "objective_id": 34,
- "active": true,
- "type": "LearningSessionPositioning",
- "objective_student_id": 88,
- "starting_time": "2024-06-01T09:00:00.000Z",
- "ending_time": null,
- "interaction_count": 4,
- "result_count": 4,
- "rating_count": 0,
- "read_count": 0,
- "review_count": 0,
- "osa_count": 0,
- "success_count": 2,
- "error_count": 0,
- "percentage_success": 0.5,
- "time_spent": 96000,
- "average_time_spent": 24000,
- "last_event_at": "2024-06-01T09:04:00.000Z",
- "last_interaction_at": "2024-06-01T09:04:00.000Z",
- "created_at": "2024-06-01T09:00:00.000Z",
- "updated_at": "2024-06-01T09:04:00.000Z",
- "attempt_nb": 1,
- "theta_initial": null,
- "theta_final": null,
- "nbr_kn_validated": 2,
- "nbr_kn_to_validate": 6,
- "next_question": {
- "id": 55,
- "content_id": 99,
- "knowledge_node_id": 14,
- "qti": { }
}
}Soft-deletes a LearningSession (sets to_dump: true, active: false). Pass key_type: uid in the body to look up by UID instead of ID.
required | integer or string LearningSession ID (or UID if |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
{- "key_type": "uid"
}trueCloses a LearningSession of any type (Positioning, Adaptive, Memorize). Triggers end-of-session processing (mastery updates, next-attempt creation for Positioning if configured).
If the session has no interactions it is automatically deleted instead.
Identify the session by id or uid. Alternatively pass student_id or student_uid to close the most recent session for that student.
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| uid | string (Uid) Object UID. |
| student_id | integer (Student_id) Student ID. |
| student_uid | string (Student_uid) Student UID, required if no student_id. |
{- "id": 1
}{- "id": 1,
- "uid": null,
- "student_id": 1,
- "objective_id": 34,
- "objective_ids": [ ],
- "active": true,
- "type": "LearningSessionAdaptive",
- "starting_time": "2020-04-12T10:33:57.640Z",
- "ending_time": "2020-04-12T10:45:57.640Z",
- "origin": "app_web",
- "payload": { },
- "interaction_count": 10,
- "result_count": 8,
- "rating_count": 2,
- "read_count": 0,
- "review_count": 0,
- "error_count": 0,
- "osa_count": 0,
- "success_count": 4,
- "percentage_success": 0.5,
- "theta_initial": null,
- "theta_final": null,
- "capacity_initial": null,
- "capacity_final": null,
- "mean_step_review": null,
- "time_spent": 340210,
- "average_time_spent": 2340,
- "last_event_at": null,
- "last_interaction_at": null,
- "created_at": "2021-03-15T20:38:33.459Z",
- "updated_at": "2021-03-15T20:38:33.692Z"
}A LearningSessionKnowledgeNode aggregates interaction statistics for a specific Knowledge Node within a LearningSession (event counts, mastery evolution, time spent, memory level, validation state). Relevant across all session types wherever Knowledge Node-level tracking is needed.
Returns the list of LearningSessionKnowledgeNodes — aggregated interaction statistics per Knowledge Node within a LearningSession. Supports filtering by learning session, knowledge node, and active status.
Also accessible nested under a learning session: GET /learning_sessions/{learning_session_id}/learning_session_knowledge_nodes
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| learning_session_id | integer Filter by LearningSession ID (integer or array of integers). |
| knowledge_node_id | integer Filter by Knowledge Node ID (integer or array of integers). |
| active | boolean Filter by active status. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "learning_session_id": 123,
- "active": true
}[- {
- "id": 88,
- "learning_session_id": 123,
- "knowledge_node_id": 14,
- "interaction_count": 5,
- "result_count": 4,
- "rating_count": 0,
- "review_count": 3,
- "read_count": 0,
- "error_count": 1,
- "osa_count": 0,
- "success_count": 3,
- "percentage_success": 0.75,
- "theta_initial": 0.2,
- "theta_final": 0.6,
- "time_spent": 480,
- "average_time_spent": 96,
- "last_event_at": "2024-06-10T11:23:00.000Z",
- "active": true,
- "last_interaction_at": "2024-06-10T11:23:00.000Z",
- "memory_level_initial": 2,
- "memory_level_final": 4,
- "validated": false
}
]Returns a specific LearningSessionKnowledgeNode by its ID.
| id required | integer LearningSessionKnowledgeNode ID. |
{- "id": 88,
- "learning_session_id": 123,
- "knowledge_node_id": 14,
- "interaction_count": 5,
- "result_count": 4,
- "rating_count": 0,
- "review_count": 3,
- "read_count": 0,
- "error_count": 1,
- "osa_count": 0,
- "success_count": 3,
- "percentage_success": 0.75,
- "theta_initial": 0.2,
- "theta_final": 0.6,
- "time_spent": 480,
- "average_time_spent": 96,
- "last_event_at": "2024-06-10T11:23:00.000Z",
- "active": true,
- "last_interaction_at": "2024-06-10T11:23:00.000Z",
- "memory_level_initial": 2,
- "memory_level_final": 4,
- "validated": false
}Returns the list of LearningSessionKnowledgeNodes — aggregated interaction statistics per Knowledge Node within a LearningSession. Supports filtering by learning session, knowledge node, and active status.
Also accessible nested under a learning session: GET /learning_sessions/{learning_session_id}/learning_session_knowledge_nodes
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| learning_session_id | integer Filter by LearningSession ID (integer or array of integers). |
| knowledge_node_id | integer Filter by Knowledge Node ID (integer or array of integers). |
| active | boolean Filter by active status. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "learning_session_id": 123,
- "active": true
}[- {
- "id": 88,
- "learning_session_id": 123,
- "knowledge_node_id": 14,
- "interaction_count": 5,
- "result_count": 4,
- "rating_count": 0,
- "review_count": 3,
- "read_count": 0,
- "error_count": 1,
- "osa_count": 0,
- "success_count": 3,
- "percentage_success": 0.75,
- "theta_initial": 0.2,
- "theta_final": 0.6,
- "time_spent": 480,
- "average_time_spent": 96,
- "last_event_at": "2024-06-10T11:23:00.000Z",
- "active": true,
- "last_interaction_at": "2024-06-10T11:23:00.000Z",
- "memory_level_initial": 2,
- "memory_level_final": 4,
- "validated": false
}
]A Question is an item within a LearningSessionPositioning (Hub). It represents one content presented during the positioning evaluation, tracking interaction status and time spent. See LearningSessionPositioning in the Learning section.
Returns the list of Questions within a LearningSessionPositioning (Hub). Each Question represents a content presented to the student during the positioning evaluation. Supports filtering by learning session and pagination.
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| learning_session_id | integer Filter by LearningSessionPositioning ID (integer or array of integers). |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "learning_session_id": 123,
- "page": 1,
- "per_page": 25
}[- {
- "id": 55,
- "active": true,
- "status": "to_do",
- "time_spent": null,
- "content_id": 99,
- "learning_session_id": 123
}
]Updates a Question. Currently supports updating time_spent only.
| id required | integer Question ID. |
| time_spent | number <float> Total time spent on this question by the student, in milliseconds. |
{- "time_spent": 12500
}{- "id": 55,
- "active": true,
- "status": "to_do",
- "time_spent": 12500,
- "content_id": 99,
- "learning_session_id": 123
}The ReviewUtils is not an object per se but a useful entity to manage reviews and/or pending reviews questions for a set of students or a specific student.
Fetch all reviews or pending reviews of a set of Students
required | integer or Array of integers List of Student IDs you want to fetch reviews. |
required | string or Array of strings List of Student UIDs you want to fetch reviews. |
integer or Array of integers List of KnowledgeNode IDs you want to scope the reviews with. | |
string or Array of strings List of KnowledgeNode UIDs you want to scope the reviews with. | |
integer or Array of integers List of Objective IDs you want to scope the reviews with. | |
string or Array of strings List of Objective UIDs you want to scope the reviews with. | |
integer or Array of integers List of Content IDs to exclude in the creation of reviews. | |
string or Array of strings List of Content UIDs to exclude in the creation of reviews. | |
| pending | boolean Default: false If set to true, only pending reviews are fetched. |
| group_by | Array of strings Default: ["student_id"] The list of attributes to group_by the reviews output. |
{- "student_id": [
- 10,
- 15
], - "knowledge_node_id": [
- 24,
- 23
], - "pending": true,
- "group_by": [
- "student_id"
]
}[- {
- "10": [
- {
- "id": 97,
- "student_id": 10,
- "student_uid": "s_1",
- "knowledge_node_id": 24,
- "knowledge_node_uid": "kn_1",
- "content_id": 84,
- "content_uid": "c_1_4",
- "content_url": null,
- "content_type": "ContentAction",
- "next_review_at": "2021-10-20T17:02:26.358Z",
- "ci_before_next_review_at": "2021-10-19T23:37:06.650Z",
- "ci_after_next_review_at": "2021-10-21T03:29:38.183Z",
- "objective_ids": [
- 14
], - "objective_uids": [
- "obj"
], - "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n"
}, - {
- "id": 98,
- "student_id": 10,
- "student_uid": "s_1",
- "knowledge_node_id": 23,
- "knowledge_node_uid": "kn_2",
- "content_id": 85,
- "content_uid": "c_1_5",
- "content_url": null,
- "content_type": "ContentQuestion",
- "next_review_at": "2021-10-20T17:02:26.358Z",
- "ci_before_next_review_at": "2021-10-19T23:37:06.650Z",
- "ci_after_next_review_at": "2021-10-21T03:29:38.183Z",
- "objective_ids": [
- 14
], - "objective_uids": [
- "obj"
], - "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n"
}
], - "15": [
- {
- "id": 99,
- "student_id": 15,
- "student_uid": "s_2",
- "knowledge_node_id": 24,
- "knowledge_node_uid": "kn_1",
- "content_id": 86,
- "content_uid": "c_2_4",
- "content_url": null,
- "content_type": "ContentAction",
- "next_review_at": "2021-10-20T17:02:26.358Z",
- "ci_before_next_review_at": "2021-10-19T23:37:06.650Z",
- "ci_after_next_review_at": "2021-10-21T03:29:38.183Z",
- "objective_ids": [
- 14
], - "objective_uids": [
- "obj"
], - "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n"
}, - {
- "id": 100,
- "student_id": 15,
- "student_uid": "s_2",
- "knowledge_node_id": 23,
- "knowledge_node_uid": "kn_2",
- "content_id": 87,
- "content_uid": "c_2_5",
- "content_url": null,
- "content_type": "ContentQuestion",
- "next_review_at": "2021-10-20T17:02:26.358Z",
- "ci_before_next_review_at": "2021-10-19T23:37:06.650Z",
- "ci_after_next_review_at": "2021-10-21T03:29:38.183Z",
- "objective_ids": [
- 14
], - "objective_uids": [
- "obj"
], - "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois & reines de la glisse 🤙\" concept=\"SURF 🌊\" timeDependent=\"false\" adaptive=\"false\" identifier=\"choice\" schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\" xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p2\">\n <responseDeclaration identifier=\"RESPONSE\" baseType=\"identifier\" cardinality=\"single\">\n <correctResponse>\n <value>546</value>\n </correctResponse>\n </responseDeclaration>\n <outcomeDeclaration identifier=\"SCORE\" cardinality=\"single\" baseType=\"float\"/>\n <outcomeDeclaration identifier=\"FEEDBACK\" cardinality=\"single\" baseType=\"identifier\"/>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"correct\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"incorrect\"></modalFeedback>\n <modalFeedback outcomeIdentifier=\"FEEDBACK\" showHide=\"hide\" identifier=\"partiallycorrect\"></modalFeedback>\n <itemBody>\n <choiceInteraction responseIdentifier=\"RESPONSE\" shuffle=\"true\" maxChoices=\"1\">\n <prompt><p>Où le surf est-il apparu ? </p></prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\"><p>Australie</p></simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\"><p>Nice </p></simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\"><p>Amérique du Sud </p></simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\"><p>Polynésie </p></simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n"
}
]
}
]Fetch all reviews or pending reviews of a set of Students
| student_id required | integer (Student_id) Student ID. |
| student_uid required | string (Student_uid) Student UID, required if no student_id. |
| student_ids required | Array of integers List of Student IDs to scope the request, the result will be aggregated by Student ID. |
| student_uids required | Array of strings List of Student UIDs to scope the request, the result will be aggregated by Student UID. |
| knowledge_node_ids | Array of integers The ID(s) of the KnowledgeNode object(s) you want to scope the reviews for |
| knowledge_node_uids | Array of strings The UID(s) of the KnowledgeNode object(s) you want to scope the reviews for |
| pending | boolean Default: false If true, fetches only pending reviews. |
| with_confidence_interval | boolean Default: false Whether you are interested in the confidence interval or not. |
| wider_interval | boolean Default: false Whether you wish the confidence interval to be wider. |
{- "student_ids": [
- 10,
- 15
], - "knowledge_node_ids": [
- 24,
- 23
], - "pending": true
}{- "10": [
- {
- "id": 49,
- "knowledge_node_id": 23,
- "student_id": 10,
- "next_review_at": "2020-03-25",
- "student_uid": "student10",
- "knowledge_node_uid": "kn23"
}, - {
- "id": 50,
- "knowledge_node_id": 24,
- "student_id": 10,
- "next_review_at": "2020-04-05",
- "student_uid": "student10",
- "knowledge_node_uid": "kn24"
}
], - "15": [
- {
- "id": 53,
- "knowledge_node_id": 23,
- "student_id": 15,
- "next_review_at": "2020-03-27",
- "student_uid": "student10",
- "knowledge_node_uid": "kn23"
}, - {
- "id": 64,
- "knowledge_node_id": 24,
- "student_id": 15,
- "next_review_at": "2020-04-01",
- "student_uid": "student15",
- "knowledge_node_uid": "kn24"
}
]
}Fetch all reviews or pending review questions for a set of Students
| student_ids | Array of integers The ID(s) of the Student for which you want to get reviews |
| student_uids | Array of integers The UID(s) of the Student for which you want to get reviews |
| objective_ids | Array of integers The ID(s) of the Objective for which you want to get reviews |
| objective_uids | Array of strings The UID(s) of the Objective for which you want to get reviews |
| exclude_content_ids | Array of integers The ID(s) of the Content that you don’t want to propose as a review material |
| exclude_content_uids | Array of strings The UID(s) of the Content that you don’t want to propose as a review material |
| pending | boolean Default: false If false it will fetch all review questions, if true it will fetch the pending reviews. |
{- "student_ids": [
- 1
], - "objective_ids": [
- 4
], - "exclude_content_ids": [
- 3,
- 8
]
}{- "45": [
- {
- "student_id": 45,
- "student_uid": "student01",
- "knowledge_node_id": 2,
- "knowledge_node_uid": "fin01",
- "content_id": 4,
- "content_uid": "cont4",
- "content_url": "url",
- "objective_ids": [
- 4788
], - "objective_uids": [
- "obj4788"
], - "next_review_at": "2020-06-14T08:14:00.571Z"
}, - {
- "student_id": 45,
- "student_uid": "student01",
- "knowledge_node_id": 3,
- "knowledge_node_uid": "eco01",
- "content_id": 2,
- "content_uid": "cont2",
- "content_url": "url",
- "objective_ids": [
- 4788
], - "objective_uids": [
- "obj4788"
], - "next_review_at": "2020-06-14T08:14:00.571Z"
}
], - "47": [
- {
- "student_id": 47,
- "student_uid": "student02",
- "knowledge_node_id": 2,
- "knowledge_node_uid": "fin01",
- "content_id": 4,
- "content_uid": "cont4",
- "content_url": "url",
- "objective_ids": [
- 4788
], - "objective_uids": [
- "obj4788"
], - "next_review_at": "2020-06-14T08:14:00.571Z"
}, - {
- "student_id": 47,
- "student_uid": "student02",
- "knowledge_node_id": 3,
- "knowledge_node_uid": "eco01",
- "content_id": 2,
- "content_uid": "cont2",
- "content_url": "url",
- "objective_ids": [
- 4788
], - "objective_uids": [
- "obj4788"
], - "next_review_at": "2020-06-14T08:14:00.571Z"
}
]
}Fetch Pending Reviews Questions per Student
| student_id required | integer The ID of the Student for which you want to get pending reviews, required if no student_uid. |
| student_uid required | string The UID of the Student for which you want to get pending reviews, required if no student_id. |
| objective_ids | Array of integers The ID(s) of the Objective for which you want to get an AI training status, required if no objective_uids. |
| objective_uids | Array of strings The UID(s) of the Objective for which you want to get an AI training status, required if no objective_uids. |
| exclude_content_ids | Array of integers The ID(s) of the Content that you don’t want to propose as a review material |
| exclude_content_uids | Array of strings The UID(s) of the Content that you don’t want to propose as a review material |
{- "student_id": 1,
- "objective_ids": [
- 4
], - "exclude_content_ids": [
- 3,
- 8
]
}[- {
- "student_id": 45,
- "student_uid": "student01",
- "knowledge_node_id": 2,
- "knowledge_node_uid": "fin01",
- "content_id": 4,
- "content_uid": "cont4",
- "content_url": "url",
- "objective_ids": [
- 4788
], - "objective_uids": [
- "obj4788"
]
}, - {
- "student_id": 45,
- "student_uid": "student01",
- "knowledge_node_id": 3,
- "knowledge_node_uid": "eco01",
- "content_id": 2,
- "content_uid": "cont2",
- "content_url": "url",
- "objective_ids": [
- 4788
], - "objective_uids": [
- "obj4788"
]
}
]A Review is a spaced-repetition review item for a student in Lock — either a question to answer (ReviewQuestion) or an action to perform (ReviewAction). Driven by LearningSessionMemorize — see the Learning section.
Returns the list of Reviews — the spaced-repetition review items for a student in Lock. Two types exist: ReviewQuestion (a content-based question to answer) and ReviewAction (a learning action to perform, e.g. re-reading content).
Supports filtering by student, learning program, objective, knowledge node, type, status, and timing.
| student_id | integer (Student_id) Student ID. |
| student_uid | string (Student_uid) Student UID, required if no student_id. |
| learning_program_id | integer (Learning_program_id) LearningProgram ID. |
| learning_program_uid | string (Learning_program_uid) LearningProgram UID. |
| objective_id | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| knowledge_node_id | integer (Knowledge_node_id) Object related to a specific KnowledgeNode |
| knowledge_node_uid | string (Knowledge_node_uid) Object related to a specific KnowledgeNode |
| active | boolean Filter by active status. |
| type | string Enum: "ReviewQuestion" "ReviewAction" Filter by review type. |
| status | string Enum: "accepted" "declined" "performed" "deadline_exceeded" "failed" Filter by review status. |
| pending | boolean If true, returns only reviews that are due but not yet answered. |
| late | boolean If true, returns only overdue reviews. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "student_uid": "student_uid_1",
- "type": "ReviewQuestion",
- "late": true
}[- {
- "id": 1001,
- "student_id": 7,
- "content_id": 99,
- "knowledge_node_id": 14,
- "created_at": "2024-01-20T08:00:00.000Z",
- "updated_at": "2024-06-10T11:00:00.000Z",
- "active": true,
- "review_date": "2024-06-12T08:00:00.000Z",
- "action_date": null,
- "delay_for_action": null,
- "status": null,
- "type": "ReviewQuestion",
- "accepted_at": null,
- "pending": false,
- "late": true
}
]The RecommendationUtils is not an object per se but a useful entity to get recommendations relative to a specific objective and/or student. The request returns a list of recommendations for KnowledgeNode and Content objects to learn in priority. It also includes methods to have recommendations of Content objects to push to the student to get a adaptive positioning.
Fetch Content Recommendations
| student_id required | integer Scope Content Recommendations for a specific Student ID. |
| student_uid required | string Scope Content Recommendations for a specific Student UID. Required if no Student ID. |
| learning_program_id required | integer Scope Content Recommendations for a specific Learning Program ID. Required if no LearningProgram UID or Objective ID/UID. |
| learning_program_uid required | string Scope Content Recommendations for a specific Learning Program UID. Required if no LearningProgram UID or Objective ID/UID. |
| objective_id required | integer Scope Content Recommendations for specific Objective IDs. Required if no LearningProgram ID/UID or Objective UID. |
| objective_uid required | string Scope Content Recommendations for specific Objective UIDs. Required if no LearningProgram ID/UID or Objective ID. |
| knowledge_node_id | integer Scope Content Recommendations for specific KnowledgeNode ID(s). Required if no Objective in input. |
| knowledge_node_uid | string Scope Content Recommendations for specific KnowledgeNode UID(s). Required if no Objective in input. |
| recommendation_type required | string Default: "Learning" Enum: "Evaluation" "Learning" Fetch a specific type of Recommendation. It can be Evaluation Contents or Learning Contents. |
| content_limit | integer Fetch a specific limited number of recommendations. |
| content_limit_per_kn | integer Default: 3 Fetch a specific limited number of recommendations per KnowledgeNode. |
| reset_recommendations | boolean Default: true Whether you want to fetch new recommendations. If set to false, recommendations already created and not consumed will be returned. |
| recommend_seen_content | boolean Default: false Whether you want to fetch recommendations that were already been seen at least once. |
| reco_after_kn_positioned | boolean Default: false Whether to recommend Contents form KnowledgeNodes that are already positioned or wait that the Student is positioned on whole Objective. |
{- "objective_id": 1,
- "student_id": 3
}[- {
- "id": 2,
- "student_id": 6,
- "student_uid": "stud6",
- "content_id": 7,
- "content_uid": "cont7",
- "objective_id": 4,
- "objective_uid": "obj4",
- "knowledge_node_id": 10,
- "knowledge_node_uid": "eco10",
- "confidence_score": 87,
- "priority": 1,
- "created_at": "2020-04-14T20:17:57.702Z",
- "updated_at": "2020-04-14T20:17:57.702Z"
}
]Get relevant questions based on past answered questions to get a fast positioning of the Student.
| objective_id required | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| student_id required | integer (Student_id) Student ID. |
| student_uid | string (Student_uid) Student UID, required if no student_id. |
| sub_knowledge_nodes | Array of integers A list of KnowledgeNode IDs that correspond to the KnowledgeNodes where we want to position the Student |
| limit | integer Default: 5 Number of fetched questions. |
| method | string Method used for the student positionning |
{- "objective_id": 1,
- "student_id": 3
}[- {
- "id": 5,
- "uid": "ques5",
- "name": "Question 5",
- "content_url": "url"
}
]Create new Attempt for a specific Positioning Objective. This route must be used only after finishing the first attempt.
| objective_id required | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| student_id required | integer (Student_id) Student ID. |
| student_uid | string (Student_uid) Student UID, required if no student_id. |
{- "objective_id": 1,
- "student_id": 3
}trueA Recommendation is a Content chosen by the recommender system for a specific Student on a specific KnowledgeNode. Used in the Recommendations Flow — see LearningSessionAdaptive in the Learning section.
Get Recommendations with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
integer or Array of integers Fetch the object(s) related to a Student ID. | |
integer or Array of arrays or string Fetch the object(s) related to a Student UID. | |
integer or Array of integers Fetch the object(s) related to an Objective ID. | |
integer or Array of arrays or string Fetch the object(s) related to an Objective UID. | |
integer or Array of integers Fetch the object(s) related to a KnowledgeNode ID. | |
integer or Array of arrays or string Fetch the object(s) related to a KnowledgeNode UID. | |
integer or Array of integers Fetch the object(s) related to a Content ID. | |
integer or Array of arrays or string Fetch the object(s) related to a Content UID. | |
| active | boolean Whether the object is active or not. It is set to True by default. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 2,
- "student_id": 6,
- "student_uid": "stud6",
- "content_id": 7,
- "content_uid": "cont7",
- "objective_id": 4,
- "objective_uid": "obj4",
- "knowledge_node_id": 10,
- "knowledge_node_uid": "eco10",
- "confidence_score": 87,
- "priority": 1,
- "created_at": "2020-04-14T20:17:57.702Z",
- "updated_at": "2020-04-14T20:17:57.702Z"
}, - {
- "id": 3,
- "student_id": 7,
- "student_uid": "stud7",
- "content_id": 7,
- "content_uid": "cont7",
- "objective_id": 4,
- "objective_uid": "obj4",
- "knowledge_node_id": 10,
- "knowledge_node_uid": "eco10",
- "confidence_score": 90,
- "priority": 1,
- "created_at": "2020-04-14T20:17:57.702Z",
- "updated_at": "2020-04-14T20:17:57.702Z"
}
]Get a specific Recommendation with ID of the object
required | integer or string Example: 1 Recommendation ID |
[- {
- "id": 1,
- "student_id": 6,
- "student_uid": "stud6",
- "content_id": 7,
- "content_uid": "cont7",
- "objective_id": 4,
- "objective_uid": "obj4",
- "knowledge_node_id": 10,
- "knowledge_node_uid": "eco10",
- "confidence_score": 87,
- "priority": 1,
- "created_at": "2020-04-14T20:17:57.702Z",
- "updated_at": "2020-04-14T20:17:57.702Z"
}
]A LearningSessionRecommendation represents the ordered recommendations path assigned to a student within a LearningSessionAdaptive. Each item exposes the full context: content, Knowledge Node, student, objective, and recommendation status. See LearningSessionAdaptive in the Learning section.
Returns the list of LearningSessionRecommendations — the ordered recommendations path assigned to a student within a LearningSessionAdaptive. Each item describes the content the student should read, its current status, and the surrounding learning context (Knowledge Node, Objective, Student).
Filter by learning_session_id (the LearningSessionAdaptive ID) directly, or by student_id + objective_id to retrieve recommendations from the latest active LearningSessionAdaptive for that pair.
| learning_session_id | integer LearningSessionAdaptive ID. |
| student_id | integer (Student_id) Student ID. |
| objective_id | integer (Objective_id) Objective ID. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "learning_session_id": 456
}[- {
- "order": 1,
- "learning_session": {
- "id": 456
}, - "recommendation": {
- "id": 201,
- "active": true,
- "status": "pending",
- "can_read_again": true,
- "last_completion_date": null
}, - "student": {
- "id": 7,
- "uid": "student_uid_1"
}, - "objective": {
- "id": 34,
- "uid": "obj_uid_1",
- "name": "Introduction to Rails"
}, - "content": {
- "id": 99,
- "name": "Rails Tutorial - Chapter 1",
- "uid": "content_uid_1",
- "image_url": null,
- "media_url": null,
- "type": "Article",
- "learning_type": "article",
- "description": "Introduction to Ruby on Rails framework.",
- "estimated_time": 20,
- "difficulty_level": 1
}, - "knowledge_node": {
- "id": 14,
- "uid": "kn_uid_1",
- "name": "MVC Architecture",
- "worksheet_url": null
}
}
]An Event records a student interaction with a Content item. The event_type determines which learning flow the interaction belongs to:
EventResult — answer to a positioning question (Positioning Flow).
Returns a question_id linking to the Question answered in the LearningSessionPositioning.
EventRead — recommendation content read or viewed (Recommendations Flow).
Returns a recommendation_id linking to the LearningSessionRecommendation in the LearningSessionAdaptive.
EventReview — spaced-repetition review answer (Reviews Flow).
Returns a review_id linking to the Review in the LearningSessionMemorize. Payload must follow xAPI format.
EventRating — student self-assessment of content (difficulty, relevance).
Payload must be an object with student_progress, relevance, easiness.
EventError — interaction linked to a FeedbackError for error tracking in any flow.
Create Events with payload parameters
| student_id required | integer (Student_id) Student ID. |
| student_uid required | string (Student_uid) Student UID, required if no student_id. |
| content_id required | integer Event related to a specific Content ID, required only if no content_uid. |
| content_uid required | string Event related to a specific Content UID, required only if no content_id. |
| event_type required | string (Event_type) Enum: "EventResult" "EventRead" "EventReview" "EventRating" "EventError"
|
| payload | object (Payload) Contains information about score, format of the response etc.. |
| generated_at | string <date> (Generated_at) Date of creation of the Event |
| time_spent | number <float> (Time_spent) Time spent with the content in milliseconds |
| standard | string (Standard) Format of the response expected |
| objective_id | integer Event related to a specific Objective ID, required only for EventRating & EventError. |
| objective_uid | string Event related to a specific Objective UID, required only for EventRating & EventError(When no objective_id is given). |
| recommendation_id | integer Event related to a specific recommendation. Helps keep a record of the selected recommendations . |
| review_id | integer Event related to a specific review. |
| learning_session_id | integer Event related to a specific LearningSession ID. |
| learning_session_uid | string Event related to a specific LearningSession UID. |
| feedback_error_id | integer Event related to a specific FeedbackError ID, required for Event of type Error and no feedback_error_uid found in input |
| feedback_error_uid | string Event related to a specific FeedbackError UID, required for Event of type Error and no feedback_error_id found in input |
{- "student_uid": "s_1",
- "content_uid": "c_1_1",
- "event_type": "EventReview",
- "review_id": 78,
- "standard": "xAPI"
}{- "id": 52,
- "event_type": "EventReview",
- "created_at": "2021-10-22 14:11:22 UTC",
- "updated_at": "2021-10-22 14:11:25 UTC",
- "student_id": 29,
- "content_id": 97,
- "objective_id": null,
- "knowledge_node_ids": [
- 61
], - "learning_session_id": 14,
- "feedback_error_id": null,
- "question_id": null,
- "review_id": 78,
- "recommendation_id": null,
- "generated_at": "2021-10-22 14:11:22 UTC",
- "standard": "xAPI",
- "time_spent": null
}Get Events with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
| id | integer (Id) Object ID. |
| student_id | integer (Student_id) Student ID. |
| student_uid | string (Student_uid) Student UID, required if no student_id. |
| content_id | integer (Content_id) Object related to a specific Content |
| content_uid | string (Content_uid) Object related to a specific Content |
| knowledge_node_id | integer (Knowledge_node_id) Object related to a specific KnowledgeNode |
| date_start | string <date> Scope starting date |
| date_end | string <date> Scope ending date |
| event_type | string (Event_type) Enum: "EventResult" "EventRead" "EventReview" "EventRating" "EventError"
|
| learning_session_id | integer LearningSession ID linked to Event |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "event_type": "EventResult",
- "payload": 100,
- "created_at": "2020-04-14T12:12:11.133Z",
- "updated_at": "2020-04-14T12:12:11.133Z",
- "student_id": 1,
- "content_id": 1,
- "objective_id": 2,
- "knowledge_node_ids": [
- 4,
- 3,
- 11
], - "learning_session_id": 5,
- "generated_at": "2020-04-14T12:12:11.133Z",
- "return": false,
- "standard": null,
- "time_spent": null
}, - {
- "id": 2,
- "event_type": "EventResult",
- "payload": 100,
- "created_at": "2020-04-14T12:42:31.163Z",
- "updated_at": "2020-04-14T12:42:31.163Z",
- "student_id": 2,
- "content_id": 1,
- "objective_id": 3,
- "knowledge_node_ids": [
- 11
], - "learning_session_id": 8,
- "generated_at": "2020-04-14T12:42:31.163Z",
- "return": false,
- "standard": null,
- "time_spent": null
}
]Get a specific Event.
| id required | integer <int64> Event ID |
{- "id": 1,
- "event_type": "EventResult",
- "payload": 100,
- "created_at": "2020-04-14T12:12:11.133Z",
- "updated_at": "2020-04-14T12:12:11.133Z",
- "student_id": 1,
- "content_id": 1,
- "objective_id": 2,
- "knowledge_node_ids": [
- 4,
- 3,
- 11
], - "learning_session_id": 5,
- "generated_at": "2020-04-14T12:12:11.133Z",
- "return": false,
- "standard": null,
- "time_spent": null
}Create multiple Events in one request.
| events | Array of arrays An array of Event in JSON format, please refer to the single Event object for the required parameters. |
| synchronous | boolean Default: false Specify if the batch_create should run synchronously. |
| return_records | boolean Default: false Whether to display the created Events. |
{- "events": [
- {
- "content_id": 420,
- "student_id": 47,
- "event_type": "EventResult",
- "payload": {
- "score": 100
}
}, - {
- "student_uid": "student_1",
- "content_uid": "content_2",
- "event_type": "EventRead",
- "payload": {
- "score": 100
}
}
], - "synchronous": true,
- "return_records": true
}[- {
- "id": 1,
- "event_type": "EventResult",
- "payload": {
- "score": 100
}, - "created_at": "2020-04-14T12:12:11.133Z",
- "updated_at": "2020-04-14T12:12:11.133Z",
- "student_id": 47,
- "content_id": 420,
- "objective_id": 2,
- "knowledge_node_ids": [
- 4,
- 3,
- 11
], - "learning_session_id": 5,
- "generated_at": "2020-04-14T12:12:11.133Z",
- "return": false,
- "standard": null,
- "time_spent": null
}, - {
- "id": 2,
- "event_type": "EventRead",
- "payload": {
- "score": 100
}, - "created_at": "2020-04-14T12:12:11.133Z",
- "updated_at": "2020-04-14T12:12:11.133Z",
- "student_id": 47,
- "content_id": 421,
- "objective_id": 2,
- "knowledge_node_ids": [
- 4,
- 3,
- 11
], - "learning_session_id": 8,
- "generated_at": "2020-04-14T12:12:11.133Z",
- "return": false,
- "standard": null,
- "time_spent": null
}
]An ObjectiveStudentAssessment (OSA) represents an external evaluation of the Student on a specific Objective. It can be the result to an exam for instance.
Create an ObjectiveStudentAssessment (OSA)
| uid | string (Uid) Object UID. |
| objective_student_id required | integer The ID of the ObjectiveStudent you want to declare an OSA for. |
| student_id | integer The ID of the Student you want to declare an OSA for. Required if no objective_student_id and student_uid in input. |
| student_uid | string The UID of the Student you want to declare an OSA for. Required if no objective_student_id and student_id in input. |
| objective_id | integer The ID of the Objective you want to declare an OSA for. Required if no objective_student_id and objective_uid in input. |
| objective_uid | string The UID of the Objective you want to declare an OSA for. Required if no objective_student_id and objective_id in input. |
| knowledge_node_id | integer The ID of the KnowledgeNode you want to declare an OSA for. |
| knowledge_node_uid | string The UID of the KnowledgeNode you want to declare an OSA for. |
| learning_session_id | integer The ID of the LearningSession you want to link the OSA with. |
| learning_session_uid | string The UID of the LearningSession you want to link the OSA with. |
| mark | integer Mark of the Student for this specific Objective. It expects an integer between 0 and 100 (0: nothing is correct, 100: perfect). |
| success_threshold | integer Default: 50 This parameter uses the same scale as “mark”. If mark is above threshold, then the interaction can be seen as positive, otherwise it can be seen as negative. |
| validated | boolean Whether the Student has validated or not the Objective. |
| memorized | boolean Whether the Student has memorized or not the objective. |
| knowledge_node_update | boolean Whether the assessment leads to an update of the Student mastery progress, validations and recommendations. |
| start_date | string <date> When the interaction between the student and the Objective started. |
| end_date | string <date> When the interaction between the student and the Objective ended. |
| close_positioning | boolean Whether to close positioning after the assessment (if KnowledgeNode set in input, it will only stop positioning on this specific KnowledgeNode). |
| payload | object This field can be used to add other information such as the geographic position. |
{- "student_uid": "student_145472",
- "objective_uid": "obj_145712",
- "validated": true,
- "knowledge_node_update": true
}{- "id": 121,
- "uid": null,
- "objective_student_id": 2206,
- "mark": null,
- "success_threshold": 50,
- "knowledge_node_update": true,
- "created_at": "2020-04-23T11:48:38.122Z",
- "updated_at": "2020-04-23T11:48:38.122Z",
- "payload": { },
- "start_date": null,
- "end_date": null,
- "validated": true,
- "memorized": false
}Get ObjectiveStudentAssessment with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
integer or Array of integers Fetch the object(s) with Student ID. | |
string or Array of strings Fetch the object(s) with Student UID. | |
integer or Array of integers Fetch the object(s) with Objective ID. | |
string or Array of strings Fetch the object(s) with Objective UID. | |
integer or Array of integers Fetch the object(s) with ObjectiveStudent ID. | |
string or Array of strings Fetch the object(s) with ObjectiveStudent UID. | |
integer or Array of integers Fetch the object(s) with KnowledgeNode ID. | |
string or Array of strings Fetch the object(s) with KnowledgeNode UID. | |
| date_start | string <date> When the interaction between the Student and the Objective started. |
| date_end | string <date> When the interaction between the Student and the Objective ended. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 121,
- "uid": null,
- "objective_student_id": 2206,
- "knowledge_node_id": 4,
- "learning_session_id": 4,
- "close_positioning": null,
- "mark": null,
- "success_threshold": 50,
- "knowledge_node_update": true,
- "created_at": "2020-04-23T11:48:38.122Z",
- "updated_at": "2020-04-23T11:48:38.122Z",
- "payload": { },
- "start_date": null,
- "end_date": null,
- "validated": true,
- "memorized": false
}
]Get a specific ObjectiveStudentAssessment with ID
| id required | integer <int64> Example: 1 ObjectiveStudentAssessment ID |
{- "id": 121,
- "uid": null,
- "objective_student_id": 2206,
- "knowledge_node_id": 4,
- "learning_session_id": 4,
- "close_positioning": null,
- "mark": null,
- "success_threshold": 50,
- "knowledge_node_update": true,
- "created_at": "2020-04-23T11:48:38.122Z",
- "updated_at": "2020-04-23T11:48:38.122Z",
- "payload": { },
- "start_date": null,
- "end_date": null,
- "validated": true,
- "memorized": false
}Create multiple ObjectiveStudentAssessments (OSA) in one request.
| objective_student_assessments | Array of arrays An array of OSA in JSON format, please refer to the single OSA object for the required parameters. |
| synchronous | boolean Default: false Specify if the batch_create should run synchronously. |
| return_records | boolean Default: false Whether to display the created OSAs. |
| return_review_dates | boolean Whether to return directly the review dates updated per Student. If True, the response will have the same format than with /review_utils/fetch_reviews route. |
{- "objective_student_assessments": [
- {
- "objective_student_id": 23,
- "uid": "OSA1",
- "mark": 30,
- "validated": true,
- "memorized": true
}, - {
- "student_id": 19,
- "objective_id": 3,
- "uid": "OSA2",
- "mark": 75,
- "validated": true,
- "memorized": true
}
], - "synchronous": true,
- "return_records": true
}[- {
- "id": 25,
- "created_at": "2020-07-22T16:41:45.164Z",
- "updated_at": "2020-07-22T16:41:45.164Z",
- "objective_student_id": 23,
- "knowledge_node_id": 4,
- "learning_session_id": 4,
- "close_positioning": null,
- "mark": 30,
- "knowledge_node_update": false,
- "success_threshold": 50,
- "start_date": null,
- "end_date": null,
- "payload": { },
- "uid": "OSA1",
- "validated": true,
- "memorized": true
}, - {
- "id": 26,
- "created_at": "2020-07-22T16:41:45.164Z",
- "updated_at": "2020-07-22T16:41:45.164Z",
- "objective_student_id": 28,
- "knowledge_node_id": 5,
- "learning_session_id": 5,
- "close_positioning": null,
- "mark": 75,
- "knowledge_node_update": false,
- "success_threshold": 50,
- "start_date": null,
- "end_date": null,
- "payload": { },
- "uid": "OSA2",
- "validated": true,
- "memorized": true
}
]Get the percentage of active students, an active student is a student who made at least an interaction.
| student_id required | string List of Student ID to scope the request. |
| objective_id | string List of Objective ID to scope the request. |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
| start_date | string <date> Scope the students that made interaction after the start date. |
| end_date | string <date> Scope the students that made interaction before the ending date. |
{- "student_id": "[14, 167, 314, 34]",
- "objective_id": "[12]"
}75Get the Student validation progress (percentage of validation, mastery score, threshold for validation)
integer or Array of integers Scope the statistics with specific Student ID(s). At least one scope parameter is required. | |
string or Array of strings Scope the statistics with a set of Student UID(s). At least one scope parameter is required. | |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
integer or Array of integers Scope the statistics with specific KnowledgeNode ID(s). At least one scope parameter is required. | |
string or Array of strings Scope the statistics with a set of KnowledgeNode UID(s). At least one scope parameter is required. | |
integer or Array of integers Scope the statistics with specific Objective ID(s). At least one scope parameter is required. | |
string or Array of strings Scope the statistics with specific Objective UID(s). At least one scope parameter is required. | |
| attempt_nb | integer Scope the statistics to a specific Attempt (doesn't count as a scope parameter). |
| group_by | Array of strings Items Enum: "student_id" "student_uid" "knowledge_node_id" "knowledge_node_uid" "month" Group by the validation statistics by specific Object attributes |
{- "student_id": [
- 47,
- 214
], - "group_by": [
- "student_id"
]
}{- "47": {
- "percentage_validation": 75,
- "average_mastery": 2,
- "average_threshold": 4
}, - "214": {
- "percentage_validation": 12,
- "average_mastery": 1.3,
- "average_threshold": 4
}
}Get Event statistics for the scope specified in input
| event_type | string Default: "EventReview" Enum: "EventReview" "EventResult" "EventRead" "EventError" Scope the statistics with the type of the Event. |
integer or Array of integers Scope the statistics with specific Student ID(s). | |
string or Array of strings Scope the statistics with a set of Student UID(s). | |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
integer or Array of integers Scope the statistics with specific Content ID(s). | |
string or Array of strings Scope the statistics with a set of Content UID(s). | |
integer or Array of integers Scope the statistics with specific KnowledgeNode ID(s). | |
string or Array of strings Scope the statistics with a set of KnowledgeNode UID(s). | |
string or Array of strings Scope the statistics with a set of KnowledgeGraph UID(s). | |
integer or Array of integers Scope the statistics with specific Objective ID(s). | |
string or Array of integers Scope the statistics with specific Objective UID(s). | |
| attempt_nb | integer Scope the statistics with only Events linked to this Attempt. |
| start_date | string <date> Scope the statistics with only Events that were generated after the starting date. |
| end_date | string <date> Scope the statistics with only Events that were generated before the ending date. |
| group_by | Array of strings Items Enum: "student_id" "student_uid" "knowledge_node_id" "knowledge_node_uid" "content_id" "month" Group by the Event statistics by specific Object attributes |
{- "student_uid": [
- "student_1",
- "student_2"
], - "event_type": "EventResult",
- "group_by": [
- "student_uid"
]
}{- "student_1": {
- "size": 24,
- "right": 8,
- "wrong": 16,
- "success": 0.3333,
- "last_event": "2020-06-11T09:20:28.328Z",
- "time_spent": 560002,
- "average_time_spent": 23333.4
}, - "student_2": {
- "size": 12,
- "right": 8,
- "wrong": 4,
- "success": 0.6666,
- "last_event": "2020-06-11T09:20:28.328Z",
- "time_spent": 560002,
- "average_time_spent": 23333.4
}
}Fetch LearningSessions with specific parameters
| student_id required | integer (Student_id) Student ID. |
| student_uid required | string (Student_uid) Student UID, required if no student_id. |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
| objective_id | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| knowledge_node_id | integer (Knowledge_node_id) Object related to a specific KnowledgeNode |
| knowledge_node_uid | string (Knowledge_node_uid) Object related to a specific KnowledgeNode |
| attempt_nb | integer The attempt number to which the LearningSession is linked to, for a Positioning LS with multiple attempts. |
| active | boolean Get the statistics of a specific LearningSession state. |
| type | string Enum: "LearningSessionPositioning" "LearningSessionAdaptive" "LearningSessionMemorize" "LearningSessionCustom" Get the statistics of this LearningSessions type only. |
| starting_time | string <date> Get the statistics with only LearningSessions that were generated after the starting date. |
| ending_time | string <date> Get the statistics with only LearningSessions that were generated before the ending date. |
| group_by | Array of strings Items Enum: "student_id" "student_uid" "objective_id" "knowledge_node_id" "knowledge_node_uid" Group by the LearningSessions statistics by specific Object attributes |
{- "student_uid": [
- "student_1",
- "student_2"
], - "type": "LearningSessionMemorize",
- "group_by": [
- "student_uid"
]
}{- "student_1": {
- "interaction_count": 10,
- "result_count": 8,
- "rating_count": 2,
- "read_count": 0,
- "review_count": 0,
- "error_count": 0,
- "osa_count": 0,
- "success_count": 4,
- "percentage_success": 0.5,
- "time_spent": 340210,
- "average_time_spent": 2340,
- "last_event": "2021-03-07T17:58:37.459Z",
- "last_interaction": "2021-03-07T17:58:37.459Z",
- "nb_pending_learning_session": 1,
- "nb_completed_learning_session": 0
}, - "student_2": {
- "interaction_count": 15,
- "result_count": 8,
- "rating_count": 2,
- "read_count": 0,
- "review_count": 5,
- "error_count": 0,
- "osa_count": 0,
- "success_count": 0,
- "percentage_success": 0,
- "time_spent": 27435,
- "average_time_spent": 1767,
- "last_event_at": "2021-03-07T17:58:37.459Z",
- "last_interaction": "2021-03-07T17:58:37.459Z",
- "nb_pending_learning_session": 1,
- "nb_completed_learning_session": 0
}
}Get the number of Events for a specified scope
| event_type | string Default: "EventReview" Enum: "EventReview" "EventResult" "EventRead" "EventError" Scope the events with the type of the Event. |
integer or Array of integers Scope the statistics with specific Student ID(s). | |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
integer or Array of integers Scope the statistics with specific Objective ID(s). | |
| start_date | string <date> Count the number of Events from this starting date. |
| end_date | string <date> Count the number of Events before this ending date. |
| group_by | Array of strings Items Enum: "knowledge_node_id" "student_id" "month" Group by the number of Events by specific Object attributes. |
{- "student_id": [
- 14,
- 29
], - "start_date": "2017-07-21",
- "ending_date": "2017-09-21",
- "group_by": [
- "knowledge_node_id",
- "student_id"
]
}{- "kn_id_1": {
- "student_id_1": 478,
- "student_id_2": 124
}, - "kn_id_2": {
- "student_id_1": 141,
- "student_id_2": 241
}
}Get the average memorization progress of the reviews for a specific scope. If the scope is defined with KnowledgeGraphs, the ouput will be grouped by KnowledgeGraph.
| student_ids | Array of integers List of Student IDs to scope the request. |
| student_uids | Array of strings List of Student UIDs to scope the request. |
| student_id | Array of integers Deprecated List of Student IDs to scope the request. |
| objective_id | Array of integers List of Objective IDs to scope the request. |
| knowledge_node_id | Array of integers List of KnowledgeNodes IDs to scope the request. |
| knowledge_graph_uids | Array of strings List of KnowledgeGraph UIDs to scope the request. If this input is used, the response will be grouped by KnowledgeGraph. |
| group_by_kn | boolean If true, the response will be grouped by KnowledgeNode. |
| mode | string If mode set to "details", the response will be grouped by Student. |
{- "student_uids": [
- "student_1",
- "student_2",
- "student_3"
], - "knowledge_node_id": [
- 12,
- 47
]
}{- "review_progress": 0.6
}Get the review statistics on a given KnowledgeGraph
| knowledge_graph_id required | integer Scope the statistics with specific KnowledgeGraph ID(s), required if no UID is given. |
| knowledge_graph_uid required | string Scope the statistics with specific KnowledgeGraph ID(s), required if no ID is given. |
| group_by | Array of strings Items Enum: "nil || []" ["knowledge_node_id"] ["knowledge_node_uid"] ["content_id"] ["content_uid"] ["knowledge_node_id","content_id"] ["knowledge_node_uid","content_uid"] Group by the Review stats for the chosen KnowledgeGraph by specific Object attributes |
{- "knowledge_graph_id": 23,
- "group_by": [
- "knowledge_node_id"
]
}{- "knowledge_node_1": {
- "number_questions_sent": 35,
- "percentage_correct_answers": 54.29,
- "percentage_wrong_answers": 45.71
}, - "knowledge_node_2": {
- "number_questions_sent": 10,
- "percentage_correct_answers": 85,
- "percentage_wrong_answers": 15,
- "number_actions_sent": 10,
- "percentage_accepted_actions": 70,
- "percentage_declined_actions": 10,
- "percentage_successfully_performed_actions": 20,
- "percentage_abandoned_actions": 0,
- "percentage_actions_perfomed_with_difficulty": 10
}
}Get the review statistics on a given KnowledgeNode or a list of KnowledgeNodes
required | integer or Array of integers Scope the statistics with specific KnowledgeNode ID(s), required if no UID is given. |
required | string or Array of strings Scope the statistics with a set of KnowledgeNode UID(s), required if no ID is given. |
| group_by | Array of strings Items Enum: "nil || []" ["content_id"] ["content_uid"] Group by the Review stats for the chosen KnowledgeNode by specific Object attributes. |
{- "knowledge_node_uid_id": [
- "knowledge_node_1",
- "knowledge_node_2"
]
}{- "knowledge_node_1": {
- "number_questions_sent": 35,
- "percentage_correct_answers": 54.29,
- "percentage_wrong_answers": 45.71
}, - "knowledge_node_2": {
- "number_questions_sent": 10,
- "percentage_correct_answers": 85,
- "percentage_wrong_answers": 15,
- "number_actions_sent": 10,
- "percentage_accepted_actions": 70,
- "percentage_declined_actions": 10,
- "percentage_successfully_performed_actions": 20,
- "percentage_abandoned_actions": 0,
- "percentage_actions_perfomed_with_difficulty": 10
}
}Get the review statistics on a given Content or a list of Contents
required | integer or Array of integers Scope the statistics with specific Content ID(s), required if no UID is given. |
required | string or Array of strings Scope the statistics with a set of Content UID(s), required if no UID is given. |
{- "content_uid": [
- "content_1",
- "content_2"
]
}{- "content_1": {
- "number_questions_sent": 35,
- "percentage_correct_answers": 54.29,
- "percentage_wrong_answers": 45.71
}, - "content_2": {
- "number_actions_sent": 10,
- "percentage_accepted_actions": 70,
- "percentage_declined_actions": 10,
- "percentage_successfully_performed_actions": 20,
- "percentage_abandoned_actions": 0,
- "percentage_actions_perfomed_with_difficulty": 10
}
}Get the average memory level according to group_by params if grouped_by Objective or Knowledge Graph and the memory level for each KnowledgeNode if grouped_by knowledge_node
required | integer or Array of integers Scope the statistics with specific Objective ID(s), required if no UID is given. |
required | string or Array of strings Scope the statistics with a set of Objective UID(s), required if no UID is given. |
integer or Array of integers Scope the statistics with specific Student ID(s), if none is given, it will fetch all the ones linked to the Objective. | |
string or Array of strings Scope the statistics with a set of Student UID(s)if none is given, it will fetch all the ones linked to the Objective. | |
integer or Array of integers Scope the statistics with specific KnowledgeGraph ID(s), if none is given, it will fetch all the ones linked to the Objective. | |
string or Array of strings Scope the statistics with a set of KnowledgeGraph UID(s)if none is given, it will fetch all the ones linked to the Objective. | |
integer or Array of integers Scope the statistics with specific KnowledgeNode ID(s), if none is given, it will fetch all the ones linked to the Objective. | |
string or Array of strings Scope the statistics with a set of KnowledgeNode UID(s)if none is given, it will fetch all the ones linked to the Objective. | |
| group_by | Array of strings Items Enum: "nil || []" ["objective_id"] ["objective_uid"] ["objective_id","student_id"] ["objective_uid","student_uid"] ["objective_id","knowledge_graph_id"] ["objective_uid","knowledge_graph_uid"] ["objective_id","knowledge_node_id"] ["objective_uid","knowledge_node_uid"] ["objective_id","student_id","knowledge_graph_id"] ["objective_uid","student_uid","knowledge_graph_uid"] ["objective_id","student_id","knowledge_node_id"] ["objective_uid","student_uid","knowledge_node_uid"] ["objective_id","student_id","knowledge_graph_id","knowledge_node_id"] ["objective_uid","student_uid","knowledge_graph_uid","knowledge_node_uid"] Group the stats for the chosen Objective by specific Object attributes, please ensure to follow the group_by order. |
{- "objective_uid": [
- "objective_1",
- "objective_2"
], - "group_by": [
- "objective_uid",
- "student_uid"
]
}{- "average_memory_level": {
- "objective_1": {
- "student_1": {
- "average_memory_level": 1.5
}, - "student_2": {
- "average_memory_level": 3.5
}
}, - "objective_2": {
- "student_1": {
- "average_memory_level": 0.5
}, - "student_2": {
- "average_memory_level": 2
}
}
}
}Get the percentage of the perfomed actions for a given Objective or list of Objectives
| objective_id required | integer Scope the statistics with specific Objective ID(s), required if no UID is given. |
| objective_uid required | string Scope the statistics with specific Objective UID(s), required if no ID is given. |
| student_id | integer Scope the statistics with specific Student ID(s), if not given, it will fetch the stats related to all the students linked to the given Objective. |
| student_uid | string Scope the statistics with specific Student UID(s), if not given, it will fetch the stats related to all the students linked to the given Objective. |
| group_by | Array of strings Items Enum: "nil || []" ["objective_id"] ["objective_uid"] ["objective_id","student_id"] ["objective_uid","student_uid"] Group by the stats for the chosen Objectives by specific Object attributes. |
{- "objective_uid": "objective_1",
- "group_by": [
- "objective_uid",
- "student_uid"
]
}{- "objective_1": {
- "student_1": {
- "total_actions": 10,
- "performed_actions": 8,
- "percentage_performed_actions": 80
}, - "student_2": {
- "total_actions": 10,
- "performed_actions": 8,
- "percentage_performed_actions": 80
}, - "student_3": {
- "total_actions": 10,
- "performed_actions": 8,
- "percentage_performed_actions": 80
}
}
}Get the average potential memory level according to group_by params if grouped_by Knowledge Graph and the potential memory level for each KnowledgeNode if grouped_by knowledge_node.
required | integer or Array of integers Scope the statistics with specific Student ID(s), required if no UID is given. |
required | string or Array of strings Scope the statistics with a set of Student UID(s), required if no UID is given. |
integer or Array of integers Scope the statistics with specific Objective ID(s), if none is given, it is required if no KnowledgeGraph or KnowledgeNode is given. | |
string or Array of strings Scope the statistics with specific Objective UID(s), if none is given, it is required if no KnowledgeGraph or KnowledgeNode is given. | |
integer or Array of integers Scope the statistics with specific KnowledgeGraph ID(s), it is required if no Objective or KnowledgeNode is given. | |
string or Array of strings Scope the statistics with a set of KnowledgeGraph UID(s)if none is given, it is required if no Objective or KnowledgeNode is given. | |
integer or Array of integers Scope the statistics with specific KnowledgeNode ID(s), it is required if no Objective or KnowledgeGraph is given. | |
string or Array of strings Scope the statistics with a set of KnowledgeNode UID(s), it is required if no Objective or KnowledgeGraph is given. | |
| group_by | Array of strings Items Enum: ["objective_id","knowledge_node_id"] ["objective_uid","knowledge_node_uid"] ["knowledge_graph_id"] ["knowledge_graph_uid"] ["knowledge_node_id"] ["knowledge_node_uid"] ["knowledge_graph_id","knowledge_node_id"] ["knowledge_graph_uid","knowledge_node_uid"] Group the stats for the chosen Students by specific Object attributes, please ensure to follow the group_by order. |
{- "student_uid": [
- "student_1",
- "student_2"
], - "group_by": [
- "objective_uid",
- "knowledge_node_uid"
]
}{- "student_1": {
- "objective_1": {
- "average_memory_level": 2.5,
- "potential_average_memory_level": 3.05,
- "knowledge_node_1": {
- "memory_level": 1.5,
- "potential_memory_level": 2.1
}, - "knowledge_node_2": {
- "memory_level": 3.5,
- "potential_memory_level": 4
}
}
}, - "student_2": {
- "objective_1": {
- "average_memory_level": 1.25,
- "potential_average_memory_level": 1.75,
- "knowledge_node_1": {
- "memory_level": 0.5,
- "potential_memory_level": 1
}, - "knowledge_node_2": {
- "memory_level": 2,
- "potential_memory_level": 2.5
}
}
}
}The Analytics dashboard provides the Supervisor's view of learner activity and progress. It is organised into three tabs — Progression, Engagement, and Usage — each covering a different dimension of learner data.
Analytics can be scoped to an experience (LearningProgram) or to a specific theme (Objective) within that experience.
Two routes serve this dashboard:
/analytics/component — returns the aggregated metrics for a given tab (KPIs, charts)./analytics/datatable — returns the per-learner breakdown for the same tab, one row per student.Returns the aggregated metrics for a Supervisor analytics tab (KPIs and chart data).
The Supervisor dashboard is split into three tabs — Progression, Engagement, Usage — selected via the type parameter. Data can be scoped to an experience (LearningProgram) or a specific theme (Objective) within that experience.
A date range (start_date / end_date) is always required — it filters data based on student subscription date.
The response shape is determined by two factors:
type — the tab to load: progression, engagement, or usage.Each item in learning_programs and objectives arrays contains a values object whose fields vary by type, product, and scope. Use the oneOf selector on the values schema to browse each combination, or see the named examples.
Constraints:
learning_program_uid or objective_uid is required.student_uid or student_group_uid is required.type: usage is only available at Learning Program scope — the objectives array is always empty for usage.| type required | string Enum: "progression" "engagement" "usage" Metric category to return. |
| scope | string Default: "all" Enum: "all" "learning_programs" "objectives" Aggregation grain. |
| learning_program_uid | Array of strings List of Learning Program UIDs to scope the request. At least one of |
| objective_uid | Array of strings List of Objective UIDs to scope the request. |
| student_uid | Array of strings List of Student UIDs. At least one of |
| student_group_uid | Array of strings List of Student Group UIDs. |
| start_date required | string <date> Filter start date (inclusive), applied on student subscription date. |
| end_date required | string <date> Filter end date (inclusive), applied on student subscription date. |
{- "type": "progression",
- "scope": "all",
- "learning_program_uid": [
- "lp_uid_1",
- "lp_uid_2"
], - "student_group_uid": [
- "group_uid_1"
], - "start_date": "2024-01-01",
- "end_date": "2024-12-31"
}Lock product, type=progression. The knowledge_nodes and inactive_knowledge_nodes arrays are present in objective-level values only.
{- "learning_programs": [
- {
- "uid": "lp_uid_1",
- "values": {
- "nbr_students": 120,
- "nbr_student": 120,
- "nbr_knowledge_nodes": 15,
- "perc_correct_answers": 72,
- "nbr_actions_accepted": 340,
- "perc_actions_done": 68,
- "perc_actions_repartition": {
- "perc_actions_performed": 45,
- "perc_actions_failed": 15,
- "perc_actions_abandoned": 8
}, - "perc_actions_distribution": {
- "done_easily": 60,
- "done_with_difficulty": 40
}, - "perc_memory_levels_distribution": {
- "few_days": 12,
- "one_week": 23,
- "several_weeks": 35,
- "several_months": 30
}
}
}
], - "objectives": [
- {
- "uid": "obj_uid_1",
- "values": {
- "nbr_students": 95,
- "nbr_student": 95,
- "nbr_knowledge_nodes": 8,
- "perc_correct_answers": 75,
- "nbr_actions_accepted": 210,
- "perc_actions_done": 70,
- "perc_actions_repartition": {
- "perc_actions_performed": 48,
- "perc_actions_failed": 12,
- "perc_actions_abandoned": 10
}, - "perc_actions_distribution": {
- "done_easily": 65,
- "done_with_difficulty": 35
}, - "perc_memory_levels_distribution": {
- "few_days": 10,
- "one_week": 20,
- "several_weeks": 40,
- "several_months": 30
}, - "knowledge_nodes": [
- {
- "uid": "kn_uid_1",
- "name": "Concept A",
- "average_memory_level": 4.2
}, - {
- "uid": "kn_uid_2",
- "name": "Concept B",
- "average_memory_level": 3.8
}
], - "inactive_knowledge_nodes": [
- {
- "uid": "kn_uid_3",
- "name": "Concept C",
- "average_memory_level": 2.1
}
]
}
}
]
}Returns the per-learner breakdown for a Supervisor analytics tab — one row per student, in a DataTables-compatible paginated format.
Complements /analytics/component: where /component returns aggregated KPIs for a tab, /datatable returns the individual student rows for the same tab. Both are scoped to an experience (LearningProgram) or a specific theme (Objective) within that experience.
A date range (start_date / end_date) is always required — it filters data based on student subscription date.
The response shape is determined by two factors:
type — the tab to load: progression, engagement, or usage.Each group in learning_programs and objectives contains a paginated students array whose fields vary by type, product, and scope. Use the oneOf selector on the student metrics schema to browse each combination, or see the named examples.
Constraints:
learning_program_uid or objective_uid is required.student_uid or student_group_uid is required.type: usage is available at both Learning Program and Objective scope in this endpoint.| type required | string Enum: "progression" "engagement" "usage" Metric category to return. |
| scope | string Default: "all" Enum: "all" "learning_programs" "objectives" Aggregation grain. |
| learning_program_uid | Array of strings List of Learning Program UIDs to scope the request. At least one of |
| objective_uid | Array of strings List of Objective UIDs to scope the request. |
| student_uid | Array of strings List of Student UIDs. At least one of |
| student_group_uid | Array of strings List of Student Group UIDs. |
| start_date required | string <date> Filter start date (inclusive), applied on student subscription date. |
| end_date required | string <date> Filter end date (inclusive), applied on student subscription date. |
| draw | integer DataTables draw counter. Returned as-is in the response for client-side synchronization. |
| page | integer Page number (1-based). |
| per_page | integer Number of student rows per page. |
| search | string Optional search string applied on student name. |
Array of objects Sorting instructions. |
{- "type": "progression",
- "scope": "learning_programs",
- "learning_program_uid": [
- "lp_uid_1"
], - "student_group_uid": [
- "group_uid_1"
], - "start_date": "2024-01-01",
- "end_date": "2024-12-31",
- "draw": 1,
- "page": 1,
- "per_page": 25
}Lock product, type=progression. Times are in milliseconds. Percentages are integers (0–100). avg_memory_level is a string bucket label.
{- "learning_programs": {
- "draw": 1,
- "recordsTotal": 120,
- "recordsFiltered": 120,
- "data": [
- {
- "learning_program_uid": "lp_uid_1",
- "values": {
- "students": [
- {
- "uid": "student_uid_1",
- "student_name": "Doe Jane",
- "student_group_name": "Group A",
- "student_group_uid": "group_uid_1",
- "avg_memory_level": "several_weeks",
- "perc_correct_answers": 74,
- "nbr_actions_accepted": 18,
- "nbr_actions_done": 22,
- "nbr_actions_failed": 3,
- "nbr_actions_abandoned": 1,
- "nbr_actions_done_easily": 14,
- "nbr_actions_done_with_difficulty": 8,
- "total_time_spent": 2880,
- "nbr_actions_sent": 26
}
]
}
}
]
}, - "objectives": {
- "draw": 1,
- "recordsTotal": 95,
- "recordsFiltered": 95,
- "data": [
- {
- "objective_uid": "obj_uid_1",
- "values": {
- "students": [
- {
- "uid": "student_uid_1",
- "student_name": "Doe Jane",
- "student_group_name": "Group A",
- "student_group_uid": "group_uid_1",
- "avg_memory_level": "one_week",
- "perc_correct_answers": 68,
- "nbr_actions_accepted": 9,
- "nbr_actions_done": 11,
- "nbr_actions_failed": 2,
- "nbr_actions_abandoned": 0,
- "nbr_actions_done_easily": 7,
- "nbr_actions_done_with_difficulty": 4,
- "total_time_spent": 1200,
- "nbr_actions_sent": 13
}
]
}
}
]
}
}Deprecated — use POST /analytics/component instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/datatable instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/component instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/datatable instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/component instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/datatable instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/component instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/datatable instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/component instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/datatable instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/component instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"Deprecated — use POST /analytics/datatable instead (pass the corresponding type parameter).
Explain what we get using this route. For your request to be valid, you need to provide at least a learning_program_uid or a objective_uid, and at least a student_uid or a student_group_uid.
| student_uid required | string List of Student UID to scope the request. |
| student_group_uid required | string List of Student Group UID to scope the request. |
| objective_uid required | string List of Objective UID to scope the request. |
| learning_program_uid required | string List of Learning Program UID to scope the request. |
| start_date required | string <date> Scope the starting date. |
| end_date required | string <date> Scope the ending date. |
{- "student_uid": [
- "student_uid_1",
- "student_uid_2",
- "student_uid_3"
], - "objective_uid": [
- "obj_uid_1",
- "obj_uid_2"
], - "start_date": "2022-01-01",
- "end_date": "2023-01-01"
}"TBD"The GameplayUtils is not an object per se but a useful entity to manage retrieve Student statistics, their progress, learning or memorization activities and their interactions with specific Content objects.
Get the percentage of active students, an active student is a student who made at least an interaction.
| student_id required | string List of Student ID to scope the request. |
| objective_id | string List of Objective ID to scope the request. |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
| start_date | string <date> Scope the students that made interaction after the start date. |
| end_date | string <date> Scope the students that made interaction before the ending date. |
{- "student_id": "[14, 167, 314, 34]",
- "objective_id": "[12]"
}75.1Get the Student validation progress (percentage of validation, mastery score, threshold for validation)
integer or Array of integers Scope the statistics with specific Student ID(s). At least one scope parameter is required. | |
string or Array of strings Scope the statistics with a set of Student UID(s). At least one scope parameter is required. | |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
integer or Array of integers Scope the statistics with specific KnowledgeNode ID(s). At least one scope parameter is required. | |
string or Array of strings Scope the statistics with a set of KnowledgeNode UID(s). At least one scope parameter is required. | |
integer or Array of integers Scope the statistics with specific Objective ID(s). At least one scope parameter is required. | |
string or Array of strings Scope the statistics with specific Objective UID(s). At least one scope parameter is required. | |
| attempt_nb | integer Scope the statistics to a specific Attempt (doesn't count as a scope parameter). |
| group_by | Array of strings Items Enum: "student_id" "student_uid" "knowledge_node_id" "knowledge_node_uid" "month" Group by the validation statistics by specific Object attributes |
{- "student_id": [
- 47,
- 214
], - "group_by": [
- "student_id"
]
}{- "47": {
- "percentage_validation": 75,
- "average_mastery": 2,
- "average_threshold": 4
}, - "214": {
- "percentage_validation": 12,
- "average_mastery": 1.3,
- "average_threshold": 4
}
}Get Event statistics for the scope specified in input
| event_type | string Default: "EventReview" Enum: "EventReview" "EventResult" "EventRead" "EventError" Scope the statistics with the type of the Event. |
integer or Array of integers Scope the statistics with specific Student ID(s). | |
string or Array of strings Scope the statistics with a set of Student UID(s). | |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
integer or Array of integers Scope the statistics with specific Content ID(s). | |
string or Array of strings Scope the statistics with a set of Content UID(s). | |
integer or Array of integers Scope the statistics with specific KnowledgeNode ID(s). | |
string or Array of strings Scope the statistics with a set of KnowledgeNode UID(s). | |
string or Array of strings Scope the statistics with a set of KnowledgeGraph UID(s). | |
integer or Array of integers Scope the statistics with specific Objective ID(s). | |
string or Array of strings Scope the statistics with specific Objective UID(s). | |
| attempt_nb | integer Scope the statistics with only Events linked to this Attempt. |
| start_date | string <date> Scope the statistics with only Events that were generated after the starting date. |
| end_date | string <date> Scope the statistics with only Events that were generated before the ending date. |
| group_by | Array of strings Items Enum: "student_id" "student_uid" "knowledge_node_id" "knowledge_node_uid" "content_id" "month" Group by the Event statistics by specific Object attributes |
{- "student_uid": [
- "student_1",
- "student_2"
], - "event_type": "EventResult",
- "group_by": [
- "student_uid"
]
}{- "student_1": {
- "size": 24,
- "right": 8,
- "wrong": 16,
- "success": 0.3333,
- "last_event": "2020-06-11T09:20:28.328Z",
- "time_spent": 560002,
- "average_time_spent": 23333.4
}, - "student_2": {
- "size": 12,
- "right": 8,
- "wrong": 4,
- "success": 0.6666,
- "last_event": "2020-06-11T09:20:28.328Z",
- "time_spent": 560002,
- "average_time_spent": 23333.4
}
}Fetch LearningSessions with specific parameters
| student_id required | integer (Student_id) Student ID. |
| student_uid required | string (Student_uid) Student UID, required if no student_id. |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
| objective_id | integer (Objective_id) Objective ID. |
| objective_uid | string (Objective_uid) Objective UID, required if no objective_id. |
| knowledge_node_id | integer (Knowledge_node_id) Object related to a specific KnowledgeNode |
| knowledge_node_uid | string (Knowledge_node_uid) Object related to a specific KnowledgeNode |
| attempt_nb | integer The attempt number to which the LearningSession is linked to, for a Positioning LS with multiple attempts. |
| active | boolean Get the statistics of a specific LearningSession state. |
| type | string Enum: "LearningSessionPositioning" "LearningSessionAdaptive" "LearningSessionMemorize" "LearningSessionCustom" Get the statistics of this LearningSessions type only. |
| starting_time | string <date> Get the statistics with only LearningSessions that were generated after the starting date. |
| ending_time | string <date> Get the statistics with only LearningSessions that were generated before the ending date. |
| group_by | Array of strings Items Enum: "student_id" "student_uid" "objective_id" "knowledge_node_id" "knowledge_node_uid" Group by the LearningSessions statistics by specific Object attributes |
{- "student_uid": [
- "student_1",
- "student_2"
], - "type": "LearningSessionMemorize",
- "group_by": [
- "student_uid"
]
}{- "student_1": {
- "interaction_count": 10,
- "result_count": 8,
- "rating_count": 2,
- "read_count": 0,
- "review_count": 0,
- "error_count": 0,
- "osa_count": 0,
- "success_count": 4,
- "percentage_success": 0.5,
- "time_spent": 340210,
- "average_time_spent": 2340,
- "last_event": "2021-03-07T17:58:37.459Z",
- "last_interaction": "2021-03-07T17:58:37.459Z",
- "nb_pending_learning_session": 1,
- "nb_completed_learning_session": 0
}, - "student_2": {
- "interaction_count": 15,
- "result_count": 8,
- "rating_count": 2,
- "read_count": 0,
- "review_count": 5,
- "error_count": 0,
- "osa_count": 0,
- "success_count": 0,
- "percentage_success": 0,
- "time_spent": 27435,
- "average_time_spent": 1767,
- "last_event_at": "2021-03-07T17:58:37.459Z",
- "last_interaction": "2021-03-07T17:58:37.459Z",
- "nb_pending_learning_session": 1,
- "nb_completed_learning_session": 0
}
}Get the number of Interactions (Events & OSA) for a specified scope
| interaction_type required | string Enum: "osa" "event" Scope the interactions to specific type of interaction. |
| event_type | string Default: "EventReview" Enum: "EventReview" "EventResult" "EventRead" "EventError" Scope the events with the type of the Event (only for interaction_type set to event). |
integer or Array of integers Scope the statistics with specific Student ID(s). | |
integer or Array of integers Scope the statistics with specific Objective ID(s). | |
| start_date | string <date> Count the number of Interactions from this starting date. |
| end_date | string <date> Count the number of Interactions before this ending date. |
| group_by | Array of strings Items Enum: "knowledge_node_id" "student_id" "month" Group by the number of Interactions by specific Object attributes. |
{- "student_id": [
- 14,
- 29
], - "start_date": "2017-07-21",
- "ending_date": "2017-09-21",
- "group_by": [
- "knowledge_node_id",
- "student_id"
]
}{- "kn_id_1": {
- "student_id_1": 478,
- "student_id_2": 124
}, - "kn_id_2": {
- "student_id_1": 141,
- "student_id_2": 241
}
}Get the number of Events for a specified scope
| event_type | string Default: "EventReview" Enum: "EventReview" "EventResult" "EventRead" "EventError" Scope the events with the type of the Event. |
integer or Array of integers Scope the statistics with specific Student ID(s). | |
string or Array of strings Scope the statistics with specific Student UID(s). | |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
integer or Array of integers Scope the statistics with specific Objective ID(s). | |
string or Array of strings Scope the statistics with specific Objective UID(s). | |
| start_date | string <date> Count the number of Events from this starting date. |
| end_date | string <date> Count the number of Events before this ending date. |
| group_by | Array of strings Items Enum: "knowledge_node_id" "student_id" "month" Group by the number of Events by specific Object attributes. |
{- "student_id": [
- 14,
- 29
], - "start_date": "2017-07-21",
- "ending_date": "2017-09-21",
- "group_by": [
- "knowledge_node_id",
- "student_id"
]
}{- "kn_id_1": {
- "student_id_1": 478,
- "student_id_2": 124
}, - "kn_id_2": {
- "student_id_1": 141,
- "student_id_2": 241
}
}Get consolidated review statistics per Objective or KnowledgeGraph for a set of students
| student_uids | Array of strings List of Student UIDs to scope the request. |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
| knowledge_graph_uids required | Array of strings List of KnowledgeGraph UIDs to scope the request. Required if no objective_uids. |
| objective_uids required | Array of strings List of Objective UIDs to scope the request. Required if no knowledge_graph_uids. |
| limit | integer Default: 100 Limit number of students shown in the output response. |
| page | integer Page of the output response. One page contains a limited number of data defined by "limit". |
{- "objective_uids": [
- "objective_1"
], - "student_uids": [
- "student_1"
]
}{- "objectives": [
- {
- "objective_1": [
- {
- "student_uid": "student_1",
- "step_review": 2.3,
- "next_review_at": "2020-06-11T09:20:28.328Z",
- "next_review_dates": [
- "2020-06-11T09:20:28.328Z",
- "2020-06-11T09:20:28.534Z"
], - "pending_review_count": 2,
- "last_review_at": "2020-06-04T09:20:28.534Z",
- "review_count": 7,
- "correct_reviews": 5,
- "wrong_reviews": 2,
- "success_rate": 0.75,
- "time_spent": 41000,
- "average_time_spent": 3000
}
]
}
]
}Get a step review score linked to the state of memorization of the set of Students.
integer or Array of integers Scope the statistics with specific Student ID(s). | |
string or Array of strings Scope the statistics with specific Student UID(s). | |
| student_ids | Array of integers Deprecated Scope the statistics with specific Student ID(s). |
| student_uids | Array of strings Deprecated Scope the statistics with specific Student UID(s). |
| exclude_test_students | boolean (Exclude_test_students) Default: false Whether to exclude the test students from the stats, default is set to false. |
integer or Array of integers Scope the statistics with specific Objective ID(s). | |
string or Array of strings Scope the statistics with specific Objective UID(s). | |
| knowledge_node_ids | Array of integers Get step review scores for this specific set of KnowledgeNode IDs. |
| knowledge_graph_uids | Array of strings Get step review scores for this specific set of KnowledgeGraph UIDs. If this parameter is used the output format will be modified and the global step review score will be shown. |
{- "student_uids": [
- "student_1"
], - "knowledge_graph_uids": [
- "kg_1"
]
}{- "knowledge_nodes": [
- {
- "name": null,
- "step_reviews": [
- 0.8
], - "uid": "kn_1"
}, - {
- "name": null,
- "step_reviews": [
- 1.6
], - "uid": "kn_2"
}
], - "mean_step_review": 1.2
}Get the average memorization progress of the reviews for a specific scope. If the scope is defined with KnowledgeGraphs, the ouput will be grouped by KnowledgeGraph.
| student_ids | Array of integers List of Student IDs to scope the request. |
| student_uids | Array of strings List of Student UIDs to scope the request. |
| student_id | Array of integers Deprecated List of Student IDs to scope the request. |
| objective_id | Array of integers List of Objective IDs to scope the request. |
| knowledge_node_id | Array of integers List of KnowledgeNodes IDs to scope the request. |
| knowledge_graph_uids | Array of strings List of KnowledgeGraph UIDs to scope the request. If this input is used, the response will be grouped by KnowledgeGraph. |
| group_by_kn | boolean If true, the response will be grouped by KnowledgeNode. |
| mode | string If mode set to "details", the response will be grouped by Student. |
{- "student_uids": [
- "student_1",
- "student_2",
- "student_3"
], - "knowledge_node_id": [
- 12,
- 47
]
}{- "review_progress": 0.6
}A KnowledgeEdge (KE) is the third object to instantiate to set up your knowledge’s structure on our API. The prerequisite relationship between KnowledgeNode object is symbolized through KnowledgeEdge object. The source of the edge corresponds to the base concept, while the destination is the one requiring prerequisite knowledge from the source node. Note that this object is not mandatory.
Create Knowledge Edges with payload parameters
| source_node_id required | integer Source Node Id. |
| destination_node_id required | integer Destination Node Id. |
| knowledge_graph_id | integer (Knowledge_graph_id) Object related to a specific KnowledgeGraph ID. |
{- "source_node_id": 1,
- "knowledge_graph_id": 45,
- "destination_node_id": 2
}{- "id": 1,
- "knowledge_graph_id": 45,
- "destination_node_id": 1,
- "source_node_id": 2,
- "created_at": "2020-04-07T14:56:58.711Z",
- "updated_at": "2020-04-07T14:56:58.711Z"
}Get Knowledge Edges with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
| source_node_id | integer Source Node Id. |
| destination_node_id | integer Destination Node Id. |
| knowledge_graph_id | integer (Knowledge_graph_id) Object related to a specific KnowledgeGraph ID. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "knowledge_graph_id": 45,
- "destination_node_id": 2,
- "source_node_id": 1,
- "created_at": "2020-04-07T13:47:41.051Z",
- "updated_at": "2020-04-07T13:47:41.051Z"
}, - {
- "id": 2,
- "knowledge_graph_id": 45,
- "destination_node_id": 1,
- "source_node_id": 3,
- "created_at": "2020-04-07T14:56:58.711Z",
- "updated_at": "2020-04-07T14:56:58.711Z"
}
]Get a specific KnowledgeEdge with ID or UID of the object
| id required | integer <int64> Example: 1 KnowledgeEdge ID or UID |
{- "id": 1,
- "knowledge_graph_id": 45,
- "destination_node_id": 1,
- "source_node_id": 2,
- "created_at": "2020-04-07T14:56:58.711Z",
- "updated_at": "2020-04-07T14:56:58.711Z"
}A TagEdge object represents the edges among the TagSet objects. This object represents the links between two Tag objects of the TagSet.
Create a TagEdge object
| ancestor_id required | integer (Ancestor_id) The Tag object ID this TagEdge object points to. |
| descendant_id required | integer (Descendant_id) The Tag object ID this TagEdge object comes from. |
{- "ancestor_id": 2,
- "descendant_id": 1
}{- "id": 1,
- "ancestor_id": 2,
- "descendant_id": 1,
- "tag_set_id": 1,
- "created_at": "2020-04-15T09:44:35.189Z",
- "updated_at": "2020-04-15T09:44:35.189Z"
}Get TagEdges with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
| ancestor_id | integer (Ancestor_id) The Tag object ID this TagEdge object points to. |
| descendant_id | integer (Descendant_id) The Tag object ID this TagEdge object comes from. |
| tag_set_id | integer (Tag_set_id) Tags set ID related to this object. |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
[ ][- {
- "id": 1,
- "ancestor_id": 2,
- "descendant_id": 1,
- "tag_set_id": 1,
- "created_at": "2020-04-15T09:44:35.189Z",
- "updated_at": "2020-04-15T09:44:35.189Z"
}, - {
- "id": 2,
- "ancestor_id": 2,
- "descendant_id": 4,
- "tag_set_id": 1,
- "created_at": "2020-04-15T09:50:12.572Z",
- "updated_at": "2020-04-15T09:50:12.572Z"
}
]Get a specific TagEdge.
| id required | integer <int64> Example: 1 TagEdge ID |
{- "id": 1,
- "ancestor_id": 2,
- "descendant_id": 1,
- "tag_set_id": 1,
- "created_at": "2020-04-15T09:44:35.189Z",
- "updated_at": "2020-04-15T09:44:35.189Z"
}A FeedbackError represents a certain type of error that a Student can make during his evaluations. This object can be linked to an Event of type Error to track the errors of the Student.
Create FeedbackErrors with payload parameters
| uid required | string UID of the FeedbackError. |
| name | string Name of the FeedbackError. |
| description | string Description of the FeedbackError |
| feedback_error_set_id required | integer ID of the FeedbackErrorSet linked to the FeedbackError |
{- "uid": "feedback_error_uid",
- "name": "Error 47 - End of a plural noun",
- "description": "No (s) at the end of a noun in plural",
- "feedback_error_set_id": 5
}{- "id": 45,
- "uid": "uid_object",
- "name": "Error 47 - End of a plural noun",
- "description": "No (s) at the end of a noun in plural",
- "feedback_error_set_id": 5,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}Get FeedbackErrors with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
string or Array of strings (GetName) Fetch the object(s) with name. | |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "uid": "feedback_error_uid"
}[- {
- "id": 45,
- "uid": "uid_object",
- "name": "Error 47 - End of a plural noun",
- "description": "No (s) at the end of a noun in plural",
- "feedback_error_set_id": 5,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}
]Get a specific FeedbackError
required | integer or string FeedbackError ID or UID |
{- "id": 45,
- "uid": "uid_object",
- "name": "Error 47 - End of a plural noun",
- "description": "No (s) at the end of a noun in plural",
- "feedback_error_set_id": 5,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}Update a FeedbackError with payload parameters
required | integer or string FeedbackError ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| uid | string (Uid) Object UID. |
| name | string Name of the FeedbackError |
| description | string Description of the FeedbackError |
| feedback_error_set_id | integer ID of the FeedbackErrorSet linked to the FeedbackError |
{- "key_type": "uid",
- "uid": "string",
- "name": "Error 47 - End of a plural noun",
- "description": "No (s) at the end of a noun in plural",
- "feedback_error_set_id": 5
}{- "id": 45,
- "uid": "uid_object",
- "name": "Error 47 - End of a plural noun",
- "description": "No (s) at the end of a noun in plural",
- "feedback_error_set_id": 5,
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}A FeedBackErrorSet helps you to create a referential of errors. It can help you organize your FeedbackErrors together by grouping them together.
Create FeedbackErrorSet with payload parameters
| uid required | string UID of the FeedbackErrorSet. |
| name | string Name of the FeedbackErrorSet. |
| description | string Description of the FeedbackErrorSet |
{- "uid": "feedback_error_set_uid",
- "name": "ErrorSet 3 - Syntax",
- "description": "Group all the feedback errors linked to the syntax"
}{- "id": 45,
- "uid": "uid_object",
- "name": "ErrorSet 3 - Syntax",
- "description": "Group all the feedback errors linked to the syntax",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}Get FeedbackErrorSets with payload parameters (limit number of data in response is 200, use page parameter to get the following data).
integer or Array of integers (GetId) Fetch the object(s) with ID. | |
string or Array of strings (GetUid) Fetch the object(s) with UID. | |
string or Array of strings (GetName) Fetch the object(s) with name. | |
| sort_by | string (GetSortBy) Parameter(s) to sort the response by. |
| page | integer (GetPage) Default: 1 Response page number with index starting from 1. One page contains 200 objects per default (can be modified with per_page parameter). |
| per_page | integer (GetPerPage) Default: 200 Number of objects to display per page. |
{- "uid": "feedback_error_set_uid"
}[- {
- "id": 45,
- "uid": "uid_object",
- "name": "ErrorSet 3 - Syntax",
- "description": "Group all the feedback errors linked to the syntax",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}
]Get a specific FeedbackErrorSet
required | integer or string FeedbackErrorSet ID or UID |
{- "id": 45,
- "uid": "uid_object",
- "name": "ErrorSet 3 - Syntax",
- "description": "Group all the feedback errors linked to the syntax",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}Update a FeedbackErrorSet with payload parameters
required | integer or string FeedbackErrorSet ID or UID |
| key_type | string (RefKeyType) Key type to use. If key_type='uid', UID will be considered instead of ID. |
| uid | string (Uid) Object UID. |
| name | string Name of the FeedbackErrorSet |
| description | any Description of the FeedbackErrorSet |
{- "key_type": "uid",
- "uid": "string",
- "name": "ErrorSet 4 - Syntax",
- "description": "Group all the feedback errors linked to the syntax"
}{- "id": 45,
- "uid": "uid_object",
- "name": "ErrorSet 3 - Syntax",
- "description": "Group all the feedback errors linked to the syntax",
- "created_at": "2020-03-25T13:33:57.640Z",
- "updated_at": "2020-03-25T13:33:57.640Z"
}The UserModelUtils is not an object per se but a useful entity to retrieve feebacks related to the uncertainty of the system for each student and objective based on their mastery, validation or memorization.
Get the total FeedbackErrors on a set of KnowledgeNodes for specific Student(s).
| student_uids required | Array of strings List of Student UIDs to fetch FeedbackErrors |
| knowledge_node_uids required | Array of strings List of KnowledgeNode UIDs to fetch FeedbackErrors |
| group_by | string Default: "feedback_error_set" Enum: "feedback_error" "feedback_error_set" The aggregation level to group total number of FeedbackErrors. |
{- "student_uids": [
- "student_1",
- "student_2"
], - "knowledge_node_uids": [
- "kn_1, kn_3"
]
}{- "kn_1": {
- "feedback_error_1": 41,
- "feedback_error_2": 14
}
}Get all the ObjectiveStudents that need the most feedback according to the uncertainty of the system for each student and objective based on their mastery, validation or memorization
| student_ids required | Array of integers The ID(s) of the students for which you want to get feedback. |
| student_uids required | Array of strings The UID(s) of the students for which you want to get feedback. |
| objective_ids required | Array of integers The ID(s) of the Objective for which you want to get feedback. |
| objective_uids required | Array of strings The UID(s) of the Objective for which you want to get feedback. |
| feedback_type | string Enum: "mastery" "memorization" "validation" The desired feedback_type, it can be based on mastery, memorization, validation. If no type given, it will return a score based on the average of the three feedbacks. |
| number_of_os | integer Default: 10 The number of ObjectiveStudents that we want to get feedback for. |
{- "student_ids": [
- 13,
- 14
], - "objective_ids": [
- 9,
- 10
], - "feedback_type": "memorization",
- "number_of_os": 10
}[- {
- "id": 24,
- "uid": "os_24",
- "student_id": 13,
- "objective_id": 9,
- "memorize": true,
- "adaptive": false
}, - {
- "id": 25,
- "uid": "os_25",
- "student_id": 14,
- "objective_id": 10,
- "memorize": true,
- "adaptive": false
}
]Get all the AI Training Status of the system, for a set or Student(s) based on the Students mastery.
| student_ids required | Array of integers The ID(s) of the students for which you want to get feedback. |
| student_uids required | Array of strings The UID(s) of the students for which you want to get feedback. |
| objective_ids required | Array of integers The ID(s) of the Objective for which you want to get feedback. |
| objective_uids required | Array of strings The UID(s) of the Objective for which you want to get feedback. |
{- "student_ids": [
- 18,
- 19
], - "objective_ids": [
- 9,
- 10
]
}{- "overall_value": 96.75
}