For the complete documentation index, see llms.txt. This page is also available as Markdown.

Classes

Classes are scheduled sessions in which teachers deliver a given curriculum to a group of students.

Get all Classes

get
/v2p3/classes

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.

Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.

Query parameters
modified_sincestringOptional

A timestamp to filter the modification date of results.

deleted_sincestringOptional

A timestamp to filter the deleted date of results.

pagestringOptional

An integer defining which page to display.

per_pagestringOptional

An integer defining the number of records to display per page.

archivedbooleanOptional

A boolean that, if set to True, returns only archived classes.

Responses
200

Success

application/json
get/v2p3/classes
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
  }
}

Create a class

post
/v2p3/classes

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.

Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.

Body
start_term_idintegerOptional

Academic term ID.

Example: 123
end_term_idintegerOptional

Academic term ID.

Example: 132
subject_idintegerOptional

Subject’s unique ID.

Example: 123434
programstringOptional

Program code.

Example: diploma
grade_numberintegerOptional

Grade number.

Example: 13
namestringOptional

Class Name.

Example: IB DP Biology (Grade 12)
descriptionstringOptional

Class description.

Example: Lorem ipsum dolor sitamet.
languagestringOptional

Language of Instruction. Receives a language code.

Example: en
uniq_idstringOptional

Unique ID in ManageBac.

Example: DG333
class_sectionstringOptional

Identifier for a duplicated class/grade.

Example: A
subject_idsinteger[]Optional

Subjects unique IDs.

Example: [123434,10001]
slbooleanOptional

SL level

Example: true
hlbooleanOptional

HL level

Example: false
subject_optionone ofOptional

Subject option.

stringOptional

Allowed for Subject that support language level (e.g. Language and literature).

Example: Language and literature
or
string[]Optional

Allowed for Subject that support phases.

Example: ["1","2","3"]
lock_membershipsstringOptional

Lock Memberships.

Example: students_only
Responses
200

Success

application/json
idintegerOptional

Unique ID in ManageBac.

Example: 123
namestringOptional

Class Name.

Example: IB DP Biology (Grade 12)
descriptionstringOptional

Class description.

Example: Lorem ipsum dolor sitamet.
languagestringOptional

Language of Instruction. Receives a language code.

Example: en
uniq_idstringOptional

Unique ID in ManageBac.

Example: DG333
class_sectionstringOptional

Identifier for a duplicated class/grade.

Example: A
start_term_idintegerOptional

Academic term ID.

Example: 123
end_term_idintegerOptional

Academic term ID.

Example: 132
created_atstringOptional

Created date; yyyy-mm-dd.

Example: 2023-07-24T15:12:58.000Z
updated_atstringOptional

Updated date; yyyy-mm-dd.

Example: 2023-07-24T15:12:58.000Z
gradestringOptional

Grade name.

Example: Grade 12
grade_numberintegerOptional

Grade number.

Example: 7
applicable_levelsstring[]Optional

Applicable Levels.

Example: ["HL","SL"]
programstringOptional

Program name.

Example: IB Diploma
program_codestringOptional

Program code.

Example: diploma
subject_idintegerOptional

Subject’s unique ID.

Example: 123434
subject_namestringOptional

Subject Name.

Example: Norwegian
subject_groupstringOptional

Subject group.

Example: Studies in language and literature
subject_optionstringOptional

Subject option.

Example: Language and literature
lock_membershipsstringOptional

Lock Memberships.

Example: students_only
archivedbooleanOptional

Archive Class.

Example: false
post/v2p3/classes
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
    }
  ]
}

Get a Class

get
/v2p3/classes/{id}

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.

Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.

Path parameters
idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get/v2p3/classes/{id}
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": []
  }
}

Update a class

patch
/v2p3/classes/{id}

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.

Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.

Path parameters
idintegerRequired

Unique identifier for class.

Body
archivedbooleanOptional

Archive Class.

Example: false
namestringOptional

Class Name.

Example: IB DP Biology (Grade 12)
descriptionstringOptional

