Coursework

This group refers to entities tied to student learning delivery or feedback, such as Tasks and Grades.

Get all Grades for a Class during an Academic Term

get
/v2p0/classes/{class_id}/assessments/term/{term_id}/grades

This endpoint retrieves all gradebook grades belonging to a class for a term, as specified by term ID and class ID. Returned fields for each task can include:

  • group_mark

    The percentage achieved on the task is converted using the grade scale set for the program, and the result is returned as group_mark.

  • score

    The number of points a student achieved on the task.

  • max_points

    The available number of points for the task.

  • dropbox_status

    Dropbox upload status of student submission on task. Property is present if "Dropbox Coursework Submission" is configured for task.

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
class_idintegerRequired

Unique identifier for class.

term_idintegerRequired

Unique identifier for term.

Query parameters
include_archived_studentsbooleanOptional

Include archived students in the response.

Responses
200

Success

application/json
get
/v2p0/classes/{class_id}/assessments/term/{term_id}/grades
GET /v2p0/classes/{class_id}/assessments/term/{term_id}/grades HTTP/1.1
Host: api.devel.managebac.com
Accept: */*
200

Success

{
  "students": [
    {
      "id": 12068821,
      "name": "Epelbaum, Chloe",
      "assignments": [
        {
          "id": 18376636,
          "name": "Short Story Analysis Quiz",
          "group_mark": 5,
          "dropbox_status": "waiting",
          "due_date_extension_days": 2,
          "due_date": "2023-04-25T14:05:00.000Z",
          "comment": null,
          "score": 22,
          "max_points": 32
        },
        {
          "id": 18376694,
          "name": "Write a Short Story Themed on Katharine Mansfield",
          "group_mark": 7,
          "dropbox_status": "waiting",
          "due_date": "2023-04-25T14:05:00.000Z",
          "comment": null,
          "score": 5,
          "max_points": 5
        },
        {
          "id": 18376845,
          "name": "Read a Selected Short Story by Anton Chekhov",
          "group_mark": 7,
          "dropbox_status": "early",
          "due_date": "2023-04-25T14:05:00.000Z",
          "comment": "Great analysis, the improvement is noticeable",
          "score": 11,
          "max_points": 12
        },
        {
          "id": 18376852,
          "name": "Gwendolyn Brooks Seminar",
          "group_mark": 7,
          "dropbox_status": "early",
          "due_date": "2023-04-25T14:05:00.000Z",
          "comment": "Your presentation included insightful analysis of The Near-Johannesburg Boy",
          "score": 19,
          "max_points": 20
        },
        {
          "id": 18376858,
          "name": "Practice Commentary",
          "group_mark": 4,
          "dropbox_status": "early",
          "due_date": "2023-04-25T14:05:00.000Z",
          "comment": "Your commentary shows a lack of understanding about how form is used to convey the message of the extract",
          "score": 14,
          "max_points": 21
        }
      ]
    },
    {
      "id": 12068757,
      "name": "Evans, Raymond",
      "assignments": [
        {
          "id": 18376636,
          "name": "Short Story Analysis Quiz",
          "group_mark": 7,
          "comment": "Impressive analysis.",
          "due_date": "2023-04-25T14:05:00.000Z",
          "score": 29,
          "max_points": 32,
          "binary": "completed"
        },
        {
          "id": 18376694,
          "name": "Write a Short Story Themed on Katharine Mansfield",
          "group_mark": 7,
          "comment": null,
          "due_date": "2023-04-25T14:05:00.000Z",
          "score": 5,
          "max_points": 5,
          "binary": "completed"
        },
        {
          "id": 18376845,
          "name": "Read a Selected Short Story by Anton Chekhov",
          "group_mark": 5,
          "comment": null,
          "due_date": "2023-04-25T14:05:00.000Z",
          "score": 9,
          "max_points": 12,
          "binary": "incompleted"
        },
        {
          "id": 18376852,
          "name": "Gwendolyn Brooks Seminar",
          "group_mark": 5,
          "comment": null,
          "due_date": "2023-04-25T14:05:00.000Z",
          "score": 16,
          "max_points": 21,
          "binary": "completed"
        }
      ]
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 2,
    "per_page": 10
  }
}

Get Term Grades for a Class

get
/v2p0/classes/{class_id}/assessments/term/{term_id}/term-grades

This endpoint retrieves all term grades for a class, as specified by term ID and class ID.

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
class_idintegerRequired

Unique identifier for class.

term_idintegerRequired

Unique identifier for term.

Query parameters
student_idsinteger[]Optional

An integer list of student ids to filter by.

student_ids[]integer[]Optional

An integer list of student ids to filter by.

include_archived_studentsbooleanOptional

Include archived students in the response.

unenrolled_onlybooleanOptional

A flag that indicates the response should only include records associated to students who are not currently enrolled in the given class.

Responses
200

Success

application/json
get
/v2p0/classes/{class_id}/assessments/term/{term_id}/term-grades
GET /v2p0/classes/{class_id}/assessments/term/{term_id}/term-grades HTTP/1.1
Host: api.devel.managebac.com
Accept: */*
200

