- Group students so you can manage them in bulk from your own tools.
- Drive course access. When a course grants access to a list, every member of that list can access the course. Add someone to the list and they get access; remove them and the access is revoked. You configure which courses a list grants from your dashboard; this API manages the list and its membership.
List access is dynamic and follows membership. This is different from an enrollment, which is a permanent per-course grant. Use a list for cohort or tier access you may want to revoke later; use an enrollment for a one-off grant that should persist.
Authorization header. See Authentication.
List all lists
Returns every list in your academy, newest first, each with its active member count.Response fields
Example request
Example response
Create a list
Body parameters
Name of the list. 1 to 100 characters. Must be unique within the academy (case-insensitive); a duplicate returns
409 already_exists.Optional description. Maximum 500 characters.
Response
Returns the created list (member_count is 0) with a 201 status code.
Example request
Example response
Get a list
Path parameters
UUID of the list. Returns
404 not_found if it does not exist in this academy.Update a list
Rename a list or change its description. Provide at least one ofname or description.
Body parameters
New name. 1 to 100 characters. A duplicate name returns
409 already_exists.New description, or
null to clear it. Maximum 500 characters.Example request
Delete a list
Deletes the list and removes the course-access grants that target it. Members are not removed from the academy, but they lose any course access that this list was granting.Example response
List members
Returns the active members of a list, newest first.Query parameters
Number of members to return. Minimum
1, maximum 100.Number of members to skip. Use with
limit for pagination.Response fields
Add members
Adds students to a list by email. This endpoint is an upsert: if an email does not yet belong to a student in your academy, the student is created first, then added to the list. Calling it again for someone already on the list is a safe no-op.Body parameters
A single student email. Provide either
email or emails.A batch of student emails. Maximum 100 per request. Provide either
email or emails.Whether to send the magic-link welcome email to students who are newly created by this call. Set to
false for silent bulk syncs. Has no effect on people who are already members.Response fields
Returns200 with a per-email result array, so a single failure (such as a plan-limit hit) does not fail the whole batch.
Example request
Example response
Remove a member
Removes a student from a list. They remain in your academy, but they lose any course access this list was granting. The student’s enrollments and progress are untouched.Path parameters
UUID of the student to remove (the
id from the members list). Returns 404 not_found if they are not an active member of the list.
