Canvas

Learning management system

Go to site
Explore
/
Apps
/
Canvas

Canvas API Integrations

Build and run workflows using the Canvas API. Use 1000s of source-available triggers and actions across 1000+ apps. Or write custom code to integrate any app or API in seconds.

Overview

With the Canvas API, you can build applications that:

  • Create and manage courses
  • Add and remove users from courses
  • Submit and grade assignments
  • Create and manage quiz questions
  • View analytics about how students are using the course
  • And much more!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { axios } from "@pipedream/platform"
export default defineComponent({
  props: {
    canvas: {
      type: "app",
      app: "canvas",
    }
  },
  async run({steps, $}) {
    return await axios($, {
      url: `https://${this.canvas.$auth.domain}/api/v1/users/self`,
      headers: {
        Authorization: `Bearer ${this.canvas.$auth.oauth_access_token}`,
      },
    })
  },
})

Authentication

Canvas uses OAuth authentication. When you connect your Canvas account, Pipedream will open a popup window where you can sign into Canvas and grant Pipedream permission to connect to your account. Pipedream securely stores and automatically refreshes the OAuth tokens so you can easily authenticate any Canvas API.

Pipedream requests the following authorization scopes when you connect your account:

OAuth Request Configurations:
  1. authorization
    GEThttps://{{custom_fields.domain}}/login/oauth2/auth?client_id={{custom_fields.client_id}}&redirect_uri={{oauth.redirect_uri}}&state={{oauth.state}}&response_type=code&scope={{oauth.space_separated_scopes}}
  2. accessToken
    POSThttps://{{custom_fields.domain}}/login/oauth2/tokencontent-type: application/x-www-form-urlencodedaccept: application/json
    client_id={{custom_fields.client_id}}&client_secret={{custom_fields.client_secret}}&redirect_uri={{oauth.redirect_uri}}&grant_type=authorization_code&code={{oauth.code}}&replace_tokens=false
  3. refreshToken
    POSThttps://{{custom_fields.domain}}/login/oauth2/tokencontent-type: application/x-www-form-urlencodedaccept: application/json
    client_id={{custom_fields.client_id}}&client_secret={{custom_fields.client_secret}}&grant_type=refresh_token&refresh_token={{oauth.refresh_token}}