PlaycademyPlaycademy

EduBridge API

Simplified enrollment and analytics

Overview

EduBridge provides convenience interfaces for managing courses, enrollments, and pre-aggregated analytics.

It abstracts away the complexities of the OneRoster academic hierarchy while maintaining full compatibility.

Use EduBridge to enroll students in courses, track their progress, and access analytics.

External Documentation

ResourceLink
Official API DocsEduBridge API Docs

Key Concepts

ConceptDescription
Course-centric EnrollmentEnroll students directly in courses without managing academic hierarchy
Auto-managed EntitiesAPI automatically creates and manages year sessions, term sessions, and classes
Analytics AggregationPre-processed student activity data grouped by date, subject, and application
Subject TracksMaps subjects and grade levels to target courses for automatic enrollment

Common Use Cases

  • Enroll students in courses: Simple one-call enrollment without managing academic sessions
  • Track student progress: Access pre-aggregated XP, time spent, and mastery metrics
  • Query analytics by enrollment: Get all activity data for a specific enrollment
  • Find highest grade mastered: Check student placement across multiple data sources
  • Manage subject tracks: Define which courses students should be enrolled in by grade level
  • Reset progress or goals: Bulk operations for course management

Essential Endpoints

EndpointPurpose
POST /enrollments/enroll/:userId/:courseId/:schoolIdEnroll a student in a course
GET /enrollments/user/:userIdGet all enrollments for a user
GET /analytics/enrollment/:enrollmentIdGet aggregated metrics for a specific enrollment
GET /analytics/activityGet facts for a custom date range by student email or ID
GET /analytics/highestGradeMastered/:studentId/:subjectGet highest grade mastered for a subject
GET /subject-track/Get all subject tracks

Examples

Enroll a Student

Request
curl -X POST $TIMEBACK_API_URL/edubridge/enrollments/enroll/student123/course456/school789 \  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch(    `${TIMEBACK_API_URL}/edubridge/enrollments/enroll/student123/course456/school789`,    {        method: 'POST',        headers: {            Authorization: `Bearer ${accessToken}`,        },    },)

Get Enrollment Analytics

Request
ENROLLMENT_ID="enrollment123"START_DATE="2024-01-01T00:00:00Z"END_DATE="2024-12-31T23:59:59Z"TIMEZONE="America/Chicago"curl "$TIMEBACK_API_URL/edubridge/analytics/enrollment/$ENROLLMENT_ID?startDate=$START_DATE&endDate=$END_DATE&timezone=$TIMEZONE" \  -H "Authorization: Bearer $ACCESS_TOKEN"
const enrollmentId = 'enrollment123'const startDate = '2024-01-01T00:00:00Z'const endDate = '2024-12-31T23:59:59Z'const timezone = 'America/Chicago'const path = `${TIMEBACK_API_URL}/edubridge/analytics/enrollment/${enrollmentId}?startDate=${startDate}&endDate=${endDate}&timezone=${timezone}`const analytics = await fetch(path, {    headers: {        Authorization: `Bearer ${accessToken}`,    },})

On this page