Canvas by Instructure is the most widely used LMSs in K-12. If you're part of an edtech company working with schools that use Canvas, you've probably been asked about how your app integrates with Canvas.

Canvas is a self-hosted and open source platform. Canvas supports integration through its APIs and through the LTI® standard (including LTI 1.3 and LTI Advantage). In this article, we'll cover some of the quirks of Canvas integration and how it can be surprisingly challenging.

Canvas GraphQL API vs. REST API

Canvas actually has two sets of APIs: a Graph QLAPI and a REST API. The REST API came first and there are many apps that use the REST API to integrate with Canvas instances. However, Canvas states in its documentation that the GraphQL API will be the primary focus for future development.

That being said, the GraphQL API doesn't replicate all of the functionality that is provided by the REST API. For example, you cannot scope GraphQL endpoints when creating a developer key. Thus, it can understandably be difficult to determine which API use when developing Canvas integrations.

Canvas Developer Keys

Unlike other learning management systems that support API integrations, Canvas requires school administrators to generate developer keys for each connected app. This can cause several problems.

For starters, not every admin is used to creating developer keys. When working with a school to integrate their Canvas environment with your platform, you may need to directly assist IT admins to create them.

Furthermore, developer keys are very powerful and can be a security vulnerability if exposed to a malicious third-party. You'll need a way for IT admins to securely send you the developer key ID and secret. This can be done through secure HTTPS web forms or through a key sharing tool, such as Keybase. Having a secure key-sharing solution built into your onboarding process for IT admins can go a long way into building trust and keeping the your clients' data safe.

Self-Hosted Canvas Environments

Canvas environments are self-hosted by the district or school. Thus, updates to Canvas installations must be pushed by IT administrators of the school. If an administrator does not make regular updates, it can affect the compatibility of your application with the LMS.


These three challenges are just a subset of some of the issues you could run into while integrating with Canvas. LMS integrations are usually not as straight-forward as they might seem at first. In fact, you should take into accounts the differences and quirks of each platform when you're building our your own integrations.

If you're looking for some help in getting your app integrated with Canvas, we'd love to chat! Our team at Edlink has worked with several publishers and developers to get their platforms integrated with Schoology. In fact, the Edlink API can also get your app connected to other LMSs, including Schoology, Blackboard, Microsoft Teams, and others. To learn more about what we do and how we can help, please give us a shout at accounts@ed.link or at our support page.

Learning Tools Interoperability® (LTI®) is a trademark of the IMS Global Learning Consortium, Inc. (www.imsglobal.org). Edlink LTI integrations are not certified by the IMS Global Learning Consortium, Inc.