Canvas LTI 1.3 Tool Installation & API Set Up

LTI 1.3 Tool Installation

The VitalSource LTI Tool is a seamless integration for the Canvas Learning Management System (LMS), designed to support institutions participating in inclusive access and equitable access bookstore programs. These programs aim to ensure all students have affordable, day-one access to the course materials they need to succeed.

Video

 

🎓 For Students

  • Review and manage their participation in bookstore access programs.
  • Make informed decisions about whether to opt in or opt out of course material programs offered through the campus bookstore.
  • Shop for course materials not included in bookstore access programs
  • Access digital course materials

👩‍🏫 For Faculty

  • Access their own copies of digital course materials, ensuring they’re prepared and aligned with student resources.
  • Create direct links to specific content—like chapters or pages—within their Canvas courses.

🛡️ For Admins

We recommend installing the VitalSource LTI 1.3 tool with the Paste JSON method. Our JSON file include the following settings. These settings are aligned with our best practices for bookstore access programs.

  • Privacy settings to public
  • Support for the following LTI-A services:
    • Assignments & Grades
    • Names & Roles Provisioning
    • Deeplinking
  • Link placements in the following areas:
    • Course Navigation
    • Link Selection
    • Assignment Selection
    • Editor Button

🛠️ How to Install the VitalSource LTI 1.3 Tool

🧭 Step 1: Navigate to Developer Keys

  1. In the left navigation, click Developer Keys.
  2. Click the + Developer Key button.
  3. Choose LTI Key from the dropdown menu.

📄 Step 2: Paste the JSON Configuration

  1. Under Method, select Paste JSON.
  2. In the large text box, paste the full LTI 1.3 configuration JSON (example below).
  3. Ensure the title is clear (e.g., Course Materials), and do not check “Public”.
  4. Click Save at the bottom of the form.

🔑 Step 3: Get the Client ID

  1. After saving, you’ll return to the list of Developer Keys.
  2. Find the entry you just created (look for the title, e.g., Course Materials).
  3. Make sure the State is toggled to off. You’ll want to leave the VitalSource LTI tool off until you are ready to deactivate the Emerald LTI tool.
  4. Copy the Client ID listed in the table (you’ll need this in the next step).

⚙️ Step 4: Add the App to Canvas

  1. Go to Settings in the same account or sub-account.
  2. Click the Apps tab.
  3. Click + App (top-right corner).
  4. For Configuration Type, select By Client ID.
  5. Paste the Client ID you copied earlier.
  6. Click Submit.
  7. Copy the Deployment ID that is generated (you’ll need this in the next step).

📬 Step 5: Notify VitalSource Implementation Team

To finalize the configuration, enter the LTI registration details here for the VitalSource team.


Step 6: Switching tools

  1. In the left navigation, click Developer Keys.
  2. Find the Emerald LTI developer key and toggle the State to off.
  3. Find the VitalSource LTI developer key and toggle the State to on.

Canvas API Set-up

VitalSource utilizes Canvas API services to complement our LTI tool. We use services for two purposes:

  1. Course ingestion aimed to streamline pairing course adoptions submitted with SIS-based course data to Canvas courses, including the dynamic handling of crosslisted and reset courses
  2. Enrollment ingestion for pre-provisioning digital course materials to enrolled students at the start of their course

We recommend creating an admin role and user specifically for the VitalSource integration, as this will allow you to limit the permissions given to the VitalSource application to only what is needed to support your integration.

Note: These instructions include the permissions required for course and enrollment ingestion. If your campus utilized the RedShelf Automated Tool Link Placement service, we can continue to support that. We’ll need more additional scopes and permissions than what are listed here, as detailed here.

🛠️ How to set up Canvas APIs

🗂️ Step 1: Create an admin role

  1. Navigate to the Admin tab.
  2. Select the Root Account option.
    • Click Permissions → Account Roles → Add Role
    • Role Name: VitalSource API Role, and click Save\
    • Assign the following permissions to the role:
      • Courses - view list
      • Course content – view
      • Manage Course content - add/edit/delete
      • Manage LTI - add/edit/delete
      • SIS Data – read
      • Users - view list
      • Users - view login IDs
      • sers - view primary email address

👩‍🔧 Step 2: Create a user

  1. Create a new User in Canvas.
  2. Click Admin → People → + People
    • Full Name: VitalSource API Integration
    • Email: integrations@vitalsource.com
    • SIS ID: vst_integration
    • Do not check Email the user about this account creation
    • Click Add User
  3. On the People page, locate this new user and click on their name
    • Under Login Information, click the Edit (pencil) button, leave all fields as is, and click Update Login
    • Click Edit again and set up a password for this user.
      • This username and password will be used to authenticate the integration. Be sure to hold on to the credentials.
  4. Add the Account Role to the new user
    • Admin → Settings → Admins
    • Scroll down to the bottom of the page and click + Account Admins
    • Select the VitalSource API Role from the drop-down and enter vst_integration in the blank box
      • NOTE: Do not enter any other information, such as an email address, in this field. Entering anything other than "vst_integration" will cause the API to malfunction.
    • Click Continue
    • Click OK

🛡️ Step 3: Developer Key Setup for VitalSource API Integration

  1. Log in to Canvas, navigate to the Admin tab, and select the account under which the VitalSource-enabled courses are set up.
  2. Click Developer Keys from the left navigation menu.
  3. Click + Developer Key and select + API Key.
  4. Complete the Key Settings with the following information:
  5. Enforce Scopes
    • Disabled: If you choose to leave this disabled, VitalSource will have permission to call all available Canvas API endpoints.
    • Enabled (recommended): If you would like to enforce scopes, please select the "Allow Include Parameters" option and enable the following required endpoints:
      • Accounts
        • url:GET|/api/v1/accounts/:account_id/courses
        • url:GET|/api/v1/accounts
      • Courses
        • url:GET|/api/v1/courses
        • url:GET|/api/v1/courses/:id
      • Enrollment Terms
        • url:GET|/api/v1/accounts/:account_id/terms
        • url:GET|/api/v1/accounts/:account_id/terms/:id
      • Enrollments
        • url:GET|/api/v1/courses/:course_id/enrollments
      • Sections
        • url:GET|/api/v1/courses/:course_id/sections
        • url:GET|/api/v1/courses/:course_id/sections/:id
        • url:GET|/api/v1/sections/:id
      • Users
        • url:GET|/api/v1/accounts/:account_id/users
        • url:GET|/api/v1/users/:id
  6. Click Save Key
  7. On the Developer Keys page, locate the Key you just created and toggle the State to ON
  8. Click Show Key in the Details column, and locate the Client ID.
  9. Enter your credentials here for the VitalSource team.

Authenticate the API integration

  1. Your VitalSource contact will reply back with an API authentication URL
    • Log out of your personal Canvas admin account
    • Click on the authentication URL
    • Sign in with the system user and password created in step 2
  2. Click Authenticate. You should receive a Success! message.
    • If you receive an error, report this to your VitalSource implementation contact.
    • If you receive the Success! message, locate the Course Material link within the course in your upcoming term and click the link (this will initiate the API sync).
      • If there are no courses with the Course Material link currently installed for the upcoming term, please add to either a real or test course and click.
        • This will initiate the API sync and allow us to begin pulling course and roster information for the term.
Was this article helpful?