Setu Recipes: reusable digital workers across every app.Browse templates

Integrations / Canvas LMS

Canvas LMS

Canvas LMS: courses, assignments, enrollments, submissions, announcements and grading, with your access token and your school's Canvas address.

8 actions API key 7 read1 write Calls acme.instructure.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "canvas" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

This toolkit uses a single credential and requests no scopes.

Actions

Get assignmentreadcanvas.get_assignmentRead one Canvas assignment: name, description, due and lock dates, points, grading type and submission types.
InputTypeDescription
course_idstringRequiredCanvas course id
assignment_idstringRequiredAssignment id
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canvas.get_assignment",
  input: {
    "course_id": "<course_id>",
    "assignment_id": "<assignment_id>"
  },
});
Get coursereadcanvas.get_courseRead one Canvas course: name, code, state, start and end dates.
InputTypeDescription
course_idstringRequiredCanvas course id
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canvas.get_course",
  input: {
    "course_id": "<course_id>"
  },
});
Grade or comment on submissionwritecanvas.grade_submissionSet a grade and/or add a text comment on one student's submission. Needs permission to manage grades in the course. The student can see the grade once it is posted.
InputTypeDescription
course_idstringRequiredCanvas course id
assignment_idstringRequiredAssignment id
user_idstringRequiredStudent's user id
posted_gradestringOptionalPoints like 13.5, percent like 40%, a letter, or pass/fail
text_commentstringOptionalComment shown to the student
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canvas.grade_submission",
  input: {
    "course_id": "<course_id>",
    "assignment_id": "<assignment_id>",
    "user_id": "<user_id>"
  },
});
List course announcementsreadcanvas.list_announcementsList announcements posted in a Canvas course (title, message, posted time). Defaults to the last 14 days unless dates are given.
InputTypeDescription
course_idstringRequiredCanvas course id
start_datestringOptionalOn or after this date, yyyy-mm-dd
end_datestringOptionalOn or before this date, yyyy-mm-dd
per_pageintegerOptionalResults per page
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canvas.list_announcements",
  input: {
    "course_id": "<course_id>"
  },
});
List assignmentsreadcanvas.list_assignmentsList assignments in a Canvas course (id, name, due date, points, submission types), optionally searched by title or filtered by bucket such as upcoming or overdue.
InputTypeDescription
course_idstringRequiredCanvas course id
search_termstringOptionalPart of the assignment title
bucketstringOptionalFilter
order_bystringOptionalSort order
per_pageintegerOptionalResults per page
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canvas.list_assignments",
  input: {
    "course_id": "<course_id>"
  },
});
List coursesreadcanvas.list_coursesList the courses the token's owner is enrolled in or teaches (id, name, code, state), optionally filtered by enrollment type or state.
InputTypeDescription
enrollment_typestringOptionalOnly courses where you have this role
enrollment_statestringOptionalOnly courses with this enrollment state
per_pageintegerOptionalResults per page
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canvas.list_courses",
  input: {},
});
List course enrollmentsreadcanvas.list_enrollmentsList the people enrolled in a Canvas course with their role and state, optionally limited to one role, state or user.
InputTypeDescription
course_idstringRequiredCanvas course id
typestringOptionalEnrollment type
statestringOptionalEnrollment state (default active and invited)
user_idstringOptionalOnly this user's enrollments
per_pageintegerOptionalResults per page
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canvas.list_enrollments",
  input: {
    "course_id": "<course_id>"
  },
});
List assignment submissionsreadcanvas.list_submissionsList all students' submissions for one assignment (user id, score, grade, state, submitted time, late flag).
InputTypeDescription
course_idstringRequiredCanvas course id
assignment_idstringRequiredAssignment id
per_pageintegerOptionalResults per page
TypeScript
await setu.execute({
  userId: "user_1",
  action: "canvas.list_submissions",
  input: {
    "course_id": "<course_id>",
    "assignment_id": "<assignment_id>"
  },
});