We have relocated to Instructure Developer Documentation Portal. π Please update your bookmarks. This page will automatically redirect after July 1, 2026.
Grade
course_grade_change
Definition: The event gets emitted anytime any of the course scores are changed for a student.
Trigger: Triggered when anything (a user or asynchronous job) updates the final_score, course_score, unposted_current_score, or unposted_final_score columns in the scores table in the database.
Payload Example:
{
"metadata": {
"root_account_uuid": "44fJ44GgJ29gJBsl43JLKgljsBIOTsbnKT48932g",
"root_account_id": "10000000000001",
"root_account_lti_guid": "794d72b707af6ea82cfe3d5d473f16888a8366c7.canvas.docker",
"user_login": "oxana@instructure.com",
"user_account_id": "10000000000002",
"user_sis_id": null,
"user_id": "21070000000000001",
"time_zone": "America/Denver",
"context_type": "Course",
"context_id": "21070000000000002",
"context_sis_source_id": "194387",
"context_account_id": "21070000000000003",
"context_role": "TeacherEnrollment",
"request_id": "98e1b771-fe22-4481-8264-d523dadb16b1",
"session_id": "242872453a9d69f7ccddeb4788d22506",
"hostname": "oxana.instructure.com",
"http_method": "POST",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"client_ip": "93.184.216.34",
"url": "http://oxana.instructure.com/courses/2/gradebook/update_submission",
"referrer": "http://oxana.instructure.com/courses/2/gradebook/speed_grader?assignment_id=39&student_id=2",
"producer": "canvas",
"event_name": "course_grade_change",
"event_time": "2019-12-11T16:26:34.552Z"
},
"body": {
"user_id": "2",
"course_id": "2",
"workflow_state": "active",
"created_at": "2019-12-04T13:32:21Z",
"updated_at": "2019-12-11T16:26:34Z",
"current_score": 17.31,
"old_current_score": 13.46,
"final_score": 12.5,
"old_final_score": 9.72,
"unposted_current_score": 17.31,
"old_unposted_current_score": 13.46,
"unposted_final_score": 12.5,
"old_unposted_final_score": 9.72
}
}
Event Body Schema
Field | Description |
---|---|
user_id | The Canvas user ID of the student. |
course_id | The Canvas ID of the course. |
workflow_state | The state of the score record in the database, could be "active" or "deleted". |
created_at | The time when the row in the scores table (representing the course grade) was created. The score row is created as a result of some grade calculation, even if there are not yet any graded submissions for a student, i.e. when a student is enrolled in the class. |
updated_at | The time when the row in the scores table was last updated -- that is, when the event is emitted. |
current_score | The user's current score in the class. |
old_current_score | The user's current score in the class before it was changed. This field will not be available until a student submits the first assignment in the class. |
final_score | The user's final score for the class. |
old_final_score | The user's final score for the class before it was changed. This field will be set to 0.0 until a student submits the first assignment in the class. |
unposted_current_score | The user's current grade in the class including unposted assignments. |
old_unposted_current_score | The user's current grade in the class including unposted assignments, before it was changed. This field will not be available until a student submits the first assignment in the class. |
unposted_final_score | The user's final grade for the class including unposted assignments. |
old_unposted_final_score | The user's final grade for the class including unposted assignments, before it was changed. This field will not be available when a student submits the first assignment in the class. |
grade_change
Definition: The event is emitted anytime when a submission is graded. These can happen as the result of a teacher changing a grade in the gradebook or speedgrader, a quiz being automatically scored, or changing an assignment's points possible or grade type. In the case of a quiz being scored, the grade_change
event will be emitted as the result of a student turning in a quiz, and the user_id
in the message attributes will be the student's user ID.
Trigger: Triggered anytime a grade is created or modified.
Payload Example:
{
"metadata": {
"client_ip": "93.184.216.34",
"context_account_id": "21070000000000079",
"context_id": "21070000000000565",
"context_role": "TeacherEnrollment",
"context_sis_source_id": "2017.100.101.101-1",
"context_type": "Course",
"event_name": "grade_change",
"event_time": "2019-11-01T19:11:05.222Z",
"hostname": "oxana.instructure.com",
"http_method": "POST",
"producer": "canvas",
"referrer": "https://oxana.instructure.com/courses/565/gradebook",
"request_id": "1dd9dc6f-2fb0-4c19-a6c5-7ee1bf3ed295",
"root_account_id": "21070000000000001",
"root_account_lti_guid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs.oxana.instructure.com",
"root_account_uuid": "VicYj3cu5BIFpoZhDVU4DZumnlBrWi1grgJEzADs",
"session_id": "ef686f8ed684abf78cbfa1f6a58112b5",
"time_zone": "America/Denver",
"url": "https://oxana.instructure.com/api/v1/courses/565/assignments/355/submissions/48?include%5B%5D=visibility",
"user_account_id": "21070000000000001",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"user_id": "21070000000000987",
"user_login": "oxana@example.com",
"user_sis_id": "456-T45"
},
"body": {
"assignment_id": "21070000000000355",
"grade": "5",
"grader_id": "21070000000000987",
"grading_complete": true,
"muted": false,
"old_grade": "4",
"old_points_possible": 1,
"old_score": 4,
"points_possible": 1,
"score": 5,
"student_id": "21070000000000048",
"student_sis_id": "ABC.123",
"submission_id": "21070000000011086",
"user_id": "21070000000000048"
}
}
Event Body Schema
Field | Description |
---|---|
assignment_id | The Canvas id of the assignment associated with the submission. |
grade | The new grade. |
grader_id | The Canvas id of the user making the grade change. Null if this was the result of automatic grading. |
grading_complete | The boolean state that the submission is completely graded. False if the assignment is only partially graded, for example a quiz with automatically and manuall... |
muted | The boolean muted state of the submissions's assignment. Muted grade changes should not be published to students. |
old_grade | The previous grade, if there was one. |
old_points_possible | The maximum points possible for the previous grade. |
old_score | The previous score. |
points_possible | The maximum points possible for the submission's assignment. |
score | The new score. |
student_id | Same as the user_id. |
student_sis_id | The SIS ID of the student. |
submission_id | The Canvas id of the submission that the grade is changing on. |
user_id | The Canvas id of the user associated with the submission with the change. |
grade_override
Definition: The event is emitted anytime a student course grade is overriden. Typically grade override feature is used to edit student course grade
Trigger: Triggered when the final grade override has been changed. Only triggered when the override changes the existing score.
Payload Example:
{
"metadata": {
"client_ip": "93.184.216.34",
"context_account_id": "21070000000000001",
"context_id": "21070000000000123",
"context_role": "TeacherEnrollment",
"context_sis_source_id": "194837",
"context_type": "Course",
"event_name": "grade_change",
"event_time": "2019-11-15T07:46:18.697Z",
"hostname": "oxana.instructure.com",
"http_method": "POST",
"producer": "canvas",
"referrer": "https://oxana.instructure.com/courses/123/gradebook/speed_grader?assignment_id=8188213&student_id=3541",
"request_id": "392c325f-cba1-423f-ad2c-d213cabce732",
"root_account_id": "21070000000000001",
"root_account_lti_guid": "V3kdo4kgu3F4Kf4fK109DSFkdso432950GKSOJNj:canvas-lms",
"root_account_uuid": "V3kdo4kgu3F4Kf4fK109DSFkdso432950GKSOJNj",
"session_id": "4e032912e321a243163232941f435324",
"time_zone": "America/Los_Angeles",
"url": "https://oxana.instructure.com/courses/46/gradebook/update_submission",
"user_account_id": "21070000000000001",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"user_id": "21070000000003541",
"user_login": "oxana",
"user_sis_id": "0119359"
},
"body": {
"score_id": "43",
"enrollment_id": "44",
"user_id": "45",
"course_id": "46",
"grading_period_id": "47",
"override_score": 90,
"old_override_score": 85,
"updated_at": "2019-11-15T07:46:18.697Z"
}
}
Event Body Schema
Field | Description |
---|---|
score_id | Canvas Id of Score record |
enrollment_id | Canvas Id of Employment record |
user_id | Canvas Id of User attached to this enrollment |
course_id | Canvas Id of Course attached to this enrollment |
grading_period_id | Canvas Id of Grading Period |
override_score | New value of score after override |
old_override_score | Previous value of score before override |
updated_at | Date/Time the override occurred |
Note: Timestamps will be in ISO8601 format, including an offset. Be sure to take that into account when parsing, since itβs unspecified which offset timestamps will use, and the offset may even change between different timestamps within a single event.