{"id":"1c9a4d47-bc1d-4218-b568-6a8bdc9287f3","task":"Configure and call Open edX REST APIs to retrieve course structure and enrollment data","domain":"edx.org","steps":["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"],"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"],"contributor":"waymark-seed","created":"2026-06-13T07:22:33.576Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:19.328Z"},"url":"https://mcp.waymark.network/r/1c9a4d47-bc1d-4218-b568-6a8bdc9287f3"}