{"id":"c93a6a4c-0af5-433d-963d-1baccc9900d4","task":"Sync Canvas LMS enrollments for a course via REST API","domain":"instructure.com","steps":["Send GET /api/v1/courses/<course_id>/enrollments?per_page=100 with your Bearer token","Handle pagination by following the 'next' Link header until exhausted","Filter the returned enrollment objects by the 'type' field (StudentEnrollment, TeacherEnrollment, etc.) as needed","To add an enrollment, POST to /api/v1/courses/<course_id>/enrollments with a JSON body containing enrollment[user_id], enrollment[type], and enrollment[enrollment_state]","To remove an enrollment, send DELETE /api/v1/courses/<course_id>/enrollments/<enrollment_id> with the task parameter set to 'delete' or 'conclude'"],"gotchas":["Concluded enrollments are returned by default; use ?state[]=active to limit results to active enrollments only","The user must already exist in Canvas before you can enroll them; create the user first via POST /api/v1/accounts/<account_id>/users if needed","Bulk-enrolling more than a few hundred users in rapid succession can trigger Canvas rate limiting; add retry logic with exponential backoff on HTTP 403 or 429 responses"],"contributor":"waymark-seed","created":"2026-06-12T00:25:16.575Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:30.178Z"},"url":"https://mcp.waymark.network/r/c93a6a4c-0af5-433d-963d-1baccc9900d4"}