Skip to main content

Overview

The @timeback/edubridge package provides a TypeScript client for the EduBridge API, offering:
  • Enrollments: Simplified enrollment management
  • Analytics: Pre-aggregated student performance data
  • Subject Tracks: K-12 curriculum sequence management
  • Users: User management with role-based filtering
  • Applications: Application-level configuration
  • Learning Reports: Aggregated learning reports

Installation

npm install @timeback/edubridge

Quick Start

import { EdubridgeClient } from '@timeback/edubridge'

const client = new EdubridgeClient({
	env: 'staging',
	auth: {
		clientId: process.env.EDUBRIDGE_CLIENT_ID!,
		clientSecret: process.env.EDUBRIDGE_CLIENT_SECRET!,
	},
})

const enrollment = await client.enrollments.enroll('user-123', 'course-123')
const activity = await client.analytics.getActivity({
	studentId: 'user-123',
	startDate: '2024-01-01',
	endDate: '2024-01-31',
})

Enrollments

Course-centric enrollment management.
client.enrollments.list({ userId })
client.enrollments.enroll(userId, courseId, schoolId?, options?)
client.enrollments.unenroll(userId, courseId)
client.enrollments.resetGoals(courseId)
client.enrollments.resetProgress(userId, courseId)
client.enrollments.getDefaultClass(courseId)
MethodReturnsDescription
list()Enrollment[]List enrollments for a user
enroll()EnrollmentEnroll a user in a course
unenroll()voidRemove user from a course
resetGoals()ResetResultReset goals for all users in course
resetProgress()voidReset a user’s progress in a course
getDefaultClass()ClassGet the default class for a course

Analytics

Student activity data and metrics.
client.analytics.getActivity({ studentId, startDate, endDate, timezone? })
client.analytics.getWeeklyFacts({ studentId, weekDate, timezone? })
client.analytics.getEnrollmentFacts({ enrollmentId, startDate?, endDate?, timezone? })
client.analytics.getHighestGradeMastered(studentId, subject)
MethodReturnsDescription
getActivity()ActivityDataActivity metrics grouped by date/subject
getWeeklyFacts()WeeklyFactsWeekly summary for a student
getEnrollmentFacts()EnrollmentFactsAggregated facts for an enrollment
getHighestGradeMastered()GradeMasteryHighest grade mastered in a subject
Activity data is keyed by date, then subject: activity['2024-01-15']['Math'].xp

Users

User management with role-based filtering.
client.users.list({ roles, limit? })
client.users.listStudents()
client.users.listTeachers()
client.users.search(roles, searchTerm, limit?)

Subject Tracks

K-12 curriculum sequence management.
client.subjectTracks.list()
client.subjectTracks.upsert({ subject, ...trackData })
client.subjectTracks.delete(trackId)
client.subjectTracks.listGroups()

Comparison with OneRoster

TaskOneRosterEduBridge
Enroll userCreate class, academic session, enrollmentSingle enroll() call
Get activityQuery Caliper separatelygetActivity() with aggregation
User searchFilter with OneRoster syntaxRole-based filtering with search
Reset progressDelete individual resultsSingle resetProgress() call
Use EduBridge when you need simplified access to common queries. Use OneRoster when you need full control over rostering operations.

Next Steps