Progress Tracking
Start Session
Initialize a new content session to track progress.POST /api/logger/contentsession
Request Parameters
UUID of the content node (required unless quiz_id is provided)
Content identifier
Channel UUID
Content kind:
video, audio, document, exercise, html5, topicUUID of lesson if content is being accessed within a lesson
UUID of exam/quiz (alternative to node_id for coach-assigned quizzes)
Mastery criterion for exercises (required if kind is “exercise”)
Whether to reset previous progress and start fresh (default: false)
Course session identifier
Response Fields
Unique session identifier to use for subsequent updates
Context object with node_id, lesson_id, quiz_id, mastery_level as appropriate
Previous progress on this content (0.0 to 1.0)
Previous time spent in seconds
Additional stored data for this resource
Whether this resource is completed
Mastery criterion to apply
Array of recent attempt objects
Total number of previous attempts
Update Session
Update progress for an active session.PUT /api/logger/contentsession/:session_id
Request Parameters
Amount to increase progress by (0.0 to 1.0)
Set progress to this absolute value (alternative to progress_delta)
Seconds to add to time spent
Complete representation to set extra_fields to
Array of interaction objects for assessment attempts
Interaction Object (for exercises)
Question/item identifier
Correctness score (0.0 to 1.0)
Time spent on this attempt in seconds
Whether this attempt is complete (default: false)
The answer object
Simple string representation of answer
Whether an error occurred (default: false)
Whether hints were used (default: false)
Replace existing attempt with same item (default: false)
Attempt ID to update (if updating existing attempt)
Response Fields
Whether the resource is now completed
Array of attempt objects if interactions were included
Content Summary Logs
Content summary logs aggregate all session data for a user and content combination.Get Total Progress
Get the total progress count for a user across all content.GET /api/logger/totalcontentprogress/:user_id
Response
User UUID
Total count of completed items
Mastery Logs
Mastery logs track attempts at exercises and quizzes.List Mastery Logs
Retrieve mastery logs with filtering.GET /api/logger/masterylog
Query Parameters
Filter by content UUID
Filter by user UUID
Filter by completion status
Filter for quiz attempts only (true) or exercise attempts only (false)
Filter by facility UUID (superuser only)
Filter by classroom UUID
Filter by learner group UUID
Number of results per page
Response Fields
Mastery log unique identifier
The mastery criterion being applied
ISO 8601 timestamp when this attempt started
ISO 8601 timestamp of last activity
ISO 8601 timestamp when mastery was achieved
Whether mastery has been achieved
Number of correct answers
Total time spent in seconds
Get Mastery Log Diff
Get the difference between consecutive mastery attempts.GET /api/logger/masterylog/:index/diff
Parameters
The:index parameter specifies which attempt to compare (0 for most recent).
Response
Returns the target attempt with:Object with correct and time_spent differences from previous attempt
Array of attempt logs with diff information
Attempt Logs
Attempt logs track individual question attempts within exercises and quizzes.List Attempt Logs
Retrieve attempt logs with filtering.GET /api/logger/attemptlog
Query Parameters
Filter by mastery log UUID
Filter by user UUID
Filter by content UUID
Filter by question/item identifier
Filter by completion status
Filter by mastery level
Number of results per page
Response Fields
Attempt log unique identifier
Question/item identifier
ISO 8601 timestamp when attempt started
ISO 8601 timestamp of last update
ISO 8601 timestamp when marked complete
Time spent in seconds
Whether attempt is complete
Correctness score (0.0 to 1.0)
Whether hints were used
The submitted answer
Simple string answer
Array of interaction objects showing answer progression
Whether an error occurred
User UUID
Mastery log UUID
Session log UUID