@FayeChli
The main thing is that it comes from enrollments. That means that anywhere you can fetch enrollments is a good place to look for the information. I personally use the List enrollments endpoint of the Enrollments API. I set the types[]=StudentEnrollment and state[]=active to reduce the amount of information sent. Those would vary depending on your requirements.
You can also get information from the GraphQL interface. In general, it is faster than the REST API, especially since the enrollments endpoint is relatively expensive. You could do something like this (change the 1234 to your course ID). Go to your main instance and put /graphiql to test this. Then you can automate it with the REST API.
query finalGrades {
course(id: "1234") {
enrollmentsConnection(filter: {states: active, types: StudentEnrollment}) {
nodes {
grades {
finalScore
}
user {
_id
sisId
sortableName
}
}
}
}
}