Authenticate to the Open edX instance using the OAuth 2.0 password grant or client credentials grant against the /oauth2/access_token endpoint
GET /api/courses/v1/courses/ to list available courses with pagination via next links in the response body
For each course, GET /api/courses/v1/course_structures/:course_id/ to retrieve the block tree including chapters, sequentials, and verticals
GET /api/enrollment/v1/enrollments to list enrollment records, filtering by course_id or username as needed
GET /api/grades/v1/courses/:course_id/ with a username parameter to retrieve a learner's course grade and section-level breakdown
Handle 404 responses for courses not yet published or not accessible under the authenticated user's permissions
Known gotchas
Open edX API behavior varies significantly between named releases (Sumac, Teak, etc.); validate against the specific version deployed at your target institution before writing integration code
The course structure endpoint returns the full block tree in one response which can be very large for complex courses; cache the structure aggressively as it changes infrequently
Enrollment and grade APIs may require staff-level or superuser tokens for cross-user queries; learner-scoped tokens can only retrieve the authenticated learner's own data
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