The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December.
Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
Is there a way to delete a large number of courses? I saw a post from 2017 and I was wondering if the same process still applies? TIA, @James
Jeneen Hill
Solved! Go to Solution.
I'm not sure exactly which post from 2017 you're referring to, but things haven't changed.
I'm not sure exactly which post from 2017 you're referring to, but things haven't changed.
Hi-Thanks so much for your response- here is the link to the 2017 conversation
My instance is connected through SIS. Would you be able to give me more detailed instructions using the SIS import
The format of the SIS CSV files is explained in the API documentation.
Look under the courses.csv section. You need the course_id, short_name, long_name, and status.
Changing the status to "deleted" will remove it from Canvas.
After you have the CSV file created and saved (what you name it doesn't matter, but I typically match Canvas' naming, so "courses.csv"), you go to the Admin page for your Canvas institution and then choose SIS Import. Choose your CSV file and then click process data.
If your Student Information System is aware of which courses need deleted, you could pull the information from there in the needed format. If you want to do it yourself, then I would generate either a Provisioning or SIS Export report under Admin > Settings > Reports. The Provisioning report includes all courses, even if they weren't created by a SIS import, but then you won't be able to delete those through a SIS import, so I would recommend the SIS Export report. What you need to select before you run the report is the "Courses CSV". The report runs in the background and can take a while depending on how many courses you have. You will get an email when it's done.
Download the CSV file that was generated and open it in a spreadsheet (Excel). For the courses that need deleted, change the status to "deleted". Although this can be sent back to Canvas as is, I would sort by status and then delete any rows that were not changing the status. I would also delete any columns that weren't required, but that's not necessary. Save the file (it's already a CSV file if you want to overwrite the download) or give it a new name and make sure it's a CSV.
Then go through the SIS Import process I described earlier.
So I followed these directions in my beta version of canvas, and the courses are still there. Ideas? There were no errors after processing the file
The first thing I would wonder when you mention beta is the timing. When did you delete the courses in beta and when did you check and find they were still there? The beta instance is refreshed once a week and will overwrite any changes with those from production. If you deleted the courses on Friday but they're there on Monday, it would be expected.
The second would be if you had made any changes to the courses that would cause the sticky bit to be set on the course. Changes made through the web interface overwrite those made through SIS imports unless you tell the import to Override UI changes. See How do I import SIS data to a Canvas account? for more information on SIS imports.
Third, I would question my sanity. That's mine, not yours. There have been times that I thought I was in one instance but because I had multiple browser tabs open, I was actually in another. For instance, I might make a change in beta and then checked in another tab that happened to be production. It's worse when I make the change in production thinking I'm in beta.
Just wanted to check in to see whether there are any changes from the solution provided by James with respect to bulk deleting courses when SIS is present.
Thank you --
I have also been unsuccessful in this process in both Test, Beta, and our 2nd instance. We have courses created with the SIS and manually. In both scenarios, I am unable to get course deletion to hold via the SIS Import with reports from the export or from the provisionary report. Thoughts?
I am having the same problem. I want to delete multiple courses and have prepared a courses.csv according to above instructions and done a sis import in Beta, to test that it is working. The courses are still there. I am aware that Beta refreshes once a week but the deletion should be intantaneous once the import has successfully loaded surely?
Since I don't have access to your Canvas instances or your CSV file, I have to ask some generic questions and hopefully one of them will lead us down a path to success. I deleted a course using SIS import last week and it worked correctly (that was in production, not beta, though).
Did you tell Canvas to override UI changes when you imported the file?
Are you sure that these courses were created with SIS IDs. You must use SIS IDs and not Canvas IDs for the courses.
There may be a problem with the CSV file, even though you think you've correctly followed the directions. Could you paste the first few lines of the file in a message so someone could check (change from paragraph to preformatted format first so there is no line wrap)?
Are there any warning or error messages once the SIS import has finished? If so, what are they?
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in