Attendance
See API introduction for authentication, request conventions, pagination, rate limits, and errors.
These endpoints allow you to create and update the class roster and class schedule. The payloads is a JSON representation of the CSV or Excel file formats we support.
Refer to the Attendance and the Excel/CSV import help pages for context and admin workflows.
Here is an example JSON payload of 4 participants attending a class on 4 dates. Not all participants are attending all dates.
[
{
"first_name": "Draco",
"last_name": "Malfoy",
"email": "luciusm@hogwartsrec.com",
"mobile": "555-666-6666",
"date_of_birth": "2008-06-05",
"gender": "Male",
"allergies": "Peanuts",
"medical_conditions": "Asthma",
"group_name": "Slytherin",
"pickup_authorized": "Lucius Malfoy",
"allow_sunscreen": "no",
"allow_photo": "yes",
"allow_leave": "yes",
"daycare": "am pm",
"pickup_password": "mischief",
"friend": "",
"custom": "Slytherin",
"account_owner_first_name": "Lucius",
"account_owner_last_name": "Malfoy",
"account_owner_email": "luciusm@hogwartsrec.com",
"account_owner_mobile": "555-666-6666",
"other_guardian_first_name": "Narcissa",
"other_guardian_last_name": "Malfoy",
"other_guardian_email": "narcissam@hogwartsrec.com",
"other_guardian_mobile": "555-666-6667",
"event_dates": [
"2021-10-18T19:00:00.000Z",
"2021-10-19T19:00:00.000Z",
"2021-10-20T19:00:00.000Z",
"2021-10-21T19:00:00.000Z"
]
},
{
"first_name": "Harry",
"last_name": "Potter",
"email": "lily@hogwartsrec.com",
"mobile": "555-389-1284",
"date_of_birth": "2008-07-31",
"gender": "Male",
"allergies": null,
"medical_conditions": null,
"group_name": "Gryffindor",
"pickup_authorized": "Lily Potter",
"allow_sunscreen": "no",
"allow_photo": "yes",
"allow_leave": "yes",
"daycare": "am pm",
"pickup_password": "bolt",
"friend": "Ron",
"custom": "Gryffindor",
"account_owner_first_name": "Lily",
"account_owner_last_name": "Potter",
"account_owner_email": "lily@hogwartsrec.com",
"account_owner_mobile": "555-389-1284",
"other_guardian_first_name": "James",
"other_guardian_last_name": "Potter",
"other_guardian_email": "james@hogwartsrec.com",
"other_guardian_mobile": "555-389-1293",
"event_dates": [
"2021-10-18T19:00:00.000Z",
"2021-10-19T19:00:00.000Z",
"2021-10-20T19:00:00.000Z"
]
},
{
"first_name": "Ron",
"last_name": "Weasly",
"email": "arthur@hogwartsrec.com",
"mobile": "555-123-1234",
"date_of_birth": "2008-03-12",
"gender": "Male",
"allergies": null,
"medical_conditions": null,
"group_name": "Gryffindor",
"pickup_authorized": "Arthur Weasly",
"allow_sunscreen": "no",
"allow_photo": "yes",
"allow_leave": "yes",
"daycare": "am pm",
"pickup_password": "candy",
"friend": "Harry",
"custom": "Gryffindor",
"account_owner_first_name": "Arthur",
"account_owner_last_name": "Weasly",
"account_owner_email": "arthur@hogwartsrec.com",
"account_owner_mobile": "555-123-1234",
"other_guardian_first_name": "Molly",
"other_guardian_last_name": "Weasly",
"other_guardian_email": "molly@hogwartsrec.com",
"other_guardian_mobile": "555-456-1293",
"event_dates": [
"2021-10-18T19:00:00.000Z",
"2021-10-19T19:00:00.000Z"
]
},
{
"first_name": "Ginny",
"last_name": "Weasly",
"email": "arthur@hogwartsrec.com",
"mobile": "555-123-1234",
"date_of_birth": "2011-04-01",
"gender": "Female",
"allergies": null,
"medical_conditions": null,
"group_name": "Gryffindor",
"pickup_authorized": "Arthur Weasly",
"allow_sunscreen": "no",
"allow_photo": "yes",
"allow_leave": "yes",
"daycare": "am pm",
"pickup_password": "candy",
"friend": "",
"custom": "Gryffindor",
"account_owner_first_name": "Arthur",
"account_owner_last_name": "Weasly",
"account_owner_email": "arthur@hogwartsrec.com",
"account_owner_mobile": "555-123-1234",
"other_guardian_first_name": "Molly",
"other_guardian_last_name": "Weasly",
"other_guardian_email": "molly@hogwartsrec.com",
"other_guardian_mobile": "555-456-1293",
"event_dates": [
"2021-10-18T19:00:00.000Z",
"2021-10-19T19:00:00.000Z",
"2021-10-20T19:00:00.000Z",
"2021-10-21T19:00:00.000Z"
]
}
]
Each object represents a participant and the class dates they are attending. The only required attribute is the email address. All others are optional.
Attributes first_name, last_name, mobile, email define the participant. The email address is the key and is required.
Attribute gender is optional. If provided must be one of: Male, Female, NonBinary, NotSpecified or PreferNotToSay.
Attribute date_of_birth is optional. If provided must be formatted as YYYY-MM-DD. For example December 24th 2002 would be 2002-12-24.
Attributes daycare, pickup_password, friend and custom are optional fields you can use.
For child activities, you can set the primary parent using account_owner_* attributes.
You may have siblings or family members using the same email address. Please ensure the first_name is different.
You can set the second parent or emergency contact using the other_guardian_* attributes.
Attribute event_dates is an array of dates the participant is attending. Dates must be in ISO format. These dates also define the schedule of the class. If you leave empty the participant will not be attending any dates of the class.
PUT /api/v1/organization/{organization}/classes/{class}/attendance
Creates or replaces the attendance list of a class. Will perform a smart merge using the email address as key and try to keep IDs intact. Will remove existing participants if not present in the payload.
PATCH /api/v1/organization/{organization}/classes/{class}/attendance
Updates or appends to the attendance list of a class. Will merge participants using the email address as key. New participants can be added. You can remove a participant by providing the email address and first_name attributes and leave event_dates empty.
GET /api/v1/organization/{organization}/classes/{class}/attendance
Retrieves the attendance list of a class. Returns an array of participants with their attendance schedule, check-in and check-out date/times. Attribute attendance contains an array of that data. This endpoint is NOT paginated.
{
"id": 2270673,
"first_name": "Draco",
"last_name": "Malfoy",
"email": "luciusm@hogwartsrec.com",
"mobile": "555-666-6666",
"gender": "Male",
"date_of_birth": "2008-06-05",
"allergies": "Peanuts",
"medical_conditions": "Asthma",
"group_name": "Slytherin",
"pickup_authorized": "Lucius Malfoy",
"allow_sunscreen": "no",
"allow_photo": "yes",
"allow_leave": "yes",
"daycare": "am pm",
"pickup_password": "mischief",
"friend": null,
"custom": "Slytherin",
"account_owner_first_name": "Lucius",
"account_owner_last_name": "Malfoy",
"account_owner_email": "luciusm@hogwartsrec.com",
"account_owner_mobile": "555-666-6666",
"other_guardian_first_name": "Narcissa",
"other_guardian_last_name": "Malfoy",
"other_guardian_email": "narcissam@hogwartsrec.com",
"other_guardian_mobile": "555-666-6667",
"event_dates": [
"2021-10-18T19:00:00.000000Z",
"2021-10-19T19:00:00.000000Z",
"2021-10-20T19:00:00.000000Z",
"2021-10-21T19:00:00.000000Z"
],
"attendance": [
{
"start": "2021-10-18T19:00:00.000000Z",
"in_at": "2021-10-18T19:04:25.000000Z",
"out_at": "2021-10-18T20:34:12.000000Z"
},
{
"start": "2021-10-19T19:00:00.000000Z",
"in_at": null,
"out_at": null
},
{
"start": "2021-10-20T19:00:00.000000Z",
"in_at": null,
"out_at": null
},
{
"start": "2021-10-21T19:00:00.000000Z",
"in_at": null,
"out_at": null
}
]
}
In addition to the
event_datesattribute, theGETcall also returns attributeattendancewhich holds check-in and check-out date/times.