Class description.

Example: Lorem ipsum dolor sitamet.
languagestringOptional

Language of Instruction. Receives a language code.

Example: en
uniq_idstringOptional

Unique ID in ManageBac.

Example: DG333
class_sectionstringOptional

Identifier for a duplicated class/grade.

Example: A
subject_idsinteger[]Optional

Subjects unique IDs.

Example: [123434,10001]
slbooleanOptional

SL level

Example: true
hlbooleanOptional

HL level

Example: false
subject_optionone ofOptional

Subject option.

stringOptional

Allowed for Subject that support language level (e.g. Language and literature).

Example: Language and literature
or
string[]Optional

Allowed for Subject that support phases.

Example: ["1","2","3"]
lock_membershipsstringOptional

Lock Memberships.

Example: students_only
Responses
200

Success

application/json
idintegerOptional

Unique ID in ManageBac.

Example: 123
namestringOptional

Class Name.

Example: IB DP Biology (Grade 12)
descriptionstringOptional

Class description.

Example: Lorem ipsum dolor sitamet.
languagestringOptional

Language of Instruction. Receives a language code.

Example: en
uniq_idstringOptional

Unique ID in ManageBac.

Example: DG333
class_sectionstringOptional

Identifier for a duplicated class/grade.

Example: A
start_term_idintegerOptional

Academic term ID.

Example: 123
end_term_idintegerOptional

Academic term ID.

Example: 132
created_atstringOptional

Created date; yyyy-mm-dd.

Example: 2023-07-24T15:12:58.000Z
updated_atstringOptional

Updated date; yyyy-mm-dd.

Example: 2023-07-24T15:12:58.000Z
gradestringOptional

Grade name.

Example: Grade 12
grade_numberintegerOptional

Grade number.

Example: 7
applicable_levelsstring[]Optional

Applicable Levels.

Example: ["HL","SL"]
programstringOptional

Program name.

Example: IB Diploma
program_codestringOptional

Program code.

Example: diploma
subject_idintegerOptional

Subject’s unique ID.

Example: 123434
subject_namestringOptional

Subject Name.

Example: Norwegian
subject_groupstringOptional

Subject group.

Example: Studies in language and literature
subject_optionstringOptional

Subject option.

Example: Language and literature
lock_membershipsstringOptional

Lock Memberships.

Example: students_only
archivedbooleanOptional

Archive Class.

Example: false
patch/v2p3/classes/{id}
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
    }
  ]
}

Add Students to a Class

post
/v2p3/classes/{id}/add_students

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.

Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.

Path parameters
idintegerRequired

Unique identifier for class.

Body
student_idsinteger[]Required

An array of student IDs to add to the class.

Responses
200

Success

application/json
post/v2p3/classes/{id}/add_students
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"
}

Remove Students from a Class

post
/v2p3/classes/{id}/remove_students

Removes one or more students from a class, specified by student IDs and class ID. Returns a status indicating success.

Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.

Path parameters
idintegerRequired

Unique identifier for class.

Body
student_idsinteger[]Required

An array of student IDs to remove from the class.

Responses
200

Success

application/json
post/v2p3/classes/{id}/remove_students
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"
}

Get Class terms details

get
/v2p3/classes/{id}/terms

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.

Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.

Path parameters
idintegerRequired

Unique identifier for class.

Query parameters
academic_year_idintegerOptional

Filter results by unique identifier for an academic year.

active_onlybooleanOptional

Filter results by active academic terms only.

Responses
200

Success

application/json
get/v2p3/classes/{id}/terms
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"
      }
    }
  ]
}

Add Teachers to a Class

post
/v2p3/classes/{class_id}/teachers/add_teachers

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.

Authorizations
AuthorizationstringRequired

OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.

Path parameters
class_idintegerRequired

The unique numeric identifier of the class.

Body
teacher_idsinteger[]Required

An array of teacher IDs to add to the class.

Responses
200

Success

application/json
post/v2p3/classes/{class_id}/teachers/add_teachers
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