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

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
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
GET /v2/classes/{class_id}/assessments/term/{term_id}/grades HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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

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

Authorizations
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
GET /v2/classes/{class_id}/assessments/term/{term_id}/term-grades HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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 Tasks for a Class

get

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
Path parameters
idintegerRequired

Unique identifier for class.

Query parameters
term_idintegerOptional

Unique identifier for term.

Responses
200

Success

application/json
get
GET /v2/classes/{id}/tasks HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
{
  "tasks": [
    {
      "id": 22301859,
      "name": "Test Task #1",
      "notes": "",
      "author": {
        "id": 10193613
      },
      "enable_dropbox": true,
      "draft": false,
      "assessment_type": {
        "id": 17,
        "kind": "summative",
        "name": "Summative"
      },
      "category": {
        "id": 1848,
        "name": "Homework"
      },
      "dropbox_id": 11099399,
      "google_drive_dropbox": false,
      "ib_class_id": 10342450460,
      "assigned_students": [
        11084604,
        10193652,
        10241839
      ],
      "due_date": "2025-05-08T21:10:00+03:00",
      "turnitin": false,
      "assessments": {
        "points": {
          "title": "Points",
          "max_points": 10
        }
      }
    },
    {
      "id": 22301866,
      "name": "Test Task #2",
      "notes": "",
      "author": {
        "id": 10193613
      },
      "enable_dropbox": false,
      "draft": false,
      "assessment_type": {
        "id": 17,
        "kind": "summative",
        "name": "Summative"
      },
      "category": {
        "id": 1848,
        "name": "Homework"
      },
      "google_drive_dropbox": false,
      "ib_class_id": 10342450460,
      "assigned_students": [],
      "due_date": "2025-05-22T16:00:00+03:00",
      "turnitin": false,
      "assessments": {
        "points": {
          "title": "Points",
          "max_points": 12
        }
      }
    },
    {
      "id": 22301867,
      "name": "Test Task #3",
      "notes": "Test",
      "author": {
        "id": 10193613
      },
      "enable_dropbox": false,
      "draft": false,
      "assessment_type": {
        "id": 18,
        "kind": "formative",
        "name": "Formative"
      },
      "category": {
        "id": 1884,
        "name": "Homework"
      },
      "google_drive_dropbox": false,
      "ib_class_id": 10342450460,
      "assigned_students": [],
      "due_date": "2025-05-23T15:10:00+03:00",
      "turnitin": true,
      "assessments": {
        "binary": {
          "title": "Binary"
        },
        "points": {
          "title": "Points",
          "max_points": 150
        },
        "criteria": {
          "title": "Criteria",
          "criterions": [
            24
          ]
        }
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 3,
    "per_page": 100
  }
}

Get a Task for a Class

get

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

Authorizations
Path parameters
idintegerRequired

Unique identifier for task.

class_idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get
GET /v2/classes/{class_id}/tasks/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*
{
  "task": {
    "id": 22301867,
    "name": "Test Task #3",
    "notes": "Test",
    "draft": false,
    "task_type": "formative",
    "task_type_name": "Formative",
    "linked_to": {
      "class_id": 10299022,
      "task_id": 11921323
    },
    "dropbox": false,
    "google_drive_dropbox": false,
    "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": true,
    "due_date": "2025-05-23T15:10:00+03:00",
    "unit": {
      "id": 67396,
      "title": "Dynamics & Kinematics"
    },
    "hl": true,
    "sl": true,
    "category": {
      "id": 1884,
      "name": "Homework",
      "weight": 20
    },
    "assessment_types": {
      "comments": {},
      "points": {
        "max_score": 7
      }
    },
    "author": {
      "id": 10193613
    },
    "enable_dropbox": false,
    "assessment_type": {
      "id": 18,
      "kind": "formative",
      "name": "Formative"
    },
    "ib_class_id": 10342450460,
    "assigned_students": [],
    "assessments": {
      "binary": {
        "title": "Binary"
      },
      "points": {
        "title": "Points",
        "max_points": 150
      },
      "criteria": {
        "title": "Criteria",
        "criterions": [
          24
        ]
      }
    }
  }
}

Update a Task for a Class

put

This endpoint updates a task for a class as specified by class ID and task ID.

Authorizations
Path parameters
class_idintegerRequired

Unique identifier for class.

idintegerRequired

Unique identifier for task.

Body
Responses
200

Success

application/json
put
PUT /v2/classes/{class_id}/tasks/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 569

{
  "core_task": {
    "author_id": 42,
    "name": "Math Assignment #1",
    "due_date": "2025-10-01T12:00:00",
    "assessment_type_id": 3,
    "task_category_id": 5,
    "notify_group": true,
    "notify_parents": false,
    "unit_id": 101,
    "lesson_experience_id": 202,
    "hl": true,
    "sl": false,
    "notes": "This is a note for the task.",
    "enable_dropbox": true,
    "enable_turnitin": true,
    "dropbox_opening_days": 3,
    "assigned_student_ids": [
      12345
    ],
    "draft": false,
    "phase": 1,
    "assessments": {
      "criteria": {
        "enabled": true,
        "criterion_ids": [
          25324
        ]
      },
      "points": {
        "enabled": true,
        "max_points": 100
      },
      "binary": {
        "enabled": false
      },
      "comment": {
        "enabled": true
      }
    }
  }
}
{
  "task": {
    "id": 22301936,
    "name": "Updated Test Task #3",
    "notes": "This is an updated task.",
    "author": {
      "id": 10193613
    },
    "dropbox_opening_days": 3,
    "enable_dropbox": true,
    "draft": false,
    "assessment_type": {
      "id": 18,
      "kind": "formative",
      "name": "Formative"
    },
    "category": {
      "id": 1884,
      "name": "Homework"
    },
    "dropbox_id": 11099448,
    "google_drive_dropbox": false,
    "ib_class_id": 10342450460,
    "unit_id": 172,
    "lesson_experience_id": 22,
    "assigned_students": [
      11084385
    ],
    "due_date": "2025-05-23T15:10:00+03:00",
    "turnitin": true,
    "assessments": {
      "points": {
        "title": "Points",
        "max_points": 50
      },
      "criteria": {
        "title": "Criteria",
        "criterions": [
          24
        ]
      },
      "comment": {
        "title": "Comment"
      }
    }
  }
}

Delete a Task for a Class

delete

This endpoint deletes a task for a class as specified by class ID and task ID.

Authorizations
Path parameters
class_idintegerRequired

Unique identifier for class.

idintegerRequired

Unique identifier for task.

Responses
204

No Content

No content

delete
DELETE /v2/classes/{class_id}/tasks/{id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Accept: */*

No content

Get Student Assessment Results for a Task and Class

get

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
Path parameters
idintegerRequired

Unique identifier for task.

class_idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get
GET /v2/classes/{class_id}/tasks/{id}/students HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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 student grades for a task

patch

This endpoint updates student grades for a specific Task. 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.

Authorizations
Path parameters
task_idintegerRequired

Unique identifier for a task.

student_idintegerRequired

Unique identifier for a student.

Body
Responses
200

Success

application/json
patch
PATCH /v2/tasks/{task_id}/students/{student_id} HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 255

{
  "task_grade": {
    "assess_prep_uuid": "088190c6-aa0e-4126-9651-dca132229658",
    "assess_prep_uid": "6JIYJCBZ6D11OS48D4A6R3UNXY",
    "author_id": 123434,
    "assessment_file_url": "https://path.to/file.pdf",
    "points": 50,
    "comment": "text",
    "submission_id": 12343,
    "is_late": true
  }
}
{
  "task_grade": {
    "assess_prep_uuid": "088190c6-aa0e-4126-9651-dca132229658",
    "assess_prep_uid": "6JIYJCBZ6D11OS48D4A6R3UNXY",
    "assessment_file_url": "https://path.to/file.pdf",
    "submission_id": 12343,
    "author_id": 123434
  }
}

Bulk delete students grades and submissions for a task

delete

This endpoint resets students grades and submissions for a specific Task.

Authorizations
Path parameters
task_idintegerRequired

Unique identifier for a task.

Body
student_idsall ofOptional
integerOptional
Responses
200

Success

application/json
delete
DELETE /v2/tasks/{task_id}/students HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 18

{
  "student_ids": []
}
200

Success

[
  {
    "id": 8,
    "status": "unprocessable_entity"
  }
]

Bulk update students grades for a task

patch

This endpoint updates students grades for a specific Task. 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.

Authorizations
Path parameters
task_idintegerRequired

Unique identifier for a task.

Body
Responses
200

Success

application/json
patch
PATCH /v2/tasks/{task_id}/students HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 277

{
  "students": [
    {
      "id": 1,
      "task_grade": {
        "assess_prep_uuid": "088190c6-aa0e-4126-9651-dca132229658",
        "assess_prep_uid": "6JIYJCBZ6D11OS48D4A6R3UNXY",
        "author_id": 123434,
        "assessment_file_url": "https://path.to/file.pdf",
        "points": 50,
        "comment": "text",
        "submission_id": 12343,
        "is_late": true
      }
    }
  ]
}
[
  {
    "id": 12343,
    "status": "unprocessable_entity",
    "error": {}
  }
]

Get Criteria for a Class

get

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

Authorizations
Path parameters
idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get
GET /v2/classes/{id}/criteria HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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

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

Authorizations
Path parameters
idintegerRequired

Unique identifier for class.

Responses
200

Success

application/json
get
GET /v2/classes/{id}/task_categories HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
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
    }
  ]
}

Create a Task for a Class

post

This endpoint creates a task for a class as specified by class ID.

Authorizations
Path parameters
class_idintegerRequired

Unique identifier for class.

Body
Responses
201

Created

application/json
post
POST /v2/classes/{class_id}/tasks HTTP/1.1
Host: api.managebac.com
auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 569

{
  "core_task": {
    "author_id": 42,
    "name": "Math Assignment #1",
    "due_date": "2025-10-01T12:00:00",
    "assessment_type_id": 3,
    "task_category_id": 5,
    "notify_group": true,
    "notify_parents": false,
    "unit_id": 101,
    "lesson_experience_id": 202,
    "hl": true,
    "sl": false,
    "notes": "This is a note for the task.",
    "enable_dropbox": true,
    "enable_turnitin": true,
    "dropbox_opening_days": 3,
    "assigned_student_ids": [
      12345
    ],
    "draft": false,
    "phase": 1,
    "assessments": {
      "criteria": {
        "enabled": true,
        "criterion_ids": [
          25324
        ]
      },
      "points": {
        "enabled": true,
        "max_points": 100
      },
      "binary": {
        "enabled": false
      },
      "comment": {
        "enabled": true
      }
    }
  }
}
{
  "task": {
    "id": 22301936,
    "name": "Test Task #3",
    "notes": "This is a created task.",
    "author": {
      "id": 10193613
    },
    "dropbox_opening_days": 0,
    "enable_dropbox": true,
    "draft": false,
    "assessment_type": {
      "id": 18,
      "kind": "formative",
      "name": "Formative"
    },
    "category": {
      "id": 1884,
      "name": "Homework"
    },
    "dropbox_id": 11099448,
    "google_drive_dropbox": false,
    "ib_class_id": 10342450460,
    "assigned_students": [
      11084385,
      10734007
    ],
    "due_date": "2025-05-23T15:10:00+03:00",
    "turnitin": true,
    "assessments": {
      "binary": {
        "title": "Binary"
      },
      "points": {
        "title": "Points",
        "max_points": 25
      },
      "criteria": {
        "title": "Criteria",
        "criterions": [
          24
        ]
      },
      "comment": {
        "title": "Comment"
      }
    }
  }
}

Was this helpful?