Add students to a group identified by its external reference ID, without rewriting its membership. This endpoint never removes anyone. Same behaviour as POST /v3/groups/{id}/students.
Up to 100 students per call. Send studentIds or studentExternalReferenceIds, never both, with 1 to 100 identifiers. The limit counts the identifiers sent, duplicates included; a student listed twice is processed once, so addedCount + unchangedCount can be lower than the number of identifiers sent. To replace a whole membership use PUT /v3/groups/{id}/students.
Moving a section. Add the students to the new group first, with this endpoint, by batches of up to 100; then remove them from the old group with DELETE, by batches of up to 100 as well. In that order a failed call never leaves a student in no group, and on the courses both groups share the student keeps their place throughout.
Safe to replay. A student already in the group is reported in unchangedCount — no error, no duplicate.
All or nothing. An unknown or archived student fails the whole call and writes nothing; the error names every one of them.
Rate limit: standard. Concurrency: two identical calls sent at the same moment share a single execution; a call replayed after the response has come back runs again in full.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||

