# Canvas integration

> Instructure Canvas LMS REST API for managing courses, users, enrollments, assignments, submissions, grades, modules, quizzes, discussions, pages, files, and analytics.

- Authentication: oauth2

## Tools (195)

- **Accept a Course Invitation**: Accept a pending enrollment invite.
- **Add a Message to a Conversation**: Reply in a conversation (body).
- **Bulk Update Assignment Dates**: Batch-update due/lock/unlock dates.
- **Complete a Quiz Submission**: Turn in and grade a quiz attempt.
- **Conclude, Deactivate, or Delete an Enrollment**: Requires task=conclude|delete|inactivate|deactivate.
- **Create a Calendar Event**: Create (calendar_event[context_code], title, start_at, end_at).
- **Create a Conversation**: Send a message (recipients[], body, subject, group_conversation).
- **Create a Course**: Create a course under an account.
- **Create a Discussion Topic**: Create (title, message, discussion_type, published, is_announcement).
- **Create a Folder**: Create (name, parent_folder_id). User/group/account forms exist.
- **Create a Group**: Create a community group.
- **Create a Group in a Category**: Create a group in a category.
- **Create a Group Membership**: Add/join a member (user_id).
- **Create a Module**: Create (module[name], module[position], module[unlock_at]).
- **Create a Module Item**: Create (module_item[type], module_item[content_id], module_item[title]).
- **Create an Assignment**: Create (assignment[name], assignment[submission_types][], assignment[points_possible], assignment[due_at], ...).
- **Create an Assignment Group**: Create (name, group_weight, position).
- **Create an Assignment Override**: Create an override (student_ids, section/group, dates).
- **Create an Enrollment Term**: Create a term (enrollment_term[...]).
- **Create a Page**: Create (wiki_page[title], wiki_page[body], wiki_page[published]).
- **Create a Quiz**: Create (quiz[title], quiz[quiz_type], quiz[due_at], ...).
- **Create a Rubric**: Create (rubric[title], rubric[criteria], rubric_association).
- **Create a Rubric Assessment**: Assess a submission against a rubric.
- **Create a Rubric Association**: Attach a rubric to an assignment/course.
- **Create a Section**: Create a section (course_section[...]).
- **Create a Sub-Account**: Create a sub-account (account[...]).
- **Create a User**: Create user + pseudonym (user[...], pseudonym[...]).
- **Cross-list a Section**: Move a section into another course.
- **Delete a Calendar Event**: Delete an event (cancel_reason).
- **Delete a Conversation**: Remove a conversation from the user's view.
- **Delete a Discussion Topic**: Delete a topic.
- **Delete a File**: Delete a file (optional replace).
- **Delete a Folder**: Delete a folder (force=true to delete non-empty).
- **Delete a Group**: Delete a group.
- **Delete a Module**: Delete a module.
- **Delete a Module Item**: Delete a module item.
- **Delete an Assignment**: Delete an assignment.
- **Delete an Assignment Group**: Delete an assignment group.
- **Delete an Assignment Override**: Delete an override.
- **Delete an Enrollment Term**: Delete a term.
- **Delete a Page**: Delete a page.
- **Delete a Quiz**: Delete a quiz.
- **Delete a Rubric**: Delete a rubric.
- **Delete a Section**: Delete a section.
- **Delete a Sub-Account**: Delete a sub-account.
- **Delete or Conclude a Course**: Requires event=delete or event=conclude.
- **Duplicate an Assignment**: Copy an assignment.
- **Enroll a User in a Course**: Create an enrollment (enrollment[user_id], enrollment[type], ...).
- **Enroll a User in a Section**: Create an enrollment in a section.
- **Get Account Permissions**: Permission flags for the calling user.
- **Get Account Settings**: Account settings JSON.
- **Get Activity Stream Summary**: Unread counts by type.
- **Get a Single Account**: One account by id or sis_account_id.
- **Get a Single Assignment**: One assignment.
- **Get a Single Assignment Group**: One assignment group.
- **Get a Single Assignment Override**: One override.
- **Get a Single Calendar Event**: One event.
- **Get a Single Conversation**: One conversation with messages.
- **Get a Single Course**: One course by id.
- **Get a Single Discussion Topic**: One topic.
- **Get a Single Enrollment**: One enrollment by id.
- **Get a Single Enrollment Term**: One term.
- **Get a Single File**: File details.
- **Get a Single Folder**: Folder details.
- **Get a Single Group**: One group.
- **Get a Single Module**: One module.
- **Get a Single Module Item**: One module item.
- **Get a Single Outcome**: One outcome.
- **Get a Single Page**: One page by url slug or id.
- **Get a Single Quiz**: One quiz.
- **Get a Single Quiz Submission**: One quiz submission.
- **Get a Single Rubric**: One rubric; include[]=assessments.
- **Get a Single Section**: One section (a `/sections/{id}` form also exists).
- **Get a Single Submission**: One user's submission (user_id may be `self`).
- **Get a Single User**: One user by id (or `self`).
- **Get a Single User in a Course**: One user within the course context.
- **Get Course File Quota**: Storage quota and usage for a course.
- **Get Course-Level Assignment Analytics**: Per-assignment grade/submission breakdown.
- **Get Course-Level Participation Analytics**: Page views + participation by day for a course.
- **Get Course-Level Student Summaries**: Per-student access/participation summaries.
- **Get Course Permissions**: Permission flags for the calling user.
- **Get Course Settings**: Course settings object.
- **Get Effective Due Dates**: Per-student effective due dates for assignments.
- **Get Full Topic View**: Full nested entry tree for a topic.
- **Get Global Activity Stream**: Current user's activity stream.
- **Get Gradebook History Feed**: Uncollated feed of submission versions.
- **Get Gradebook History for a Day**: Graders and assignments worked on a date.
- **Get Graded Submissions for a User**: Recently graded submissions.
- **Get Outcome Alignments**: Outcome alignments for a student/assignment.
- **Get Public File URL**: A temporary public download/preview URL.
- **Get Student-in-Course Assignment Analytics**: One student's assignment data with grades.
- **Get Student-in-Course Participation Analytics**: One student's page views/participation.
- **Get Submission Summary**: Counts of graded/ungraded/not-submitted.
- **Get the Front Page**: The course front page.
- **Get Unread Conversations Count**: Count of unread conversations.
- **Get User Profile**: Profile: name, avatar, bio, links.
- **Get User Progress**: Module/requirement progress for a user in a course.
- **Get User Settings**: User preference settings.
- **Grade or Comment on a Submission**: Set grade and/or comment (submission[posted_grade], comment[text_comment], rubric_assessment).
- **Grade or Comment on Multiple Submissions**: Bulk grade (grade_data[<user_id>][posted_grade]); returns a Progress to poll. An assignment-scoped form `/courses/{course_id}/assignments/{assignment_id}/submissions/update_grades` exists.
- **Invite Users to a Group**: Invite by email (invitees[]).
- **List Accounts**: Accounts the user can view/manage.
- **List Announcements**: Announcements across courses; context_codes[]=course_<id> (required), start_date, end_date, active_only.
- **List Assignment Groups**: Assignment groups in a course.
- **List Assignment Overrides**: Overrides for an assignment.
- **List Assignments**: Assignments in a course; include[]=submission,all_dates, etc.
- **List Assignments for a User**: Assignments visible to a user in a course.
- **List Assignment Submissions**: Submissions for one assignment; include[]=submission_comments,rubric_assessment,user. Section form `/sections/{section_id}/...` exists.
- **List Calendar Events**: Events/assignments; type, start_date, end_date, context_codes[].
- **List Calendar Events for a User**: Another user's visible events.
- **List Conversations**: Current user's conversations; scope=unread|starred|archived, filter[].
- **List Course Folders**: All folders in a course.
- **List Courses**: Active courses for the current user.
- **List Course Sections**: Sections in a course.
- **List Courses for a User**: Active courses for a specific user.
- **List Courses in an Account**: Courses in an account; many filters (with_enrollments, enrollment_term_id, search_term, etc.).
- **List Discussion Topics**: Topics in a course; only_announcements, search_term, order_by. A group form `/groups/{group_id}/...` exists.
- **List Enrollments for a User**: Enrollments for a user.
- **List Enrollments in a Course**: Enrollments for a course; filter type[], role[], state[], user_id.
- **List Enrollments in a Section**: Enrollments for a section.
- **List Enrollment Terms**: Terms in an account.
- **List Entry Replies**: Replies to an entry.
- **List Files in a Course**: Files in a course; search_term, content_types[], sort, order. User/group forms exist.
- **List Files in a Folder**: Files in a folder.
- **List Folders in a Folder**: Immediate subfolders.
- **List Gradeable Students**: Students who can be graded for an assignment.
- **List Gradebook History Days**: Days with grade changes.
- **List Gradebook History Submission Versions**: Submission version history for a grader/assignment/day.
- **List Group Memberships**: Membership records for a group.
- **List Groups in a Course**: Groups within a course.
- **List Groups in an Account**: Groups within an account.
- **List Group Users**: Members of a group.
- **List Manageable Accounts**: Accounts where the user can manage courses.
- **List Missing Submissions**: Past-due unsubmitted assignments.
- **List Module Items**: Items in a module.
- **List Modules**: Modules in a course.
- **List Page Revisions**: Revision history of a page.
- **List Pages**: Wiki pages in a course; sort, order, search_term, published.
- **List Quiz Submissions**: All submissions for a quiz.
- **List Quizzes**: Quizzes in a course; search_term supported.
- **List Rubrics for a Course**: Rubrics in a course (account form exists).
- **List Students in a Course**: Students enrolled in a course.
- **List Sub-Accounts**: Sub-accounts under an account.
- **List Submissions for Multiple Assignments**: Submissions across assignments for students; student_ids[], assignment_ids[], grouped, workflow_state.
- **List To-Do Items**: Current user's to-do items.
- **List Topic Entries**: Top-level entries.
- **List Upcoming Events**: Upcoming assignments/events.
- **List Users in Account**: Users in an account; filter with search_term, enrollment_type.
- **List Users in a Course**: Users in a course; filter with enrollment_type[], enrollment_role, search_term. (A `/courses/{course_id}/search_users` alias also exists.)
- **List Your Groups**: Groups the current user belongs to.
- **Mark All Conversations as Read**: Mark everything read.
- **Mark Module Item Done**: Mark a "must mark done" item complete (DELETE clears it).
- **Mark Submission as Read or Unread**: PUT marks read; DELETE on the same path marks unread.
- **Post an Entry**: Add a top-level entry (message).
- **Post a Reply**: Reply to an entry (message).
- **Reactivate an Enrollment**: Reactivate an inactive enrollment.
- **Reject a Course Invitation**: Reject a pending enrollment invite.
- **Remove a Group Membership**: Remove a member.
- **Reserve a Time Slot**: Reserve an appointment-group slot.
- **Reset a Course**: Delete the course and replace with an empty equivalent.
- **Resolve Folder by Path**: Resolve a folder + ancestors by path.
- **Revert a Page to a Revision**: Restore an earlier revision.
- **Set Usage Rights**: Set copyright/license on files/folders (file_ids[], usage_rights[...]).
- **Start a Quiz Submission**: Begin a quiz attempt.
- **Submit an Assignment**: Student submission (submission[submission_type], submission[body]/url/file_ids[]).
- **Subscribe to a Topic**: Subscribe (DELETE to unsubscribe).
- **Un-Cross-list a Section**: Undo section cross-listing.
- **Update a Calendar Event**: Update an event.
- **Update a Conversation**: Set workflow_state (read/unread/archived), starred, subscribed.
- **Update a Course**: Update course attributes (course[...]).
- **Update a Discussion Topic**: Update a topic.
- **Update a File**: Rename/move/lock a file (name, parent_folder_id, locked).
- **Update a Folder**: Rename/move/lock a folder.
- **Update a Group**: Update a group.
- **Update a Group Membership**: Accept request or set moderator.
- **Update a Module**: Update module; publish via module[published].
- **Update a Module Item**: Update a module item.
- **Update an Account**: Update account attributes (account[...]).
- **Update an Assignment**: Update assignment fields.
- **Update an Assignment Group**: Update an assignment group.
- **Update an Assignment Override**: Update an override.
- **Update an Enrollment Term**: Update a term.
- **Update an Outcome**: Update outcome (title, mastery_points, ratings).
- **Update a Page**: Update page title/body/published.
- **Update a Quiz**: Update quiz fields.
- **Update a Rubric**: Update a rubric.
- **Update a Section**: Update a section.
- **Update a User**: Update user attributes (user[...]).
- **Update Courses (Bulk)**: Async batch update of multiple courses in an account.
- **Update Course Settings**: Update course settings.
- **Update Quiz Submission Scores**: Fudge points / per-question scores and comments.
- **Update the Front Page**: Update the front page.
- **Update User Settings**: Update user preference settings.
- **Upload a File for a Submission**: Begin a file upload for a submission (returns an upload URL).
- **Upload a File to a Folder**: Begin an upload into a folder (returns upload URL + params).

Connect Canvas in General Input: https://www.generalinput.com/apps/canvas