Domoscio API (v2.10.11)

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!

Authentication

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:

  1. 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 >

  2. Inside the response Header, the AccessToken and RefreshToken will be given:
    AccessToken: < AccessToken >
    RefreshToken: < RefreshToken >

  3. 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:

  • Note: You will receive the AccessToken in the response at every request. However, when the RefreshToken is expired, you will receive a 401 error. At this point, it will be necessary to reuse the AuthenticationToken to retrieve a new pair of RefreshToken / AccessToken.

Response Status

Domoscio API uses conventional HTTP response codes to indicate the success or failure of an API request. In general:

  • Codes in the 2xx range indicate success.
  • Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.).
  • Codes in the 5xx range indicate an error with Domoscio's servers (Refer to the Domoscio Support in this case).
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.

KnowledgeGraph

A 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 KnowledgeGraph

Create KnowledgeGraphs with payload parameters

Request Body schema: application/json
name
string

Object name.

uid
string

Object UID.

Responses

Request samples

Content type
application/json
{
  • "name": "Corporate Finance",
  • "uid": "fin101"
}

Response samples

Content type
application/json
{
  • "id": 45,
  • "name": "string",
  • "created_at": "2020-03-25T13:33:57.640Z",
  • "updated_at": "2020-03-25T13:33:57.640Z",
  • "uid": "string"
}

Get KnowledgeGraphs

Get KnowledgeGraphs with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

string or Array of strings

Fetch the object(s) with name.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Get a Knowledge Graph by ID

Get a specific knowledge graph

path Parameters
id
required
integer <int64>

Knowledge Graph ID

Responses

Response samples

Content type
application/json
{
  • "id": 45,
  • "name": "Corporate Finance",
  • "uid": "fin101",
  • "created_at": "2020-03-25T13:33:57.640Z",
  • "updated_at": "2020-03-25T13:33:57.640Z"
}

Update Knowledge Graph

Update a knowledge graph

path Parameters
id
required
integer <int64>

Knowledge Graph ID

Request Body schema: application/json
name
string

Object name.

uid
string

Object UID.

Responses

Request samples

Content type
application/json
{
  • "name": "No more Corporate Finance",
  • "uid": "fin101"
}

Response samples

Content type
application/json
{
  • "id": 45,
  • "name": "string",
  • "created_at": "2020-03-25T13:33:57.640Z",
  • "updated_at": "2020-03-25T13:33:57.640Z",
  • "uid": "uid_object"
}

Delete KnowledgeGraph

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
required
integer or string

KnowledgeGraph ID or UID

Responses

Response samples

Content type
application/json
{
  • "response": true
}

KnowledgeNode

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 KnowledgeNode

Create a KnowledgeNode object

Request Body schema: application/json
name
string

Object name.

uid
required
string

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

Object description

mean
number
Default: 60

Object's mean

standard_deviation
number
Default: 15

Object's standarddeviation

Responses

Request samples

Content type
application/json
{
  • "name": "Financial Assets",
  • "uid": "fa",
  • "knowledge_graph_id": 45
}

Response samples

Content type
application/json
{
  • "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

Get KnowledgeNodes with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

knowledge_graph_id
integer

Object related to a specific KnowledgeGraph ID.

knowledge_graph_uid
string

Object related to a specific KnowledgeGraph UID.

string or Array of strings

Fetch the object(s) with name.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get a KnowledgeNode by ID

Get a specific KnowledgeNode with ID or UID of the object

path Parameters
required
integer or string

KnowledgeNode ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid"
}

Response samples

