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
| Resource | Link |
|---|---|
| Official API Docs | EduBridge API Docs |
Key Concepts
| Concept | Description |
|---|---|
| Course-centric Enrollment | Enroll students directly in courses without managing academic hierarchy |
| Auto-managed Entities | API automatically creates and manages year sessions, term sessions, and classes |
| Analytics Aggregation | Pre-processed student activity data grouped by date, subject, and application |
| Subject Tracks | Maps 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
| Endpoint | Purpose |
|---|---|
POST /enrollments/enroll/:userId/:courseId/:schoolId | Enroll a student in a course |
GET /enrollments/user/:userId | Get all enrollments for a user |
GET /analytics/enrollment/:enrollmentId | Get aggregated metrics for a specific enrollment |
GET /analytics/activity | Get facts for a custom date range by student email or ID |
GET /analytics/highestGradeMastered/:studentId/:subject | Get 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}`, },})