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.
This endpoint creates an Academic Term for the specified Academic Year. It returns created Academic Term.
Program scope
diploma
Academic Year ID
123
Success
Unprocessable entity
POST /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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"
}
}
This endpoint deletes an Academic Term for the specified Academic Year by ID. It returns deleted Academic Term.
Program scope
diploma
Academic Year ID
123
Academic Term ID
123
Success
Unprocessable entity
DELETE /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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"
}
}
This endpoint updates an Academic Term for the specified Academic Year by ID. It returns updated Academic Term.
Program scope
diploma
Academic Year ID
123
Academic Term ID
123
Success
Unprocessable entity
PATCH /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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"
}
}
This endpoint retrieves an Academic Year. It returns Academic Year by ID with belonged Academic Terms.
Program code
diploma
Unique ID in ManageBac.
10010
Success
GET /v2/school/programs/{program_code}/academic-years/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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"
}
]
}
}
This endpoint creates an Academic Year. It returns created Academic Year with belonged Academic Terms.
Program code
diploma
Success
Bad Request
POST /v2/school/programs/{program_code}/academic-years HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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"
}
]
}
}
This endpoint retrieves an Academic Year Calendar. It returns Calendar configuration and dates array.
Program code
diploma
Unique ID in ManageBac.
10010
Success
GET /v2/school/programs/{program_code}/academic-years/{academic_year_id}/calendar HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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
}
]
}
}
This endpoint retrieves a Subject Group.
Program scope
hs
Unique ID for Subject Group in ManageBac.
10001
Success
GET /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"subject_group": {
"id": 10010,
"name": "Language",
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
}
This endpoint destroys a Subject Group. It returns destroyed Subject Group.
Program scope
hs
Subject Group ID
10010
Success
Forbidden
Not Found
Unprocessable Entity
DELETE /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
{
"subject_group": {
"id": 10010,
"name": "Language",
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
}
This endpoint updates a Subject Group. It returns udpated Subject Group.
Program scope
hs
Subject Group ID
10010
Success
Forbidden
Not Found
PATCH /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 53
{
"subject_group": {
"name": "Language",
"max_phase": "4"
}
}
{
"subject_group": {
"id": 10010,
"name": "Language",
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
}
This endpoint creates a Subject Group. It returns created Subject Group.
Program scope
hs
Success
Unprocessable Entity
POST /v2/school/programs/{program_code}/subject-groups HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 53
{
"subject_group": {
"name": "Language",
"max_phase": "4"
}
}
{
"subject_group": {
"id": 10010,
"name": "Language",
"max_phase": "4",
"program": "ibpyp",
"updated_at": "2021-05-13T10:27:47Z"
}
}
This endpoint retrieves paginated Subjects list.
Program scope
ibpyp
An integer defining which page to display.
An integer defining the number of records to display per page.
Success
GET /v2/school/programs/{program_code}/subjects HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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
}
]
}
This endpoint creates a Subject.
Program scope
hs
Success
Unprocessable Entity
POST /v2/school/programs/{program_code}/subjects HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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
}
}
This endpoint retrieves a Subject.
Program scope
ibpyp
Unique ID for Subject in ManageBac.
10001
Success
GET /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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
}
}
This endpoint updates a Subject.
Program scope
ibpyp
Unique ID for Subject in ManageBac.
10001
Success
Not Found
Unprocessable Entity
PUT /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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
}
}
This endpoint deletes a Subject.
Program scope
ibpyp
Unique ID for Subject in ManageBac.
10001
Success
Not Found
DELETE /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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
}
}
This endpoint enable school Subjects.
Program scope
ibpyp
[10001,10002]
Success
Unprocessable Entity
POST /v2/school/programs/{program_code}/subjects/bulk-enable HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 29
{
"subject_ids": [
10001,
10002
]
}
{
"subject_ids": [
10001,
10002
]
}
This endpoint disable school Subjects.
Program scope
ibpyp
[10001,10002]
Success
Unprocessable Entity
POST /v2/school/programs/{program_code}/subjects/bulk-disable HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 29
{
"subject_ids": [
10001,
10002
]
}
{
"subject_ids": [
10001,
10002
]
}
This endpoint retrieves School details and its enabled programs.
Success
GET /v2/school HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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
}
}
This endpoint retrieves a list of academic years and terms as defined for each program enabled for the School.
Success
GET /v2/school/academic-years HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"academic_years": {
"diploma": {
"academic_years": [
{
"id": 26278,
"name": "August 2018 – July 2019",
"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",
"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",
"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",
"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",
"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",
"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",
"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",
"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",
"starts_on": "2019-01-04",
"ends_on": "2019-06-03",
"updated_at": "2018-05-28T23:54:16.000+08:00",
"exam_grade": false
}
]
}
]
}
}
}
This endpoint retrieves the grade details defined for each program that a School runs. It returns grades grouped by each program.
Success
GET /v2/school/grades HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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
}
]
}
]
}
}
This endpoint retrieves subject details for programs enabled at the School.
Success
GET /v2/school/subjects HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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
}
]
}
}
This endpoint retrieves the term grade scales details defined for each program that a School runs.
Success
GET /v2/school/term-grade-scales HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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"
}
]
}
}
This endpoint retrieves term grade rubrics with details.
Success
GET /v2/school/term-rubrics HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
Success
{
"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"
}
]
}
}
Was this helpful?