Replace the membership of a group with the provided list of students. Students present in the payload but not in the group are added; students currently in the group but absent from the payload are removed; students in both are unchanged.
Body: studentIds XOR studentExternalReferenceIds. An empty array clears all members.
Query (required): cascadeToCourses controls whether membership changes propagate to courses linked to the group:
cascadeToCourses=true— on add, students are enrolled in all future unlocked courses linked to the group (STUDENT_STATESand matchingABSENCESare created; already-enrolled students are skipped). On remove, students are unenrolled from those courses, except if they remain member of another group attached to the same course (multi-group protection). Survey recipients are kept in sync.cascadeToCourses=false— only theSTUDENT_GROUPS_STUDENTSjoin table is touched. Linked courses,STUDENT_STATES,ABSENCESand surveys are left untouched. Use this when the connector manages course enrollment independently of group membership.
Past courses, locked courses and group attribute changes (name, description, parent, logo) are never affected by this endpoint.
Errors: AMBIGUOUS_STUDENT_IDENTIFIER (400), MISSING_STUDENT_DATA (400), GROUP_NOT_FOUND (404), STUDENTS_NOT_FOUND (404), ARCHIVED_GROUP_EXISTS (422), ARCHIVED_STUDENT_EXISTS (422).
Rate limit: HEAVY. Idempotency: 5s deduplication window.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
