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.

Read More on Canvas Integrations?

Here are other articles we’ve written on Canvas to help you on your journey:

If you're looking for a partner who can help guide you through developing Canvas integrations (like these), then let’s introduce ourselves. We’re Edlink!