Classes
Classes are scheduled sessions in which teachers deliver a given curriculum to a group of students.
Retrieves all classes for the school. Returns class name, class ID, grade, program, subject information, teacher assignments, and any school-defined values. Supports filtering by modification date, deletion date, and archived status. Results are paginated.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
A timestamp to filter the modification date of results.
A timestamp to filter the deleted date of results.
An integer defining which page to display.
An integer defining the number of records to display per page.
A boolean that, if set to True, returns only archived classes.
Success
Unauthorized
GET /v2p3/classes HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"classes": [
{
"id": 852,
"name": "IB DP English A (Grade 11)",
"start_term_id": 1,
"end_term_id": 2,
"created_at": "2021-06-28T12:39:36.000Z",
"updated_at": "2021-06-28T12:39:36.000Z",
"grade": "Grade 11",
"grade_number": 12,
"applicable_levels": [
"HL",
"SL"
],
"program": "IB Diploma",
"program_code": "diploma",
"subject_id": 927,
"subject_name": "English",
"subject_group": "Studies in Language and Literature",
"subject_group_id": 13,
"teachers": [
{
"teacher_id": 1960,
"show_on_reports": false,
"teacher_archived": false
}
]
}
],
"meta": {
"current_page": 1,
"total_pages": 1,
"total_count": 1,
"per_page": 100
}
}Creates a new class in the school. Requires program, grade, subject, language, and term information. Returns the created class details including assigned teachers. The class name is auto-generated from program, subject, grade, and section if not explicitly provided.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Academic term ID.
123Academic term ID.
132Subject’s unique ID.
123434Program code.
diplomaGrade number.
13Class Name.
IB DP Biology (Grade 12)Class description.
Lorem ipsum dolor sitamet.Language of Instruction. Receives a language code.
enUnique ID in ManageBac.
DG333Identifier for a duplicated class/grade.
ASubjects unique IDs.
[123434,10001]SL level
trueHL level
falseSubject option.
Allowed for Subject that support language level (e.g. Language and literature).
Language and literatureAllowed for Subject that support phases.
["1","2","3"]Lock Memberships.
students_onlySuccess
Unique ID in ManageBac.
123Class Name.
IB DP Biology (Grade 12)Class description.
Lorem ipsum dolor sitamet.Language of Instruction. Receives a language code.
enUnique ID in ManageBac.
DG333Identifier for a duplicated class/grade.
AAcademic term ID.
123Academic term ID.
132Created date; yyyy-mm-dd.
2023-07-24T15:12:58.000ZUpdated date; yyyy-mm-dd.
2023-07-24T15:12:58.000ZGrade name.
Grade 12Grade number.
7Applicable Levels.
["HL","SL"]Program name.
IB DiplomaProgram code.
diplomaSubject’s unique ID.
123434Subject Name.
NorwegianSubject group.
Studies in language and literatureSubject option.
Language and literatureLock Memberships.
students_onlyArchive Class.
falseUnauthorized
Unprocessable Entity
POST /v2p3/classes HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 356
{
"start_term_id": 123,
"end_term_id": 132,
"subject_id": 123434,
"program": "diploma",
"grade_number": 13,
"name": "IB DP Biology (Grade 12)",
"description": "Lorem ipsum dolor sitamet.",
"language": "en",
"uniq_id": "DG333",
"class_section": "A",
"subject_ids": [
123434,
10001
],
"sl": true,
"hl": false,
"subject_option": "Language and literature",
"lock_memberships": "students_only"
}{
"id": 123,
"name": "IB DP Biology (Grade 12)",
"description": "Lorem ipsum dolor sitamet.",
"language": "en",
"uniq_id": "DG333",
"class_section": "A",
"start_term_id": 123,
"end_term_id": 132,
"created_at": "2023-07-24T15:12:58.000Z",
"updated_at": "2023-07-24T15:12:58.000Z",
"grade": "Grade 12",
"grade_number": 7,
"applicable_levels": [
"HL",
"SL"
],
"program": "IB Diploma",
"program_code": "diploma",
"subject_id": 123434,
"subject_name": "Norwegian",
"subject_group": "Studies in language and literature",
"subject_option": "Language and literature",
"lock_memberships": "students_only",
"archived": false,
"subjects": [
{
"id": 123,
"name": "Spanish",
"subject_group_id": 123,
"subject_group": "Language"
}
],
"teachers": [
{
"teacher_id": 123,
"show_on_reports": true,
"teacher_archived": false
}
]
}Retrieves a single class by its ID. Returns full class details including name, grade, program, subject information, applicable levels, and the IDs of assigned teachers.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Unique identifier for class.
Success
Unauthorized
Not Found
GET /v2p3/classes/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"class": {
"id": 854,
"name": "IB DP English A (Grade 11)",
"created_at": "2021-06-28T12:39:37.000Z",
"updated_at": "2021-06-28T12:39:37.000Z",
"grade": "Grade 11",
"grade_number": 12,
"applicable_levels": [
"HL",
"SL"
],
"program": "IB Diploma",
"program_code": "diploma",
"subject_id": 929,
"subject_name": "English",
"subject_group": "Studies in Language and Literature",
"subject_group_id": 13,
"teachers": []
}
}Updates an existing class by its ID. Only a subset of fields can be updated (name, description, levels, subject option, section, uniq_id, lock_memberships, archived status). Attempting to update immutable fields (language, start_term_id, program, grade_number, etc.) returns a 422 error listing the allowed parameters.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Unique identifier for class.
Archive Class.
falseClass Name.
IB DP Biology (Grade 12)Class description.
Lorem ipsum dolor sitamet.Language of Instruction. Receives a language code.
enUnique ID in ManageBac.
DG333Identifier for a duplicated class/grade.
ASubjects unique IDs.
[123434,10001]SL level
trueHL level
falseSubject option.
Allowed for Subject that support language level (e.g. Language and literature).
Language and literatureAllowed for Subject that support phases.
["1","2","3"]Lock Memberships.
students_onlySuccess
Unique ID in ManageBac.
123Class Name.
IB DP Biology (Grade 12)Class description.
Lorem ipsum dolor sitamet.Language of Instruction. Receives a language code.
enUnique ID in ManageBac.
DG333Identifier for a duplicated class/grade.
AAcademic term ID.
123Academic term ID.
132Created date; yyyy-mm-dd.
2023-07-24T15:12:58.000ZUpdated date; yyyy-mm-dd.
2023-07-24T15:12:58.000ZGrade name.
Grade 12Grade number.
7Applicable Levels.
["HL","SL"]Program name.
IB DiplomaProgram code.
diplomaSubject’s unique ID.
123434Subject Name.
NorwegianSubject group.
Studies in language and literatureSubject option.
Language and literatureLock Memberships.
students_onlyArchive Class.
falseUnauthorized
Not Found
Unprocessable Entity
PATCH /v2p3/classes/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 277
{
"archived": false,
"name": "IB DP Biology (Grade 12)",
"description": "Lorem ipsum dolor sitamet.",
"language": "en",
"uniq_id": "DG333",
"class_section": "A",
"subject_ids": [
123434,
10001
],
"sl": true,
"hl": false,
"subject_option": "Language and literature",
"lock_memberships": "students_only"
}{
"id": 123,
"name": "IB DP Biology (Grade 12)",
"description": "Lorem ipsum dolor sitamet.",
"language": "en",
"uniq_id": "DG333",
"class_section": "A",
"start_term_id": 123,
"end_term_id": 132,
"created_at": "2023-07-24T15:12:58.000Z",
"updated_at": "2023-07-24T15:12:58.000Z",
"grade": "Grade 12",
"grade_number": 7,
"applicable_levels": [
"HL",
"SL"
],
"program": "IB Diploma",
"program_code": "diploma",
"subject_id": 123434,
"subject_name": "Norwegian",
"subject_group": "Studies in language and literature",
"subject_option": "Language and literature",
"lock_memberships": "students_only",
"archived": false,
"subjects": [
{
"id": 123,
"name": "Spanish",
"subject_group_id": 123,
"subject_group": "Language"
}
],
"teachers": [
{
"teacher_id": 123,
"show_on_reports": true,
"teacher_archived": false
}
]
}Adds one or more students to a class, specified by student IDs and class ID. Students must belong to the same school. Returns a status indicating success.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Unique identifier for class.
An array of student IDs to add to the class.
Success
Unauthorized
Not Found
POST /v2p3/classes/{id}/add_students HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19
{
"student_ids": [
1
]
}{
"status": "ok"
}Removes one or more students from a class, specified by student IDs and class ID. Returns a status indicating success.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Unique identifier for class.
An array of student IDs to remove from the class.
Success
Unauthorized
Not Found
POST /v2p3/classes/{id}/remove_students HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19
{
"student_ids": [
1
]
}{
"status": "ok"
}Retrieves the academic terms associated with a class. Returns term name, start and end dates, and the parent academic year for each term. Supports filtering by academic year ID and by active-only status.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Unique identifier for class.
Filter results by unique identifier for an academic year.
Filter results by active academic terms only.
Success
Unauthorized
Not Found
GET /v2p3/classes/{id}/terms HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"terms": [
{
"id": 1,
"name": "Current Year Term 1",
"starts_on": "2026-09-01",
"ends_on": "2026-12-31",
"academic_year": {
"id": 1,
"name": "September 2026 – December 2026"
}
},
{
"id": 2,
"name": "Current Year Term 2",
"starts_on": "2027-01-01",
"ends_on": "2027-05-31",
"academic_year": {
"id": 2,
"name": "January 2027 - May 2027"
}
}
]
}Adds one or more teachers to a class by their teacher IDs. If a teacher was previously removed (soft-deleted), they are restored. Teachers who are already active members are silently skipped.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
The unique numeric identifier of the class.
An array of teacher IDs to add to the class.
Success
Unauthorized
Not Found
POST /v2p3/classes/{class_id}/teachers/add_teachers HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19
{
"teacher_ids": [
1
]
}{
"status": "ok"
}Last updated