Authenticate via OAuth 2.0 to obtain a bearer token scoped to the Brightspace tenant
GET /d2l/api/lp/{ver}/enrollments/myenrollments/ or resolve the course org unit ID from the course offering endpoint
GET /d2l/api/le/{ver}/{orgUnitId}/grades/ to retrieve the list of grade objects (grade item IDs, names, max points)
GET /d2l/api/le/{ver}/{orgUnitId}/grades/{gradeObjectId}/values/ with a pageSize query parameter to page through all student GradeValue objects
For each page follow the PagingInfo.Bookmark token in the next request until HasMoreItems is false
Map the returned Points and DisplayedGrade fields per user to your downstream gradebook or reporting system
Known gotchas
Grade objects in Brightspace can be numeric, pass/fail, selectbox, or text; the GradeValue schema differs by type — check the gradeType field before processing
The per-org-unit API daily call quota is shared across all integrations on a tenant; bulk exports against large courses can exhaust it quickly
Exempted grades return a GradeValue with IsExempt: true and null Points — treat these distinctly from a zero score
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