Academics
This group refers to top-level entities such as School, Programs, Subjects, and Academic Years. Programs are curriculum frameworks that ManageBac supports, and a Subject is a collection of delivered curricula. Academic Years define when the school is in session.
Submit a zip archive file for ManageBac to process as an import. The import mode is determined by the manifest.
The bundle is queued rather than processed inline: a 202 means ManageBac has taken responsibility for it and identifies the import that was created. Validation results and the outcome appear under Data Exchange history in ManageBac, where the run is listed as generated by API Caller.
The import is always created for the school owning the API credential.
Please note that source.systemCode defines a namespace that scopes sourcedId mappings from previous imports. These sourcedIds can be matched against on import. A bundle that declares no source.systemCode imports into the unnamed namespace, which it shares with every other bundle that declares none.
Only one OneRoster exchange runs per school at a time. While an import or export is already in flight this endpoint returns 409 instead of holding the bundle, so a caller can retry once the running exchange has finished. That response names the import in the way as import_id; when an export is what blocks the upload there is no import to name and the field is absent. An exchange that has not progressed for over an hour is treated as abandoned and stops blocking further uploads.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Accepted
Bad Request
Unauthorized
Conflict
Unprocessable Entity
POST /v2/one-roster/imports HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17
{
"file": "binary"
}{
"import": {
"id": 10001,
"status": "scheduled",
"processing_mode": "bulk",
"system_name": "DataGen",
"system_code": "DataGen",
"dry_run": false,
"created_at": "2026-01-01T00:00:00.000Z"
}
}Create Academic Term
Creates an Academic Term within the specified Academic Year.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
diplomaAcademic Year ID
123Success
Unauthorized
Unprocessable entity
POST /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 126
{
"academic_term": {
"name": "Term one.",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"locked": true,
"enable_exam_grade": false
}
}{
"academic_term": {
"id": 123,
"academic_year_id": 124,
"name": "Term 1",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"locked": true,
"exam_grade": true,
"updated_at": "2023-06-26T08:54:47.000Z"
}
}Delete Academic Term
Deletes an Academic Term from the specified Academic Year by ID.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
diplomaAcademic Year ID
123Academic Term ID
123Success
Unauthorized
Unprocessable entity
DELETE /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"academic_term": {
"id": 123,
"academic_year_id": 124,
"name": "Term 1",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"locked": true,
"exam_grade": true,
"updated_at": "2023-06-26T08:54:47.000Z"
}
}Update Academic Term
Updates an Academic Term within the specified Academic Year by ID.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
diplomaAcademic Year ID
123Academic Term ID
123Success
Unauthorized
Not Found
Unprocessable entity
PATCH /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 126
{
"academic_term": {
"name": "Term one.",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"locked": true,
"enable_exam_grade": false
}
}{
"academic_term": {
"id": 123,
"academic_year_id": 124,
"name": "Term 1",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"locked": true,
"exam_grade": true,
"updated_at": "2023-06-26T08:54:47.000Z"
}
}Retrieves an Academic Year by ID, including its associated Academic Terms.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program code
diplomaUnique ID in ManageBac.
10010Success
Unauthorized
Not Found
GET /v2/school/programs/{program_code}/academic-years/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"academic_year": {
"id": 123,
"name": "August 2023 – January 2024",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"updated_at": "2023-06-26T08:54:47.000Z",
"program": "diploma",
"academic_terms": [
{
"id": 123,
"academic_year_id": 124,
"name": "Term 1",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"locked": true,
"exam_grade": true,
"updated_at": "2023-06-26T08:54:47.000Z"
}
]
}
}Creates an Academic Year with its associated Academic Terms.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program code
diplomaSuccess
Bad Request
Unauthorized
POST /v2/school/programs/{program_code}/academic-years HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 149
{
"academic_year": {
"terms_attributes": [
{
"name": "Term one.",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"locked": true,
"enable_exam_grade": false
}
]
}
}{
"academic_year": {
"id": 123,
"name": "August 2023 – January 2024",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"updated_at": "2023-06-26T08:54:47.000Z",
"program": "diploma",
"academic_terms": [
{
"id": 123,
"academic_year_id": 124,
"name": "Term 1",
"starts_on": "2024-05-29",
"ends_on": "2024-07-29",
"locked": true,
"exam_grade": true,
"updated_at": "2023-06-26T08:54:47.000Z"
}
]
}
}Retrieves the list of assessment types configured for a given program. Each assessment type includes its kind (e.g. summative, formative), display name, color code, and the assessment methods that are available or required for that type (binary, criteria, comment, points).
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
The short code identifying the program (e.g. "ibpyp", "diploma", "igcse").
ibpypSuccess
Unauthorized
GET /v2/school/programs/{program_code}/assessment_types HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"assessment_type": {
"id": 3,
"kind": "summative",
"name": "Summative",
"color_code": "#478cfe",
"available_assessments": [
"binary"
],
"required_assessments": [
"criteria"
]
}
}Get Academic Year Calendar
Retrieves the academic year calendar for a specific program and academic year. Returns the calendar configuration (type, rotation cycle length, days off, whether holidays are ignored) and an array of dates with their assigned rotation day numbers. Vacation days are excluded from the rotation sequence.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
The short code identifying the program (e.g. "diploma", "ibpyp").
diplomaThe unique numeric identifier of the academic year.
10010Success
Unauthorized
Not Found
GET /v2/school/programs/{program_code}/academic-years/{academic_year_id}/calendar HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"calendar": {
"start_date": "2024-06-17",
"end_date": "2025-06-15",
"calendar_type": "Rotation Cycle",
"rotation_cycle": 5,
"ignore_holidays": true,
"days_off": [
0,
6
],
"dates": [
{
"date": "2024-06-17",
"rotation_day": 1
},
{
"date": "2024-06-18",
"rotation_day": 2
},
{
"date": "2024-06-19",
"rotation_day": 3
},
{
"date": "2024-06-24",
"rotation_day": 5
}
]
}
}Retrieves a list of published term reports for the specified program. Each report includes download URLs for PDF, individual reports ZIP, and term grades ZIP when available. Only non-draft reports are returned.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program code (e.g. diploma, myp, pyp, cp)
diplomaFilter by academic term ID
Filter by report type: final or interim:
finalinterim
Success
Unauthorized
Program not found
GET /v2/school/programs/{program}/reports HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"term_reports": [
{
"id": 1,
"title": "text",
"type": "final",
"program": "text",
"academic_term_id": 1,
"academic_term_name": "text",
"next_gen": true,
"pdf_url": "text",
"individual_reports_url": "text",
"term_grades_url": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"released_on": "2026-01-01"
}
],
"meta": {
"current_page": 1,
"total_pages": 1,
"total_count": 1,
"per_page": 1
}
}Retrieves a single published term report by ID, with download URLs for available files.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program code
diplomaTerm report ID
Success
Unauthorized
Not found
GET /v2/school/programs/{program}/reports/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"term_report": {
"id": 1,
"title": "text",
"type": "final",
"program": "text",
"academic_term_id": 1,
"academic_term_name": "text",
"next_gen": true,
"pdf_url": "text",
"individual_reports_url": "text",
"term_grades_url": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"released_on": "2026-01-01"
}
}Returns a 302 redirect to a pre-signed download URL for the requested file. Supported file types: pdf (master PDF), individual_reports (ZIP of individual student PDFs), term_grades (ZIP of term grades export).
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program code (e.g. diploma, myp, pyp, cp)
diplomaTerm report ID
File type to download:
pdfindividual_reportsterm_grades
Redirect to download URL
No content
Unauthorized
Not found
GET /v2/school/programs/{program}/reports/{id}/download/{kind} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Retrieves a paginated list of Subject Groups for the specified program.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
ibpypAn integer defining which page to display.
An integer defining the number of records to display per page.
A timestamp to filter the modification date of results.
Success
Unauthorized
GET /v2/school/programs/{program_code}/subject-groups HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"meta": {
"current_page": 1,
"total_pages": 10,
"total_count": 20,
"per_page": 2
},
"subject_groups": [
{
"id": 10010,
"name": "Language",
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
]
}Creates a new Subject Group for the specified program.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
hsSuccess
Unauthorized
Unprocessable Entity
POST /v2/school/programs/{program_code}/subject-groups HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 53
{
"subject_group": {
"name": "Language",
"max_phase": "4"
}
}{
"subject_group": {
"id": 10010,
"name": "Language",
"custom": true,
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
}Retrieves a single Subject Group by ID.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
hsUnique ID for Subject Group in ManageBac.
10001Success
Unauthorized
Not Found
GET /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"subject_group": {
"id": 10010,
"name": "Language",
"custom": true,
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
}Deletes a Subject Group by ID.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
hsSubject Group ID
10010Success
Unauthorized
Forbidden
Not Found
Unprocessable Entity
DELETE /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"subject_group": {
"id": 10010,
"name": "Language",
"custom": true,
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
}Updates an existing Subject Group by ID.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
hsSubject Group ID
10010Success
Unauthorized
Forbidden
Not Found
PATCH /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 53
{
"subject_group": {
"name": "Language",
"max_phase": "4"
}
}{
"subject_group": {
"id": 10010,
"name": "Language",
"custom": true,
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
}Retrieves a paginated list of Subjects for the specified program.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
ibpypAn integer defining which page to display.
An integer defining the number of records to display per page.
Success
Unauthorized
GET /v2/school/programs/{program_code}/subjects HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"meta": {
"current_page": 1,
"total_pages": 10,
"total_count": 20,
"per_page": 2
},
"subjects": [
{
"id": 10001,
"subject_group_id": 10001,
"custom": false,
"name": "English",
"title": "English",
"sl": false,
"hl": true,
"sl_code": 138,
"hl_code": 128,
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"scope_and_sequence_based_on": "phases",
"updated_at": "2021-05-13T10:27:47Z",
"self_taught": true,
"phases": [
"1",
"2",
"3",
"4"
],
"levels": [
"Literature",
"Language and literature"
],
"enabled": true
}
]
}Creates a new Subject for the specified program.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
hsSuccess
Unauthorized
Unprocessable Entity
POST /v2/school/programs/{program_code}/subjects HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 302
{
"subject": {
"subject_group_id": 10001,
"name": "English",
"title": "English",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"scope_and_sequence_based_on": "phases",
"sl": false,
"hl": true,
"enabled": true,
"code": "X128"
}
}{
"subject": {
"id": 10001,
"subject_group_id": 10001,
"custom": true,
"name": "English",
"title": "English",
"sl": false,
"hl": true,
"code": "X128",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"scope_and_sequence_based_on": "phases",
"updated_at": "2021-05-13T10:27:47Z",
"self_taught": true,
"phases": [
"1",
"2",
"3",
"4"
],
"levels": [
"Literature",
"Language and literature"
],
"enabled": true
}
}Retrieves a single Subject by ID.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
ibpypUnique ID for Subject in ManageBac.
10001Success
Unauthorized
Not Found
GET /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"subject": {
"id": 10001,
"subject_group_id": 10001,
"custom": true,
"name": "English",
"title": "English",
"sl": false,
"hl": true,
"code": "X128",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"scope_and_sequence_based_on": "phases",
"updated_at": "2021-05-13T10:27:47Z",
"self_taught": true,
"phases": [
"1",
"2",
"3",
"4"
],
"levels": [
"Literature",
"Language and literature"
],
"enabled": true
}
}Updates an existing Subject by ID.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
ibpypUnique ID for Subject in ManageBac.
10001Success
Unauthorized
Not Found
Unprocessable Entity
PUT /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 302
{
"subject": {
"subject_group_id": 10001,
"name": "English",
"title": "English",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"scope_and_sequence_based_on": "phases",
"sl": false,
"hl": true,
"enabled": true,
"code": "X128"
}
}{
"subject": {
"id": 10001,
"subject_group_id": 10001,
"custom": true,
"name": "English",
"title": "English",
"sl": false,
"hl": true,
"code": "X128",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"scope_and_sequence_based_on": "phases",
"updated_at": "2021-05-13T10:27:47Z",
"self_taught": true,
"phases": [
"1",
"2",
"3",
"4"
],
"levels": [
"Literature",
"Language and literature"
],
"enabled": true
}
}Deletes a Subject by ID.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Program scope
ibpypUnique ID for Subject in ManageBac.
10001Success
Unauthorized
Not Found
DELETE /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"subject": {
"id": 10001,
"subject_group_id": 10001,
"custom": true,
"name": "English",
"title": "English",
"sl": false,
"hl": true,
"code": "X128",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"scope_and_sequence_based_on": "phases",
"updated_at": "2021-05-13T10:27:47Z",
"self_taught": true,
"phases": [
"1",
"2",
"3",
"4"
],
"levels": [
"Literature",
"Language and literature"
],
"enabled": true
}
}Retrieves the School's basic information including name, country, language, logo URLs, and the list of enabled academic programs (e.g. IB Diploma, MYP, PYP).
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Success
Unauthorized
GET /v2/school HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"school": {
"subdomain": "faria",
"name": "Faria International School",
"country": "US",
"language": "en",
"session_in_may": true,
"logo": "path/to/logo.png",
"top_nav_logo": "path/to/top_nav_logo.png",
"high_res_logo": "path/to/high_res_logo.png",
"programs": [
"IB Diploma",
"IB Middle Years",
"IB Primary Years",
"High School",
"Middle School",
"Primary School"
],
"enabled_programs": [
{
"name": "IB Diploma",
"code": "diploma"
},
{
"name": "IB Middle Years",
"code": "myp"
},
{
"name": "IB Primary Years",
"code": "ibpyp"
},
{
"name": "High School",
"code": "hs"
},
{
"name": "Middle School",
"code": "ms"
},
{
"name": "Primary School",
"code": "ps"
}
],
"kbl_id": 5
}
}Retrieves academic years and their terms for each enabled program at the School. Results are grouped by program code (e.g. diploma, myp, ibpyp). Each academic year includes its terms with start/end dates and active status.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Filter by program code (e.g. 'diploma', 'myp', 'hs'). Omit to return all programs.
Filter by active status. When true, returns only currently active academic years.
Success
Unauthorized
GET /v2/school/academic-years HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"academic_years": {
"diploma": {
"academic_years": [
{
"id": 26278,
"name": "August 2018 – July 2019",
"active": true,
"starts_on": "2018-08-15",
"ends_on": "2019-07-30",
"updated_at": "2017-12-21T16:50:47.000+08:00",
"academic_terms": [
{
"id": 62755,
"name": "Term 1",
"active": true,
"starts_on": "2018-08-15",
"ends_on": "2018-12-31",
"updated_at": "2018-04-21T16:50:47.000+08:00",
"exam_grade": false
},
{
"id": 62756,
"name": "Term 2",
"active": false,
"starts_on": "2019-01-03",
"ends_on": "2019-07-30",
"updated_at": "2018-04-14T17:37:35.000+08:00",
"exam_grade": false
}
]
}
]
},
"myp": {
"academic_years": [
{
"id": 24648,
"name": "August 2018 – July 2019",
"active": true,
"starts_on": "2018-08-19",
"ends_on": "2019-07-01",
"updated_at": "2018-04-09T05:09:12.000+08:00",
"academic_terms": [
{
"id": 58813,
"name": "Term 1",
"active": false,
"starts_on": "2018-08-19",
"ends_on": "2019-01-29",
"updated_at": "2018-04-09T05:09:12.000+08:00",
"exam_grade": false
},
{
"id": 58814,
"name": "Term 2",
"active": true,
"starts_on": "2019-02-01",
"ends_on": "2019-07-01",
"updated_at": "2016-04-09T05:09:12.000+08:00",
"exam_grade": false
}
]
}
]
},
"ib_pyp": {
"academic_years": [
{
"id": 31796,
"name": "August 2018 – June 2019",
"active": false,
"starts_on": "2018-08-10",
"ends_on": "2019-06-03",
"updated_at": "2018-04-28T23:54:16.000+08:00",
"academic_terms": [
{
"id": 76082,
"name": "Term One",
"active": false,
"starts_on": "2018-08-10",
"ends_on": "2019-01-01",
"updated_at": "2018-05-28T23:54:16.000+08:00",
"exam_grade": false
},
{
"id": 76083,
"name": "Quarter 1",
"active": false,
"starts_on": "2019-01-04",
"ends_on": "2019-06-03",
"updated_at": "2018-05-28T23:54:16.000+08:00",
"exam_grade": false
}
]
}
]
}
}
}Retrieves the grade levels defined for each enabled program at the School. Grades are grouped by program and include the grade name, label, code, UID, and grade number. The label is the school's customized display name for the grade.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Success
Unauthorized
GET /v2/school/grades HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"school": {
"programs": [
{
"name": "IB Diploma",
"code": "diploma",
"grades": [
{
"name": "Grade 9",
"label": "Pre-DP Grade 10",
"code": "diploma;10",
"uid": 100120013,
"grade_number": 10
},
{
"name": "Grade 10",
"label": "Pre-DP Grade 11",
"code": "diploma;11",
"uid": 100120014,
"grade_number": 11
}
]
},
{
"name": "IB Middle Years",
"code": "myp",
"grades": [
{
"name": "Year 1",
"label": "Grade 6",
"code": "myp;7",
"uid": 100110010,
"grade_number": 7
},
{
"name": "Year 2",
"label": "Grade 7",
"code": "myp;8",
"uid": 100110011,
"grade_number": 8
}
]
},
{
"name": "IB Primary Years",
"code": "pyp",
"grades": [
{
"name": "Pre-Nursery",
"label": "Test",
"code": "pyp;-2",
"uid": 100100001,
"grade_number": -2
},
{
"name": "Nursery",
"label": "Pre-K3",
"code": "pyp;-1",
"uid": 100100002,
"grade_number": -1
}
]
}
]
}
}Retrieves the subjects available for each enabled program at the School. Subjects are grouped by program code. Each subject includes its name, subject group, and level availability (HL/SL) where applicable. Deprecated subjects are excluded from the response.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Success
Unauthorized
GET /v2/school/subjects HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"subjects": {
"diploma": [
{
"id": 1,
"name": "Mathematical Studies",
"group": "Mathematics",
"group_id": 1,
"hl": true,
"sl": true
},
{
"id": 16,
"name": "Chinese",
"group": "Language acquisition",
"group_id": 2,
"hl": true,
"sl": true,
"self_taught": false,
"levels": [
"B",
"ab initio"
]
},
{
"id": 27,
"name": "French",
"group": "Language acquisition",
"group_id": 3,
"hl": true,
"sl": true,
"self_taught": false,
"levels": [
"B",
"ab initio"
]
}
],
"myp": [
{
"id": 348,
"name": "Physical and health education",
"group": "Physical and health education",
"group_id": 4
},
{
"id": 350,
"name": "Arts",
"group": "Arts",
"group_id": 5
}
]
}
}Retrieves the term grade scales defined for each enabled program at the School. Each scale entry maps a percentage score threshold to a mark (e.g. score 95.0 maps to mark "7" for IB Diploma). These scales determine how numerical scores are converted to grade marks on term reports.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Success
Unauthorized
GET /v2/school/term-grade-scales HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"school": {
"term_grade_scales": [
{
"score": 95,
"mark": "7",
"program_code": "diploma"
},
{
"score": 80,
"mark": "6",
"program_code": "diploma"
},
{
"score": 70,
"mark": "5",
"program_code": "diploma"
},
{
"score": 60,
"mark": "4",
"program_code": "diploma"
},
{
"score": 50,
"mark": "3",
"program_code": "diploma"
},
{
"score": 40,
"mark": "2",
"program_code": "diploma"
},
{
"score": 0,
"mark": "1",
"program_code": "diploma"
}
]
}
}Retrieves the term grade rubrics configured for the School. Rubrics define the criteria or formulas used to calculate term grades. Each rubric includes its type (Criteria, Formula, or Custom Field), program code, and status. Criteria rubrics include their rubric options with values and descriptors. Formula rubrics specify the calculation method (AVG or SUM) and reference other rubric IDs.
OAuth 2.0 Bearer token obtained via client credentials grant. Pass the token in the Authorization header as Bearer <token>.
Success
Unauthorized
GET /v2/school/term-rubrics HTTP/1.1
Host: api.managebac.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"school": {
"term_rubrics": [
{
"id": 273,
"title": "DP General Rubric 1",
"program_code": "diploma",
"rubric_type": "All Subjects",
"type": "Criteria",
"status": "active",
"rubric_options": [
{
"id": 613,
"value": "0",
"descriptor": "Desc 0"
},
{
"id": 614,
"value": "1",
"descriptor": "Desc 1"
},
{
"id": 615,
"value": "2",
"descriptor": "Desc 2"
}
]
},
{
"id": 274,
"title": "DP Subject Rubric 1",
"program_code": "diploma",
"rubric_type": "All Subjects",
"type": "Criteria",
"status": "active",
"rubric_options": [
{
"id": 616,
"value": "0",
"descriptor": "Desc 0"
},
{
"id": 617,
"value": "1",
"descriptor": "Desc 1"
},
{
"id": 618,
"value": "2",
"descriptor": "Desc 2"
}
]
},
{
"id": 275,
"title": "DP Avg Rubric 1",
"program_code": "diploma",
"rubric_type": "All Subjects",
"type": "Formula",
"formula": "AVG",
"status": "active",
"formula_rubric_ids": []
},
{
"id": 276,
"title": "DP Sum Rubric 1",
"program_code": "diploma",
"rubric_type": "All Subjects",
"type": "Formula",
"formula": "SUM",
"status": "active",
"formula_rubric_ids": [
274
]
},
{
"id": 277,
"title": "DP Subject Rubric 2",
"program_code": "diploma",
"rubric_type": "All Subjects",
"suffix": "-CF-",
"type": "Custom Field",
"status": "active"
},
{
"id": 278,
"title": "MYP General Rubric 1",
"program_code": "myp",
"rubric_type": "All Subjects",
"type": "Criteria",
"status": "active",
"rubric_options": [
{
"id": 622,
"value": "0",
"descriptor": "Desc 0"
},
{
"id": 623,
"value": "1",
"descriptor": "Desc 1"
},
{
"id": 624,
"value": "2",
"descriptor": "Desc 2"
}
]
},
{
"id": 279,
"title": "MYP Subject Rubric 1",
"program_code": "myp",
"rubric_type": "All Subjects",
"type": "Criteria",
"subject_id": 4119,
"status": "active",
"rubric_options": [
{
"id": 625,
"value": "0",
"descriptor": "Desc 0"
},
{
"id": 626,
"value": "1",
"descriptor": "Desc 1"
},
{
"id": 627,
"value": "2",
"descriptor": "Desc 2"
}
]
},
{
"id": 280,
"title": "MYP Sum Rubric 1",
"program_code": "myp",
"rubric_type": "All Subjects",
"type": "Formula",
"formula": "SUM",
"formula_rubric_ids": [],
"status": "active"
},
{
"id": 281,
"title": "MYP Avg Rubric 1",
"program_code": "myp",
"rubric_type": "All Subjects",
"type": "Formula",
"formula": "AVG",
"formula_rubric_ids": [],
"status": "active"
}
]
}
}Last updated