Grade Discrepancies in Canvas API
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-15-2023
01:30 PM
One of our users recently reported inconsistencies between the grades in our service (Squarecap) and what's been uploaded to Canvas. For context, Squarecap is a stand-alone classroom response system that uses the Canvas REST API for roster syncing, grade upload etc.
I've dug into the REST calls (described below) and it looks like what we're uploading is different from what's being displayed.
Assignment Creation:
"method": "PUT"
"canvas_host": "https://*****.instructure.com"
"api": "api/v1/"
"url": "courses/*******/assignments/*******"
"data": "{
'assignment[name]': ******,
'assignment[assignment_group_id]': *******,
'assignment[notify_of_update]': False,
'assignment[points_possible]': '8',
'assignment[grading_type]': 'points',
'assignment[published]': True
}"
Grade Upload:
"method": POST
"canvas_host": "https://*****.instructure.com"
"api": "api/v1/"
"url": "courses/*******/assignments/*******/submissions/update_grades"
"data": "{
...
'grade_data[XYZ][posted_grade]': '4.00'
...
}"
Result: Student with ID XYZ received a 6, not a 4.
Our API integration with Canvas has been used in production for about 8 years old at this point and has been updated only occasionally over the years. We've never had an issue like this reported before. Has anyone else come across this?