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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for class.
Unique identifier for academic term.
Filter students by archived status
falseSuccess
GET /v2p1/classes/{id}/attendance/term/{term_id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for class.
A date string to define required day as yyyy-mm-dd.
Success
GET /v2p1/classes/{id}/attendance/date/{date} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for class.
Configure response to include or exclude disabled slots.
Success
GET /v2p1/classes/{id}/timetable HTTP/1.1
Host: api.devel.managebac.com
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
}
]
}
]
}
}Retrieve submitted excusals for a students for a date. Responses include dates the excusal applies to and comment given as submitted.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
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 /v2p1/students/excusals/{date} HTTP/1.1
Host: api.devel.managebac.com
Accept: */*
Success
{
"excusals": [
{
"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"
},
{
"student_id": 219,
"parent_id": 185,
"start_date": "2024-11-28",
"end_date": "2024-11-28",
"duration": 1,
"comment": "John was sick.",
"created_at": "2024-11-29T10:45:10.000Z",
"updated_at": "2024-11-29T10:45:10.000Z"
},
{
"student_id": 224,
"parent_id": 192,
"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"
}
],
"meta": {
"current_page": 1,
"total_pages": 1,
"total_count": 3,
"per_page": 100
}
}Get Homeroom Attendance for a Year Group and Term
This endpoint retrieves homeroom attendance for students belonging to a year group. Attendance is retrieved by academic term, as specified by academic term ID.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for year group.
Unique identifier for academic term.
Filter students by archived status
falseSuccess
GET /v2p1/year-groups/{year_group_id}/homeroom/attendance/term/{term_id} HTTP/1.1
Host: api.devel.managebac.com
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
}
]
}
]
}Get Homeroom Attendance for a Year Group by Date
This endpoint retrieves homeroom attendance for students as specified by year group ID and date.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for year group.
A date string
Success
GET /v2p1/year-groups/{year_group_id}/homeroom/attendance/date/{date} HTTP/1.1
Host: api.devel.managebac.com
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
}
}
}
]
}Get Homeroom Attendance Adjustments for a Year Group and Term
This endpoint retrieves Year Group Attendance Adjustments for a reporting term. Attendance adjustments is retrieved by academic term, as specified by academic term ID.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for year group.
Unique identifier for academic term.
Success
GET /v2p1/year-groups/{year_group_id}/homeroom/attendance/term/{term_id}/adjustments HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
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 /v2p1/students/{student_id}/excusals HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for a student.
Created
Unprocessable entity
POST /v2p1/students/{student_id}/excusals HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for a student.
Unique identifier for an excusal.
Success
DELETE /v2p1/students/{student_id}/excusals/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Unique identifier for a student.
Unique identifier for an excusal.
Success
Unprocessable entity
PATCH /v2p1/students/{student_id}/excusals/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
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 /v2p1/students/{id}/set_homeroom_attendance HTTP/1.1
Host: api.devel.managebac.com
Content-Type: application/json
Accept: */*
Content-Length: 47
{
"date": "2025-11-23",
"status": 0,
"notes": "text"
}Success
{
"status": "ok"
}Last updated
Was this helpful?

