Canvas is the most widely used learning management system in the United States. Several K-12 schools and universities throughout the country have adopted Canvas and are looking for edtech vendors who have solutions that are interoperable with the LMS.

There are two ways to provide an LMS integration with Canvas: through API integration or through LTI® integration. Our team frequently receives questions about the difference between the two and how they work. In this article, we'll discuss these two methods and how to use them to integrate with Canvas.


LTI Integration for Canvas

LTI (or, Learning Tools Interoperability) is a standard from the IMS Global Learning Consortium® that several learning platforms have adopted to provide interoperability. Applications that are LTI-compliant can work with any platform that is also LTI-compliant, as long as it's a supported version of LTI.

Canvas supports the most recent releases of the LTI standard: LTI v1.3 and LTI Advantage. Canvas allows users to launch into an LTI app from inside Canvas, itself. Typically, the app appears inside of an iframe in Canvas. Since Canvas supports LTI Advantage, your app can use the improved grade passback and enrollment provisioning services offered by LTI Advantage.

Many Canvas LTI-compliant apps can be found at Instructure's EduAppCenter portal. This portal also contains information about configuring and building LTI apps for Canvas and other learning management systems, such as Moodle, Blackboard, and Brightspace.


API Integration for Canvas

API integration allows apps to directly communicate with Canvas through the proprietary Canvas API. Users can authenticate into an external app using their Canvas credentials through an OAuth 2.0 workflow. Once the app and Canvas authenticate the user, then the app can act on behalf of the user. This means the app can perform functions, such as sending back grades to the users gradebook or creating new assignments, in Canvas programmatically via the Canvas API. This is all done while the user is on the app and not in Canvas.

Canvas has two different sets of APIs that developers can use to build integrations: the Canvas REST API and the Canvas GraphQL API. The Canvas GraphQL API is more recent and new features from Canvas will be primarily developed in GraphQL. However, the GraphQL API does not currently include all of the same requests that the REST API covers. For example, scopes that are enforced via a Canvas developer key only address REST API requests.


Should I Use API or LTI to Create a Canvas Integration?

The type of integration that you should build will depend on the needs of your customer. Some schools particularly need LTI integration with their Canvas environments. Others may be looking for a solution that includes features that are better supported by API integration, such as school or district-wide rostering and assignment creation. Thus, having solutions for both situations can prove to be valuable when trying to work with a multitude of schools.

If you need help making sure that your works with any school's LMS, you should check out Edlink. We have deep experience with Canvas and have developed LTI and API solutions for our clients with schools that use Canvas. Our API can also help your app integrate with Google Classroom, Blackboard, D2L, and other learning platforms. If you'd like to learn more, please email us at accounts@ed.link or leave us a message 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.