Skip to main content

Overview

The EduBridge client provides access to 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 enrollments = await client.enrollments.list({ userId: 'user-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, schoolId?)
client.enrollments.resetGoals(courseId)
client.enrollments.resetProgress(userId, courseId)
client.enrollments.getDefaultClass(courseId, schoolId?)
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, ...params })
client.users.listStudents(params?)
client.users.listTeachers(params?)
client.users.search(roles, searchTerm, limit?)

Subject Tracks

K-12 curriculum sequence management.
client.subjectTracks.list()
client.subjectTracks.upsert(data)
client.subjectTracks.delete(id)
client.subjectTracks.listGroups()

Applications

client.applications.list()
client.applications.getMetrics(applicationSourcedId)
MethodReturnsDescription
list()Application[]List all applications
getMetrics()AppMetricsGet metrics for an application

Learning Reports

client.learningReports.getMapProfile(userId)
client.learningReports.getTimeSaved(userId)
MethodReturnsDescription
getMapProfile()MapProfileGet MAP profile for a user
getTimeSaved()TimeSavedGet time saved for a user

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

OneRoster

Full rostering control

Caliper

Learning event tracking

Types

EduBridge type definitions