Community Member

Group Assignments and Submissions API

The submissions API (Canvas LMS REST API Documentation​) is badly documented as it pertains to group assignments.  Moreover the Support Agents do not have accurate information on how it works.  Here are some facts about the current implementation:

1. When one students in a group submit a group assignment each member of the group get a unique Submission object with a unique submission_id.

2. Each submission corresponding to the group members has an Attachment object, these are the same for all members in the group.

3. The API call

GET /api/v1/courses/:course_id/assignments/:assignment_id/submissions

returns all current submissions.  Contrary to what Support Agents might say, old submissions of a student or group that are resubmitted are not included here, only the current submission is in this list.  Moreover, for students in a group, there is a separate submission corresponding to each student.

There is a lot of machinery that keeps these consistent if you interact with Canvas via the web interface.  I am unsure of whether the API keeps these things consistent.  In particular I have no idea about the following:

1. when you assign a grade to a submission using the API

PUT /api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id

does this automatically assign the same grade to the other students in the group.  Those other students have different submission_ids.  This propegation of grades does happen in Speedgrader (so I hear), but the API functionality is undocumented.

2. when you assign peer reviews using the API

POST /api/v1/courses/:course_id/assignments/:assignment_id/submissions/:submission_id/peer_reviews

And the student does the peer review, do all group members see the peer review?  Note peer reviews are assigned to submission_ids, and different group members have distinct submission_ids.

It would be great if the details of submissions, peer review, and grading in the API got properly documented.  Until then, if anyone has experience with this, I'd love to hear about it.  I don't trust the Canvas Support Agents to know what is going on.

Addendum: One of the reasons I'm looking at the API with respect to group projects in the first place is that the Web Interface for 'automatically assigning peer reviews' is badly implemented (you might say broken).  As it can assign students their own assignment to peer review.  I assume that this 'bad implementation' is a consequence the way group submissions are stored in Canvas, the same thing that causes the API calls above to be highly non straightforward.

Addendum by Jason Hartline.

Labels (1)
1 Reply
Coach Emeritus

Hi  @hartline ,

I am going through having a look at some of the early days in the Canvas Developers group, and checking in to see if older enquiries have been answered. I also noticed there hasn’t been any discussion on this question.

I am wondering, does the current iteration of the API documentation resolve your concerns, or you still have some outstanding? I am hoping I can assume that it is well and truly resolved by now, but if not, please let us know and we can certainly have another look. 

I will mark this as assumed answered for the time being, however, by all means please let us know if you still have an outstanding question and we will take a peek!