One of the issues people are running in to here with this challenge is the lack of the ability to get the grading scheme (grading standard). The existing API calls allow you to get grades for students if the instructor has enabled, but then you only get those grades that are actually being used. So, if there are A, A-, B+, C+, and D in a class, you don't get any grades returned for C and the programmer would have to infer from the presence of any +/- whether or not the plus-minus system is used.
That doesn't sound so bad, but let's say you think grades are bad and so you've decided to label your grade M, N, P, Q, R, S, and T to get students to top focusing on the A, B, C, thing. Or perhaps, a more reasonable expectation, is that you're from a school that uses A, B, C, D, E instead of A, B, C, D, F. Shy of having the instructor manually put these into the spreadsheet, there is no way that I can find to get this information out of Canvas.
Yet.
I was looking at this problem again today and noticed that in the Grading Standards controller canvas-lms/grading_standards_api_controller.rb, there is a List grading standards API call. That's not available in the Grading Standards API documentation, though. Looking at the source code, there was a little note that said it was added one day ago with a link to a diff that shows it was created 8 days ago.
So, it is coming, hopefully soon.
One thing I'm not sure about it and can't test since it's not actually in use is there is no indication whether the grading scheme in use a grading scheme for the course or a grading scheme for an account. Hopefully it will return the grading scheme in use no matter what. It would just add another set of complexity to call the API for the course and not get the grading scheme you want and then have to turn around and call it for the account. Maybe I just overthink things.
In the meantime, you may be able to only list those grades that actually have students achieving them. That might be okay, since the others aren't used, but if you have 4 A's, 8 B's and 3 D's, it might be nice to see that there are 0 C's.
Just wanted to pass along that there appears to be a new API call on the horizon that will help with this challenge.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.