PlaycademyPlaycademy

PowerPath API

Adaptive learning and mastery tracking

Overview

PowerPath is a convenience layer on top of OneRoster and QTI that handles adaptive learning logic.

It automatically manages question selection, scoring, XP calculation, and mastery tracking.

Use PowerPath to build adaptive quizzes that adjust to student performance in real-time.

External Documentation

ResourceLink
Official API DocsPowerPath API Docs
OpenAPI SpecPowerPath OpenAPI

Key Concepts

ConceptDescription
PowerPath 100Adaptive quiz that serves questions dynamically based on student performance
QuizStandard quiz where all questions are shown upfront, results revealed at end
Test-OutEnd-of-course mastery test that lets students skip content they've mastered
Placement TestDetermines appropriate grade level by testing student knowledge

Common Use Cases

  • Build adaptive quizzes: Questions adapt to student performance in real-time
  • Implement placement tests: Onboard students to the right grade level
  • Enable test-outs: Let students skip content they've already mastered
  • Track mastery progression: Monitor student progress through course material

Essential Endpoints

EndpointPurpose
GET /getNextQuestionGet next question in PowerPath 100 quiz
PUT /updateStudentQuestionResponseSubmit student answer and get feedback
POST /finalStudentAssessmentResponseComplete quiz and calculate final score
GET /getAssessmentProgressCheck student progress in a lesson
GET /placement/getNextPlacementTestGet next placement test for student
GET /powerpath/syllabus/{courseId}Get full course structure with all components

Examples

Get Next Adaptive Question

Request
curl "$TIMEBACK_API_URL/powerpath/getNextQuestion?student=student-456&lesson=lesson-123" \  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch(    `${TIMEBACK_API_URL}/powerpath/getNextQuestion?student=student-456&lesson=lesson-123`,    {        headers: {            Authorization: `Bearer ${accessToken}`,        },    },)const { score, question } = await response.json()

Submit Student Answer

Request
curl -X PUT $TIMEBACK_API_URL/powerpath/updateStudentQuestionResponse \  -H "Authorization: Bearer $ACCESS_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "student": "student-456",    "question": "q-789",    "lesson": "lesson-123",    "responses": {      "RESPONSE": "B"    }  }'
await fetch(`${TIMEBACK_API_URL}/powerpath/updateStudentQuestionResponse`, {    method: 'PUT',    headers: {        Authorization: `Bearer ${accessToken}`,        'Content-Type': 'application/json',    },    body: JSON.stringify({        student: 'student-456',        question: 'q-789',        lesson: 'lesson-123',        responses: {            RESPONSE: 'B',        },    }),})

On this page