Attendance
This group describes all the APIs relating to attendance records
This endpoint retrieves summary attendance data for all students within a class as specified by class ID for an academic term as specified by term ID.
Unique identifier for class.
Unique identifier for academic term.
Filter students by archived status
false
Success
GET /v2/classes/{id}/attendance/term/{term_id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"students": [
{
"id": 10193652,
"attendance": {
"Present": 91,
"Absent": 3,
"Late": 2
},
"attendance_categories": [
{
"label": "Present",
"status": 1,
"value": 90
},
{
"label": "Absent",
"status": 0,
"value": 3
},
{
"label": "Late",
"status": 2,
"value": 2
},
{
"label": "Present",
"status": -1,
"value": 1
}
]
},
{
"id": 10193654,
"attendance": {
"Present": 96
},
"attendance_categories": [
{
"label": "Present",
"status": 1,
"value": 95
},
{
"label": "Present",
"status": -1,
"value": 1
}
]
}
],
"timetable": {
"period_starts_count_from": 0,
"period_offset": -1
}
}
This endpoint retrieves summary attendance data for all students on a given date, as specified by class ID. Note, the specified date must be between the class’s start and end dates. A student’s attendance is returned as a sparse array of attendance periods. For further information, see the help article.
Unique identifier for class.
A date string to define required day as yyyy-mm-dd.
Success
GET /v2/classes/{id}/attendance/date/{date} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"students": [
{
"id": 10193652,
"attendance": {
"1": {
"status": "Present",
"note": "",
"category": {
"status": 1
}
},
"5": {
"status": "Absent",
"note": "Chloe left after the first period for an appointment.",
"category": {
"status": 0
}
}
}
},
{
"id": 10193615,
"attendance": {
"1": {
"status": "Present",
"note": "",
"category": {
"status": 1
}
},
"5": {
"status": "Present",
"note": "",
"category": {
"status": 1
}
}
}
}
],
"timetable": {
"period_starts_count_from": 0,
"period_offset": -1
}
}
This endpoint retrieves a class timetable specified by class ID.
Unique identifier for class.
Configure response to include or exclude disabled slots.
Success
GET /v2/classes/{id}/timetable HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"timetable": {
"academic_years": [
{
"id": 19,
"name": "December 2021 – July 2022",
"start_date": "2021-12-22",
"end_date": "2022-07-22",
"period_starts_count_from": 1,
"slots": [
{
"day": 2,
"period": 1,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 1,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 1,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 1,
"location": "Classroom E",
"enabled": true
},
{
"day": 1,
"period": 3,
"location": "Classroom A",
"enabled": true
},
{
"day": 2,
"period": 3,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 3,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 3,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 3,
"location": "Classroom E",
"enabled": true
},
{
"day": 1,
"period": 4,
"location": "Classroom A",
"enabled": true
},
{
"day": 2,
"period": 4,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 4,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 4,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 4,
"location": "Classroom E",
"enabled": true
},
{
"day": 1,
"period": 5,
"location": "Classroom A",
"enabled": true
},
{
"day": 2,
"period": 5,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 5,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 5,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 5,
"location": "Classroom E",
"enabled": true
},
{
"day": 1,
"period": 6,
"location": "Classroom A",
"enabled": true
},
{
"day": 2,
"period": 6,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 6,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 6,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 6,
"location": "Classroom E",
"enabled": true
}
]
},
{
"id": 20,
"name": "August 2022 – July 2023",
"start_date": "2022-08-01",
"end_date": "2023-07-31",
"period_starts_count_from": 0,
"slots": [
{
"day": 2,
"period": 0,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 0,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 0,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 0,
"location": "Classroom E",
"enabled": true
},
{
"day": 1,
"period": 1,
"location": "Classroom A",
"enabled": true
},
{
"day": 2,
"period": 1,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 1,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 1,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 1,
"location": "Classroom E",
"enabled": true
},
{
"day": 1,
"period": 3,
"location": "Classroom A",
"enabled": true
},
{
"day": 2,
"period": 3,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 3,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 3,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 3,
"location": "Classroom E",
"enabled": true
},
{
"day": 1,
"period": 4,
"location": "Classroom A",
"enabled": true
},
{
"day": 2,
"period": 4,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 4,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 4,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 4,
"location": "Classroom E",
"enabled": true
},
{
"day": 1,
"period": 5,
"location": "Classroom A",
"enabled": true
},
{
"day": 2,
"period": 5,
"location": "Classroom B",
"enabled": true
},
{
"day": 3,
"period": 5,
"location": "Classroom C",
"enabled": true
},
{
"day": 4,
"period": 5,
"location": "Classroom D",
"enabled": true
},
{
"day": 5,
"period": 5,
"location": "Classroom E",
"enabled": true
}
]
}
]
}
}
This endpoint retrieves homeroom attendance for students belonging to a year group. Attendance is retrieved by academic term, as specified by academic term ID.
Unique identifier for year group.
Unique identifier for academic term.
Filter students by archived status
false
Success
GET /v2/year-groups/{year_group_id}/homeroom/attendance/term/{term_id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"students": [
{
"id": 10193652,
"attendance": {
"Present": 57,
"Late": 2,
"Absent": 1
},
"attendance_categories": [
{
"label": "Present",
"status": 1,
"value": 56
},
{
"label": "Absent",
"status": 0,
"value": 1
},
{
"label": "Late",
"status": 2,
"value": 2
},
{
"label": "Present",
"status": -1,
"value": 1
}
]
},
{
"id": 12449380,
"attendance": {
"Present": 60
},
"attendance_categories": [
{
"label": "Present",
"status": 1,
"value": 59
},
{
"label": "Present",
"status": -1,
"value": 1
}
]
}
]
}
This endpoint retrieves homeroom attendance for students as specified by year group ID and date.
Unique identifier for year group.
A date string
Success
GET /v2/year-groups/{year_group_id}/homeroom/attendance/date/{date} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"students": [
{
"id": 10193652,
"attendance": {
"status": "Present",
"note": "",
"category": {
"status": -1
}
}
},
{
"id": 12449380,
"attendance": {
"status": "Absent",
"note": "Chloe was absent due to a dentist appointment.",
"category": {
"status": 0
}
}
}
]
}
This endpoint retrieves Year Group Attendance Adjustments for a reporting term. Attendance adjustments is retrieved by academic term, as specified by academic term ID.
Unique identifier for year group.
Unique identifier for academic term.
Success
GET /v2/year-groups/{year_group_id}/homeroom/attendance/term/{term_id}/adjustments HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"students": [
{
"id": 10949004,
"attendance_adjustments": [
{
"id": 29863,
"name": "Present",
"adjustment": 3
}
]
},
{
"id": 10752628,
"attendance_adjustments": [
{
"id": 29870,
"name": "Absent",
"adjustment": 2
},
{
"id": 29871,
"name": "Present",
"adjustment": 1
},
{
"id": 29872,
"name": "Late",
"adjustment": 3
}
]
}
]
}
Retrieve Attendance Excusals submitted by a parent for their child. Responses include dates the excusal applies to and comment given as submitted.
Unique identifier for a student.
A date string to define required day as yyyy-mm-dd.
An integer defining which page to display.
An integer defining the number of records to display per page.
Success
GET /v2/students/{student_id}/excusals HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"excusals": [
{
"id": 1,
"student_id": 210,
"parent_id": 176,
"start_date": "2024-11-28",
"end_date": "2024-11-28",
"duration": 1,
"comment": "Chloe was sick.",
"created_at": "2024-11-29T10:45:10.000Z",
"updated_at": "2024-11-29T10:45:10.000Z"
},
{
"id": 2,
"student_id": 210,
"parent_id": 176,
"start_date": "2024-11-27",
"end_date": "2024-11-29",
"duration": 3,
"comment": "Need to travel for a family event",
"created_at": "2024-11-29T13:40:10.000Z",
"updated_at": "2024-11-29T18:22:10.000Z"
},
{
"id": 3,
"student_id": 210,
"parent_id": 175,
"start_date": "2025-01-29",
"end_date": "2025-01-29",
"duration": 1,
"comment": "Chloe has a dentist appointment and will be out of school the entire day.",
"created_at": "2025-01-29T15:56:10.000Z",
"updated_at": "2025-01-30T12:30:10.000Z"
}
],
"meta": {
"current_page": 1,
"total_pages": 1,
"total_count": 3,
"per_page": 100
}
}
This endpoint creates an Attendance Excusal for a Student. It returns created Attendance Excusal.
Unique identifier for a student.
Created
Unprocessable entity
POST /v2/students/{student_id}/excusals HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 112
{
"excusal": {
"parent_id": 456,
"start_date": "2024-06-17",
"end_date": "2024-06-19",
"comment": "Doctor's appointment"
}
}
{
"excusal": {
"id": 1,
"student_id": 210,
"parent_id": 175,
"start_date": "2025-01-01",
"end_date": "2025-01-01",
"duration": 1,
"comment": "Chloe was sick.",
"created_at": "2025-01-01T15:56:10.000Z",
"updated_at": "2025-01-01T12:30:10.000Z"
}
}
This endpoint deletes an Attendance Excusal for a Student. It returns deleted Attendance Excusal.
Unique identifier for a student.
Unique identifier for an excusal.
Success
DELETE /v2/students/{student_id}/excusals/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"excusal": {
"id": 1,
"student_id": 210,
"parent_id": 175,
"start_date": "2025-01-01",
"end_date": "2025-01-01",
"duration": 1,
"comment": "Chloe was sick.",
"created_at": "2025-01-01T15:56:10.000Z",
"updated_at": "2025-01-01T12:30:10.000Z"
}
}
This endpoint updates an Attendance Excusal for a Student. It returns updated Attendance Excusal.
Unique identifier for a student.
Unique identifier for an excusal.
Success
Unprocessable entity
PATCH /v2/students/{student_id}/excusals/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 70
{
"excusal": {
"end_date": "2024-06-19",
"comment": "Doctor's appointment"
}
}
{
"excusal": {
"id": 1,
"student_id": 210,
"parent_id": 175,
"start_date": "2025-01-01",
"end_date": "2025-01-01",
"duration": 1,
"comment": "Chloe was sick.",
"created_at": "2025-01-01T15:56:10.000Z",
"updated_at": "2025-01-01T12:30:10.000Z"
}
}
Sets student homeroom attendance record. If record doesn't exist, it will be created.
Unique identifier for a student.
Attendance date
Available statuses:
0 - Absent
1 - Present
2 - Late
3 - Dress Code
4 - Late & Dress Code
5 - Dismissed
10 - Health
11 - Sports
12 - Fieldtrip
13 - Excused
14 - Other
15 - Custom 1
16 - Custom 2
17 - Custom 3
18 - Custom 4
Attendance notes
Success
PUT /v2/students/{id}/set_homeroom_attendance HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 47
{
"date": "2025-10-06",
"status": 0,
"notes": "text"
}
Success
{
"status": "ok"
}
Was this helpful?