Hi @jdammeier ,
jschaffer has suggested one way to get access to the data. Another way I have found when I first started researching this for our institution is another option although somewhat less intuitive initially.
The data I think you are looking for is available on the Enrolments API Enrollments - Canvas LMS REST API Documentation.
The Enrolments call contains:
grades": null,
// optional: The student's score in the course, ignoring ungraded assignments.
// (applies only to student enrollments, and only available in course endpoints)
"computed_current_score": 90.25,
// optional: The student's score in the course including ungraded assignments with
// a score of 0. (applies only to student enrollments, and only available in course
// endpoints)
"computed_final_score": 80.67,
// optional: The letter grade equivalent of computed_current_score, if available.
// (applies only to student enrollments, and only available in course endpoints)
"computed_current_grade": "A-",
// optional: The letter grade equivalent of computed_final_score, if available.
// (applies only to student enrollments, and only available in course endpoints)
"computed_final_grade": "B-",
// optional: Indicates whether the course the enrollment belongs to has grading
// periods set up. (applies only to student enrollments, and only available in
// course endpoints)
Depending on how you are approaching this, You can either loop through each course, grab your list of enrolled students then for each student grab the actual enrolment. Or you can check out the other features of the Enrolments API and you may be able to use 'List Enrolments' by UserID and then loop through the Enrolments.
My personal preference is to go based on 'List Enrolments' by Course, as that means you won't un-necessarily loop through older courses that have no need to be processed, rather than constantly looping through every user on your instance.
Does that help at all? I was not completely sure if you were looking at needing a different API call moreso than guidance on using the API with Python, please let me know.
I know this particular use case was something that took me quite a while to get my head around initially, we are still in the process of looking at building this through this year.
Cheers,
Stuart