Showing results for 
Search instead for 
Did you mean: 
Community Contributor

Canvas groups roster through API or spreadsheet?

Hi there,

I found the idea for exporting group rosters, but since it isn't made yet I'm wondering if anyone has written something to do this through API or have one of those amazing google spreadsheets that pulls such a list for us?  I didn't see anything in the searches.

I'm thinking something that would get me 

SIS user ID or email
First name
Last name
Group set
Group name

with the last two repeating until all the group sets were done.

Anyone have something for this?

Tags (1)
4 Replies
Community Champion

I think I've encountered a couple of people who have written code to do this, although I don't remember exactly where right now. It seems they were written for programmers (people using python or some other language) and not for the masses, but there are undoubtedly things I'm not aware of or that I missed (apologies in advance).

If you are an admin, there is a not so user friendly approach available to you. The Provisioning Report allows you to export data from Canvas. In there is the option for Group Categories, Groups, and Group Memberships.

Group Categories contains the major groupings, the holders of the groups if you will. It includes the ID's for the group category, the context (course or account) and context code (course ID or account ID), the name of the category, the role (student organized), self_signup?, any group limits, and whether the leader should automatically be assigned.

Groups is the next level and contains the individual group names within each of the group categories. It contains the group ID as well as the group category ID to tie it back to the group categories table, account or sub-account codes, the name of the group, it's status, whether it was created by the SIS, the context and its code, and any maximum membership.

Group Memberships contains the users for each group. It contains both the Canvas and SIS ids for the group and user, a status flag of whether or not the membership has been accepted, and a flag to indicate whether or not it was created by the SIS.

You can take all that information and combine it with the courses and the users reports to get the information you need.

If all that sounds too complicated then you're in good company as it takes a lot of manipulation of tables to get what you want. Also, it's not available to individual instructors, who are most likely the ones wanting to use it.

Speaking of things that normal people can't use directly, there's Canvas Data. It has group and group_membership tables and from there you can link to the course, user, and pseudonym tables to get the other information that you need.

I have written the code to pull that information from Canvas through the API (it's kind of slow because of the way they have it set up) for use in a Google Sheet script I wrote to count the discussion posts. It doesn't display it directly, but it fetches it, so that could be a starting point for someone wanting to write a Google Sheet that did that.

This is one of those requests that comes up every now and then and could benefit people. I had great plans of incorporating it into a script that would start with a list of groups and populate the scores based on that, but allow you to override individual students. The impetus for that was that I have group presentations that you have to be present for, but as long as you're present, you get the group grade. I have to mark them as individually graded in Canvas, but then they're not associated with the group name and it's harder to enter the grades since I recorded the grades based on the group name, not who was in it. Anyway, as with a lot of things, finding time to write the code is often difficult as other things come along that need done.

Community Coach
Community Coach

 @kbink ,

Were you able to find an answer to your question? I am going to go ahead and mark this question as answered because there hasn't been any more activity in a while so I assume that you have the information that you need. If you still have a question about this or if you have information that you would like to share with the community, by all means, please do come back and leave a comment.  Also, if this question has been answered by one of the previous replies, please feel free to mark that answer as correct.



Community Contributor

There is a new post that has a spreadsheet that creates this report.

Community Member

The link to a new post above does not work  think link broken, looking to see if we can find a tool to help, seems a pity its not part of Canvas reporting. 

Looking at the api's to write a report, looks like need to make iterative calls per course to pull out the group categories, then iterate through each to pull out the student details which is slow. Has anyone come up with a different approach to getting students discussion groups?