attendance
Attendance
Per-session attendance rosters and marks.
5 endpoints
GET /api/v1/groups/{id}/attendance/summary
Per-student attendance rates and totals for one group, sorted by rate ascending.
Path & query parameters
| Name | In | Type | Constraints |
|---|---|---|---|
idrequired | path | string | — |
from | query | string (date) | — |
to | query | string (date) | — |
curl example
curl -X GET "https://api.yourdomain.com/api/v1/groups/37386ae0-3738-7738-8386-37386ae03738/attendance/summary" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
groupIdrequired | string (uuid) | — |
fromrequired | string (date) | — |
torequired | string (date) | — |
studentsrequired | array<object> | — |
{
"groupId": "6dc7fce6-6dc7-7dc7-8c7f-6dc7fce66dc7",
"from": "2026-03-02",
"to": "2026-03-02",
"students": [
{
"studentId": "a4a70332-a4a7-74a7-8a70-a4a70332a4a7",
"firstName": "Ada",
"lastName": "Lovelace",
"present": 0,
"absent": 0,
"late": 0,
"excused": 0,
"totalHeld": 0,
"rate": 0
}
]
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
GET /api/v1/me/attendance
Self attendance (student) or one linked child’s attendance (guardian, via `?studentId`).
Path & query parameters
| Name | In | Type | Constraints |
|---|---|---|---|
cursor | query | string | — |
limit | query | integer | 1–100 · default: 25 |
from | query | string (date) | — |
to | query | string (date) | — |
studentId | query | string (uuid) | — |
curl example
curl -X GET "https://api.yourdomain.com/api/v1/me/attendance" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
datarequired | array<object> | — |
nextCursorrequired | string | null | — |
raterequired | object | — |
{
"data": [
{
"sessionId": "736a51cd-736a-736a-86a5-736a51cd736a",
"groupId": "6dc7fce6-6dc7-7dc7-8c7f-6dc7fce66dc7",
"scheduledStart": "2026-03-02T09:00:00.000Z",
"status": "present",
"minutesLate": 0,
"note": "string",
"markedAt": "2026-03-02T09:00:00.000Z"
}
],
"nextCursor": null,
"rate": {
"present": 0,
"absent": 0,
"late": 0,
"excused": 0,
"totalHeld": 0,
"rate": 0
}
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
GET /api/v1/sessions/{id}/attendance
Roster for one session: every actively-enrolled student, merged with any existing attendance records.
Path & query parameters
| Name | In | Type | Constraints |
|---|---|---|---|
idrequired | path | string | — |
curl example
curl -X GET "https://api.yourdomain.com/api/v1/sessions/37386ae0-3738-7738-8386-37386ae03738/attendance" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
sessionIdrequired | string (uuid) | — |
groupIdrequired | string (uuid) | — |
scheduledStartrequired | string (date-time) | — |
statusrequired | enum: "scheduled" | "held" | "cancelled" | — |
entriesrequired | array<object> | — |
{
"sessionId": "736a51cd-736a-736a-86a5-736a51cd736a",
"groupId": "6dc7fce6-6dc7-7dc7-8c7f-6dc7fce66dc7",
"scheduledStart": "2026-03-02T09:00:00.000Z",
"status": "scheduled",
"entries": [
{
"studentId": "a4a70332-a4a7-74a7-8a70-a4a70332a4a7",
"firstName": "Ada",
"lastName": "Lovelace",
"status": "present",
"minutesLate": 0,
"note": "string",
"markedAt": "2026-03-02T09:00:00.000Z"
}
]
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
PUT /api/v1/sessions/{id}/attendance
Bulk upsert one session’s attendance. Marks the session held; idempotent (re-PUT updates statuses).
Path & query parameters
| Name | In | Type | Constraints |
|---|---|---|---|
idrequired | path | string | — |
Request body
| Name | Type | Constraints |
|---|---|---|
entriesrequired | array<object> | — |
Example
{
"entries": [
{
"studentId": "a4a70332-a4a7-74a7-8a70-a4a70332a4a7",
"status": "present",
"minutesLate": 0,
"note": "string"
}
]
}curl example
curl -X PUT "https://api.yourdomain.com/api/v1/sessions/37386ae0-3738-7738-8386-37386ae03738/attendance" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"entries": [
{
"studentId": "a4a70332-a4a7-74a7-8a70-a4a70332a4a7",
"status": "present",
"minutesLate": 0,
"note": "string"
}
]
}'Responses
| Name | Type | Constraints |
|---|---|---|
sessionIdrequired | string (uuid) | — |
groupIdrequired | string (uuid) | — |
scheduledStartrequired | string (date-time) | — |
statusrequired | enum: "scheduled" | "held" | "cancelled" | — |
entriesrequired | array<object> | — |
{
"sessionId": "736a51cd-736a-736a-86a5-736a51cd736a",
"groupId": "6dc7fce6-6dc7-7dc7-8c7f-6dc7fce66dc7",
"scheduledStart": "2026-03-02T09:00:00.000Z",
"status": "scheduled",
"entries": [
{
"studentId": "a4a70332-a4a7-74a7-8a70-a4a70332a4a7",
"firstName": "Ada",
"lastName": "Lovelace",
"status": "present",
"minutesLate": 0,
"note": "string",
"markedAt": "2026-03-02T09:00:00.000Z"
}
]
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
GET /api/v1/students/{id}/attendance
One student’s attendance history (cursor-paginated) plus rate summary.
Path & query parameters
| Name | In | Type | Constraints |
|---|---|---|---|
idrequired | path | string | — |
cursor | query | string | — |
limit | query | integer | 1–100 · default: 25 |
from | query | string (date) | — |
to | query | string (date) | — |
curl example
curl -X GET "https://api.yourdomain.com/api/v1/students/37386ae0-3738-7738-8386-37386ae03738/attendance" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"Responses
| Name | Type | Constraints |
|---|---|---|
datarequired | array<object> | — |
nextCursorrequired | string | null | — |
raterequired | object | — |
{
"data": [
{
"sessionId": "736a51cd-736a-736a-86a5-736a51cd736a",
"groupId": "6dc7fce6-6dc7-7dc7-8c7f-6dc7fce66dc7",
"scheduledStart": "2026-03-02T09:00:00.000Z",
"status": "present",
"minutesLate": 0,
"note": "string",
"markedAt": "2026-03-02T09:00:00.000Z"
}
],
"nextCursor": null,
"rate": {
"present": 0,
"absent": 0,
"late": 0,
"excused": 0,
"totalHeld": 0,
"rate": 0
}
}Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.
Returns the shared `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. Every code is listed in the Conventions guide.