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.
Create Academic Term
This endpoint creates an Academic Term for the specified Academic Year. It returns created Academic Term.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
diplomaAcademic Year ID
123Success
Unprocessable entity
POST /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms HTTP/1.1
Host: api.devel.managebac.com
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
This endpoint deletes an Academic Term for the specified Academic Year by ID. It returns deleted Academic Term.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
diplomaAcademic Year ID
123Academic Term ID
123Success
Unprocessable entity
DELETE /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms/{id} HTTP/1.1
Host: api.devel.managebac.com
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
This endpoint updates an Academic Term for the specified Academic Year by ID. It returns updated Academic Term.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
diplomaAcademic Year ID
123Academic Term ID
123Success
Unprocessable entity
PATCH /v2/school/programs/{program_code}/academic-years/{academic_year_id}/academic-terms/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program code
diplomaUnique ID in ManageBac.
10010Success
GET /v2/school/programs/{program_code}/academic-years/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program code
diplomaSuccess
Bad Request
POST /v2/school/programs/{program_code}/academic-years HTTP/1.1
Host: api.devel.managebac.com
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"
}
]
}
}Get Academic Year Calendar
This endpoint retrieves an Academic Year Calendar. It returns Calendar configuration and dates array.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program code
diplomaUnique ID in ManageBac.
10010Success
GET /v2/school/programs/{program_code}/academic-years/{academic_year_id}/calendar HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
hsUnique ID for Subject Group in ManageBac.
10001Success
GET /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
hsSubject Group ID
10010Success
Forbidden
Not Found
Unprocessable Entity
DELETE /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
hsSubject Group ID
10010Success
Forbidden
Not Found
PATCH /v2/school/programs/{program_code}/subject-groups/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
hsSuccess
Unprocessable Entity
POST /v2/school/programs/{program_code}/subject-groups HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
ibpypAn 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.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
hsSuccess
Unprocessable Entity
POST /v2/school/programs/{program_code}/subjects HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
ibpypUnique ID for Subject in ManageBac.
10001Success
GET /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
ibpypUnique ID for Subject in ManageBac.
10001Success
Not Found
Unprocessable Entity
PUT /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
ibpypUnique ID for Subject in ManageBac.
10001Success
Not Found
DELETE /v2/school/programs/{program_code}/subjects/{id} HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
ibpyp[10001,10002]Success
Unprocessable Entity
POST /v2/school/programs/{program_code}/subjects/bulk-enable HTTP/1.1
Host: api.devel.managebac.com
Content-Type: application/json
Accept: */*
Content-Length: 29
{
"subject_ids": [
10001,
10002
]
}{
"subject_ids": [
10001,
10002
]
}This endpoint disable school Subjects.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Program scope
ibpyp[10001,10002]Success
Unprocessable Entity
POST /v2/school/programs/{program_code}/subjects/bulk-disable HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Success
GET /v2/school HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Success
GET /v2/school/academic-years HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Success
GET /v2/school/grades HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Success
GET /v2/school/subjects HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Success
GET /v2/school/term-grade-scales HTTP/1.1
Host: api.devel.managebac.com
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.
Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.
Success
GET /v2/school/term-rubrics HTTP/1.1
Host: api.devel.managebac.com
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"
}
]
}
}Last updated
Was this helpful?

