Skip to main content
Instructure Canvas LMS logo

Overview

Add Instructure Canvas LMS to any ModuleX agent or workflow. Learning management system integration for Instructure Canvas — course, assignment, and user management via the Canvas REST API (https://{your-domain}/api/v1).
Categories: Education · Learning Management · Auth: Canvas OAuth Token + Domain · Actions: 5

Authentication

Canvas OAuth Token + Domain

Authenticate using a Canvas access token and your instance domain. Canvas LMS is self-hosted, so both the domain and token are required.
1

Step 1

Log into your Canvas instance.
2

Step 2

Go to Account > Settings > Approved Integrations (or generate a new access token).
3

Step 3

Copy your access token and note your Canvas domain (e.g. myschool.instructure.com).

Required Credentials

FieldDescriptionRequiredFormat
Canvas DomainYour Canvas instance domain (e.g. myschool.instructure.com)Yesmyschool.instructure.com
Access TokenYour Canvas API access tokenYes7~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Available Actions

Response

{
  "$defs": {
    "AccountOption": {
      "additionalProperties": false,
      "description": "A Canvas account option.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        }
      },
      "title": "AccountOption",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "accounts": {
      "items": {
        "$ref": "#/$defs/AccountOption"
      },
      "title": "Accounts",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListAccountsOutput",
  "type": "object"
}

Parameters

user_id
string
required
The ID of the user whose assignments to list.
course_id
string
required
The ID of the course to list assignments from.

Response

{
  "$defs": {
    "AssignmentSummary": {
      "additionalProperties": false,
      "description": "A Canvas assignment.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "due_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Due At"
        },
        "points_possible": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Points Possible"
        },
        "grading_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Grading Type"
        },
        "submission_types": {
          "items": {
            "type": "string"
          },
          "title": "Submission Types",
          "type": "array"
        },
        "course_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Course Id"
        },
        "allowed_attempts": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Allowed Attempts"
        },
        "omit_from_final_grade": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Omit From Final Grade"
        }
      },
      "title": "AssignmentSummary",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "assignments": {
      "items": {
        "$ref": "#/$defs/AssignmentSummary"
      },
      "title": "Assignments",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListAssignmentsOutput",
  "type": "object"
}

Parameters

user_id
string
required
The ID of the user whose courses to list.

Response

{
  "$defs": {
    "CourseSummary": {
      "additionalProperties": false,
      "description": "A Canvas course.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "course_code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Course Code"
        },
        "workflow_state": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Workflow State"
        },
        "enrollment_term_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enrollment Term Id"
        }
      },
      "title": "CourseSummary",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "courses": {
      "items": {
        "$ref": "#/$defs/CourseSummary"
      },
      "title": "Courses",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListCoursesOutput",
  "type": "object"
}

Parameters

course_id
string
required
The ID of the course containing the assignment.
assignment_id
string
required
The ID of the assignment to update.
name
string
The new name of the assignment.
description
string
The new description of the assignment (supports HTML).
submission_type
string
Submission type: online_quiz, none, on_paper, discussion_topic, external_tool, online_upload, online_text_entry, online_url, media_recording, student_annotation.
notify_of_update
boolean
Whether to notify students of the update.
points_possible
integer
Maximum points possible on the assignment.
grading_type
string
Grading strategy: pass_fail, percent, letter_grade, gpa_scale, points, not_graded.
due_at
string
Due date/time in ISO 8601 format (e.g. 2014-10-21T18:48:00Z).
omit_from_final_grade
boolean
Whether to omit this assignment from the student’s final grade.
allowed_attempts
integer
Number of submission attempts allowed (-1 for unlimited).

Response

{
  "$defs": {
    "AssignmentSummary": {
      "additionalProperties": false,
      "description": "A Canvas assignment.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "due_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Due At"
        },
        "points_possible": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Points Possible"
        },
        "grading_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Grading Type"
        },
        "submission_types": {
          "items": {
            "type": "string"
          },
          "title": "Submission Types",
          "type": "array"
        },
        "course_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Course Id"
        },
        "allowed_attempts": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Allowed Attempts"
        },
        "omit_from_final_grade": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Omit From Final Grade"
        }
      },
      "title": "AssignmentSummary",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "assignment": {
      "anyOf": [
        {
          "$ref": "#/$defs/AssignmentSummary"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "success"
  ],
  "title": "UpdateAssignmentOutput",
  "type": "object"
}

Limits & Quotas

  • Rate limits: Canvas enforces per-user rate limits (typically 700 requests per 10 minutes for the default configuration, varies by institution).
  • Pagination: List endpoints may return paginated results; current implementation fetches the first page.
  • Error model: Non-2xx responses and timeouts are caught and returned as success=False + error rather than raising.