API reference
Classes
/groups
A class is who a group-scoped event is about. A static class keeps a list you add to; a dynamic class holds whoever's attributes contain its filter, so nobody keeps it up. Beside the classes somebody keeps are temporary lists, picked by a person for one send: you can see them, but a key cannot change one and an event cannot name one. In the High school pack a class is, for example, “5A”.
POSTCreate a class
Requires groups:write. Makes a standing class. Static (the default) keeps a list: add to it with POST /groups/{group_id}/members. Dynamic takes a filter instead, checked against the pack's schema for what it holds, so a filter naming a key no record carries is refused rather than saved to reach nobody. member_kind is fixed here and never changes. Unknown keys — owner_user_id among them — are refused with 400.
Body parameters
namestring · required · max 200
“5A”. Unique in the instance.
kindstatic | dynamic · default static
member_kindsubject | contact · default subject
Whether it holds students or parents.
filterobject · optional
Required on a dynamic class, refused on a static one. The attributes a member's must contain: {"class": "5A"}.
external_refstring · optional · max 200
Your own id for it. Trimmed as it is stored, and it is what ?external_ref= looks up exactly.
attributesobject · optionalVaries by pack
Generated from the High school pack's group_schema. PATCH replaces the whole object; it does not merge.
KeyLabelKindAllowed valuesRequired
roomRoomtext—No
teacherClass teachertext—No
Returns
201 with the class. 400 for a filter on a static class, none on a dynamic one, or an attribute the pack refuses; the sentence names it. 409 if the name is taken, or the reference — “That reference is already used by another group. Find it with ?external_ref= and update that group instead.”
Response body
One class: the same fields in every pack. Press Response on the sample to see one whole.
FieldTypeDescription
iduuidWhat an event's group_id names.
namestringUnique in the instance.
kindstatic | dynamicstatic keeps a list; dynamic holds whoever matches its filter.
member_kindsubject | contactWhether it holds students or parents. Fixed when it is made.
filterobject | nullA dynamic group's filter: the student or parent attributes a member's must contain.Varies by pack
derived_fromstring | nullThe subject attribute a group the records keep up was built from. null on a group somebody keeps.
attributesobjectShaped by the High school pack's group_schema.Varies by pack
temporarybooleantrue on a list somebody picked for a send. It cannot be named on an event, and a key cannot change it.
external_refstring | nullYour own id, as you sent it.
statusactive | inactive
created_atdatetime
updated_atdatetime
On failure the body is { error, code } instead.