Developer Discussions

Discuss, share tips, and ask questions about Developer-related topics.

I'm running a self-hosted Canvas LMS instance production version and I'd like to set up Canvas Data Services to subscribe to webhooks (live events) via HTTPS or AWS SQS.In the official Canvas documentation, the instructions typically reference hosted...

  • 0 Likes
  • 1 Replies

Why is the datatype for the answer.id number (without quotes) for true_false_question and string (with quotes) for short_answer_question and multiple_answers_question???It is inconsistencies like this that make working with the API a nightmare.

  • 0 Likes
  • 2 Replies

Submission api is not working /api/v1/courses/116/students/submissions i have tried root token and sub account token also for both its giving only  {     "status": "unauthorized",     "errors": [         {             "message": "user not authorized...

  • 0 Likes
  • 6 Replies

Have you seen anyway to get a list of students who have started the submission like attached a file, add text, etc but not submitted? One Of our current issues is students who upload a file but miss the last step of submitting it.They go back into th...

  • 0 Likes
  • 1 Replies

As a theological institution, it would be helpful if in our discussion forums Bible references such as "John 3:16" was automatically tagged and have a tooltip using the following Reftagger code: <script> var refTagger = { settings: { bibleVersion: 'E...

  • 0 Likes
  • 2 Replies

Hello everyone, I hope you are doing well.  I figured I would post this question here as I didn't find anything similar in searching online.  I am an admin for a canvas course that can generate API tokens and access the API this way.  Recently, I hav...

  • 0 Likes
  • 3 Replies

Is the new Canvas media player available in the open source version? If so how do I use it?

Community Explorer
Canvas Developers Group
  • 0 Likes
  • 0 Replies

I'm using the Canvas API to create pages and link these created pages dynamically between other pages. If the page has been created before in the course, regardless of whether the page has been deleted, the page slug (ex: the "week-1" in "https://xxx...

  • 0 Likes
  • 2 Replies

On the Upcoming Canvas Changes page, I see that the UUID field is being deprecated from the File API response on 8/13/2025: 2025-08-13 Change TypeChangeDescriptionEffective DateResourceDeprecation Removal of the UUID field from the File API The UUID...

Community Participant
Canvas Developers Group
  • 0 Likes
  • 0 Replies

I currently have a piece of software that runs on LTI 1.1 and have been looking to migrate it to LTI 1.3The application is a python Flask app. However I have really struggled to find any good resources around creating an LTI 1.3 Flask app. I would lo...

  • 1 Likes
  • 1 Replies

  Hi everyone, I'm currently working on implementing content migrations using the Canvas API, specifically with migration_type=zip_file_importer. After uploading a .zip file via the file upload flow (starting with POST /api/v1/folders/:folder_id/file...

  • 0 Likes
  • 3 Replies

Hi! I am a Canvas Admin for a very small team that does not include a tech person. A third party storefront provider (same functions as Catalog) would like to integrate with us, to display our courses and do payment processing. We would need to autom...

  • 0 Likes
  • 2 Replies

Hi Canvas team, I’ve run into an issue when trying to apply assignment overrides via the API for Practice Quizzes and Ungraded Surveys. In the Canvas UI, it’s possible to set different due dates and availability windows for these quiz types, just lik...

  • 0 Likes
  • 3 Replies

  Hi Canvas Community, In Course > Settings > Import Course Content, when using "Content Type" = "unzip .zip file into folder" (usually to import a ZIP file as course material), I observed that Canvas sends a request to this endpoint:   POST https:/...

  • 0 Likes
  • 2 Replies

Hello Canvas Community,I’m experiencing an issue with the Canvas LMS API when retrieving quiz submission questions. Normally, the API request to:  GET /api/v1/quiz_submissions/:quiz_submission_id/questions   works correctly and returns the submission...

  • 0 Likes
  • 1 Replies

Hi all,I am looking for a way for displaying and submitting a student_annotation assignment from a custom mobile app that we developed.I saw that this is not covered via the APIs.We have our own pdf annotation logic in our app and i was wondering if ...

Community Member
Canvas Developers Group
  • 0 Likes
  • 0 Replies

Hi everyone, I'm currently working with the Canvas API and I found the Get a single quiz question group endpoint. However, I couldn't find an endpoint that returns all question groups for a specific quiz. Does the Canvas API support fetching all ques...

  • 0 Likes
  • 1 Replies

We are using OpenStax textbooks in many of courses. We are also trying to keep the students in Canvas so we embedded the chapters of the OpenStax textbook in pages. The issue us that since the textbooks chapters are so long, we have a scroll bar insi...

  • 1 Likes
  • 1 Replies

Does anyone know which table in CD2 would contain the same information based on RubricAssessment objects that could be obtained via this API endpoint?  https://developerdocs.instructure.com/services/canvas/file.all_resources/rubrics   

  • 0 Likes
  • 1 Replies

I don't see the custom CSS and JS upload option on Canvas theme editor on my self-hosted canvas.Is this feature only available on Canvas Official enterprise editions?

  • 0 Likes
  • 1 Replies

Hi Canvas Community , I'm working with the Canvas LMS API and I'm using the POST /api/v1/courses/:course_id/quizzes endpoint to create quizzes programmatically. According to the documentation, the allowed values for quiz[quiz_type] are: practice_qu...

  • 0 Likes
  • 1 Replies

Hello Canvas Community, We are working on an integration using the Canvas LMS API, and are attempting to generate an access token for a student using the endpoint: POST /api/v1/users/:user_id/tokenshttps://www.canvas.instructure.com/doc/api/access_to...

  • 0 Likes
  • 2 Replies

I have been working for a while, and I have had the following query to get all submissions in a course: query MyQuery { course(id: "22424") { submissionsConnection { nodes { grade assignment { name } ...

  • 0 Likes
  • 2 Replies

Hello Canvas LMS Community, We're currently working with the Quiz Submissions API and ran into a couple of issues that we’d love some clarification on: Issue 1: Limited API Response When calling the endpoint to retrieve quiz submissions, the response...

  • 0 Likes
  • 2 Replies

We have 2 apps called Auralia and Musitian (same provider), they recently reached out to say that our names where showing incorrectly on their side e.g.Givename: SmithSurname: MaryWe check all the configuration for our users and the only thing we cou...

Community Member
Canvas Developers Group
  • 0 Likes
  • 0 Replies

Canvas allows for custom javascript to be uploaded, but the main way I can see online for tutorials regarding custom scripts is to use the <button> tag or the <a onclick="function()> which are both banned by canvas.How do you call on your javascript ...

Community Explorer
Canvas Developers Group
  • 0 Likes
  • 1 Replies

Hello community: For starters, I'm not a developer, but have a general understanding. For context, we are a for-profit trade school. As a SIS, we are using a CRM called Method.Me. Method uses REST APIWhat we are trying to accomplish is to pull grades...

  • 0 Likes
  • 2 Replies

Hello,  I found a couple of community posts on bulk publishing courses.  This one: https://community.canvaslms.com/t5/Canvas-LMS-Blog/How-to-list-teachers-who-have-published-unpublished-courses/ba-p/264923 Worked until my access to Google Drive was b...

  • 1 Likes
  • 2 Replies

I am using the API to list course migrations for my institution. The idea is to see which recently created courses have not had any content migrated into them, and then automatically do the migration. NB in the Canvas GUI, the procedure I am referrin...

  • 1 Likes
  • 3 Replies

I am looking for the current grades of the grading categories per enrollment.Do you know what API I can grab that information at?If it does not exist, can you create those endpoints and accessible via a API?For Example: I am looking for the API leadi...

  • 1 Likes
  • 3 Replies

Developer Blog

A user blog for Developers building things for Instructure products. Read tips and tricks or share your own.

This is a user script that allows teachers to bulk copy announcements from one of their courses to another course(s).  This process will create the announcements as the user using the script so the copied announcements will also show them as the auth...

Community Coach Community Coach
Canvas Developers Group
:

API

API Canvas

Custom JavaScript

Javascript

user script

userscript

  • 8 Likes
  • 7 Replies

These user scripts will add in an additional user identifier, such as their email address, in places that only show their name to help differentiate users.  This is especially useful for classes where students have the same name.

Community Coach Community Coach
Canvas Developers Group
:

API

API Canvas

Custom JavaScript

Javascript

user script

userscript

  • 1 Likes
  • 0 Replies

A Chrome Extension to enhance teacher To Do list with filter, search and sorting functionality.

Community Contributor
Canvas Developers Group
:

Chrome Extension

Enhanced To Do

Teacher Tools

  • 4 Likes
  • 1 Replies

This is a user script to automatically click the expand threads button when going to a discussion board.  It will also click the expand threads button when going to a new page of replies.

Community Coach Community Coach
Canvas Developers Group
:

API

API Canvas

Custom JavaScript

Javascript

user script

userscript

  • 5 Likes
  • 3 Replies

This user script provides the ability to bulk update the threaded reply setting of discussions in courses.

Community Coach Community Coach
Canvas Developers Group
:

API

API Canvas

Custom JavaScript

Javascript

user script

userscript

  • 1 Likes
  • 0 Replies

A Python admin tool for rendering subaccount hierarchy graphs for Canvas.   

Community Member
Canvas Developers Group
:

Admin

Admin Analytics

Administrator

Analytics

API Canvas

Canvas Admin

canvas api

developer tools

Developers

python

subaccounts

  • 1 Likes
  • 1 Replies

This is a user script to allow admins to bulk publish courses from the admin account course search page.

Community Coach Community Coach
Canvas Developers Group
:

API

API Canvas

bulk update

Custom JavaScript

Javascript

user script

userscript

  • 5 Likes
  • 9 Replies

I have developed a user script that can be used to bulk update enrollment states in a course.

Community Coach Community Coach
Canvas Developers Group
:

API

API Canvas

bulk update

Custom JavaScript

Javascript

user script

userscript

  • 1 Likes
  • 1 Replies

Many teachers set the course locale (which sets the language assumed for the course content); unfortunately, this also changes the user's GUI - so all of the menus are now in the language of the course locale. This is undesirable from many points of ...

Community Champion
Canvas Developers Group
:

Accessibility

  • 0 Likes
  • 1 Replies

A new Simple Search feature has been added to the Canvas LMS Mods (Basic) browser extension. This allows a user to search for content within a course or across their enrolled courses.

Community Coach Community Coach
Canvas Developers Group
:

API

API Canvas

Chrome Extension

Custom JavaScript

Javascript

  • 6 Likes
  • 24 Replies

Hi All, There have been a few posts in the Canvas LMS area asking about options for automatically deleting courses after and defined amount of time...   few years ago, I built this functionality into a python script that my institution runs on a dail...

Community Coach Community Coach
Canvas Developers Group
  • 2 Likes
  • 0 Replies

This is a follow-up of my last post on the community forum here,https://community.canvaslms.com/t5/Canvas-Developers-Group/Self-host-amp-Install-Canvas-LMS-on-your-own-server/td-p/575826Following the production guide created by Instructure for Canvas...

Community Explorer
Canvas Developers Group
:

All Users

  • 1 Likes
  • 1 Replies

Are you going to be at InstructureCon 2024?  Do you have interest in meeting some fellow developer-type people in-person?  We have arranged 2 different opportunities to connect this year!

Community Coach Community Coach
Canvas Developers Group
:

Developers

INSTRUCTURECON

  • 1 Likes
  • 0 Replies

Using CD2, it is possible to find out who made an anonymous post and who has read the post.

Community Contributor
Canvas Developers Group
:

Anonymous Discussion

cd2

  • 2 Likes
  • 0 Replies

We are using the following code to hide the anonymous discussion options at this time.  We will re-evaluate making this available in the future, but are not ready to support this functionality at this time since the identity of the student is also hi...

Community Coach Community Coach
Canvas Developers Group
:

Anonymous Discussion

CSS

Javascript

  • 6 Likes
  • 2 Replies

I am creating this blog as an area where we can share links to code repositories and projects with each other, as we discussed in the developers meetup yesterday.  If you have a project website, GitHub, etc that others might find useful, please share...

Community Coach Community Coach
Canvas Developers Group
:

Developers

Repositories

  • 6 Likes
  • 2 Replies

Years ago I used the API to find which LTI tools were used in a course, then switched to CD1 and now I'm using CD2.  I built a Tableau report with several filters, including: Type of course: sis, non-sis or allState of the course: published, unpublis...

Community Contributor
Canvas Developers Group
:

cd2

custom reports

external tool

  • 6 Likes
  • 11 Replies

I created a blog post in 2020 explaining how to bulk load and sync Canvas Avatar images using Powershell. https://community.canvaslms.com/t5/Canvas-Developers-Group/How-to-bulk-load-and-update-avatar-profile-pictures-with/ba-p/410101 Since then, I've...

Community Participant
Canvas Developers Group
  • 1 Likes
  • 0 Replies

I am working to have an AI LLM (ChatGPT 3.5 or better) generate QTI 2.1 XML that I can copy-paste into text files then ZIP and upload to Canvas to create Item Banks in New Quizzes.I have been successful in getting ChatGPT to generate a set of test qu...

Community Explorer
Canvas Developers Group
  • 5 Likes
  • 4 Replies

Sit back, relax, and let n8n do (most of) the tedious admin tasks for you. N8N is an open-source workflow automation tool that empowers you to harness the capabilities of Canvas backend systems, including Canvas API, Canvas Data, and Live Data, to st...

Community Contributor
Canvas Developers Group
  • 5 Likes
  • 0 Replies

Hello, Canvas Community!I'm thrilled to announce the R package called "vvcanvas". This package provides a convenient interface to interact with the Canvas Learning Management System (LMS) API, enabling users to authenticate, retrieve course informati...

Community Member
Canvas Developers Group
:

API

Canvas lms api

CRAN

R

  • 1 Likes
  • 0 Replies

Learn about some of the new features that I built and released in v3.0.0 of the Canvas LMS Mods (Basic) Chrome extension to provide course level reports primarily about course content.  The code for the extension is open-source if you would like to v...

Community Coach Community Coach
Canvas Developers Group
:

API

Chrome Extension

Custom JavaScript

custom reports

Javascript

report

  • 9 Likes
  • 10 Replies

Learn about some of the new features that I built and released in v3.0.0 of the Canvas LMS Mods (Basic) Chrome extension to enhance the experience of creating/editing rubrics.  The code for the extension is open-source if you would like to view and/o...

Community Coach Community Coach
Canvas Developers Group
:

Canvas rubric

Chrome Extension

Custom JavaScript

Javascript

  • 2 Likes
  • 7 Replies

Hi all, I've deployed an LTI 1.3 tool as a Discussion Topic Menu, and when I click the menu item in my course, I get back a json result, but I can't find the Discussion Topic ID in the json results.   Does anyone else have experience working with LTI...

Community Member
Canvas Developers Group
:

LTI 1.3

  • 0 Likes
  • 0 Replies

I recently updated my Canvas LMS Mods (Basic) Chrome extension to provide some new enhancements to the course search and admin flyout menu inspired by ideas and requests I have seen from other users in the community.

Community Coach Community Coach
Canvas Developers Group
:

API

API Canvas

Chrome Extension

Custom JavaScript

  • 15 Likes
  • 49 Replies

It's few months that I don't access the Canvas app installed on OVH VPS server. I tried now and it shows the directory of files, but not the login interface. Nothings has been changed since the last time I use it (december 2022)

Community Member
Canvas Developers Group
:

Professional Development

  • 0 Likes
  • 2 Replies

Hi all,I would like to attach a zip file to all of my students submissions. I have been able to upload the file via the Cavnas API. However, I cannot seem to get the file to attach a student's submission. Acccording to https://canvas.instructure.com/...

Community Novice
Canvas Developers Group
  • 0 Likes
  • 1 Replies

I need an access token to grab a list of line items during the LTI1.3 workflow. I am currently receiving an unsupported grant type error.I have seen claims that Canvas does not support this flow to issue access tokens for machine to machine API use.L...

Community Member
Canvas Developers Group
  • 0 Likes
  • 0 Replies

I'm a teacher, and I've been playing with the api in a few other sheets that I've found. It's got me wondering if I could use a google sheet with a series of my gradebooks brought from other sheets, and have it update the grades in canvas.

Community Member
Canvas Developers Group
  • 0 Likes
  • 2 Replies

Hi, I'm new

  • 0 Likes
  • 1 Replies

Product Blog: Developers

Blog posts from the Product blog for Developers on the Instructure Platform.

We're excited to announce the upcoming release of a new column, non_collaborative, in the Canvas Data 2 (CD2) Query API's groups and group_categories tables at 2025-06-12. This column helps clearly distinguish between standard collaborative groups an...

Instructure Instructure
The Product Blog
:

Canvas Data

Developers

  • 1 Likes
  • 4 Replies

We’re excited to announce an update to the context_external_tools table in the Canvas namespace of the DAP Query API. On 31st of March in 2025, we will be adding a new column: unified_tool_id: A unique identifier for the external tool, helping Canvas...

Instructure Instructure
The Product Blog
:

Canvas Data

Developers

Release Communications

  • 3 Likes
  • 4 Replies

We’re excited to announce the release of DAP CLI 1.4.0, which significantly boosts efficiency and ease of use by introducing multi-table operations. This release addresses a major customer pain point by allowing operations on all or selected tables w...

Instructure Instructure
The Product Blog
:

Canvas Data

Canvas LMS

Developers

Release Communications

  • 5 Likes
  • 7 Replies

We’re excited to announce updates to a new table in the Canvas namespace that will be available in your CD2/DAP Query API dataset starting February 10th. These changes enrich the dataset with additional context and expand the range of supported use c...

Instructure Instructure
The Product Blog
:

Canvas Data

Developers

Release Communications

  • 3 Likes
  • 6 Replies

We’re releasing DAP CLI version 1.3.1 today to address an issue that affected PostgreSQL users following our recent DAP Query API update. Yesterday, we introduced multiple new enum values across several tables in the DAP Query API, which unfortunatel...

Instructure Instructure
The Product Blog
:

Canvas Data

Developers

  • 6 Likes
  • 2 Replies

We’re excited to announce updates to multiple tables and columns in the Canvas namespace with new enumerated values (enums) that will be available in your CD2/DAP Query API dataset starting January 9th. These changes enrich the dataset with additiona...

Instructure Instructure
The Product Blog
:

Canvas Data

Developers

Intelligent Insights

Release Communications

  • 4 Likes
  • 7 Replies

We are excited to announce the release of DAP CLI & Lib 1.3.0, bringing new features, enhanced functionality, and critical updates based on your feedback. This update reinforces our commitment to improving developer tools and addressing the needs of ...

Instructure Instructure
The Product Blog
Comments closed
:

Canvas Data

Developers

Intelligent Insights

  • 3 Likes
  • 2 Replies

What's next for Ideas and Themes

Instructure Instructure
The Product Blog
Comments closed
:

Canvas LMS

Developers

Elevate Data Hub

Elevate Data Quality

Elevate Data Sync

Elevate K-12 Analytics

Elevate Standards Alignment

General Education

Impact

LearnPlatform

Mastery Connect

Mastery Item Bank

Mastery Item Bank Supplement...

Release Communications

Roadmap Processes

  • 11 Likes
  • 2 Replies

Get ready to shape the future of Instructure’s data capabilities! We’re running an Instructure Data Questionnaire to gather your valuable insights for our 2025 roadmap, focusing on cloud adoption and analytics trends. Your feedback will guide our fea...

Instructure Instructure
The Product Blog
Comments closed
:

Admin Analytics

Canvas Data

Developers

Intelligent Insights

New Quizzes

Roadmap Processes

  • 7 Likes
  • 7 Replies

We’re excited to introduce DAP CLI 1.2.0, featuring secure connections to MySQL and PostgreSQL, optimized memory usage for cloud environments, and improved error handling for parquet files. In addition, the CLI now logs system environment details for...

Instructure Instructure
The Product Blog
Comments closed
:

Admin Analytics

Canvas Data

Developers

Intelligent Insights

Release Communications

  • 6 Likes
  • 1 Replies

We are committed to providing a reliable and efficient service for your data needs, and as part of this commitment, we will be performing scheduled maintenance on our CD2 API infrastructure. This maintenance is essential for ensuring continued perfor...

Instructure Instructure
The Product Blog
Comments closed
:

Admin Analytics

Canvas Data

Canvas LMS

Developers

Intelligent Insights

Release Communications

Roadmap Processes

  • 2 Likes
  • 3 Replies

Discover how global collaboration is driving innovation and shaping the future of Canvas LMS. Dive into the highlights of our latest discovery session and see how we're committed to enhancing the educational experience for our diverse user community.

Instructure Instructure
The Product Blog
Comments closed
:

Canvas LMS

Developers

Roadmap Processes

  • 5 Likes
  • 0 Replies

We will be upgrading to the latest versions of jQuery and jQuery UI. If your institution uses custom JS/CSS, we recommend checking your beta instances.

Instructure Instructure
The Product Blog
Comments closed
:

Canvas Catalog

Developers

  • 2 Likes
  • 0 Replies

Major web browsers are beginning to phase out support for third-party cookies, a change that may have a significant impact on the functionality of LTI tools integrated with learning management systems such as Canvas. Although this change will not dir...

Instructure Instructure
The Product Blog
Comments closed
:

Canvas LMS

Developers

LTI Integrations

  • 5 Likes
  • 10 Replies

Starting June 19th, 2024, all HTTP responses from Canvas will transition to full lowercase response header names to align with industry best practices. This change impacts API users, browser users, and other clients.

Instructure Instructure
The Product Blog
Comments closed
:

Canvas LMS

Developers

  • 4 Likes
  • 13 Replies

Data Access Platform (DAP) CLI and Client Library v1.1.0 is now available.  Version 1.1.0 is a fast follow to our GA release to address some community identified issues with a new feature enhancement to prepare us for future updates.

Instructure Alumni Instructure Alumni
The Product Blog
Comments closed
:

Admin Analytics

Canvas Data

Developers

Release Communications

  • 3 Likes
  • 5 Replies

Data Access Platform CLI & Client Library is now GA

Instructure Alumni Instructure Alumni
The Product Blog
Comments closed
:

Canvas Data

Canvas LMS

Developers

  • 5 Likes
  • 29 Replies

We are updating jQuery in Canvas and your custom JavaScript might break if you leverage jQuery in it

Instructure Instructure
The Product Blog
Comments closed
:

Canvas LMS

Developers

  • 6 Likes
  • 20 Replies

Canvas is changing its LTI 1.3 OIDC Auth domain to align with security practices and to support the new LTI 1.3 Platform Storage specification - which lets LTI tools still function even when browsers disable cross-site 3rd-party cookies. LTI 1.3 tool...

Instructure Instructure
The Product Blog
Comments closed
:

Canvas LMS

Developers

LTI Integrations

Release Communications

  • 2 Likes
  • 47 Replies

We decided to implement New Quizzes Public API in GraphQL and here's the first information you need to know about and what you can expect from us regarding the documentation of the API.

Instructure Instructure
The Product Blog
Comments closed
:

Canvas LMS

Developers

New Quizzes

  • 5 Likes
  • 20 Replies

Instructure has a long history of opening the systems we build to extension and enhancement.  When we build products like Canvas, we want to make sure they work well for ALL our customers. After a long series of forays and experiments examining wheth...

Instructure Alumni Instructure Alumni
The Product Blog
Comments closed
:

Canvas LMS

Developers

  • 8 Likes
  • 3 Replies

Let's discuss New Quizzes Public API's foundation: GraphQL or REST? 

Instructure Instructure
The Product Blog
Comments closed
:

Canvas LMS

Developers

New Quizzes

  • 7 Likes
  • 16 Replies

As I looked at my calendar this month I was reminded this May 13 (today) marks an anniversary of when LTI support was deployed to Canvas. This year will be 10 years! \o/

Instructure Alumni Instructure Alumni
The Product Blog
Comments closed
:

Canvas LMS

Developers

LTI Integrations

  • 7 Likes
  • 0 Replies

If you are using Developer Keys, ensure your HTTP Redirect URIs are secure before March 3.

Instructure Alumni Instructure Alumni
The Product Blog
Comments closed
:

Canvas LMS

Developers

  • 0 Likes
  • 1 Replies

Recently, IMS Global announced the deprecation schedule of the LTI 1.0, 1.1, 1.2, and 2.0 specifications. Going forward, LTI Core version 1.3 (LTI 1.3) will be the recommended specification for new integrations and any integrations wishing to upgrade...

Instructure Alumni Instructure Alumni
The Product Blog
Comments closed
:

Canvas LMS

Developers

LTI Integrations

  • 6 Likes
  • 40 Replies

Since its inception, Canvas has always been open and transparent about our business and our features. We believe in being open. We believe in allowing you to use Canvas the way you want to use Canvas. And branding is one component that we’ve been wor...

Instructure Alumni Instructure Alumni
The Product Blog
Comments closed
:

Canvas LMS

Developers

  • 31 Likes
  • 64 Replies