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

An API for a graded discussion board...

Hello. I am wondering if Canvas or an external application has the capability to show me how many posts all students have made throughout the semester in a graded discussion forum. At the end of the semester, I create a curve based on the average number of posts students make and thus I need to know how many posts each student has made throughout the semester. For example, the number of posts made throughout the semester often range from 0 to 70. In Blackboard and Moodle, when grading the discussion board posts, I am given a summary that includes a list of students with how many posts each student has made. I am also provided with the average number of posts and other statistics related to their discussion board posts. This allows me to quickly determine where to set the curve.

Thank you for any help you can provide.

24 Replies

I have done a major overhaul to this spreadsheet. I kept the same URL because several people have linked to it, but the old version is no longer available.


  • There is a Canvas menu that will appear after the Google Sheets menu. All configuration is done there, there is no more need to edit the source code.
  • All discussions are included. It turns out the first version only counted top level (initial posts) and responses to the initial posts, but not nested replies beyond that. Thanks to Aaron PeeksMease for directing me towards this bug.
  • It now creates a Data page that has one entry for each student/discussion combination.
  • It uses Pivot Tables to do the counting. This allows you to filter the data by role (student/teacher/ta) and by status (active/concluded) without modifying the source code.
  • Students who didn't post in a particular discussion show up as missing rather than a 0. That's an artifact of using Pivot Tables.
  • It now uses the IFRAME sandbox mode. That doesn't sound glamorous, but Google has said they will stop supporting the NATIVE mode that I was using on June 16, 2016, so the update was necessary to keep the program working.
  • In theory, you can add multiple courses to the spreadsheet.

Getting Started

I will try to get an updated video made. The quick start is

  1. Make a copy of the spreadsheet that you can edit
  2. Choose the Canvas > Configure API Settings menu item and put in your Canvas Instance and Access Token.
  3. Choose the Canvas > Specify Course menu item and enter your Canvas Course ID
  4. Choose the Canvas > Refresh All Discussions menu item. This will wipe out any existing data and count all the discussions in your course.

There is also a Canvas > Append New Data menu item. This will skip any discussions previously analyzed and only fetch new discussions (it will not fetch new posts to old discussions). This is useful if you run the report several times a term or you want to fetch data for multiple courses. It is not useful for on-going discussions that have previously been analyzed.

Community Member

Sorry James for never responding but I never received an e-mail notification saying you referenced me in your post. The nested within nested posts makes sense. I am back on here to see if Canvas has finally provided this simple statistic like other platforms do but apparently they do not. I tried to test your new API but I can't figure out the "Canvas Instance"/username. I had a problem with this before and my exchange server deleted the e-mails that provided me with the solution. Thanks for all your work on this and wished that Canvas would start providing users with useful and typical content to users without users having to request and vote up specific suggestions. I guess I will be using the free CourseSites once again this Fall and Spring semesters.


I'm not sure about this one since I haven't updated it in a while, but I think you can copy/paste a URL from your class into the box asking for the Canvas Instance/Hostname. "Username" doesn't make sense to me as it is determined from the Access Token you provide.

A quick search on the web makes it look like the Canvas instance/hostname for JMU would be

Community Member

Yes, when I put that in along with the token then I tried to put in the course ID but it took me back to the API screen saying that I needed to put in the token, etc. Like last time, it is likely an issue with JMU and permission. If there was not another platform that provided me with the information that I need then I would take the time to figure this all out. But in the end, all the other paid and free platforms provide what I need so I will go with the free one available. Thanks again James for all your hard work on this and I wish Canvas had someone like you working for them making their platform better.

All the best,


There was another big school that removed the access to the tokens and finally granted it after over a year, but you had to run everything through a proxy and so it became difficult for people to use. All that to say that yes, some schools are putting up roadblocks for effective use of classroom data.

Are you allowed to install your own LTI applications? If so, then Threadz my​ might be able to help. I think it was one discussion at a time, but that there were some features for exporting the data.

Can you install a user script manager extension like Greasemonkey for Firefox or Tampermonkey for Chrome or Safari. It doesn't have to be on a school computer, but if you can, then someone could write code that would run the report within the browser, totally bypassing the need for an access token. I don't have time to do that right now, but someone could take my script and modify it. Then they could possibly combine it with some other stuff I've written to export a CSV file of all the information.