---
title: Integrating Cadmus + Canvas
description: Follow these steps to integrate Cadmus as an external tool in Canvas using LTI 1.3 and Canvas API integrations
---

[Skip to content](https://support.cadmus.io/integrations/canvas#main-content)

English

Show submenu for translations

[Contact Support](https://support.cadmus.io/kb-tickets/new?hsLang=en)

[![Cadmus Wordmark & Logo\_Master File\_Cadmus Icon\_Ink.png\]](https://support.cadmus.io/hs-fs/hubfs/Cadmus%20Wordmark%20%26%20Logo_Master%20File_Cadmus%20Icon_Ink.png?height=40&name=Cadmus%20Wordmark%20%26%20Logo_Master%20File_Cadmus%20Icon_Ink.png)](https://support.cadmus.io/?hsLang=en)

- [Cadmus](https://cadmus.io/)
- [Contact Support](https://support.cadmus.io/kb-tickets/new)

Open main navigation

Close main navigation

- [Cadmus](https://cadmus.io/)
- [Contact Support](https://support.cadmus.io/kb-tickets/new)
- English
  
  Show submenu for translations
- [Contact Support](https://support.cadmus.io/kb-tickets/new)

 What would you like to learn?

- There are no suggestions because the search field is empty.

1. [Cadmus Help Docs](https://support.cadmus.io/?hsLang=en)
2. [Admins](https://support.cadmus.io/admins?hsLang=en)
3. [Integrations](https://support.cadmus.io/admins?hsLang=en#integrations)

# Integrating Cadmus + Canvas

## Follow these steps to integrate Cadmus as an external tool in Canvas using LTI 1.3 and Canvas API integrations

Cadmus supports the following LTI 1.3 enabled integrations:

1. Launching into Cadmus as a configured external LTI Tool / Application. 
2. Grade pass-back through the [*LTI 1.3 Assignment and Grade Services*](https://www.imsglobal.org/spec/lti-ags/v2p0/).
3. LTI Membership service ([Names and Role Provisioning Services](https://www.imsglobal.org/spec/lti-nrps/v2p0)) for Student list synchronisation between Cadmus and the LMS.

Cadmus supports the following REST API enabled integrations:

1. Anonymous marking via [Canvas SpeedGrader](https://support.cadmus.io/teachers/marking-with-canvas-speedgrader?hsLang=en)
2. [Syncing Canvas sections as Cadmus marking groups](https://support.cadmus.io/syncing-canvas-sections-as-marking-groups?hsLang=en)

#### To integrate Cadmus and Canvas, you will need to:

1. [Add an LTI Developer Key for Cadmus](https://support.cadmus.io/integrations/canvas#add-developer-key)
2. [Add Cadmus as an External App](https://support.cadmus.io/integrations/canvas#add-external-app)
3. [Add an API Developer Key for Cadmus](https://support.cadmus.io/integrations/canvas#api-developer-key)
4. [Sha](https://support.cadmus.io/integrations/canvas#share-keys)[re keys with Cadmus](https://support.cadmus.io/integrations/canvas#share-keys)

The *Client IDs* and *Deployment IDs* generated through this process **must be shared with Cadmus to complete the integration**.

 

 

### Stage 1: Add an LTI Developer Key for Cadmus

Begin by creating a new *Developer Key (LTI Key)* for Cadmus. This will configure the LTI 1.3 OAuth2 settings, and generate a *Client ID* for the Cadmus external Tool in your LMS.

1. Log into Canvas as an administrator.
2. Navigate to your institution’s **Account** page via the **Admin** tab.
3. Click **Developer keys** from the menu list (on the left side of the page).
4. Click the **+ Developer Key** button, then add **+ LTI Key**.
   
   ![canvas-1@2x](https://support.cadmus.io/hs-fs/hubfs/%5BHelp%20Docs%5D%20Admin%20Images/canvas-1@2x.jpg?width=670&name=canvas-1@2x.jpg)
5. Input the following *Key Settings*:
   
   #### Key Name
   
   ```
   Cadmus LTI 1.3
   ```
   
   #### Owner Email
   
   ```
   admin@cadmus.io
   ```
   
   #### **Redirect URI** (*Please note this is location-specific*)
   
   | **AU** | ``` https://api.cadmus.io/accounts/lti1p3/launch ``` |
   | --- | --- |
   | **UK** | ``` https://api-uk.cadmus.io/accounts/lti1p3/launch ``` |
   | **US** | ``` https://api-us.cadmus.io/accounts/lti1p3/launch ``` |
6. Set the *Configure Method* to **Enter URL** then use the following URL for fetching the configuration JSON:
   
   #### **Config URL** (*Please note this is location-specific*)
   
   | **AU** | ``` https://api.cadmus.io/accounts/lti1p3/canvas_config.json ``` |
   | --- | --- |
   | **UK** | ``` https://api-uk.cadmus.io/accounts/lti1p3/canvas_config.json ``` |
   | **US** | ``` https://api-us.cadmus.io/accounts/lti1p3/canvas_config.json ``` |
7. (Optional) Ensure LTI **Custom Fields** are added from the above configuration if they are being manually added. These enable extra features in LTI services used by Cadmus.
8. Click **Save** to confirm these settings.
9. A new *Cadmus LTI 1.3* key entry will appear in the table on the *Developer keys* page.
10. Under the *State* column, toggle the switch to **ON**.
11. Under the *Details* column, you will find an ID number. This is your new *Client ID*.
12. **Record or copy this Client ID **— you will need it in the following stages of this integration.
    
    ![canvas-2@2x](https://support.cadmus.io/hs-fs/hubfs/%5BHelp%20Docs%5D%20Admin%20Images/canvas-2@2x.jpg?width=670&height=682&name=canvas-2@2x.jpg)

### Stage 2: Add Cadmus as an External App

Now that Cadmus has been registered with a developer key, you will need to create an External App for staff to access Cadmus.  

1. From the Admin tab, click **Settings** from the left-hand-side menu.
2. Navigate to the **Apps** tab.
3. Click **View App Configurations**.
4. Click the **+ App** button.
   
   ![canvas-3@2x](https://support.cadmus.io/hs-fs/hubfs/%5BHelp%20Docs%5D%20Admin%20Images/canvas-3@2x.jpg?width=670&name=canvas-3@2x.jpg)
5. Under *Configuration Type*set **By Client ID.**
6. In the *Client ID* input field paste the **Client ID you recorded in Stage 1.**
7. Click **Submit**.
   
   ![canvas-4@2x](https://support.cadmus.io/hs-fs/hubfs/%5BHelp%20Docs%5D%20Admin%20Images/canvas-4@2x.jpg?width=670&name=canvas-4@2x.jpg)
8. A new *Cadmus* application entry will appear in the table on the *External Apps* page. Click the **Settings icon** in the right column, then click **Deployment ID**.
9. **Record or copy this Deployment ID** — you will need it in the following stages of this integration.
   
   ![canvas-5@2x](https://support.cadmus.io/hs-fs/hubfs/%5BHelp%20Docs%5D%20Admin%20Images/canvas-5@2x.jpg?width=670&name=canvas-5@2x.jpg)

**Note**: Instead of making Cadmus available to all subjects, it can be added as an External App within a single subject. To do this, go to the Canvas page for the subject/course you would like to install Cadmus within and complete all steps in Stage 2 from there. **Each installation will generate a unique Deployment ID**. All of the Deployment IDs must be [shared with Cadmus](https://support.cadmus.io/integrations/canvas#share-keys). 

 

 

### Stage 3: Add an API Developer Key for Cadmus

Additional integration functionality not accessible via LTI 1.3 can be enabled by providing Cadmus with [Canvas REST API access via OAuth2](https://canvas.instructure.com/doc/api/file.oauth.html). The credentials are created as a Canvas API Developer Key. 

The previously created **LTI Developer Key is independent of an API Developer Key**. The LTI Key's Client ID creates an LTI 1.3 link between Cadmus and Canvas. The API Key is needed to enable deeper integration with Canvas. **The LTI Key is still the primary key needed to connect Cadmus and Canvas. **

Begin by creating a new *Developer Key (API Key)* for Cadmus. This will generate OAuth2 credentials which Cadmus can use to access user data on request. The credentials include a *Client ID (Developer Key) *and a *Client Secret(Developer Key Secret).*

1. Navigate back to your institution’s **Account** page via the **Admin** tab.
2. Click **Developer Keys** on the left-hand-side menu.
3. Click the **+ Developer Key** button, then add **+ API Key**
4. Input the following *Key Settings*:
   
   #### Key Name
   
   ```
   Cadmus Platform
   ```
   
   #### Owner Email
   
   ```
   admin@cadmus.io
   ```
   
   #### **Redirect URIs** (*Please note these are location-specific*)
   
   | **AU** | ``` https://api.cadmus.io/cadmus/auth/canvas/callback ``` |
   | --- | --- |
   | **UK** | ``` https://api-uk.cadmus.io/cadmus/auth/canvas/callback ``` |
   | **US** | ``` https://api-us.cadmus.io/cadmus/auth/canvas/callback ``` |
   
   #### Icon URL
   
   ```
   https://cadmus.io/static/logo100.png
   ```
   
   #### Notes
   
   ```
   Canvas REST API access for Cadmus
   ```

    
5. Toggle **Enforce Scopes** to On.
6. Select **Allow Include Parameters**.
7. Select **Read only (GET)**.
8. Click **Save** to confirm these settings.
   
   ![canvas-7@2x](https://support.cadmus.io/hs-fs/hubfs/%5BHelp%20Docs%5D%20Admin%20Images/canvas-7@2x.jpg?width=670&name=canvas-7@2x.jpg)
9. A new *Cadmus API* key entry will appear in the table on the *Developer keys* page.
10. Under the *State* column, toggle the switch to **ON**.
11. Under the *Details* column, you will find an ID number. This is your new *API Client ID*.
12. Click **Show Key** to view the full key. This is your new *API Client Secret.*
13. **Record** **or copy this API Client ID and API Client Secret** — you will need to share these keys with us. 

 

 

 

### Stage 4: Share keys with Cadmus

To complete the integration process in Canvas, you will need to share some important details with Cadmus. We will use this information to identify and authenticate your integration.

Please email the following details to [integrations@cadmus.io](mailto:integrations@cadmus.io):

- LTI Client ID *(LTI Developer Key ID)*
- All LTI app Deployment ID(s) 
- API Client ID *(API Developer Key ID)*
- API Client Secret *(API Developer Key)*
- Canvas URL of your institution
- Canvas Launch Environment: \[ One of the following: *Production*, *Beta* or *Test *\]

 

Using the Canvas URL and Canvas Launch Environment, we will be able to determine the OAuth2/OIDC endpoints [as indicated here](https://canvas.instructure.com/doc/api/file.lti_dev_key_config.html). 

- [Teachers](https://support.cadmus.io/teachers?hsLang=en#main-content)

    - [Introduction](https://support.cadmus.io/teachers?hsLang=en#introduction)
    - [Setting up assessments](https://support.cadmus.io/teachers?hsLang=en#setting-up-assessments)
    - [Managing your class](https://support.cadmus.io/teachers?hsLang=en#managing-your-class)
    - [Turnitin + Cadmus](https://support.cadmus.io/teachers?hsLang=en#turnitin-cadmus)
    - [Marking + feedback](https://support.cadmus.io/teachers?hsLang=en#marking-feedback)
    - [Exams](https://support.cadmus.io/teachers?hsLang=en#exams)
    - [Drafts](https://support.cadmus.io/teachers?hsLang=en#drafts)
    - [Insights](https://support.cadmus.io/teachers?hsLang=en#insights)
    - [Students working](https://support.cadmus.io/teachers?hsLang=en#students-working)
    - [FAQs + Troubleshooting](https://support.cadmus.io/teachers?hsLang=en#faqs-troubleshooting)
    - [Multi-format Assessments](https://support.cadmus.io/teachers?hsLang=en#multi-format-assessments)
    - [Group Assessments](https://support.cadmus.io/teachers?hsLang=en#group-assessments)
    - [Oral Assessments](https://support.cadmus.io/teachers?hsLang=en#oral-assessments)
- [Students](https://support.cadmus.io/students?hsLang=en#main-content)

    - [Introduction](https://support.cadmus.io/students?hsLang=en#introduction)
    - [Working in Cadmus](https://support.cadmus.io/students?hsLang=en#working-in-cadmus)
    - [Submitting](https://support.cadmus.io/students?hsLang=en#submitting)
    - [Grades + Feedback](https://support.cadmus.io/students?hsLang=en#grades-feedback)
    - [Drafts](https://support.cadmus.io/students?hsLang=en#drafts)
    - [FAQs + Troubleshooting](https://support.cadmus.io/students?hsLang=en#faqs-troubleshooting)
    - [Multi-format Assessment](https://support.cadmus.io/students?hsLang=en#multi-format-assessment)
    - [Group Assessments](https://support.cadmus.io/students?hsLang=en#group-assessments)
    - [Oral Assessments](https://support.cadmus.io/students?hsLang=en#oral-assessments)
- [Admins](https://support.cadmus.io/admins?hsLang=en#main-content)

    - [Integrations](https://support.cadmus.io/admins?hsLang=en#integrations)
- [Release Notes](https://support.cadmus.io/release-notes?hsLang=en)
- [Privacy Policy](https://support.cadmus.io/privacy-policy?hsLang=en)

- [Cadmus](https://cadmus.io/)
- [Video Tutorials](https://cadmus.io/video-tutorials/)
- [Contact Support](https://support.cadmus.io/kb-tickets/new)
- [System Status](https://cadmus.statuspage.io/)

[![](https://support.cadmus.io/hs-fs/hubfs/Cadmus%20Wordmark%20%26%20Logo_Master%20File_Cadmus%20Wordmark_Berry.png?width=100&height=100&name=Cadmus%20Wordmark%20%26%20Logo_Master%20File_Cadmus%20Wordmark_Berry.png)](http://cadmus.io)

<https://www.linkedin.com/company/cadmus-io/> <https://twitter.com/cadmus_io> <https://www.facebook.com/cadmus.io/>

Copyright © 2026, Cadmus