App catalog
Register vendor apps, publish integration details, and make the app discoverable for district administrators.
Developer docs
OpenRoster gives application vendors a standards-based API for roster data while districts approve exactly which tenants, schools, roles, fields, and masked attributes an app can use.
client_credentials
curl https://api.openroster.org/auth/token/tenant_123 \
-u "$OPENROSTER_CLIENT_ID:$OPENROSTER_CLIENT_SECRET" \
-d "grant_type=client_credentials" \
-d "scope=https://purl.imsglobal.org/spec/or/rostering.readonly"
curl https://api.openroster.org/ims/oneroster/rostering/v1p2/users \
-H "Authorization: Bearer $OPENROSTER_TOKEN" \
-H "Accept: application/json"Register vendor apps, publish integration details, and make the app discoverable for district administrators.
Ask a district for the specific schools, roles, entities, attributes, and delivery windows needed by the app.
Read 1EdTech OneRoster 1.2 data through a tenant-scoped REST API backed by synchronized district source data.
Respect district policy through field-level permissions, context filters, and masked attributes for sensitive data.
Quickstart
Start in a sandbox, register an app, declare the data your product needs, and use the explorer to validate the same request shape you will use in production.
Add the application name, support contacts, privacy policy, integration type, and requested OneRoster version.
Choose the schools, entities, fields, masking rules, and filters needed to run the product.
Each token is tied to a tenant, app, version, scope set, and approved grant.
Call the rostering API and handle pagination, filtering, masked attributes, and permission-aware empty responses.
POST /auth/token/{tenantId}
Authorization: Basic base64(client_id:secret)
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
scope=https://purl.imsglobal.org/spec/or/rostering.readonly Use the hosted explorer for live calls
Credentials are submitted to same-origin helper routes and are not stored in browser storage.
Open explorerSandbox
Like mature education data platforms, OpenRoster’s sandbox workflow should let vendors see the app side and districts see the approval side before either party touches production data.
Create an app, set data requirements, request district access, accept consents, browse synced data, and test API calls.
Import roster data, review app requests, choose schools and attributes, enable masking, and approve or reject grants.
Run sync scenarios, verify OneRoster payloads, check data quality, and confirm the app handles masked or filtered records.
Workflows
Data access
An app can be published without receiving production data. A district grant is what connects the app to a tenant and defines the exact data shape returned by the API.
Schools
District-selected orgs and school contexts exposed to the app.
Attributes
Included or excluded fields for users, classes, courses, enrollments, sessions, and demographics.
Filters
Rules that limit shared records by school, course, class, role, grade, term, or implementation scope.
Masking
Approved attributes can be transformed before the vendor receives the response.
Delivery
REST API access is tenant-scoped; future delivery modes can follow the same grant policy.
1. Source data syncs into the tenant
Roster records stay isolated by district tenant.
2. Grant policy is evaluated
The app, tenant, scope, route, fields, and filters are checked.
3. Response is shaped
Records are filtered and sensitive attributes are omitted or masked.
OneRoster API
OpenRoster documents the 1EdTech OneRoster 1.2 REST shape and exposes supported rostering endpoints through the OpenAPI reference and API explorer.
{
"classes": [
{
"sourcedId": "class-ela-10-01",
"status": "active",
"title": "English Language Arts 10",
"classCode": "ELA10-01",
"classType": "scheduled",
"school": { "sourcedId": "school-101", "type": "org" }
}
]
}Privacy masking
Districts can approve the minimum useful data for a product while masking or removing attributes that are not needed. Vendors should treat masked values as normal API output and avoid depending on raw personally identifiable data.
Test integration
Run tenant-scoped requests with live credentials, switch role lenses, inspect scopes, compare sample payloads, and validate district grant behavior before go-live.
Certification
Certification gives districts confidence that an app handles roster data securely, works with OneRoster responses, and follows least-data access expectations.
API reference
OpenAPI reference