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

All things API

Have a question about the Canvas APIs? Have a cool API integration you'd be willing to share? If so, please post here.

Labels (1)
Tags (1)
271 Replies

I have used both quite a bit for automation.  I do course setup and enrollment management with them.  I have moved everything over to pandarus as it seems a bit cleaner.  You seem to be looking to use it for user interaction which I have not done so I can not help you much.

Community Member

I just learned the most amazing thing, right here in the community, but hidden away in a questions page.  I'm thinking we should have a place to collect a list of undocumented admin/developer gems. Ever hear of /undelete? Do you know of others?

Better yet, just stick

/doc/api/live after your instructure domain url (e.g., and away you go. I only just learned that trick today. It may only work on instructure hosted instances. I'd be interested to know. Have a token on your clipboard when you go. Gets you as far as the JSON. After that, you'll still need something to parse it all out.


I am using PHP cUrl  with the Canvas API to create quizzes and add quiz questions.  Canvas LMS REST API Documentation  shows the API call necessary for question creation. Creating the question works as long as I do not include an answer.  The API requires question[answers] with [Answer] as in input. I have tried multiple arrays with various names for the keys.  Does anyone have a working example of adding a quiz question with answer, or adding an answer to an existing question?

Community Member

I use the api via the Pandurus gem.  Based on a faculty request feed from another app I use content migrate to pull in a template course.  This is then completed by creating modules for the varying number of weeks.  Some of the pages also have their content modified by pulling them and doing a regex for things like course and faculty names.  Since our enrollment feed does not include course drops I use the api to compare the courses section enrollments with the actual enrollment data. That data is used to generate an SIS file to conclude the students that have left the course.  Since that last one is a bit api intensive it only runs once a day.  I also use the api to upload the hourly full SIS package that is created by the app.

Community Member

Hi all! I work at the London campus of Hult International Business School. We've developed a small command-line utility to automate a few tasks in Canvas, especially when dealing with groups. We'd love to share it with other institutions or get some feedback from developers about it!

Now we have the professors fill out a simple spreadsheet and use this tool to create all the student groups in a course automatically. It's saved us countless hours from dragging-and-dropping the students into groups.

Please let me know if you think it'd be useful at your school, or if you're a Python programmer and would like to help contribute!

Thank you for sharing,​!


I'm going through the process to migrate our users from the legacy Respondus Lockdown Browser integration to their newer LTI integration.   As part of this, I want to know which courses have quizzes protected by Lockdown Browser (legacy version), so I can work with those faculty on the changes.

I can see where /Assignments know about Turnitin Settings, but I've not yet found similar API data on Lockdown Browser.   Does it exist via API, if so, where?  Can the API tell me if a quiz is configured to use Respondus Lockdown Browser?

Thanks, Glen​,

If you use the Quizzes API to list all quizzes for a course (or if you get a single quiz), there are several items that pertain to the lockdown browser. They are not listed in the documentation but they should be there:

"require_lockdown_browser": true,

"require_lockdown_browser_for_results": true,

"require_lockdown_browser_monitor": null,

"lockdown_browser_monitor_data": null,

Community Member

I really wished that the create APIs would offer the same fields that you get if you do a get.  lol

I just discovered that the POST course module does not include the publish state.  I've created and ideal but really do not have a lot of faith in the enhancement request process for developer wants/needs as there are many more users who want nice pretty things over backend needs. 

We want to create our modules in a published state to help with scalability.