This app serves a OneRoster 1.2 API from data in an Ed-Fi ODS (Data Standard 4.0 and 5.x).
Built by Tom Reitz of Education Analytics for 1EdTech in support of its partnership with the Ed-Fi Alliance.
- Ed-Fi Data Standard 5.x (5.0, 5.1, 5.2)
- Ed-Fi Data Standard 4.0
- Docker testing - Full stack docker deployment guide
- Testing Guide - Performance and compatibility testing
- Database Design - Knex.js abstraction layer
- IIS Deployment - Windows/IIS hosting guide
- Local Development Guide - Environment setup, database schema deployment, running natively, and API validation
The following GET endpoints are fully implemented:
| Endpoint | Ed-Fi Source |
|---|---|
/ims/oneroster/rostering/v1p2/academicSessions |
sessions, schools, schoolCalendars |
/ims/oneroster/rostering/v1p2/academicSessions/{id} |
— |
/ims/oneroster/rostering/v1p2/classes |
sections, courseOfferings, schools |
/ims/oneroster/rostering/v1p2/classes/{id} |
— |
/ims/oneroster/rostering/v1p2/courses |
courses, courseOfferings, schools |
/ims/oneroster/rostering/v1p2/courses/{id} |
— |
/ims/oneroster/rostering/v1p2/demographics |
students, studentEdOrgAssn |
/ims/oneroster/rostering/v1p2/demographics/{id} |
— |
/ims/oneroster/rostering/v1p2/enrollments |
staffSectionAssn, studentSectionAssn, sections |
/ims/oneroster/rostering/v1p2/enrollments/{id} |
— |
/ims/oneroster/rostering/v1p2/orgs |
schools, localEducationAgencies, stateEducationAgencies |
/ims/oneroster/rostering/v1p2/orgs/{id} |
— |
/ims/oneroster/rostering/v1p2/users |
staffs, students, contacts, section/school associations |
/ims/oneroster/rostering/v1p2/users/{id} |
— |
/ims/oneroster/rostering/v1p2/schools |
Subset of orgs |
/ims/oneroster/rostering/v1p2/schools/{id} |
— |
/ims/oneroster/rostering/v1p2/students |
Subset of users |
/ims/oneroster/rostering/v1p2/students/{id} |
— |
/ims/oneroster/rostering/v1p2/teachers |
Subset of users |
/ims/oneroster/rostering/v1p2/teachers/{id} |
— |
/ims/oneroster/rostering/v1p2/gradingPeriods |
Subset of academicSessions |
/ims/oneroster/rostering/v1p2/gradingPeriods/{id} |
— |
/ims/oneroster/rostering/v1p2/terms |
Subset of academicSessions |
/ims/oneroster/rostering/v1p2/terms/{id} |
— |
See the OneRoster 1.2 specification for field definitions and filter syntax.
Supported query parameters on all list endpoints:
| Parameter | Example | Description |
|---|---|---|
limit / offset |
?limit=100&offset=0 |
Pagination |
sort / orderBy |
?sort=familyName&orderBy=asc |
Sorting |
filter |
?filter=familyName='jones' |
Server-side filtering |
fields |
?fields=givenName,familyName |
Field selection |
Copyright (c) 2025 1EdTech Consortium, Inc. and contributors.
Licensed under the Apache License, Version 2.0 (the "License").
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
See NOTICES for additional copyright and license notifications.