Authenticate using OAuth 2.0 Bearer token; all OneRoster 1.2 Gradebook endpoints use the base path /ims/oneroster/gradebook/v1p2
GET /lineItems to retrieve all existing line items for the context, or POST /lineItems to create a new line item specifying title, assignDate, dueDate, class sourcedId, category, and scoreScale if applicable
POST /results to submit a student result linked to a lineItem sourcedId; include the student's sourcedId, score, scoreStatus (exempt, fullyGraded, partiallyGraded, notSubmitted, submitted), and comment
GET /results filtered by lineItem sourcedId to retrieve all results for a specific assignment; use limit and offset query parameters to paginate through large result sets
Handle delta sync by filtering on dateLastModified query parameters if the endpoint supports them; otherwise perform full pulls and diff locally to identify changed records
Known gotchas
The OneRoster 1.2 Gradebook service uses a different base path than the Rostering service (/gradebook/v1p2 vs /rostering/v1p2); mixing these paths returns 404 errors that appear to be resource-not-found rather than path errors
The scoreStatus field is an enumerated type; submitting a free-text value instead of one of the defined enum values (exempt, fullyGraded, partiallyGraded, notSubmitted, submitted) causes validation failure without a descriptive error on some platforms
Not all LMS vendors implement both the Gradebook and Rostering services; verify certification status for the specific service binding before assuming both are available
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp