Learner
The Learner endpoints enable you to post learning data to Adaptemy and retrieve the learner profiles
Overview
A typical learner session involves the following sequence of API calls:
Fetch their learner profile to present the learner with personalised information in the app's user interface
Fetch the set of recommendations for the learner given the context
Provide learning content from your Learning Platform
Send learning events to Adaptemy and receive the updated learner profile
The Learn (XAPI) Object
Adaptemy uses the XAPI standard for recording all learning activity. This standard has various flexible implementations, and so the precise interpretation of the standard needs to be agreed between you and Adaptemy.
It is assumed that the Learning Platform (you) maintain the master copy of all learning records, and that Adaptemy receive all or a subset of those records relevant to your project with us.
The XAPI standard also allows for custom extensions, which again should be agreed with Adaptemy during the design phase.
Please refer to your custom documentation for agreed extensions for your implementations.
Property
Description
id
LRS statement GUID
timestamp
An ISO6801 timestamp indicating the END of the learning event
actor
The user who performed the action, identified by:
account.homepage
URI of the identity provider
account.name
ID of the user within this identity provider
verb.id
The action performed by the user, selected from a preset list of standardised XAPI verbs.
object.id
The URI of the object of the statement, usually a content object.
object.definition
Optional definition of the content object. See content object. If object is not already registered with Adaptemy, definition can be provided, or definition can be made available to be queried at the object.id URI.
result.completion
true/false. See sample payloads for interpretation for each event type.
result.duration
Duration in ISO6801 time of the event.
result.score
Score achieved for this object. Use score.scaled if in range 0 to 1. Else use score.raw and score.max to set the achieved score and the maximum.
result.answer
The answer submitted. Answer interpretation to be configured with Adaptemy if required.
result.extensions
To be configured for your implementation.
context.registration
A GUID of the user's attempt at the root content object. See guidance.
context.platform
The Learning Platform label.
context.contentActivities
The content object environment; parent object, containing learning loop etc...To be configured for your implementation.
context.extensions
The learning environment; class, recommendation, task, assignment etc... To be configured for your implementation.
Sample learn (XAPI) payload
learn
POST https://api.adaptemy.io/learn
This endpoint enables you to send all learning events to the Adaptemy system for analysis. The correct implementation of this call is essential for model accuracy.
Request Body
learn object
object
An array of Learn objects - see above.
learn_records
GET https://api.adaptemy.io/learn_records
Returns the set of learning events that matches the query parameters. Often only used to confirm or debug the LRS synchronisation.
Query Parameters
id
string
ID of the XAPI statement
actor_name
string
Account name of the User object in the Actor position
limit
string
Limits the number of returned records, starting with most recent.
offset
string
In conjunction with the "limit" parameter, paginates through the records.
timefrom
string
Return only statements with timestamp after this datetime
timeto
string
Return only statement with timestamp before this datetime
verb
string
verb.id of the LRS statement
object
string
object.id of the LRS statement
registration
string
registration of the LRS statement
The Learner Profile
The Learner Profile is the complete model of the learner. The Learner Profile is updated after each POST learn call; some elements are time-dependent e.g. modelling of memory/forgetting.
The standard Learner Profile object is detailed below. Additional extensions can be configured for your implementation.
Property
Description
global
object of global properties of the learner, not specific to any course or curriculum
global.stats
object of learning statistics across all courses and curriculums
.duration
Total learning time recorded by this learner
.successRate
Raw rate of success across all scored content-objects
.numberContentObjectsAttempted
Count of all content-objects launched / attempted.
.numberContentObjectsCompleted
Count of all content-objects that were completed.
.numberContentObjectsScored
Count of all scored content-objects launched / attempted.
.numberSuccess
Count of all scored content-objects with success=true.
.extensions
Optional extensions object at a global level for this learner.
grouping.Classgroups
Array of Classgroups that this learner is a member of.
preferences
object of preferences expressed by the learner
affective
object of affective properties of this learner, derived from their interactions
courses
array of courses on which this learner has a profile
course.id
course id
contentObjects
An object containing the learner-profile properties for the content-objects in this course.
contentObjects.id
id of the content-object
attempts
number of times this content-object has been attempted by this user
completions
number of times this content-object has been completed
duration
total duration recorded by this user against this content-object
score
average score over all recorded scores on this object
successes
number of successful completions
datetimeBestScore
datetime of best score
datetimeLastAttempt
datetime of last attempt
modules
An object containing all of the learner-profile properties for modules in this course
modules.id
id of the module
progress.duration
total learning time recorded in this module
progress.masteredConcepts
count of concepts mastered in this module
completionStatus
true if this module has been completed
percentageComplete
Completion calculation configurable in module settings
curriculums
array of curriculums on which this learner has a profile
curriculums.id
curriculum id
concepts
An object containing the learner-profile properties for all concepts in this curriculum
guid
concept guid
evidence
basic statistics on this concept
numberDirect
number of direct evidence updates on this concept i.e. assessment questions
numberIndirect
number of indirect evidence updates on this concept i.e. propagation updates or other non-assessment updates
totalScaledScore
total score achieved in direct evidence on this concept
datetimeLastUpdate
datetime last update, direct or indirect
datetimeLastDirect
datetime last direct update
estimates
estimated learner ability metrics on this concept
ability
best estimate of the ability of the learner on this concept, in range 1 to 100
precision
measure of the precision of the ability estimate
masteryStatus
current mastery level, in range 1 to 5
bestStatus
best ever mastery status
probMastery
probability of masteryStatus of 4 or greater
datetimeFirstMastered
datetime masteryStatus of 4 was first achieved
confirmedDirectMastered
number of direct evidences of masteryStatus of 4 or greater
memoryLevel
memory reinforcement level, in range 0 to 5
maxLikelihood
characteristic of the probability distribution vector of ability
iqr
characteristic of the probability distribution vector of ability
Sample learner-profile
learner-profile
GET https://api.adaptemy.io/learner-profile
Returns the learner profile for the specified user. Can be configured per organisation.
Query Parameters
account
string
account (homepage/name) of the learner
course
string
Course GUID to filter learner profile.
curriculum
string
Curriculum GUID to filter learner profile.
Last updated