/api/org/**, /api/auth/student/** and /api/internal/** handlers are not part of the supported public integration reference.kind: "class" organisation makes its human creator the owning teacher. A staff-provisioned school additionally has a School record, a school code and managed students in a separate sign-in pool. Buying a plan called school for an ordinary class does not by itself create that School record or student accounts.HW-XXXX-XXXX; its admin is linked to an existing eligible verified customer account or receives a teacher invitation. The intended administrator accepts that invitation using their own customer account. The provision service itself does not send the approval email; the staff support workflow sends the reply.members.manage use the Students tab at the school's signed-in management page. They add a student or preview/import a roster. Generic public membership creation does not create the associated student-pool account. Student deletion needs data.erase, held by teachers rather than co-teachers.email,given_name,family_name with optional class, at most 200 rows and 1 MB per file. Preview validates before commit; a committed batch is all-or-nothing within that batch. A large school uses several separately reviewed files. Do not place roster data in URLs, error trackers or sample requests./api/v1 write accepts an idempotency key. In particular, public managed-token issuance has no idempotency wrapper.DELETE /api/v1/orgs/{id}. It disables access and performs resumable cleanup; an accepted first step is not proof every student has been erased. An ordinary class owner can delete their own ordinary class through the public API. Your integration should disconnect and remove cached data according to the selected action rather than silently invoke deletion.