cancel
Showing results for 
Search instead for 
Did you mean: 
JaredCohen
Community Member

Google Sheets/Scripts Function to Scrape Grades

Jump to solution

I am looking to take my semester grades (under the 'Grades' section or from each class's 'Grades' section) put them on a Google Sheet, and have the cells automatically update. 

I am familiar with some of the common Google Sheet and Google Script 'coding functions' and was curious if anyone knows how to complete the task above?

Thank you and I look forward to hearing back!

Labels (1)
0 Kudos
1 Solution

Accepted Solutions
James
Community Champion

@JaredCohen 

I have shared several Google Sheets that access the Canvas API. One of them is the Bulk Publish / Delete Pages script. You can get some ideas of how to start by looking at the code by going to Tools > Script Editor.

How much you are wanting to know will determine the approach you take.

If all that you want is the grade for the course, then you can use the List Enrollments endpoint to get your grades. By default, it returns all grades for all of your courses -- you may want to limit that.

If you want the breakdown by assignment group (exams, homework, quizzes, projects, discussions, etc), then you are out of luck. This information is not exposed through the API.

If you want the individual grades for all assignments, then you can use the Submissions API to get the grades. That likely won't be sufficient to determine a grade for the course, though. You will need to look at assignment groups, any weights assigned to them, and any rules for dropping grades. The dropping grades is the hardest part. Canvas doesn't tell you which grades are dropped, you have to figure that out on your own.

View solution in original post

1 Reply
James
Community Champion

@JaredCohen 

I have shared several Google Sheets that access the Canvas API. One of them is the Bulk Publish / Delete Pages script. You can get some ideas of how to start by looking at the code by going to Tools > Script Editor.

How much you are wanting to know will determine the approach you take.

If all that you want is the grade for the course, then you can use the List Enrollments endpoint to get your grades. By default, it returns all grades for all of your courses -- you may want to limit that.

If you want the breakdown by assignment group (exams, homework, quizzes, projects, discussions, etc), then you are out of luck. This information is not exposed through the API.

If you want the individual grades for all assignments, then you can use the Submissions API to get the grades. That likely won't be sufficient to determine a grade for the course, though. You will need to look at assignment groups, any weights assigned to them, and any rules for dropping grades. The dropping grades is the hardest part. Canvas doesn't tell you which grades are dropped, you have to figure that out on your own.

View solution in original post