Content type
application/json
{
  • "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 KnowledgeNode

Update a KnowledgeNode

path Parameters
required
integer or string

Knowledge Node ID or UID

Request Body schema: application/json
name
string

Object name.

key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

knowledge_graph_id
integer

Object related to a specific KnowledgeGraph ID.

knowledge_graph_uid
string

Object related to a specific KnowledgeGraph UID.

description
string

Object description

mean
number
Default: 60

Object's mean

standard_deviation
number
Default: 15

Object's standarddeviation

Responses

Request samples

Content type
application/json
{
  • "name": "No more Financial Assets"
}

Response samples

Content type
application/json
{
  • "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"
}

Delete KnowledgeNode

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
required
integer or string

KnowledgeNode ID or UID

Responses

Response samples

Content type
application/json
{
  • "response": true
}

KnowledgeGraphNode

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 KnowledgeGraphNode

Create a KnowledgeGraphNode object

Request Body schema: application/json
knowledge_graph_id
required
integer

Object related to a specific KnowledgeGraph ID, required only if no other knowledge_graph parameter in input.

knowledge_graph_uid
required
string

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.

Responses

Request samples

Content type
application/json
{
  • "knowledge_graph_id": 45,
  • "knowledge_node_id": 64
}

Response samples

Content type
application/json
{
  • "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

Get KnowledgeGraphNodes with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

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

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get a KnowledgeGraphNode by ID

Get a specific KnowledgeGraphNode with ID of the object

path Parameters
id
required
integer

KnowledgeGraphNode ID

Responses

Response samples

Content type
application/json
{
  • "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 KnowledgeGraphNode

Update a KnowledgeGraphNode

path Parameters
required
integer or string

Knowledge Node ID

Request Body schema: application/json
knowledge_graph_id
integer

Object related to a specific KnowledgeGraph ID.

knowledge_node_id
integer

Object related to a specific KnowledgeNode

Responses

Request samples

Content type
application/json
{
  • "knowledge_graph_id": 0,
  • "knowledge_node_id": 0
}

Response samples

Content type
application/json
{
  • "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
}

KnowledgeEdge

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 Edge

Create Knowledge Edges with payload parameters

Request Body schema: application/json
source_node_id
required
integer

Source Node Id.

destination_node_id
required
integer

Destination Node Id.

knowledge_graph_id
integer

Object related to a specific KnowledgeGraph ID.

Responses

Request samples

Content type
application/json
{
  • "source_node_id": 1,
  • "knowledge_graph_id": 45,
  • "destination_node_id": 2
}

Response samples

Content type
application/json
{
  • "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

Get Knowledge Edges with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

source_node_id
integer

Source Node Id.

destination_node_id
integer

Destination Node Id.

knowledge_graph_id
integer

Object related to a specific KnowledgeGraph ID.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get a KnowledgeEdge by ID

Get a specific KnowledgeEdge with ID or UID of the object

path Parameters
id
required
integer <int64>
Example: 1

KnowledgeEdge ID or UID

Responses

Response samples

Content type
application/json
{
  • "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"
}

Delete KnowledgeEdge

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
id
required
any

KnowledgeEdge ID

Responses

Response samples

Content type
application/json
{
  • "response": true
}

Content

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

Create contents with payload parameters

Request Body schema: application/json
uid
required
string

UID of the content.

name
string

Name of the content.

content_url
string

Url of the content.

content_sources
object

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.

Responses

Request samples

Content type
application/json
{
  • "uid": "content_uid",
  • "name": "Question 3 - Equations",
  • "content_url": "https://www.domoscio.com",
  • "content_sources": {},
  • "knowledge_node_id": 1,
  • "difficulty": 3,
  • "type": "Evaluation",
  • "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois &amp; 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>&lt;p&gt;Où le surf est-il apparu ? &lt;/p&gt;</prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\">&lt;p&gt;Australie&lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\">&lt;p&gt;Nice &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\">&lt;p&gt;Amérique du Sud &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\">&lt;p&gt;Polynésie &lt;/p&gt;</simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n"
}

Response samples

Content type
application/json
{
  • "id": 45,
  • "uid": "uid_object",
  • "type": "Evaluation",
  • "name": "Question 3 - Equations",
  • "content_url": "https://www.domoscio.com",
  • "content_sources": {},
  • "archived": true,
  • "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois &amp; 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>&lt;p&gt;Où le surf est-il apparu ? &lt;/p&gt;</prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\">&lt;p&gt;Australie&lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\">&lt;p&gt;Nice &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\">&lt;p&gt;Amérique du Sud &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\">&lt;p&gt;Polynésie &lt;/p&gt;</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

Get contents with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

string or Array of strings

Fetch the object(s) with name.

archived
boolean

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

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
{
  • "uid": "content_uid"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get a Content by ID or UID

Get a specific Content

path Parameters
required
integer or string

Content ID or UID

Responses

Response samples

Content type
application/json
{
  • "id": 45,
  • "uid": "uid_object",
  • "type": "Evaluation",
  • "name": "Question 3 - Equations",
  • "content_url": "https://www.domoscio.com",
  • "content_sources": {},
  • "archived": true,
  • "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois &amp; 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>&lt;p&gt;Où le surf est-il apparu ? &lt;/p&gt;</prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\">&lt;p&gt;Australie&lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\">&lt;p&gt;Nice &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\">&lt;p&gt;Amérique du Sud &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\">&lt;p&gt;Polynésie &lt;/p&gt;</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 Content

Update a Content with payload parameters

path Parameters
required
integer or string

Content ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

uid
string

Object UID.

name
string

Object name.

content_url
string

Url of the Content.

content_sources
object

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.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid",
  • "uid": "string",
  • "name": "string",
  • "content_url": "string",
  • "content_sources": {},
  • "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois &amp; 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>&lt;p&gt;Où le surf est-il apparu ? &lt;/p&gt;</prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\">&lt;p&gt;Australie&lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\">&lt;p&gt;Nice &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\">&lt;p&gt;Amérique du Sud &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\">&lt;p&gt;Polynésie &lt;/p&gt;</simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n"
}

Response samples

Content type
application/json
{
  • "id": 45,
  • "uid": "uid_object",
  • "type": "Evaluation",
  • "name": "Question 3 - Equations",
  • "content_url": "https://www.domoscio.com/",
  • "content_sources": {},
  • "archived": true,
  • "qti": "<assessmentItem title=\"Question 1 \" theme=\"Les rois &amp; 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>&lt;p&gt;Où le surf est-il apparu ? &lt;/p&gt;</prompt>\n <simpleChoice identifier=\"545\" fixed=\"false\">&lt;p&gt;Australie&lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"547\" fixed=\"false\">&lt;p&gt;Nice &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"548\" fixed=\"false\">&lt;p&gt;Amérique du Sud &lt;/p&gt;</simpleChoice>\n <simpleChoice identifier=\"546\" fixed=\"false\">&lt;p&gt;Polynésie &lt;/p&gt;</simpleChoice>\n </choiceInteraction>\n </itemBody>\n</assessmentItem>\n",
  • "created_at": "2020-03-25T13:33:57.640Z",
  • "updated_at": "2020-03-25T13:33:57.640Z"
}

Delete Content

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
required
integer or string

Content ID or UID

Responses

Response samples

Content type
application/json
{
  • "response": true
}

Archive or Unarchive Contents

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.

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

status
required
boolean

If set to true it will archive the Object, if set to false it will unarchive the Object.

Responses

Request samples

Content type
application/json
{
  • "id": 45,
  • "status": true
}

Response samples

Content type
application/json
true

KnowledgeNodeContent

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 Knowledge Node Contents

Create KnowledgeNodeContents with payload parameters

Request Body schema: application/json
knowledge_node_id
required
integer

Object related to a specific KnowledgeGraph ID, required only if no other knowledge_graph parameter in input.

knowledge_node_uid
string

Object related to a specific KnowledgeGraph ID, required only if no other knowledge_graph parameter in input.

content_id
required
integer

Object related to a specific Content ID, required only if no content_uid.

content_uid
string

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

Responses

Request samples

Content type
application/json
{
  • "knowledge_node_id": 0,
  • "knowledge_node_uid": "string",
  • "content_id": 0,
  • "content_uid": "string",
  • "difficulty": 3
}

Response samples

Content type
application/json
{
  • "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": {
    }
}

Get KnowledgeNodeContents

Get Knowledge Node Contents with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

knowledge_node_id
integer

Object related to a specific KnowledgeGraph ID.

knowledge_node_uid
string

Object related to a specific KnowledgeGraph UID.

content_id
integer

Object related to a specific Content

content_uid
string

Object related to a specific Content

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get a KnowledgeNodeContent by ID

Get a specific KnowledgeNodeContent

path Parameters
id
required
integer

KnowledgeNodeContent ID

Responses

Response samples

Content type
application/json
{
  • "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": {
    }
}

Update KnowledgeNodeContent

Update a KnowledgeNodeContent with payload parameters

path Parameters
id
required
integer

KnowledgeNodeContent ID

Request Body schema: application/json
difficulty
number <float>
Default: 0

Difficulty of the Content for this specific KnowledgeNode.

Responses

Request samples

Content type
application/json
{
  • "difficulty": 3
}

Response samples

Content type
application/json
{
  • "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": {
    }
}

Delete KnowledgeNodeContent

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
id
required
any

KnowledgeNodeContent ID

Responses

Response samples

Content type
application/json
{
  • "response": true
}

Tag

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.

Create Tag

Create a Tag object

Request Body schema: application/json
name
string

Object name.

uid
required
string

Object UID.

tag_set_id
required
integer

Tags set ID related to this Tag. Required if no tag_set_uid.

tag_set_uid
required
string

Tags set UID related to this Tag. Required if no tag_set_id.

Responses

Request samples

Content type
application/json
{
  • "name": "First Tag",
  • "uid": "tag1",
  • "tag_set_id": 1
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "First Tag",
  • "created_at": "2020-04-15T08:02:51.902Z",
  • "updated_at": "2020-04-15T08:02:51.902Z",
  • "tag_set_id": 1,
  • "uid": "tag1"
}

Get Tags

Get Tags with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

name
string

Object name.

tag_set_id
integer

Tags set ID related to this object.

tag_set_uid
string

Tags set UID related to this object.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Get a Tag by ID

Get a specific Tag with ID or UID

path Parameters
required
integer or string
Example: 2

Tag ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid"
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "name": "Learning",
  • "created_at": "2020-04-05T13:13:40.276Z",
  • "updated_at": "2020-04-05T13:13:40.276Z",
  • "tag_set_id": 1,
  • "uid": "Tag_Learning"
}

Update Tag

Update a Tag

path Parameters
required
integer or string
Example: 2

Tag ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

name
string

Object name.

uid
string

Object UID.

Responses

Request samples

Content type
application/json
{
  • "name": "Learning 2"
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "name": "Learning 2",
  • "created_at": "2020-04-05T13:13:40.276Z",
  • "updated_at": "2020-04-15T08:35:39.187Z",
  • "tag_set_id": 1,
  • "uid": "Tag_Learning"
}

TagSet

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 TagSet

Create a TagSet object

Request Body schema: application/json
name
string

Object name.

uid
required
string

Object UID.

user_modelisation
boolean
Default: false

True if this tag set is used for user modelisation.

Responses

Request samples

Content type
application/json
{
  • "name": "Evaluation",
  • "uid": "eval"
}

Response samples

Content type
application/json
{
  • "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

Get TagSets with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

name
string

Object name.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Get a TagSet by ID

Get a specific Tagset with ID or UID

path Parameters
required
integer or string
Example: 4

TagSet ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid"
}

Response samples

Content type
application/json
{
  • "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 TagSet

Update a Tagset

path Parameters
required
integer or string
Example: 4

TagSet ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

name
string

Object name.

Responses

Request samples

Content type
application/json
{
  • "name": "New Evaluation"
}

Response samples

Content type
application/json
{
  • "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
}

TagEdge

A TagEdge object represents the edges among the TagSet objects. This object represents the links between two Tag objects of the TagSet.

Create TagEdge

Create a TagEdge object

Request Body schema: application/json
ancestor_id
required
integer

The Tag object ID this TagEdge object points to.

descendant_id
required
integer

The Tag object ID this TagEdge object comes from.

Responses

Request samples

Content type
application/json
{
  • "ancestor_id": 2,
  • "descendant_id": 1
}

Response samples

Content type
application/json
{
  • "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

Get TagEdges with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

ancestor_id
integer

The Tag object ID this TagEdge object points to.

descendant_id
integer

The Tag object ID this TagEdge object comes from.

tag_set_id
integer

Tags set ID related to this object.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get a TagEdge by ID

Get a specific TagEdge.

path Parameters
id
required
integer <int64>
Example: 1

TagEdge ID

Responses

Response samples

Content type
application/json
{
  • "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"
}

Tagging

The Tagging object represents a logical link between a Taggable object and a Tag. Among the Taggable objects we count KnowledgeNode, KnowledgeEdge, KnowledgeGraph, and Content objects.

Create Tagging

Create a Tagging object

Request Body schema: application/json
tag_id
required
integer

The Tag ID this Tagging object belongs to, required if no tag_uid

tag_uid
required
string

The Tag UID this Tagging object belongs to, required if no tag_id

taggable_id
required
integer

The Taggable Object ID this Tagging object belongs to, required if no taggable_uid

taggable_uid
required
integer

The Taggable Object UID this Tagging object belongs to, required if no taggable_id

taggable_type
required
string

The Taggable Object Type this Tagging object belongs to (KnowledgeNode, KnowledgeEdge, KnowledgeGraph, Content, Objective)

strength
number <float>

Relationship Strength between the object and the tag

Responses

Request samples

Content type
application/json
{
  • "tag_id": 1,
  • "taggable_id": 2,
  • "taggable_type": "KnowledgeNode"
}

Response samples

Content type
application/json
{
  • "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

Get Taggings with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

tag_id
integer

The Tag ID this Tagging object belongs to

tag_uid
string

The Tag UID this Tagging object belongs to

taggable_id
integer

The Taggable Object ID this Tagging object belongs to

content_uid
string

Object related to a specific Content

taggable_type
string

The Taggable Object Type this Tagging object belongs to (KnowledgeNode, KnowledgeEdge, KnowledgeGraph, Content, Objective)

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Get a Tagging by ID

Get a specific Tagging.

path Parameters
id
required
integer <int64>
Example: 1

Tagging ID

Responses

Response samples

Content type
application/json
{
  • "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
}

Student

A Student is a type of user that interacts with your platform for learning purposes.

Create Students

Create Students and Civil profiles with payload parameters

Request Body schema: application/json
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

The StudentGroup to which the Student is related.

object

Information about the student civil profile.

Responses

Request samples

Content type
application/json
{
  • "uid": "student_uid",
  • "active": true,
  • "is_test_student": false,
  • "student_group_id": 0,
  • "civil_profile_attributes": {
    }
}

Response samples

Content type
application/json
{
  • "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

Get Students with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

string or Array of strings

Fetch the object(s) with name.

student_group_id
integer

The StudentGroup to which the Student is related.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
{
  • "uid": "uid_object"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get a Student

Get a specific Student with his ID or UID

path Parameters
required
integer or string

Student ID or uid if key_type='uid'

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid"
}

Response samples

Content type
application/json
[
  • {
    }
]

Update a Student

Update a specific Student with his ID or UID

path Parameters
required
integer or string

Student ID or UID if key_type='uid'

Request Body schema: application/json
key_type
string

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

The StudentGroup to which the Student is related.

uid
integer

UID of the student.

object

Information about the student civil profile.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid",
  • "active": true,
  • "is_test_student": false,
  • "student_group_id": 0,
  • "uid": "student_uid",
  • "civil_profile_attributes": {
    }
}

Response samples

Content type
application/json
{
  • "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": {
    },
  • "civil_profile": {
    }
}

Delete Student

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
required
integer or string

Student ID or UID

Responses

Response samples

Content type
application/json
{
  • "response": true
}

StudentGroup

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 StudentGroup

Create a StudentGroup object

Request Body schema: application/json
name
string

Object name.

uid
required
string

Object UID.

Responses

Request samples

Content type
application/json
{
  • "name": "group_1",
  • "uid": "gp1"
}

Response samples

Content type
application/json
{
  • "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

Get StudentGroups with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

name
string

Object name.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Get a StudentGroup by ID

Get a specific StudentGroup with ID or UID

path Parameters
required
integer or string
Example: 2

StudentGroup ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid"
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "uid": "gp2",
  • "name": "group_2",
  • "created_at": "2020-04-05T13:13:40.276Z",
  • "updated_at": "2020-04-05T13:13:40.276Z"
}

Update StudentGroup

Update a StudentGroup

path Parameters
required
integer or string
Example: 2

StudentGroup ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

name
string

Object name.

uid
string

Object UID.

Responses

Request samples

Content type
application/json
{
  • "name": "new_group_2"
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "uid": "gp2",
  • "name": "new_group_2",
  • "created_at": "2020-04-05T13:13:40.276Z",
  • "updated_at": "2020-04-15T08:35:39.187Z"
}

Objective

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 Objective

Create an Objective object

Request Body schema: application/json
adaptive
boolean

If it's a Hub objective.

memorize
boolean

If it's a Lock objective.

name
string

Object name.

uid
required
string

Object UID.

learning_program_id
integer

LearningProgram ID.

learning_program_uid
string

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:

  • "mastery": The validation is based on the mastery score of the Student.
  • "number": The validation is based on the number of successful answers of the Student.
  • "ratio": The validation is based on the ratio of successful answers of the Student.
  • "streak": The validation is based on the number of successful answers succesively of the Student.
validation_threshold
number <float>

The threshold value to reach to validate the Objective. Depending the validation strategy choosen, it can either be:

  • The mastery score to reach
  • The number of successful answers
  • The ratio of successful answers
  • The number of successful answers succesively
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.

Responses

Request samples

Content type
application/json
{
  • "adaptive": true,
  • "memorize": false,
  • "name": "Objective 1",
  • "learning_program_id": 1,
  • "learning_program_uid": "uid_experience",
  • "objects": {
    },
  • "target_only": true,
  • "uid": "Obj2",
  • "validation_strategy": "number",
  • "validation_thresholds": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "uid": "string",
  • "adaptive": true,
  • "memorize": false,
  • "name": "string",
  • "learning_program_id": 0,
  • "learning_program_uid": "string",
  • "objects": {
    },
  • "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": {
    }
}

Get Objectives

Get Objectives with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

learning_program_id
integer

LearningProgram ID.

learning_program_uid
string

LearningProgram UID.

string or Array of strings

Fetch the object(s) with name.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get an Objective by ID

Get a specific Objective with ID or UID of the object

path Parameters
required
integer or string
Example: 1

Objective ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "uid": "Obj1",
  • "name": "Objective 1",
  • "adaptive": true,
  • "memorize": false,
  • "learning_program_id": 1,
  • "learning_program_uid": "uid_experience",
  • "objects": {
    },
  • "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 Objective

Update an Objective

path Parameters
required
integer or string
Example: 1

Objective ID or UID

Request Body schema: application/json
key_type
string

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

Object name.

objects
object

Set of objects; IDs or UIDs of KnowledgeNodes, KnowledgeGraphs, Tags related to this Objective

Responses

Request samples

Content type
application/json
{
  • "name": "New Objective name"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "uid": "Obj1",
  • "name": "New Objective name",
  • "adaptive": true,
  • "memorize": false,
  • "learning_program_id": 1,
  • "learning_program_uid": "uid_experience",
  • "objects": {
    },
  • "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": { }
}

Delete Objective

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
required
integer or string

Objective ID or UID

Responses

Response samples

Content type
application/json
{
  • "response": true
}

ObjectiveKnowledgeNode

An ObjectiveKnowledgeNode represents the KnowledgeNode scope of the Objective.

Get ObjectiveKnowledgeNodes

Get ObjectiveKnowledgeNodes with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

knowledge_node_id
integer

Object related to a specific KnowledgeNode

knowledge_node_uid
string

Object related to a specific KnowledgeNode

objective_id
integer

Objective ID.

objective_uid
string

Objective UID, required if no objective_id.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Get an ObjectiveKnowledgeNode by ID

Get a specific ObjectiveKnowledgeNode by ID

path Parameters
id
required
integer <int64>
Example: 1

ObjectiveKnowledgeNode ID

Responses

Response samples

Content type
application/json
{
  • "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
}

LearningProgram

A LearningProgram can be used to group Objectives together and orchestrate them through starting strategies.

Create LearningPrograms

Create LearningPrograms with payload parameters

Request Body schema: application/json
uid
required
string

Object UID.

name
string

Object name.

description
string

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.

Responses

Request samples

Content type
application/json
{
  • "uid": "lp_1",
  • "name": "Course 1",
  • "start_strategy": "at_subscription"
}

Response samples

Content type
application/json
{
  • "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

Get LearningPrograms with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
id
integer

Object ID.

uid
string

Object UID.

archived
boolean

Whether the LearningProgram is archived

name
string

Object name.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

with_details
boolean
Default: false

This option gives a list of associated knowledge nodes and knowledge graphs

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get a LearningProgram

Get a specific LearningProgram with ID or UID

path Parameters
required
integer or string
Example: lp_1

LearningProgram ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid"
}

Response samples

Content type
application/json
{
  • "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 LearningProgram

Update a LearningProgram

path Parameters
required
integer or string
Example: lp_1

LearningProgram ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

uid
string

Object UID.

archived
boolean

To archive/unarchive a LearningProgram

closeed
boolean

To close/unclose a LearningProgram

name
string

Object name.

description
string

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.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid",
  • "name": "New Course 1"
}

Response samples

Content type
application/json
{
  • "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"
}

Delete a LearningProgram

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
required
integer or string
Example: lp_1

LearningProgram ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid"
}

Response samples

Content type
application/json
true

Subscription

A Subscription enrolls a Student or a StudentGroup to an Objective or a LearningProgram.

Create Subscription

Create a Subscription. There are two types of Subscription. You can either subscribe a Student to a LearningProgram or directly to an Objective.

Request Body schema: application/json
uid
string

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.

Responses

Request samples

Content type
application/json
{
  • "learning_program_uid": "lp_1",
  • "student_uid": "student_1",
  • "synchronous_init": true
}

Response samples

Content type
application/json
{
  • "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

Get Subscriptions with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

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

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Unsubscribe Students

Unsubscribe Student(s) from LearningProgram(s) or Objective(s)

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "learning_program_uid": "lp_1",
  • "student_uid": "student_1"
}

Response samples

Content type
application/json
true

Get a Subscription by ID

Get a specific Subscription with ID or UID

path Parameters
required
integer or string
Example: 2

Subscription ID or UID

Request Body schema: application/json
type
string
Enum: "LearningProgram" "Objective"

Type of Subscription to consider when fetching Subscriptions.

key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

Responses

Request samples

Content type
application/json
{
  • "type": "LearningProgram"
}

Response samples

Content type
application/json
{
  • "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 Objective for a Student

Start manually an Objective for a given Student

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "objective_uid": "obj_1",
  • "student_uid": "student_1"
}

Response samples

Content type
application/json
true

ObjectiveStudent

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 ObjectiveStudent

Create an ObjectiveStudent object

Request Body schema: application/json
uid
string

Object UID.

student_id
required
integer

Student ID.

student_uid
required
string

Student UID, required if no student_id.

objective_id
required
integer

Objective ID.

objective_uid
required
string

Objective UID, required if no objective_id.

memorize
boolean
Default: true

Activates memorization process after learning process (if adaptive set to true) or if no learning process will start immediately.

deadline
string <date>
Deprecated

Deadline for the review sessions in the memorization process.

adaptive
boolean
Default: false

Activates adaptive learning process (CAT, Evaluation/learning Recommendations, ...)

required_score
number

Expected student score (the score representing the level of mastery of the student between 0 and 1) to validate the objective.

mastery_percentage
number

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

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

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

Threshold value for validation per knowledge node (value between -4 and 4).
Example: {kn_id_1: 3, kn_id_2: -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.

Responses

Request samples

Content type
application/json
{
  • "student_id": 14,
  • "objective_id": 3,
  • "memorize": true
}

Response samples

Content type
application/json
{
  • "id": 30,
  • "uid": null,
  • "objective_id": 59,
  • "student_id": 35,
  • "adaptive": false,
  • "memorize": true,
  • "active": true,
  • "closed": null,
  • "reached": false,
  • "adaptive_options": { },
  • "memorize_options": {
    },
  • "attempt_options": { },
  • "created_at": "2021-05-04T13:51:50.851Z",
  • "updated_at": "2021-05-04T13:51:50.851Z"
}

Get ObjectiveStudent

Get ObjectiveStudent with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

student_id
integer

Student ID.

student_uid
string

Student UID, required if no student_id.

objective_id
integer

Objective ID.

objective_uid
string

Objective UID, required if no objective_id.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Update Multiple ObjectiveStudents

Update Multiple ObjectiveStudents.

Request Body schema: application/json
id
required
integer

Object ID

uid
required
string

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

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

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.

Responses

Request samples

Content type
application/json
{
  • "id": [
    ],
  • "closed": true
}

Response samples

Content type
application/json
[
  • {
    }
]

Get an ObjectiveStudent by ID

Get a specific ObjectiveStudent with ID

path Parameters
id
required
integer <int64>
Example: 30

ObjectiveStudent ID

Responses

Response samples

Content type
application/json
{
  • "id": 30,
  • "uid": null,
  • "objective_id": 59,
  • "student_id": 35,
  • "adaptive": false,
  • "memorize": true,
  • "active": true,
  • "closed": null,
  • "reached": false,
  • "adaptive_options": { },
  • "memorize_options": {
    },
  • "attempt_options": { },
  • "created_at": "2021-05-04T13:51:50.851Z",
  • "updated_at": "2021-05-04T13:51:50.851Z"
}

Update an ObjectiveStudent by ID

Update an ObjectiveStudent object

path Parameters
id
required
integer <int64>
Example: 30

ObjectiveStudent ID

Request Body schema: application/json
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

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

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

Object UID.

deadline
string <date>

Objective deadline for a specific Student.

Responses

Request samples

Content type
application/json
{
  • "closed": true
}

Response samples

Content type
application/json
{
  • "id": 30,
  • "uid": null,
  • "objective_id": 59,
  • "student_id": 35,
  • "adaptive": false,
  • "memorize": true,
  • "active": true,
  • "closed": true,
  • "reached": false,
  • "adaptive_options": { },
  • "memorize_options": {
    },
  • "attempt_options": { },
  • "created_at": "2021-05-04T13:51:50.851Z",
  • "updated_at": "2021-05-04T13:51:50.851Z"
}

Delete ObjectiveStudent

Please note that the deletion of an object is permanent and irrevocable, we advise deleting objects with care and attention.

path Parameters
id
required
any

ObjectiveStudent ID

Responses

Response samples

Content type
application/json
{
  • "response": true
}

Create Multiple OS in Batch

Create multiple ObjectiveStudents (OS) in one request.

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "objective_students": [
    ],
  • "synchronous": true,
  • "return_records": true
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Scorm

A SCORM is a package that allows students to subscribe from their LMS.

Create scorm

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.

Request Body schema: application/json
learning_program_uid
required
string

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.

  • student_groups_archive: generate a .zip with a scorm for each student_group
  • themes_archive: generate a .zip with a scorm to access learning plateform and a scorm per objective to register student

Responses

Request samples

Content type
application/json
{
  • "learning_program_uid": "my_learning_program_uid",
  • "student_group_uid": "my_student_group_uid"
}

Response samples

Content type
application/zip
Renders files data from SCORM package.

RecommendationUtils

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

Fetch Content Recommendations

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "objective_id": 1,
  • "student_id": 3
}

Response samples

Content type
application/json
[
  • {
    }
]

Computerized Adaptive Testing

Get relevant questions based on past answered questions to get a fast positioning of the Student.

Request Body schema: application/json
objective_id
required
integer

Objective ID.

objective_uid
string

Objective UID, required if no objective_id.

student_id
required
integer

Student ID.

student_uid
string

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

Responses

Request samples

Content type
application/json
{
  • "objective_id": 1,
  • "student_id": 3
}

Response samples

Content type
application/json
[
  • {
    }
]

New Attempt

Create new Attempt for a specific Positioning Objective. This route must be used only after finishing the first attempt.

Request Body schema: application/json
objective_id
required
integer

Objective ID.

objective_uid
string

Objective UID, required if no objective_id.

student_id
required
integer

Student ID.

student_uid
string

Student UID, required if no student_id.

Responses

Request samples

Content type
application/json
{
  • "objective_id": 1,
  • "student_id": 3
}

Response samples

Content type
application/json
true

Recommendation

A Recommendation is a Content chosen by the recommender system for a specific Student on a specific KnowledgeNode, it will help the Student reach the desired Objective level.

Get Recommendations

Get Recommendations with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

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

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get an Recommendation by ID

Get a specific Recommendation with ID of the object

path Parameters
required
integer or string
Example: 1

Recommendation ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

ReviewUtils

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 Reviews

Fetch all reviews or pending reviews of a set of Students

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "student_id": [
    ],
  • "knowledge_node_id": [
    ],
  • "pending": true,
  • "group_by": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Fetch Reviews Deprecated

Fetch all reviews or pending reviews of a set of Students

Request Body schema: application/json
student_id
required
integer

Student ID.

student_uid
required
string

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.

Responses

Request samples

Content type
application/json
{
  • "student_ids": [
    ],
  • "knowledge_node_ids": [
    ],
  • "pending": true
}

Response samples

Content type
application/json
{
  • "10": [
    ],
  • "15": [
    ]
}

Fetch Reviews Questions Deprecated

Fetch all reviews or pending review questions for a set of Students

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "student_ids": [
    ],
  • "objective_ids": [
    ],
  • "exclude_content_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "45": [
    ],
  • "47": [
    ]
}

Fetch Pending Reviews Questions per Student Deprecated

Fetch Pending Reviews Questions per Student

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "student_id": 1,
  • "objective_ids": [
    ],
  • "exclude_content_ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Event

An Event represents an interaction a student has with a specific content, it is defined through various parameters like the type of event or the score of the student regarding this content. For instance, if you need to store results, you can declare an Event object with an EventResult type. The only constraint for the consolidation feature is that you must register your Event as EventReview type and the payload should be either “0” or “100”, it is sent according to xAPI format.

Create Events

Create Events with payload parameters

Request Body schema: application/json
student_id
required
integer

Student ID.

student_uid
required
string

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
Enum: "EventReview" "EventResult" "EventRead" "EventError" "EventRating"
  • EventRead: Event linked to interactions with ContentLearning recommendations in Adaptive Objective
  • EventReview: Event linked to interactions with ContentAction/ContentEvaluation reviews in Memorize Objective
  • EventResult: Event linked to interactions with ContentEvaluation questions in Adaptive Objective
  • EventError: Event linked to interactions with FeedbackErrors in Adadaptive Objective
  • EventRating: Event linked to interactions with Content for ratings. The payload for this specific type should be a hash not with a score but with the following parameters: student_progress, relevance, easiness
payload
object

Contains information about score, format of the response etc..

generated_at
string <date>

Date of creation of the Event

time_spent
number <float>

Time spent with the content in milliseconds

standard
string

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

Responses

Request samples

Content type
application/json
{
  • "student_uid": "s_1",
  • "content_uid": "c_1_1",
  • "payload": {},
  • "event_type": "EventReview",
  • "review_id": 78,
  • "standard": "xAPI"
}

Response samples

Content type
application/json
{
  • "id": 52,
  • "event_type": "EventReview",
  • "payload": {},
  • "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": [
    ],
  • "learning_session_id": 14,
  • "feedback_error_id": null,
  • "generated_at": "2021-10-22 14:11:22 UTC",
  • "standard": "xAPI",
  • "time_spent": null
}

Get Events

Get Events with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
id
integer

Object ID.

student_id
integer

Student ID.

student_uid
string

Student UID, required if no student_id.

content_id
integer

Object related to a specific Content

content_uid
string

Object related to a specific Content

knowledge_node_id
integer

Object related to a specific KnowledgeNode

date_start
string <date>

Scope starting date

date_end
string <date>

Scope ending date

event_type
string
Enum: "EventReview" "EventResult" "EventRead" "EventError" "EventRating"
  • EventRead: Event linked to interactions with ContentLearning recommendations in Adaptive Objective
  • EventReview: Event linked to interactions with ContentAction/ContentEvaluation reviews in Memorize Objective
  • EventResult: Event linked to interactions with ContentEvaluation questions in Adaptive Objective
  • EventError: Event linked to interactions with FeedbackErrors in Adadaptive Objective
  • EventRating: Event linked to interactions with Content for ratings. The payload for this specific type should be a hash not with a score but with the following parameters: student_progress, relevance, easiness
learning_session_id
integer

LearningSession ID linked to Event

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get an Event by ID

Get a specific Event.

path Parameters
id
required
integer <int64>

Event ID

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "learning_session_id": 5,
  • "generated_at": "2020-04-14T12:12:11.133Z",
  • "return": false,
  • "standard": null,
  • "time_spent": null
}

Create Multiple Events in Batch

Create multiple Events in one request.

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "events": [
    ],
  • "synchronous": true,
  • "return_records": true
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

ObjectiveStudentAssessment

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 ObjectiveStudentAssessment

Create an ObjectiveStudentAssessment (OSA)

Request Body schema: application/json
uid
string

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.

Responses

Request samples

Content type
application/json
{
  • "student_uid": "student_145472",
  • "objective_uid": "obj_145712",
  • "validated": true,
  • "knowledge_node_update": true
}

Response samples

Content type
application/json
{
  • "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

Get ObjectiveStudentAssessment with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

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

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get an ObjectiveStudentAssessment by ID

Get a specific ObjectiveStudentAssessment with ID

path Parameters
id
required
integer <int64>
Example: 1

ObjectiveStudentAssessment ID

Responses

Response samples

Content type
application/json
{
  • "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 OSA in Batch

Create multiple ObjectiveStudentAssessments (OSA) in one request.

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "objective_student_assessments": [
    ],
  • "synchronous": true,
  • "return_records": true
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

FeedbackErrorSet

A FeedBackErrorSet helps you to create a referential of errors. It can help you organize your FeedbackErrors together by grouping them together.

Create FeedbackErrorSet

Create FeedbackErrorSet with payload parameters

Request Body schema: application/json
uid
required
string

UID of the FeedbackErrorSet.

name
string

Name of the FeedbackErrorSet.

description
string

Description of the FeedbackErrorSet

Responses

Request samples

Content type
application/json
{
  • "uid": "feedback_error_set_uid",
  • "name": "ErrorSet 3 - Syntax",
  • "description": "Group all the feedback errors linked to the syntax"
}

Response samples

Content type
application/json
{
  • "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

Get FeedbackErrorSets with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

string or Array of strings

Fetch the object(s) with name.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
{
  • "uid": "feedback_error_set_uid"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get a FeedbackErrorSet by ID or UID

Get a specific FeedbackErrorSet

path Parameters
required
integer or string

FeedbackErrorSet ID or UID

Responses

Response samples

Content type
application/json
{
  • "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 FeedbackErrorSet

Update a FeedbackErrorSet with payload parameters

path Parameters
required
integer or string

FeedbackErrorSet ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

uid
string

Object UID.

name
string

Name of the FeedbackErrorSet

description
any

Description of the FeedbackErrorSet

Responses

Request samples

Content type
application/json
{
  • "key_type": "uid",
  • "uid": "string",
  • "name": "ErrorSet 4 - Syntax",
  • "description": "Group all the feedback errors linked to the syntax"
}

Response samples

Content type
application/json
{
  • "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"
}

FeedbackError

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 FeedbackError

Create FeedbackErrors with payload parameters

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "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
}

Response samples

Content type
application/json
{
  • "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

Get FeedbackErrors with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
integer or Array of integers

Fetch the object(s) with ID.

string or Array of strings

Fetch the object(s) with UID.

string or Array of strings

Fetch the object(s) with name.

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
{
  • "uid": "feedback_error_uid"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get a FeedbackError by ID or UID

Get a specific FeedbackError

path Parameters
required
integer or string

FeedbackError ID or UID

Responses

Response samples

Content type
application/json
{
  • "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 FeedbackError

Update a FeedbackError with payload parameters

path Parameters
required
integer or string

FeedbackError ID or UID

Request Body schema: application/json
key_type
string

Key type to use. If key_type='uid', UID will be considered instead of ID.

uid
string

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

Responses

Request samples

Content type
application/json
{
  • "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
}

Response samples

Content type
application/json
{
  • "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"
}

UserModelUtils

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 Total FeedbackErrors

Get the total FeedbackErrors on a set of KnowledgeNodes for specific Student(s).

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "student_uids": [
    ],
  • "knowledge_node_uids": [
    ]
}

Response samples

Content type
application/json
{
  • "kn_1": {
    }
}

AI Training Feedbacks

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

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "student_ids": [
    ],
  • "objective_ids": [
    ],
  • "feedback_type": "memorization",
  • "number_of_os": 10
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

AI Training Status

Get all the AI Training Status of the system, for a set or Student(s) based on the Students mastery.

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "student_ids": [
    ],
  • "objective_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "overall_value": 96.75
}

LearningSession

A LearningSession groups Event or ObjectiveStudentAssessment objects together. It has a starting and an ending time. It is convenient to highlight that these objects are part of the same logical and physical learning session by the Student.

Create LearningSessions

Create LearningSessions with payload parameters

Request Body schema: application/json
uid
string

Object UID.

student_id
required
integer

Student ID.

student_uid
required
string

Student UID, required if no student_id.

objective_id
integer

Objective ID.

objective_uid
string

Objective UID, required if no objective_id.

type
required
string
Default: "LearningSessionMemorize"
Enum: "LearningSessionMemorize" "LearningSessionCustom"

The LearningSession type.

starting_time
string <date>

Starting time scope

ending_time
string <date>

Ending time scope

origin
string

Origin where the LearningSession is created. Can be used when using multiple platforms to create LS.

Responses

Request samples

Content type
application/json
{
  • "student_id": 1,
  • "objective_id": 34,
  • "type": "LearningSessionAdaptive",
  • "starting_time": "2020-04-14T14:33:57.640Z",
  • "ending_time": "2020-04-14T14:33:57.640Z"
}

Response samples

Content type
application/json
{
  • "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

Get LearningSessions with payload parameters (limit number of data in response is 200, use page parameter to get the following data).

Request Body schema: application/json
student_id
integer

Student ID.

student_uid
string

Student UID, required if no student_id.

objective_id
integer

Objective ID.

objective_uid
string

Objective UID, required if no objective_id.

type
string
Enum: "LearningSessionPositioning" "LearningSessionAdaptive" "LearningSessionMemorize" "LearningSessionCustom"

The LearningSession 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

sort_by
string

Parameter(s) to sort the response by.
Example: 'param1.asc,param2.desc' will sort the data with param1 in ascending order then with param2 in descending order.

page
integer
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
Default: 200

Number of objects to display per page.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Get a LearningSessions by ID

Get a specific LearningSession.

path Parameters
id
required
integer <int64>

LearningSession ID

Responses

Response samples

Content type
application/json
{
  • "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"
}

Close a LearningSessions by ID

Close a specific LearningSession.

Request Body schema: application/json
required
integer or Array of integers

Fetch the object(s) with ID.

Responses

Request samples

Content type
application/json
{
  • "id": 1
}

Response samples

Content type
application/json
{
  • "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"
}

StatsUtils

Percentage Of Active Students

Get the percentage of active students, an active student is a student who made at least an interaction.

Request Body schema: application/json
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
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.

Responses

Request samples

Content type
application/json
{
  • "student_id": "[14, 167, 314, 34]",
  • "objective_id": "[12]"
}

Response samples

Content type
application/json
75

Student Validation Progress

Get the Student validation progress (percentage of validation, mastery score, threshold for validation)

Request Body schema: application/json
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
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

Responses

Request samples

Content type
application/json
{
  • "student_id": [
    ],
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "47": {
    },
  • "214": {
    }
}

Event Statistics

Get Event statistics for the scope specified in input

Request Body schema: application/json
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
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

Responses

Request samples

Content type
application/json
{
  • "student_uid": [
    ],
  • "event_type": "EventResult",
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "student_1": {
    },
  • "student_2": {
    }
}

LearningSessions Stats

Fetch LearningSessions with specific parameters

Request Body schema: application/json
student_id
required
integer

Student ID.

student_uid
required
string

Student UID, required if no student_id.

exclude_test_students
boolean
Default: false

Whether to exclude the test students from the stats, default is set to false.

objective_id
integer

Objective ID.

objective_uid
string

Objective UID, required if no objective_id.

knowledge_node_id
integer

Object related to a specific KnowledgeNode

knowledge_node_uid
string

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

Responses

Request samples

Content type
application/json
{
  • "student_uid": [
    ],
  • "type": "LearningSessionMemorize",
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "student_1": {
    },
  • "student_2": {
    }
}

Number Of Events

Get the number of Events for a specified scope

Request Body schema: application/json
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
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.

Responses

Request samples

Content type
application/json
{
  • "student_id": [
    ],
  • "start_date": "2017-07-21",
  • "ending_date": "2017-09-21",
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "kn_id_1": {
    },
  • "kn_id_2": {
    }
}

Memorization Progress

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.

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "student_uids": [
    ],
  • "knowledge_node_id": [
    ]
}

Response samples

Content type
application/json
{
  • "review_progress": 0.6
}

KnowledgeGraph Review Stats

Get the review statistics on a given KnowledgeGraph

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "knowledge_graph_id": 23,
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "knowledge_node_1": {
    },
  • "knowledge_node_2": {
    }
}

KnowledgeNode Review Stats

Get the review statistics on a given KnowledgeNode or a list of KnowledgeNodes

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "knowledge_node_uid_id": [
    ]
}

Response samples

Content type
application/json
{
  • "knowledge_node_1": {
    },
  • "knowledge_node_2": {
    }
}

Content Review Stats

Get the review statistics on a given Content or a list of Contents

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "content_uid": [
    ]
}

Response samples

Content type
application/json
{
  • "content_1": {
    },
  • "content_2": {
    }
}

Average Memory Level

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

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "objective_uid": [
    ],
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "average_memory_level": {
    }
}

Percentage Performed Actions

Get the percentage of the perfomed actions for a given Objective or list of Objectives

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "objective_uid": "objective_1",
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "objective_1": {
    }
}

Potential Memory Level

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.

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "student_uid": [
    ],
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "student_1": {
    },
  • "student_2": {
    }
}

GameplayUtils

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 Deprecated

Get the percentage of active students, an active student is a student who made at least an interaction.

Request Body schema: application/json
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
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.

Responses

Request samples

Content type
application/json
{
  • "student_id": "[14, 167, 314, 34]",
  • "objective_id": "[12]"
}

Response samples

Content type
application/json
75.1

Get Student Validation Progress Deprecated

Get the Student validation progress (percentage of validation, mastery score, threshold for validation)

Request Body schema: application/json
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
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

Responses

Request samples

Content type
application/json
{
  • "student_id": [
    ],
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "47": {
    },
  • "214": {
    }
}

Get Event Statistics Deprecated

Get Event statistics for the scope specified in input

Request Body schema: application/json
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
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

Responses

Request samples

Content type
application/json
{
  • "student_uid": [
    ],
  • "event_type": "EventResult",
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "student_1": {
    },
  • "student_2": {
    }
}

Fetch LearningSessions Stats Deprecated

Fetch LearningSessions with specific parameters

Request Body schema: application/json
student_id
required
integer

Student ID.

student_uid
required
string

Student UID, required if no student_id.

exclude_test_students
boolean
Default: false

Whether to exclude the test students from the stats, default is set to false.

objective_id
integer

Objective ID.

objective_uid
string

Objective UID, required if no objective_id.

knowledge_node_id
integer

Object related to a specific KnowledgeNode

knowledge_node_uid
string

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

Responses

Request samples

Content type
application/json
{
  • "student_uid": [
    ],
  • "type": "LearningSessionMemorize",
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "student_1": {
    },
  • "student_2": {
    }
}

Get Number Of Interactions (Events & OSA) Deprecated

Get the number of Interactions (Events & OSA) for a specified scope

Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "student_id": [
    ],
  • "start_date": "2017-07-21",
  • "ending_date": "2017-09-21",
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "kn_id_1": {
    },
  • "kn_id_2": {
    }
}

Get Number Of Events Deprecated

Get the number of Events for a specified scope

Request Body schema: application/json
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
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.

Responses

Request samples

Content type
application/json
{
  • "student_id": [
    ],
  • "start_date": "2017-07-21",
  • "ending_date": "2017-09-21",
  • "group_by": [
    ]
}

Response samples

Content type
application/json
{
  • "kn_id_1": {
    },
  • "kn_id_2": {
    }
}

Get Consolidated Review Statistics For A Set Of Students Deprecated

Get consolidated review statistics per Objective or KnowledgeGraph for a set of students

Request Body schema: application/json
student_uids
Array of strings

List of Student UIDs to scope the request.

exclude_test_students
boolean
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".

Responses

Request samples

Content type
application/json
{
  • "objective_uids": [
    ],
  • "student_uids": [
    ]
}

Response samples

Content type
application/json
{
  • "objectives": [
    ]
}

Get Step Review Score Deprecated

Get a step review score linked to the state of memorization of the set of Students.

  • Short term memorization: step review score <= 1
  • Medium term memorization: 1 < step review score <= 2
  • Long term memorization: 2 < step review score
  • Request Body schema: application/json
    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
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uids": [
      ],
    • "knowledge_graph_uids": [
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "knowledge_nodes": [
      ],
    • "mean_step_review": 1.2
    }

    Get Memorization Progress Deprecated

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uids": [
      ],
    • "knowledge_node_id": [
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "review_progress": 0.6
    }

    Analytics

    Analytics provides useful analysis informations.

    Analytics Hub Progression

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Hub Progression Datatable

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Hub Engagement

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Hub Engagement Datatable

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Hub Usage

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Hub Usage Datatable

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Lock Progression

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Lock Progression Datatable

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Lock Engagement

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Lock Engagement Datatable

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Lock Usage

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"

    Analytics Lock Usage Datatable

    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.

    Request Body schema: application/json
    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.

    Responses

    Request samples

    Content type
    application/json
    {
    • "student_uid": [
      ],
    • "objective_uid": [
      ],
    • "start_date": "2022-01-01",
    • "end_date": "2023-01-01"
    }

    Response samples

    Content type
    application/json
    "TBD"