Connect to the Skyward SMS 2.0 OneRoster 1.2 REST API endpoint, authenticate with OAuth 2.0, and retrieve class rosters for a school year
domain: skyward.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Obtain client_id and client_secret from the Skyward district administrator via the Skyward API management console
POST to the Skyward token endpoint with grant_type=client_credentials to receive a Bearer access token
GET /ims/oneroster/v1p2/classes with a filter on schoolYear to scope results to the active year
GET /ims/oneroster/v1p2/classes/{classSourcedId}/enrollments to retrieve students and teachers for each class
Page results using limit and offset query params; check for a next link in the response Link header
Map Skyward sourcedIds to your application's internal user and class identifiers and persist the mapping
Known gotchas
Skyward may namespace sourcedIds with a district prefix; do not strip prefixes or you will create duplicate records when syncing from multiple Skyward instances
School year filtering behavior varies by Skyward version; when in doubt, retrieve all classes and filter client-side by the beginDate and endDate of the associated term
Skyward's OneRoster implementation may not support all optional filter fields; test filter syntax against the specific district's instance before relying on server-side filtering
Give your agent this knowledge — and 15,600+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?