Success

{
  "students": [
    {
      "id": 12068821,
      "name": "Epelbaum, Chloe",
      "term_grade": {
        "grade": 6,
        "average": {
          "percent": 85,
          "grade": 6
        },
        "comments": "Your class participation and determination to help your peers is remarkable.",
        "rubrics": [
          {
            "id": 11181,
            "title": "Class Participation",
            "grade": "Excellent"
          }
        ]
      }
    },
    {
      "id": 12068757,
      "name": "Evans, Raymond",
      "term_grade": {
        "grade": 5,
        "average": {
          "percent": 86.5,
          "grade": "5"
        },
        "comments": "You've managed to meet expectations.",
        "rubrics": [
          {
            "id": 11181,
            "title": "Class Participation",
            "grade": "Satisfactory"
          }
        ]
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 2,
    "per_page": 10
  }
}

Get Criteria for a Class

get
/v2p0/classes/{id}/criteria

This endpoint retrieves all criteria belonging to the class as specified by ID.

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get
/v2p0/classes/{id}/criteria
GET /v2p0/classes/{id}/criteria HTTP/1.1
Host: api.devel.managebac.com
Accept: */*
200

Success

{
  "criteria": [
    {
      "id": 25324,
      "title": "Criteria Title",
      "descriptors": [
        {
          "value": "Good",
          "descriptor": "The student demonstrates a good understanding of the concept."
        }
      ]
    }
  ]
}

Get Task Categories for Class

get
/v2p0/classes/{id}/task_categories

This endpoint retrieves task categories for a class specified by class ID.

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get
/v2p0/classes/{id}/task_categories
GET /v2p0/classes/{id}/task_categories HTTP/1.1
Host: api.devel.managebac.com
Accept: */*
200

Success

{
  "task_categories": [
    {
      "id": 1,
      "name": "Quiz",
      "background_color": "#205C00",
      "color": "#fff",
      "weight": 10
    },
    {
      "id": 2,
      "name": "Homework",
      "background_color": "#2175C6",
      "color": "#fff",
      "weight": 10
    },
    {
      "id": 3,
      "name": "Essay",
      "background_color": "#33C",
      "color": "#fff",
      "weight": 10
    },
    {
      "id": 6,
      "name": "Paper",
      "background_color": "#A2C400",
      "color": "#fff",
      "weight": 10
    },
    {
      "id": 7,
      "name": "Test",
      "background_color": "#FFAD3A",
      "color": "#fff",
      "weight": 10
    }
  ]
}

Get Tasks for a Class

get
/v2p0/classes/{id}/tasks

This endpoint retrieves all tasks belonging to the class as specified by ID. If term ID is not specified, all tasks that the term class covers will be returned.

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
idintegerRequired

Unique identifier for class.

Query parameters
term_idstringOptional

Unique identifier for term.

Responses
200

Success

application/json
get
/v2p0/classes/{id}/tasks
GET /v2p0/classes/{id}/tasks HTTP/1.1
Host: api.devel.managebac.com
Accept: */*
200

Success

{
  "tasks": [
    {
      "id": 10277631,
      "name": "Accelerated Motion Lab",
      "notes": "",
      "draft": false,
      "task_type": "formative",
      "task_type_name": "Formative",
      "linked_to": {
        "class_id": 10299022,
        "task_id": 11921323
      },
      "dropbox": false,
      "google_drive_dropbox": true,
      "task_work_templates": [
        {
          "id": 60,
          "name": "Lab Report",
          "details": "Complete the given lab report template based on the in-class lab that was held on Monday."
        },
        {
          "id": 61,
          "name": "Post-Lab Reflection",
          "details": "After completing your lab report, answer the questions in the post-lab reflection."
        }
      ],
      "turnitin": false,
      "due_date": "2018-04-27T04:00:00+03:00",
      "unit": {
        "id": 67396,
        "title": "Dynamics & Kinematics"
      },
      "hl": true,
      "sl": true,
      "category": {
        "id": 11484803,
        "name": "Lab Reports",
        "weight": 25
      },
      "assessment_types": {
        "comments": {},
        "points": {
          "max_score": 7
        }
      }
    },
    {
      "id": 20018084,
      "name": "Chapter 2.1 HW",
      "notes": "",
      "draft": false,
      "task_type": "summative",
      "task_type_name": "Summative",
      "linked_to": {
        "class_id": 10299022,
        "task_id": 11921323
      },
      "dropbox": false,
      "google_drive_dropbox": false,
      "turnitin": false,
      "due_date": "2018-05-13T04:00:00+03:00",
      "unit": {
        "id": 67396,
        "title": "Dynamics & Kinematics"
      },
      "hl": true,
      "sl": true,
      "category": {
        "id": 11484801,
        "name": "Homework",
        "weight": 10
      },
      "assessment_types": {
        "comments": {},
        "points": {
          "max_score": 10
        }
      }
    },
    {
      "id": 19942197,
      "name": "Dynamics Unit Test",
      "notes": "Prepare for the test by completing all homework questions for Chapter 2.",
      "draft": false,
      "task_type": "custom",
      "task_type_name": "Custom Name",
      "linked_to": {
        "class_id": 10299022,
        "task_id": 11921323
      },
      "dropbox": false,
      "google_drive_dropbox": true,
      "task_work_templates": false,
      "turnitin": false,
      "due_date": "2018-05-18T04:00:00+03:00",
      "unit": {
        "id": 67396,
        "title": "Test"
      },
      "hl": true,
      "sl": true,
      "category": {
        "id": 11484802,
        "name": "Unit Tests",
        "weight": 20
      },
      "assessment_types": {
        "comments": {},
        "points": {
          "max_score": 7
        }
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 4,
    "per_page": 100
  }
}

Get a Task for a Class

get
/v2p0/classes/{class_id}/tasks/{id}

This endpoint retrieves a task as specified by task ID and class ID.

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
idintegerRequired

Unique identifier for task.

class_idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get
/v2p0/classes/{class_id}/tasks/{id}
GET /v2p0/classes/{class_id}/tasks/{id} HTTP/1.1
Host: api.devel.managebac.com
Accept: */*
200

Success

{
  "task": {
    "id": 10277631,
    "name": "Accelerated Motion Lab",
    "notes": "The lab will allow you to work in groups to create and test a hypothesis related to Newton's Laws of Motion.",
    "draft": false,
    "task_type": "formative",
    "task_type_name": "Formative",
    "linked_to": {
      "class_id": 10299022,
      "task_id": 11921323
    },
    "dropbox": false,
    "google_drive_dropbox": true,
    "task_work_templates": [
      {
        "id": 60,
        "name": "Lab Report",
        "details": "Complete the given lab report template based on the in-class lab that was held on Monday."
      },
      {
        "id": 61,
        "name": "Post-Lab Reflection",
        "details": "After completing your lab report, answer the questions in the post-lab reflection."
      }
    ],
    "turnitin": false,
    "due_date": "2018-04-27T04:00:00+03:00",
    "unit": {
      "id": 67396,
      "title": "Dynamics & Kinematics"
    },
    "hl": true,
    "sl": true,
    "category": {
      "id": 11484803,
      "name": "Lab Reports",
      "weight": 20
    },
    "assessment_types": {
      "comments": {},
      "points": {
        "max_score": 7
      }
    }
  }
}

Get Student Assessment Results for a Task and Class

get
/v2p0/classes/{class_id}/tasks/{id}/students

This endpoint retrieves all assessment result scores belonging to a class as specified by ID. If term ID is not specified, all assessed tasks that the term class covers will be returned.

Optional properties:

Assessments:

  • dropbox_status - Student Dropbox Submission status for a task if enabled

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
idintegerRequired

Unique identifier for task.

class_idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get
/v2p0/classes/{class_id}/tasks/{id}/students
GET /v2p0/classes/{class_id}/tasks/{id}/students HTTP/1.1
Host: api.devel.managebac.com
Accept: */*
200

Success

{
  "students": [
    {
      "id": 10752610,
      "name": "Epelbaum, Chloe",
      "task_works": [
        {
          "id": 11861277,
          "template_id": 54,
          "submission_status": "submitted"
        },
        {
          "id": 11861277,
          "template_id": 55,
          "submission_status": "late"
        }
      ],
      "assessments": {
        "dropbox_status": "waiting",
        "comments": "Chloe has done a great job on both portions of the task",
        "points": {
          "score": 6,
          "max_score": 7
        },
        "binary": 0
      }
    },
    {
      "id": 12068799,
      "name": "Bailey, Jenna",
      "task_works": [
        {
          "id": 11861277,
          "template_id": 55,
          "submission_status": "waiting"
        }
      ],
      "assessments": {
        "comments": null,
        "points": {
          "score": null,
          "max_score": 7
        },
        "binary": 1
      }
    },
    {
      "id": 10851648,
      "name": "Francisco, Lewis",
      "task_works": [
        {
          "id": 11861277,
          "template_id": 55,
          "submission_status": "late"
        }
      ],
      "assessments": {
        "comments": "Lewis submitted his task late and did not meet expectations",
        "points": {
          "score": 4,
          "max_score": 7
        }
      }
    },
    {
      "id": 10866190,
      "name": "Lucy, Jasmine",
      "task_works": [
        {
          "id": 11861277,
          "template_id": 54,
          "submission_status": "submitted"
        },
        {
          "id": 11861277,
          "template_id": 55,
          "submission_status": "submitted"
        }
      ],
      "assessments": {
        "comments": "Great improvement Jasmine. Your hard work is showing.",
        "points": {
          "score": 5,
          "max_score": 7
        }
      }
    },
    {
      "id": 10813990,
      "name": "Bowen, James",
      "task_works": [
        {
          "id": 11861277,
          "template_id": 54,
          "submission_status": "submitted"
        },
        {
          "id": 11861277,
          "template_id": 55,
          "submission_status": "submitted"
        }
      ],
      "assessments": {
        "comments": "Great analysis, but your writing needs to be more concise.",
        "points": {
          "score": 5,
          "max_score": 7
        }
      }
    },
    {
      "id": 11183705,
      "name": "Howard, Jessica",
      "task_works": [
        {
          "id": 11861277,
          "template_id": 54,
          "submission_status": "waiting"
        },
        {
          "id": 11861277,
          "template_id": 55,
          "submission_status": "submitted"
        }
      ],
      "assessments": {
        "comments": null,
        "points": {
          "score": null,
          "max_score": 7
        }
      }
    },
    {
      "id": 12068760,
      "name": "Boyd, Keith",
      "task_works": [],
      "assessments": {
        "comments": null,
        "points": {
          "score": null,
          "max_score": 7
        }
      }
    },
    {
      "id": 12472028,
      "name": "McNeil, Ian",
      "task_works": [],
      "assessments": {
        "comments": null,
        "points": {
          "score": null,
          "max_score": 7
        }
      }
    }
  ]
}

Update or Create a Grade for a Student for a Task

patch
/v2p0/tasks/{task_id}/students/{student_id}

Creates or updates a grade for a specific student on a given task. If a grade already exists, it will be updated; otherwise, a new grade will be created.

The Content-Type header must be set to application/json, and the request body should contain the fields you want to update as a JSON payload.

For MYP, only integers are allowed (e.g., '1', 1). For non-MYP programs, floats are allowed (e.g., '1.22', 1.22), and if more than two decimal places are provided, the value will be automatically rounded (e.g., 1.448 → 1.45).

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
task_idintegerRequired

Unique identifier for a task.

student_idintegerRequired

Unique identifier for a student.

Body
task_gradeone ofOptional
or
Responses
200

Success

application/json
Responseany of
or
patch
/v2p0/tasks/{task_id}/students/{student_id}
PATCH /v2p0/tasks/{task_id}/students/{student_id} HTTP/1.1
Host: api.devel.managebac.com
Content-Type: application/json
Accept: */*
Content-Length: 84

{
  "task_grade": {
    "author_id": 123434,
    "points": 50,
    "comment": "Well done!",
    "binary": true
  }
}
{
  "task_grade": {
    "author_id": 123434,
    "points": 50,
    "comment": "Well done!",
    "binary": true
  }
}

Bulk Delete Grades for Students for a Task

delete
/v2p0/tasks/{task_id}/students

Destroys a grade for a specific student on a given task. There is no undo. Applies to all Students if no student_ids are provided.

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
task_idintegerRequired

Unique identifier for a task.

Body
student_idsinteger[]Optional

List of student IDs whose grades and submissions will be reset

Responses
200

Success

application/json
delete
/v2p0/tasks/{task_id}/students
DELETE /v2p0/tasks/{task_id}/students HTTP/1.1
Host: api.devel.managebac.com
Content-Type: application/json
Accept: */*
Content-Length: 29

{
  "student_ids": [
    12345,
    67890
  ]
}
200

Success

[
  {
    "id": 12343,
    "status": "unprocessable_entity",
    "error": {}
  }
]

Bulk Update or Create Grades for Students for a Task

patch
/v2p0/tasks/{task_id}/students

Creates or updates a grade for many students on a given task. If a grade already exists, it will be updated; otherwise, a new grade will be created.

The Content-Type header must be set to application/json, and the request body should contain the fields you want to update as a JSON payload.

For MYP, only integers are allowed (e.g., '1', 1). For non-MYP programs, floats are allowed (e.g., '1.22', 1.22), and if more than two decimal places are provided, the value will be automatically rounded (e.g., 1.448 → 1.45).

Authorizations
auth_tokenstringRequired

Your V2 API authentication token may be passed in the parameters. To protect your key, use environment variables.

Path parameters
task_idintegerRequired

Unique identifier for a task.

Body
Responses
200

Success

application/json
patch
/v2p0/tasks/{task_id}/students
PATCH /v2p0/tasks/{task_id}/students HTTP/1.1
Host: api.devel.managebac.com
Content-Type: application/json
Accept: */*
Content-Length: 110

{
  "students": [
    {
      "id": 12345,
      "task_grade": {
        "author_id": 123434,
        "points": 50,
        "comment": "Well done!",
        "binary": true
      }
    }
  ]
}
[
  {
    "id": 12343,
    "status": "unprocessable_entity",
    "error": {}
  }
]

Last updated

Was this helpful?