# Canvas

Canvas is a learning management system supporting online courses, assignments, grading, and collaboration, widely used by schools and universities for virtual classrooms

- **Category:** online courses
- **Auth:** OAUTH2, API_KEY
- **Composio Managed App Available?** No
- **Tools:** 566
- **Triggers:** 6
- **Slug:** `CANVAS`
- **Version:** 20260323_00

## Tools

### Abort Quiz Report Generation

**Slug:** `CANVAS_ABORT_QUIZ_REPORT_GENERATION`

Aborts the generation of a quiz report or removes a previously generated one. Use when you need to cancel a report generation request or clean up an old report.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the specific quiz report to abort or remove. |
| `quiz_id` | string | Yes | The ID of the quiz for which the report generation is to be aborted. |
| `course_id` | string | Yes | The ID of the course containing the quiz. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add conversation message

**Slug:** `CANVAS_ADD_CONVERSATION_MESSAGE`

Tool to add a message to an existing Canvas conversation. Use when sending a follow-up message to a conversation thread with specified recipients.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | The content of the message to be sent. |
| `recipients` | array | Yes | Array of recipient user IDs who should receive this message. User IDs are numeric strings. |
| `context_code` | string | No | The course or group ID that provides context for this message (e.g., 'course_123', 'group_456'). |
| `attachment_ids` | array | No | Array of attachment IDs to include with the message. These are IDs of files previously uploaded. |
| `conversation_id` | string | Yes | The unique identifier of the conversation to add a message to. |
| `media_comment_id` | string | No | Media comment ID of an audio or video file to be associated with this message. |
| `included_messages` | array | No | Array of message IDs to include or reference in this message. |
| `media_comment_type` | string | No | Type of the associated media file. Must be 'audio' or 'video' if media_comment_id is provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add course to favorites

**Slug:** `CANVAS_ADD_COURSE_TO_FAVORITES`

Tool to add a course to the current user's favorites. Use when you need to favorite a course for the authenticated user. If the course is already in the user's favorites, nothing happens.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the course to add to favorites. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add group to favorites

**Slug:** `CANVAS_ADD_GROUP_TO_FAVORITES`

Tool to add a group to the current user's favorites. Use when you need to mark a group as favorite for the authenticated user. If the group is already in the user's favorites, nothing happens.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the group to add to favorites. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add last attended date

**Slug:** `CANVAS_ADD_LAST_ATTENDED_DATE`

Tool to add or update the last attended date for a student enrollment in a course. Use when tracking student attendance by recording the last date a student attended the course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | The last attended date of a student enrollment in a course. Must be in ISO 8601 date format (YYYY-MM-DD). |
| `user_id` | string | Yes | The unique identifier of the user (student) whose last attended date is being updated. |
| `course_id` | string | Yes | The unique identifier of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add recipients to conversation

**Slug:** `CANVAS_ADD_RECIPIENTS_TO_CONVERSATION`

Tool to add recipients to an existing group conversation. Use when you need to add new participants to an ongoing conversation. Response includes the latest message showing who was added.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the conversation to add recipients to. |
| `recipients` | array | Yes | An array of recipient ids. These may be user ids or course/group ids prefixed with 'course_' or 'group_' respectively (e.g., '1', '2', 'course_3', 'group_456'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add users to content share

**Slug:** `CANVAS_ADD_USERS_TO_CONTENT_SHARE`

Tool to send a previously created content share to additional users. Use when you need to add more recipients to an existing content share.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the content share to add users to. |
| `user_id` | string | Yes | The user ID who owns the content share, or 'self' for the current user. |
| `receiver_ids` | array | Yes | Array of user IDs to share the content with. Each ID must be a valid Canvas user identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Answer quiz questions

**Slug:** `CANVAS_ANSWER_QUIZ_QUESTIONS`

Tool to provide or update answers to quiz questions for a quiz submission. Use when submitting answers for a quiz attempt. Requires a valid validation_token from quiz submission creation and the latest attempt number.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `attempt` | integer | Yes | The attempt number of the quiz submission being taken. This must be the latest attempt index, as questions for earlier attempts cannot be modified. |
| `access_code` | string | No | Access code for the Quiz, if any is required. |
| `quiz_questions` | array | No | Array of question IDs and their answer values. See Canvas API documentation for accepted answer formats for each question type (multiple choice, essay, fill-in-the-blank, etc.). |
| `validation_token` | string | Yes | The unique validation token received when the Quiz Submission was created. This is required to validate the submission. |
| `quiz_submission_id` | string | Yes | The unique ID of the quiz submission to answer questions for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Assign unassigned members to group category

**Slug:** `CANVAS_ASSIGN_UNASSIGNED_MEMBERS_TO_GROUP_CATEGORY`

Tool to assign unassigned members to groups within a group category. Use when you need to distribute users who are not yet in any group within the category. Returns a Progress object for async tracking by default, or group memberships when sync=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sync` | boolean | No | If true, runs synchronously and returns group memberships. If false (default), runs asynchronously and returns a Progress object for tracking the operation. |
| `group_category_id` | string | Yes | The unique identifier of the group category to assign unassigned members to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Clear Course Nicknames

**Slug:** `CANVAS_CLEAR_COURSE_NICKNAMES`

Tool to remove all stored course nicknames for the current user. Use when you need to clear all custom course name preferences.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Close notification for user

**Slug:** `CANVAS_CLOSE_NOTIFICATION_FOR_USER`

Tool to excuse/close an account notification for the current user. Use when the current user no longer wants to see a specific notification. If the `remove` parameter is set to true, the notification is permanently destroyed for all users (admin action).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the account notification to close/excuse for the current user. |
| `remove` | boolean | No | If true, permanently destroys the account notification (admin action). If false or omitted, the notification is excused only for the current user. |
| `account_id` | string | Yes | The unique identifier of the Canvas account containing the notification. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Conclude, deactivate, or delete an enrollment

**Slug:** `CANVAS_CONCLUDE_DEACTIVATE_OR_DELETE_ENROLLMENT`

Tool to conclude, deactivate, or delete an enrollment in a Canvas course. Use when you need to end or remove a user's enrollment. If the task argument isn't given, the enrollment will be concluded.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the enrollment to conclude, deactivate, or delete. |
| `task` | string ("conclude" | "delete" | "inactivate" | "deactivate") | No | The action to take on the enrollment. |
| `course_id` | string | Yes | The ID of the course containing the enrollment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Copy File to Folder

**Slug:** `CANVAS_COPY_FILE_TO_FOLDER`

Copies an existing Canvas file to a specified destination folder. Use when you need to duplicate a file to another location.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `on_duplicate` | string ("overwrite" | "rename") | No | Specifies behavior when a file with the same name exists at the destination. Use 'overwrite' to replace the existing file or 'rename' to create a copy with a modified name (e.g., 'filename (1).txt'). |
| `dest_folder_id` | string | Yes | The unique identifier of the destination folder where the file will be copied. |
| `source_file_id` | string | Yes | The unique identifier of the source file to be copied. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Copy Folder

**Slug:** `CANVAS_COPY_FOLDER`

Tool to copy a folder to another folder in Canvas. Use when you need to duplicate a folder structure with its contents to a destination folder.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dest_folder_id` | string | Yes | The destination folder ID where the source folder will be copied. |
| `source_folder_id` | string | Yes | The ID of the source folder to copy. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create account notification

**Slug:** `CANVAS_CREATE_ACCOUNT_NOTIFICATION`

Creates a global notification within a Canvas account, ensuring `end_at` is after `start_at` and any specified `notification_roles` are valid.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `icon` | string ("warning" | "information" | "question" | "error" | "calendar") | No | Icon to display with the notification. |
| `end_at` | string | Yes | End date/time for visibility (ISO8601 format); must be after `start_at`. |
| `message` | string | Yes | Main content/body of the notification. |
| `subject` | string | Yes | Subject line of the notification. |
| `start_at` | string | Yes | Start date/time for visibility (ISO8601 format). |
| `account_id` | string | Yes | Canvas account ID for the notification. |
| `notification_roles` | array | No | Optional list of specific user role(s) to receive the notification (e.g., 'StudentEnrollment', 'TeacherEnrollment'); roles must be valid for the account. If omitted, Canvas defaults to broader visibility. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a user content migration

**Slug:** `CANVAS_CREATE_A_CONTENT_MIGRATION4`

Tool to create a content migration for a Canvas user. Use when you need to import content into a user's files from various sources (zip files, cartridges, etc.). If the migration requires a file upload, the actual processing starts once the file upload completes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `select` | object | No | For course_copy_importer migrations, select objects to copy without using selective_import workflow. Keys are object types (e.g., 'files', 'folders', 'pages'), values are lists of object ids. |
| `user_id` | string | Yes | The unique identifier for the Canvas user where the content migration will be created. Use 'self' to refer to the authenticated user. |
| `settings` | object | No | Settings for content migration configuration. |
| `migration_type` | string ("canvas_cartridge_importer" | "common_cartridge_importer" | "course_copy_importer" | "zip_file_importer" | "qti_converter" | "moodle_converter") | Yes | The type of the migration. Use the Migrator endpoint to see all available migrators. |
| `pre_attachment` | object | No | Parameters for pre-uploading a file for content migration. |
| `selective_import` | boolean | No | If true, perform a selective import instead of importing all content. The migration will identify contents and stop in 'waiting_for_select' state. Use the List items endpoint to enumerate contents, then call the Update endpoint with copy parameters to start import. |
| `date_shift_options` | object | No | Date shifting options for migrated content. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create appointment group

**Slug:** `CANVAS_CREATE_APPOINTMENT_GROUP`

Creates a new appointment group in Canvas for schedulable time slots within specified course or group contexts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Title for the appointment group (e.g., 'Office Hours'). |
| `publish` | boolean | No | If `True`, publishes the appointment group making it visible for sign-ups. |
| `description` | string | No | Longer description or instructions for participants. |
| `context_codes` | array | Yes | Context codes (e.g., 'course_123') to link this appointment group; at least one is required. |
| `location_name` | string | No | Name of the location (e.g., 'Room 301', 'Online via Zoom'). |
| `location_address` | string | No | Address for the location (e.g., physical address or meeting URL). |
| `new_appointments` | array | No | Nested array of start/end time pairs (ISO 8601 format) indicating time slots for this appointment group. Each inner list should contain exactly 2 strings: [start_time, end_time]. |
| `sub_context_codes` | array | No | Sub-context codes (e.g., 'section_789') to further restrict the group within primary `context_codes`. |
| `allow_observer_signup` | boolean | No | If `True`, allows users with an observer role (e.g., parents, mentors) to sign up. |
| `participant_visibility` | string ("private" | "protected") | No | Controls sign-up visibility: 'private' (organizers only see sign-ups) or 'protected' (participants see others in the same slot). |
| `participants_per_appointment` | integer | No | Maximum participants per time slot. If unspecified, Canvas may apply a default or allow unlimited. |
| `max_appointments_per_participant` | integer | No | Maximum time slots a participant can sign up for; prevents overbooking. |
| `min_appointments_per_participant` | integer | No | Minimum time slots a participant must sign up for; useful for requiring multiple sessions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create an assignment

**Slug:** `CANVAS_CREATE_ASSIGNMENT`

Creates a new assignment within a specified course in Canvas LMS.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the assignment. |
| `due_at` | string | No | Due date in ISO 8601 format. |
| `position` | integer | No | Position in the assignment group's list; lower numbers appear first. If unspecified, added to the end. |
| `course_id` | integer | Yes | ID of the course for the new assignment. |
| `published` | boolean | No | If true, assignment is published and visible to students. Defaults to false (draft). |
| `unlock_at` | string | No | Date assignment becomes available to students, in ISO 8601 format. |
| `description` | string | No | Detailed HTML description, including instructions or requirements. |
| `grading_type` | string | No | Grading type. Supported: 'pass_fail', 'percent', 'letter_grade', 'gpa_scale', 'points', 'not_graded'. Defaults to 'points' if unspecified. |
| `integration_id` | string | No | Unique identifier if managed by a third-party integration (e.g., LTI ID). |
| `points_possible` | integer | No | Maximum points possible. Required unless grading_type is 'pass_fail' or 'not_graded'. |
| `allowed_attempts` | integer | No | Number of submission attempts allowed. Use -1 for unlimited. Defaults to -1 (unlimited) if unspecified by the system. |
| `submission_types` | array | No | Submission types allowed. Common: 'online_text_entry', 'online_upload', 'on_paper', 'none', 'external_tool'. If unspecified, Canvas often assumes 'none'. |
| `allowed_extensions` | array | No | File extensions allowed if 'online_upload' is a submission type. If unspecified, all file types are allowed. |
| `assignment_group_id` | integer | No | ID of the assignment group for this assignment. If unspecified, may be added to a default or first available group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create assignment via GraphQL

**Slug:** `CANVAS_CREATE_ASSIGNMENT_GRAPH_QL`

Tool to create a new assignment in a Canvas course using the GraphQL API. Use when you need to create assignments with detailed configuration options including peer reviews, moderated grading, or assignment overrides.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the assignment. This is a required field. |
| `dueAt` | string | No | Due date in ISO 8601 format. |
| `state` | string ("published" | "unpublished" | "deleted") | No | Publication state of the assignment. |
| `lockAt` | string | No | Date assignment becomes unavailable to students, in ISO 8601 format. |
| `courseId` | string | Yes | ID of the course where the assignment will be created. This is a required field. |
| `position` | integer | No | Position in the assignment group's list; lower numbers appear first. |
| `unlockAt` | string | No | Date assignment becomes available to students, in ISO 8601 format. |
| `moduleIds` | array | No | IDs of course modules to associate with this assignment. |
| `postToSis` | boolean | No | Whether to send grades to the Student Information System. |
| `groupSetId` | string | No | ID of the group set for this assignment. |
| `description` | string | No | Detailed HTML description of the assignment, including instructions or requirements. |
| `gradingType` | string ("points" | "percent" | "letter_grade" | "gpa_scale" | "pass_fail" | "not_graded") | No | Grading type for the assignment. |
| `peerReviews` | object | No | Peer review configuration for the assignment. |
| `secureParams` | string | No | Security parameters for the assignment. |
| `forCheckpoints` | boolean | No | If true, this assignment is a parent assignment for checkpoints. |
| `pointsPossible` | number | No | Maximum points possible for the assignment. |
| `allowedAttempts` | integer | No | Number of submission attempts allowed. Use -1 for unlimited. |
| `groupCategoryId` | string | No | ID of the group category if this is a group assignment. |
| `submissionTypes` | array | No | Allowed submission types for the assignment. |
| `anonymousGrading` | boolean | No | Whether grading should be anonymous. Requires anonymous_marking course feature. |
| `moderatedGrading` | object | No | Moderated grading settings for the assignment. |
| `allowedExtensions` | array | No | Valid file extensions if 'online_upload' is a submission type. |
| `assignmentGroupId` | string | No | ID of the assignment group for this assignment. |
| `gradingStandardId` | string | No | ID of the grading standard to use. |
| `omitFromFinalGrade` | boolean | No | Whether to exclude this assignment from final grade calculations. |
| `suppressAssignment` | boolean | No | Whether to hide the assignment from students. |
| `assignmentOverrides` | array | No | Date and access overrides for specific students, sections, or groups. |
| `onlyVisibleToOverrides` | boolean | No | Whether the assignment is only visible to students with overrides. |
| `anonymousInstructorAnnotations` | boolean | No | Whether instructor annotations are hidden from students. |
| `gradeGroupStudentsIndividually` | boolean | No | If a group assignment, whether students will be graded individually. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create assignment group

**Slug:** `CANVAS_CREATE_ASSIGNMENT_GROUP`

Create a new assignment group for a course. Use when you need to add a new assignment group to organize assignments in a Canvas course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The assignment group's name. If not provided, Canvas will assign a default name. |
| `position` | integer | No | The position of this assignment group in relation to the other assignment groups. If not specified, it will be placed at the end. |
| `course_id` | string | Yes | The unique identifier of the course in which to create the assignment group. |
| `group_weight` | number | No | The percent of the total grade that this assignment group represents. Must be a number between 0 and 100. |
| `sis_source_id` | string | No | The SIS source ID of the assignment group. This is used to integrate with Student Information Systems. |
| `integration_data` | string | No | The integration data of the assignment group as a JSON string or plain string. Used for third-party integrations. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create assignment override

**Slug:** `CANVAS_CREATE_ASSIGNMENT_OVERRIDE`

Creates an assignment override to adjust due/unlock/lock dates for an assignment in a course, targeting specific students (requires `title`), a group, or a course section; at least one target (`student_ids`, `group_id`, or `course_section_id`) is required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | The title for this assignment override. Required if `student_ids` are specified to identify the ad-hoc group. |
| `due_at` | string | No | The new due date for the assignment for the targeted entity (students, group, or section). Must be in ISO 8601 format. |
| `lock_at` | string | No | The new lock date (when the assignment becomes unavailable) for the targeted entity. Must be in ISO 8601 format. |
| `group_id` | integer | No | The ID of the group to target with this override. All students in this group will be affected. |
| `course_id` | string | Yes | The ID of the course where the assignment exists and the override will be applied. |
| `unlock_at` | string | No | The new unlock date (when the assignment becomes available) for the targeted entity. Must be in ISO 8601 format. |
| `student_ids` | array | No | A list of student IDs to target with this override. If specified, a `title` is also required. |
| `assignment_id` | string | Yes | The ID of the assignment for which this override is being created. |
| `course_section_id` | integer | No | The ID of the course section to target with this override. All students in this section will be affected. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Batch create overrides in a course

**Slug:** `CANVAS_CREATE_BATCH_OVERRIDES_IN_A_COURSE`

Tool to batch create assignment overrides for multiple assignments in a course. Use when creating multiple overrides at once in a transactional manner (all succeed or none are created). Each override requires assignment_id and one of student_ids, group_id, or course_section_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course to create assignment overrides in. |
| `assignment_overrides` | array | Yes | Array of assignment override objects to create. All records are created in a transaction - either all succeed or none are created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create blackout date for course

**Slug:** `CANVAS_CREATE_BLACKOUT_DATE_FOR_COURSE`

Tool to create a blackout date for the given course context. Use when you need to define a period during which certain activities are restricted or unavailable for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course for which to create the blackout date. |
| `blackout_date` | object | Yes | The blackout date parameters including start date, end date, and event title. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Bookmark

**Slug:** `CANVAS_CREATE_BOOKMARK`

Creates a new bookmark for the authenticated user. Use when you need to save a shortcut link to a Canvas page or external resource for quick access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The URL that the bookmark should link to. Can be an external URL or a Canvas internal path. |
| `data` | string | No | Optional additional data/metadata associated with the bookmark. Can be used to store custom information. |
| `name` | string | Yes | The name/title of the bookmark. This is the display name that will appear in the bookmarks list. |
| `position` | integer | No | The position of the bookmark in the list. Lower numbers appear first. If not specified, defaults to the bottom of the list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Calendar Event

**Slug:** `CANVAS_CREATE_CALENDAR_EVENT`

Creates a calendar event with options for recurrence (finite `rrule` series only), section-specific timings, and blackout dates within a specified context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rrule` | string | No | iCalendar Recurrence Rule (RRULE) string for recurring events (e.g., 'FREQ=WEEKLY;BYDAY=MO,WE,FR'). Must define a finite series (include 'UNTIL' or 'COUNT'). |
| `title` | string | No | Short, descriptive title for the event. |
| `end_at` | string | No | End date/time of the event (ISO 8601 'YYYY-MM-DDTHH:MM:SSZ'). |
| `all_day` | boolean | No | If true, event spans the entire day; `start_at` and `end_at` times are ignored (date portion only). |
| `start_at` | string | No | Start date/time of the event (ISO 8601 'YYYY-MM-DDTHH:MM:SSZ'). |
| `duplicate` | object | No | Settings for creating a series of identical events. See `DuplicateSettings`. |
| `description` | string | No | Detailed description; HTML allowed for rich formatting. |
| `context_code` | string | Yes | Context code for the calendar, e.g., 'course_123' (course), 'group_456' (group), 'user_789' (user), or 'account_1' (account). |
| `blackout_date` | boolean | No | If true, marks a blackout date not considered in course pacing calculations. |
| `location_name` | string | No | Name of the event's location (e.g., 'Conference Room A', 'Online'). |
| `child_event_data` | object | No | Section-specific start/end times. Keys are arbitrary identifiers; values are `ChildEventData` objects. |
| `location_address` | string | No | Physical address of the event's location. |
| `time_zone_edited` | string | No | Time zone for event creation/editing (IANA Time Zone Database or Rails TimeZone format, e.g., 'America/New_York'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create communication channel

**Slug:** `CANVAS_CREATE_COMMUNICATION_CHANNEL`

Creates a new communication channel (e.g., email, SMS, push) for an existing Canvas user to receive notifications.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("email" | "sms" | "push") | Yes | The type of communication channel to create. Must be one of: 'email', 'sms', or 'push'. |
| `token` | string | No | A registration ID, device token, or equivalent token given to an app when registering with a push notification provider. Required only when 'type' is 'push'. Not applicable for 'email' or 'sms' types. |
| `address` | string | Yes | The address of the communication channel. For 'email' type, this is an email address. For 'sms' type, this is a phone number in E.164 format (e.g., +15551234567). |
| `user_id` | string | Yes | The ID of the Canvas user for whom this communication channel will be created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create content share

**Slug:** `CANVAS_CREATE_CONTENT_SHARE`

Shares a Canvas content item to specified users, if the sender has necessary permissions and receiver IDs are valid.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | ID of the user initiating the share; 'self' can be used for the authenticated user. |
| `content_id` | integer | Yes | Unique numerical identifier of the content item to be shared. |
| `content_type` | string ("assignment" | "discussion_topic" | "page" | "quiz" | "module" | "module_item") | Yes | Type of content being shared. |
| `receiver_ids` | array | Yes | List of unique Canvas user IDs for recipients; must not be empty. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create conversation

**Slug:** `CANVAS_CREATE_CONVERSATION`

Use to send messages in Canvas by creating a new conversation or adding to an existing one; an existing conversation with the same recipients (and matching scope/filter, if specified) may be reused unless `force_new` is true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | The content of the message to be sent. |
| `mode` | string ("sync" | "async") | No | Determines whether messages will be created/sent synchronously or asynchronously. 'sync' means the action waits for completion, 'async' means it returns immediately. Defaults to 'sync'. |
| `scope` | string ("unread" | "starred" | "archived") | No | Filters conversations by a specific scope (e.g., 'unread', 'starred', 'archived') to potentially reuse an existing conversation matching this scope and other filter criteria. Affects which conversation is returned or updated if not forcing new. |
| `filter` | array | No | Array of conversation IDs or user IDs. Used with `scope` and `filter_mode` to find an existing conversation to reuse. If a match is found and `force_new` is not true, that conversation is used/updated instead of creating a new one. |
| `subject` | string | No | The subject of the conversation. Maximum length is 255 characters. |
| `force_new` | boolean | No | If true, forces the creation of a new conversation, even if an existing private conversation with the same recipients, scope, and filters is found. If false or not provided, an existing matching conversation may be reused. |
| `recipients` | array | Yes | Array of recipient IDs. User IDs are numeric strings. Course/group IDs are strings prefixed with 'course_' or 'group_' respectively, followed by the ID (e.g., 'course_123', 'group_456'). |
| `filter_mode` | string ("and" | "or" | "default") | No | Specifies how the `filter` criteria are combined ('and', 'or'). Used in conjunction with `scope` and `filter` to identify an existing conversation for reuse. 'default' typically implies 'and'. |
| `context_code` | string | No | The course or group ID that provides context for this conversation (e.g., 'course_123', 'group_456'). This associates the conversation with a specific course or group. |
| `attachment_ids` | array | No | Array of attachment IDs from the sender's conversation attachments folder. These are IDs of files previously uploaded by the sender. |
| `media_comment_id` | string | No | Media comment ID of an audio or video file to be associated with this message. This ID refers to a media object previously created. |
| `group_conversation` | boolean | No | If true, a single group conversation is created with all recipients. If false or not provided, individual private conversations will be created with each recipient. Ignored if `force_new` is true and a new conversation is created. |
| `media_comment_type` | string ("audio" | "video") | No | Type of the associated media file. Must be 'audio' or 'video' if `media_comment_id` is provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create conversation via GraphQL

**Slug:** `CANVAS_CREATE_CONVERSATION_GRAPH_QL`

Tool to create a new conversation (message) between users in Canvas via GraphQL. Use when initiating a new conversation thread with specified recipients.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | The content of the message to be sent in the conversation. |
| `subject` | string | No | The subject line of the conversation. Maximum length is 255 characters. |
| `recipients` | array | Yes | Array of recipient user IDs as strings. These are the users who will receive the conversation message. |
| `context_code` | string | No | The course or group ID that provides context for this conversation (e.g., 'course_123', 'group_456'). |
| `attachment_ids` | array | No | Array of attachment IDs to include with the conversation. These are IDs of files previously uploaded. |
| `conversation_id` | string | No | ID of an existing conversation to reply to. If provided, adds this message to the existing conversation thread. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a course

**Slug:** `CANVAS_CREATE_COURSE`

Creates a new course in Canvas within a specified account, with comprehensive configuration options. Returns a course object including `id` (course_id); retain this for subsequent module, page, and upload calls.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The name of the course. If omitted, Canvas will default to 'Unnamed Course'. |
| `offer` | boolean | No | If true, the course will be made available to students (published) immediately upon creation. If false, it remains unpublished and hidden from students until explicitly published. |
| `end_at` | string | No | The end date and time for the course, in ISO8601 format (e.g., '2024-12-15T23:59:59Z'). If omitted, the course will not have a specific end date. |
| `license` | string ("private" | "cc_by_nc_nd" | "cc_by_nc_sa" | "cc_by_nc" | "cc_by_nd" | "cc_by_sa" | "cc_by" | "public_domain") | No | Specifies the license for the course content. |
| `term_id` | string | No | The unique identifier of the academic term (e.g., Fall 2024) to associate this course with. |
| `start_at` | string | No | The start date and time for the course, in ISO8601 format (e.g., '2024-09-01T00:00:00Z'). If omitted, the course will not have a specific start date. |
| `enroll_me` | boolean | No | If true, the user making this API request will be automatically enrolled in the newly created course as a teacher. Omitting this leaves the creator without teacher access, causing permission errors on subsequent course operations. |
| `is_public` | boolean | No | If set to true, the course will be publicly visible to both authenticated and unauthenticated users. Otherwise, visibility is restricted. |
| `time_zone` | string | No | The time zone for the course, used for displaying deadlines and scheduling events. Accepts IANA time zone names (e.g., 'America/New_York') or Rails time zone names. |
| `account_id` | string | Yes | The ID of the account in which the course will be created. This is a mandatory field. |
| `course_code` | string | No | The course code or abbreviation (e.g., 'CS101', 'HIST-202'). |
| `default_view` | string ("feed" | "wiki" | "modules" | "syllabus" | "assignments") | No | The default landing page for the course after a user navigates to it. |
| `course_format` | string ("on_campus" | "online" | "blended") | No | The delivery format of the course. |
| `post_manually` | boolean | No | If true, all grades for assignments must be manually posted by an instructor before they are visible to students. This enables the 'manual grading policy' feature for the course. |
| `sis_course_id` | string | No | A unique identifier for the course from an external Student Information System (SIS). Used for synchronization. |
| `syllabus_body` | string | No | The HTML content for the course's syllabus page. This can include text, images, links, and other rich content. |
| `integration_id` | string | No | A unique identifier for the course from an external integration or third-party tool. |
| `open_enrollment` | boolean | No | If set to true, the course allows open enrollment, meaning users can join without an invitation or instructor approval. |
| `public_syllabus` | boolean | No | If set to true, the course syllabus will be publicly visible to all users, including those not logged in. |
| `self_enrollment` | boolean | No | If set to true, students can self-enroll in the course, potentially using a join code or public course listing. |
| `hide_final_grades` | boolean | No | If set to true, the totals in the student grades summary page will be hidden from students, preventing them from seeing their final calculated grade. |
| `public_description` | string | No | A short, publicly visible description or summary of the course. |
| `allow_wiki_comments` | boolean | No | If set to true, course members (students and instructors) will be able to add comments to wiki pages. |
| `grading_standard_id` | integer | No | The ID of an existing grading standard to be used for the course. This defines the mapping from percentage scores to letter grades (e.g., A, B, C). |
| `grade_passback_setting` | string | No | Configures how grades are passed back to an external system, typically an SIS. Valid options are 'nightly_sync' (grades sync daily), 'disabled' (no grade passback), or an empty string (often defaults to 'disabled'). |
| `enable_sis_reactivation` | boolean | No | If true, and a course with the same `sis_course_id` was previously deleted, this action will attempt to reactivate and update that course instead of creating a new one. Requires `sis_course_id` to be provided. |
| `is_public_to_auth_users` | boolean | No | If set to true, the course is publicly visible only to authenticated users on the platform. |
| `public_syllabus_to_auth` | boolean | No | If set to true, the course syllabus will be visible to any authenticated user on the platform, even if they are not enrolled. |
| `allow_student_wiki_edits` | boolean | No | If set to true, students enrolled in the course will be able to edit and contribute to course wiki pages. |
| `apply_assignment_group_weights` | boolean | No | If set to true, the final grade for the course will be calculated based on weighted assignment groups (e.g., Homework 30%, Exams 70%). |
| `allow_student_forum_attachments` | boolean | No | If set to true, students can attach files to their posts in course discussion forums and announcements. |
| `restrict_enrollments_to_course_dates` | boolean | No | If set to true, student enrollments will be active only between the course's `start_at` and `end_at` dates. Access outside these dates may be restricted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Course Grading Standard

**Slug:** `CANVAS_CREATE_COURSE_GRADING_STANDARD`

Tool to create a new grading standard in a Canvas course. Use when you need to define a custom grading scale with grade labels and percentage thresholds for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The title/name for the grading standard |
| `course_id` | string | Yes | The ID of the course in which to create the grading standard |
| `points_based` | boolean | No | Whether this grading scheme is points-based (true) or percentage-based (false). Defaults to false if not specified. |
| `scaling_factor` | integer | No | For points-based schemes, the maximum number of points possible. This is the factor by which percentages are scaled. Not required for percentage-based schemes. |
| `grading_scheme_entry` | array | Yes | List of grading scheme entries defining the grading scale. Each entry has a name and minimum percentage value. Entries should be ordered from highest to lowest value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a custom gradebook column

**Slug:** `CANVAS_CREATE_CUSTOM_GRADEBOOK_COLUMN`

Creates a new custom gradebook column in a course. Use when you need to add custom tracking fields like participation scores or extra credit to the gradebook.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The title/header text for the custom gradebook column. |
| `hidden` | boolean | No | If true, the column will not be displayed in the gradebook. Defaults to false. |
| `position` | integer | No | The position of the column relative to other custom columns. Lower numbers appear first. |
| `course_id` | string | Yes | The unique identifier of the course where the custom gradebook column will be created. |
| `read_only` | boolean | No | If true, the column will not be editable in the gradebook UI. Defaults to false. |
| `teacher_notes` | boolean | No | If true, this column is designated as a teacher notes column. The gradebook only supports one teacher_notes column. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create discussion entry

**Slug:** `CANVAS_CREATE_DISCUSSION_ENTRY`

Tool to create a new entry in a Canvas discussion topic. Use when posting a message with optional attachments to a discussion topic.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes | The content of the discussion entry. Supports HTML formatting. |
| `topic_id` | integer | Yes | The unique identifier of the discussion topic within the course. |
| `course_id` | integer | Yes | The unique identifier of the Canvas course. |
| `attachment_ids` | array | No | A list of file attachment IDs to include with the new entry, if any. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create discussion entry (GraphQL)

**Slug:** `CANVAS_CREATE_DISCUSSION_ENTRY_GRAPH_QL`

Tool to create a new entry in a Canvas discussion topic via GraphQL. Use when posting a message or reply to a discussion topic with optional file attachments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_id` | string | No | Optional file attachment ID to include with the entry. |
| `message` | string | Yes | The content/text of the discussion entry. |
| `parent_entry_id` | string | No | ID of parent entry if this is a reply to another entry. |
| `quoted_entry_id` | string | No | ID of entry being quoted in this post. |
| `discussion_topic_id` | string | Yes | The ID of the discussion topic to post to. |
| `is_anonymous_author` | boolean | No | Whether to post anonymously. If true, the author's identity will be hidden. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create discussion topic

**Slug:** `CANVAS_CREATE_DISCUSSION_TOPIC`

Creates a new discussion topic in a specified Canvas course, allowing comprehensive configuration of its content, type, publication settings, engagement features, and associations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The title of the new discussion topic. |
| `pinned` | boolean | No | Set to `true` to pin the topic, listing it in a 'Pinned Discussions' section for higher visibility. Defaults to `false`. |
| `lock_at` | string | No | The datetime (ISO 8601 format) when the topic should be automatically locked, preventing further replies. If omitted, the topic will not automatically lock. |
| `message` | string | No | The main content/message of the discussion topic. Supports HTML for rich content formatting. If omitted, the discussion topic will have no initial message. |
| `course_id` | integer | Yes | The unique identifier for the course where the discussion topic will be created. |
| `published` | boolean | No | Set to `true` to publish the topic immediately, or `false` to save it as a draft. Defaults to `false` if not provided, creating a draft. |
| `allow_rating` | boolean | No | Set to `true` to allow users to rate entries in this topic. Defaults to `false`. |
| `position_after` | string | No | The ID of another discussion topic within the same course. If provided, this new topic will be positioned immediately after the specified topic in the discussion list. |
| `sort_by_rating` | boolean | No | If `allow_rating` is `true`, set this to `true` to sort discussion entries by their ratings. Defaults to `false`. |
| `delayed_post_at` | string | No | The datetime (ISO 8601 format) when the topic should be automatically published. If set, `published` should ideally be `false` or omitted. |
| `discussion_type` | string | No | The type of discussion. Accepted values: 'side_comment' (allows replies to any message), 'threaded' (allows threaded replies), 'not_threaded' (linear discussion). Defaults to 'threaded' if not specified. |
| `is_announcement` | boolean | No | Set to `true` to mark this topic as an announcement. Announcements may appear in a special section or have different notification behavior. Defaults to `false`. |
| `podcast_enabled` | boolean | No | Set to `true` to enable an associated podcast feed for this topic. Defaults to `false`. |
| `group_category_id` | integer | No | The ID of a group category within the course. If provided, the discussion topic will be associated with this group category, potentially creating group-specific discussions or restricting access. Example: A group discussion. |
| `specific_sections` | string | No | A comma-separated string of section IDs to which this discussion topic should be restricted. If omitted, or an empty string is provided, the topic is available to all sections in the course. |
| `require_initial_post` | boolean | No | Set to `true` to require users to make an initial post before they can view other replies in the topic. Defaults to `false`. |
| `only_graders_can_rate` | boolean | No | If `allow_rating` is `true`, set this to `true` to restrict rating privileges to graders only. Defaults to `false` (meaning any user can rate if `allow_rating` is true). |
| `podcast_has_student_posts` | boolean | No | If `podcast_enabled` is `true`, set this to `true` to include student posts in the podcast feed. Defaults to `false`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create discussion topic (GraphQL)

**Slug:** `CANVAS_CREATE_DISCUSSION_TOPIC_GRAPH_QL`

Tool to create a new discussion topic in a course or group using the Canvas GraphQL API. Use when creating discussion topics with the GraphQL interface.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Title of the discussion topic. |
| `message` | string | No | Message/content of the discussion topic. Can include HTML formatting. |
| `published` | boolean | No | Whether the discussion topic should be published immediately. Set to true to publish, false to save as draft. |
| `context_id` | string | Yes | The ID of the context (course or group) where the discussion topic will be created. |
| `context_type` | string ("Course" | "Group") | Yes | The type of context - either Course or Group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create enrollment

**Slug:** `CANVAS_CREATE_ENROLLMENT`

Enrolls a user in a Canvas course with a specified role and status; `associated_user_id` is required if `enrollment_type` is 'ObserverEnrollment'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_at` | string | No | ISO8601 end date/time for enrollment. If unspecified, may follow course/term dates or be indefinite. |
| `notify` | boolean | No | If true, sends notification to user. Default notification behavior varies if null/false. |
| `role_id` | integer | No | ID of a custom course-level role, potentially overriding `enrollment_type`. |
| `user_id` | string | Yes | The ID of the user to be enrolled in the course. |
| `start_at` | string | No | ISO8601 start date/time for enrollment. If unspecified, may start immediately or align with course/term settings. |
| `course_id` | integer | Yes | The ID of the course in which to enroll the user. |
| `sis_user_id` | string | No | SIS (Student Information System) ID for the user; an alternative identifier. |
| `self_enrolled` | boolean | No | True if self-initiated enrollment, typically with `self_enrollment_code`. |
| `integration_id` | string | No | External unique identifier for linking with third-party systems. |
| `enrollment_type` | string ("StudentEnrollment" | "TeacherEnrollment" | "TaEnrollment" | "ObserverEnrollment" | "DesignerEnrollment") | No | Enrollment type determining role/permissions. Canvas defaults to 'StudentEnrollment' if unspecified. |
| `enrollment_state` | string ("active" | "invited" | "inactive") | No | State of enrollment: 'active', 'invited' (requires user acceptance), or 'inactive'. |
| `course_section_id` | integer | No | ID of a specific course section for enrollment. If omitted, user enrolls in the course generally. |
| `associated_user_id` | integer | No | For 'ObserverEnrollment', the ID of the student to be observed. |
| `self_enrollment_code` | string | No | Code for self-enrollment if `self_enrolled` is true. |
| `limit_privileges_to_course_section` | boolean | No | If true, confines user access to `course_section_id` (requires `course_section_id` to be set). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create ePub export

**Slug:** `CANVAS_CREATE_EPUB_EXPORT`

Tool to initiate an ePub export for a course. Use when you need to export course content in ePub format. Track progress using the Progress API URL returned in the response.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the course. Can be a numeric ID or SIS ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create External Feed

**Slug:** `CANVAS_CREATE_EXTERNAL_FEED`

Creates a new external RSS or Atom feed for a Canvas course. Use when you need to import external content into a course feed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The URL to the external RSS or Atom feed to be imported into the course. |
| `course_id` | string | Yes | The ID of the course for which to create the external feed. |
| `verbosity` | string ("full" | "truncate" | "link_only") | No | Controls how much of the feed content is displayed. Defaults to 'full' if not specified. 'full' shows complete entries, 'truncate' shows shortened versions, 'link_only' shows only links. |
| `header_match` | string | No | If provided, only feed entries that contain this string in their title will be imported. Leave empty to import all entries. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create External Feed for Group

**Slug:** `CANVAS_CREATE_EXTERNAL_FEED_FOR_GROUP`

Tool to create a new external RSS or Atom feed for a Canvas group. Use when you need to import external content into a group feed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The URL to the external RSS or Atom feed to be imported into the group. |
| `group_id` | string | Yes | The ID of the group for which to create the external feed. |
| `verbosity` | string ("full" | "truncate" | "link_only") | No | Controls how much of the feed content is displayed. Defaults to 'full' if not specified. 'full' shows complete entries, 'truncate' shows shortened versions, 'link_only' shows only links. |
| `header_match` | string | No | If provided, only feed entries that contain this string in their title will be imported. Leave empty to import all entries. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create external tool

**Slug:** `CANVAS_CREATE_EXTERNAL_TOOL`

Tool to create an external tool in a Canvas account. Use when you need to integrate an LTI tool or external application. If a client_id is supplied, Canvas will attempt to create a context external tool using the LTI 1.3 standard.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | The URL to match links against. Either 'url' or 'domain' should be set, not both. |
| `name` | string | No | The name of the external tool. This parameter overrides the tool name provided in XML configuration if config_type is set. |
| `text` | string | No | The default text to show for this tool. |
| `domain` | string | No | The domain to match links against (without protocol/port). Either 'url' or 'domain' should be set, not both. |
| `icon_url` | string | No | The URL of the icon to show for this tool. |
| `client_id` | string | No | The client ID attached to the developer key. If supplied, all other parameters are unnecessary and will be ignored. Used for LTI 1.3 standard. |
| `account_id` | string | Yes | The unique identifier of the account where the external tool will be created. |
| `config_url` | string | No | URL where the server can retrieve an XML tool configuration. Required if config_type is 'by_url'. |
| `config_xml` | string | No | XML tool configuration, as specified in the Common Cartridge XML specification. Required if config_type is 'by_xml'. |
| `config_type` | string ("by_url" | "by_xml") | No | Configuration type for external tool. |
| `description` | string | No | A description of the tool. |
| `consumer_key` | string | No | The consumer key for the external tool (OAuth 1.0). |
| `custom_fields` | object | No | Custom fields that will be sent to the tool consumer. Use key-value pairs. |
| `privacy_level` | string ("anonymous" | "name_only" | "email_only" | "public") | No | Privacy level for external tool - how much user information to send. |
| `shared_secret` | string | No | The shared secret with the external tool (OAuth 1.0). |
| `not_selectable` | boolean | No | If set to true, and resource_selection is false, the tool won't show up in the external tool selection UI in modules and assignments. Default: false. |
| `is_rce_favorite` | boolean | No | (Deprecated) Whether this tool should appear in a preferred location in the Rich Content Editor. Only applies to tools in root account contexts with an editor button placement. |
| `oauth_compliant` | boolean | No | If set to true, LTI query params will not be copied to the post body. Default: false. |
| `unified_tool_id` | string | No | The unique identifier for the tool in LearnPlatform. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create external tool in course

**Slug:** `CANVAS_CREATE_EXTERNAL_TOOL_IN_COURSE`

Tool to create an external tool in the specified course. Use when you need to integrate an LTI tool or external application within a course context. If a client_id is supplied, Canvas will attempt to create a context external tool using the LTI 1.3 standard.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | The URL to match links against. Either 'url' or 'domain' should be set, not both. |
| `name` | string | No | The name of the external tool. This parameter overrides the tool name provided in XML configuration if config_type is set. |
| `text` | string | No | The default text to show for this tool. |
| `domain` | string | No | The domain to match links against (without protocol/port). Either 'url' or 'domain' should be set, not both. |
| `icon_url` | string | No | The URL of the icon to show for this tool. |
| `client_id` | string | No | The client ID attached to the developer key. If supplied, all other parameters are unnecessary and will be ignored. Canvas will attempt to create a context external tool using the LTI 1.3 standard. |
| `course_id` | string | Yes | The unique identifier of the course where the external tool will be created. |
| `config_url` | string | No | URL where the server can retrieve an XML tool configuration. Required if config_type is 'by_url'. |
| `config_xml` | string | No | XML tool configuration, as specified in the Common Cartridge XML specification. Required if config_type is 'by_xml'. |
| `config_type` | string ("by_url" | "by_xml") | No | Configuration type for external tool. |
| `description` | string | No | A description of the tool. |
| `consumer_key` | string | No | The consumer key for the external tool (OAuth 1.0). |
| `custom_fields` | object | No | Custom fields that will be sent to the tool consumer. Use key-value pairs. |
| `privacy_level` | string ("anonymous" | "name_only" | "email_only" | "public") | No | Privacy level for external tool - how much user information to send. |
| `shared_secret` | string | No | The shared secret with the external tool (OAuth 1.0). |
| `not_selectable` | boolean | No | If set to true, and resource_selection is false, the tool won't show up in the external tool selection UI in modules and assignments. Default: false. |
| `is_rce_favorite` | boolean | No | (Deprecated) Whether this tool should appear in a preferred location in the Rich Content Editor. Only applies to tools in root account contexts with an editor button placement. |
| `oauth_compliant` | boolean | No | If set to true, LTI query params will not be copied to the post body. Default: false. |
| `unified_tool_id` | string | No | The unique identifier for the tool in LearnPlatform. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Files

**Slug:** `CANVAS_CREATE_FILES`

Tool to initiate file upload to Canvas (Step 1 of 3-step process). Use when you need to upload a file to a course, user folder, group, or account. This action returns upload_url and upload_params needed for the actual file upload. After calling this, POST the file data to the upload_url with the returned parameters, then follow any redirect to complete the upload.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the file being uploaded. Any UTF-8 name is allowed. Path separators such as '/' and '\' will be treated as part of the filename, not as path elements. |
| `size` | integer | No | The size of the file in bytes. This field is recommended as it will allow you to catch quota issues before uploading the raw file data. |
| `context_id` | string | Yes | The unique identifier of the context entity (e.g., course ID, user ID, folder ID, group ID, or account ID) where the file will be created. |
| `content_type` | string | No | The content type (MIME type) of the file. If not provided, it will be guessed based on the file extension. |
| `context_type` | string ("courses" | "users" | "folders" | "groups" | "accounts") | Yes | The context in which to create the file. Valid contexts are 'courses', 'users', 'folders', 'groups', or 'accounts'. |
| `on_duplicate` | string ("overwrite" | "rename") | No | How to handle duplicate filenames. If 'overwrite' (default), the existing file will be overwritten. If 'rename', the new file will be renamed to avoid conflicts. |
| `parent_folder_id` | string | No | The ID of the folder to store the file in. If not provided and the context is not a folder, the file will be stored in the root folder of the context. If this parameter is passed and refers to a non-existent folder, the API returns an error. |
| `parent_folder_path` | string | No | The path of the folder to store the file in. The path separator is forward slash (/), e.g., 'course files/week 1'. If this parameter is passed and the folder does not yet exist, it will be created automatically. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create folder

**Slug:** `CANVAS_CREATE_FOLDER`

Tool to create a folder in the specified context. Use when you need to create a new folder for organizing files in Canvas for a user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the folder. |
| `hidden` | boolean | No | Flag the folder as hidden. |
| `locked` | boolean | No | Flag the folder as locked. |
| `lock_at` | string | No | The datetime to lock the folder at in ISO 8601 format. |
| `user_id` | string | Yes | The ID of the user to create the folder for. Use 'self' for the authenticated user. |
| `position` | integer | No | Set an explicit sort position for the folder. |
| `unlock_at` | string | No | The datetime to unlock the folder at in ISO 8601 format. |
| `parent_folder_id` | string | No | The id of the folder to store the new folder in. An error will be returned if this does not correspond to an existing folder. If this and parent_folder_path are sent an error will be returned. If neither is given, a default folder will be used. |
| `parent_folder_path` | string | No | The path of the folder to store the new folder in. The path separator is the forward slash `/`, never a back slash. The parent folder will be created if it does not already exist. If this and parent_folder_id are sent an error will be returned. If neither is given, a default folder will be used. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Folder in Group

**Slug:** `CANVAS_CREATE_FOLDER_IN_GROUP`

Tool to create a folder within a Canvas group. Use when you need to organize files in a group context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the folder to create. |
| `hidden` | boolean | No | Flag the folder as hidden. |
| `locked` | boolean | No | Flag the folder as locked. |
| `lock_at` | string | No | The datetime to lock the folder at (ISO 8601 format, e.g., '2011-10-21T18:48Z'). |
| `group_id` | string | Yes | The unique identifier of the group where the folder will be created. |
| `position` | integer | No | Set an explicit sort position for the folder. |
| `unlock_at` | string | No | The datetime to unlock the folder at (ISO 8601 format, e.g., '2011-10-21T18:48Z'). |
| `parent_folder_id` | string | No | The id of the folder to store the new folder in. An error will be returned if this does not correspond to an existing folder. If this and parent_folder_path are sent an error will be returned. If neither is given, a default folder will be used. |
| `parent_folder_path` | string | No | The path of the folder to store the new folder in. The path separator is the forward slash `/`, never a back slash. The parent folder will be created if it does not already exist. If this and parent_folder_id are sent an error will be returned. If neither is given, a default folder will be used. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a group

**Slug:** `CANVAS_CREATE_GROUP`

Tool to create a new community group directly. Use when you need to create a group without specifying a group category. Groups created using this endpoint will be community groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the group. |
| `is_public` | boolean | No | Whether the group is public (applies only to community groups). |
| `join_level` | string ("parent_context_auto_join" | "parent_context_request" | "invitation_only") | No | Specifies who can join the group and how. |
| `description` | string | No | A description of the group. |
| `sis_group_id` | string | No | The SIS ID of the group. Must have manage_sis permission to set. |
| `storage_quota_mb` | integer | No | The allowed file storage for the group, in megabytes. This parameter is ignored if the caller does not have the manage_storage_quotas permission. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a group category in a course

**Slug:** `CANVAS_CREATE_GROUP_CATEGORY_COURSES`

Creates a new group category within a specified Canvas course. Use when you need to organize student groups for projects, study sessions, or collaborative activities within a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the group category. |
| `course_id` | string | Yes | The ID of the course in which to create the group category. |
| `auto_leader` | string ("first" | "random") | No | Method for automatically assigning group leaders. |
| `group_limit` | integer | No | Limit the maximum number of users in each group (Course Only). Requires self signup to be enabled. |
| `self_signup` | string ("enabled" | "restricted") | No | Self-signup options for students in the group category. |
| `non_collaborative` | boolean | No | Can only be set by users with the Differentiation Tag - Add permission. If set to true, groups in this category will be only visible to users with the Differentiation Tag - Manage permission. |
| `split_group_count` | string | No | (Deprecated) Create this number of groups, and evenly distribute students among them. Not allowed with 'enable_self_signup'. Because the group assignment happens synchronously, it's recommended that you instead use the assign_unassigned_members endpoint (Course Only). |
| `create_group_count` | integer | No | Create this number of groups (Course Only). |
| `sis_group_category_id` | string | No | The unique SIS identifier for the group category. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a content migration for group

**Slug:** `CANVAS_CREATE_GROUP_CONTENT_MIGRATION`

Tool to create a content migration in a Canvas group. Use when you need to import content into a group from various sources. If the migration requires a file upload, the actual processing starts once the file upload completes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `select` | object | No | For course_copy_importer migrations, select objects to copy without using selective_import workflow. Keys are object types (e.g., 'files', 'folders', 'pages'), values are lists of object ids. |
| `group_id` | string | Yes | The unique identifier for the Canvas group where the content migration will be created. |
| `settings` | object | No | Settings for content migration configuration. |
| `migration_type` | string ("canvas_cartridge_importer" | "common_cartridge_importer" | "course_copy_importer" | "zip_file_importer" | "qti_converter" | "moodle_converter") | Yes | The type of the migration. Use the Migrator endpoint to see all available migrators. |
| `pre_attachment` | object | No | Parameters for pre-uploading a file for content migration. |
| `selective_import` | boolean | No | If true, perform a selective import instead of importing all content. The migration will identify contents and stop in 'waiting_for_select' state. Use the List items endpoint to enumerate contents, then call the Update endpoint with copy parameters to start import. |
| `date_shift_options` | object | No | Date shifting options for migrated content. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create group discussion topic

**Slug:** `CANVAS_CREATE_GROUP_DISCUSSION_TOPIC`

Tool to create a new discussion topic in a Canvas group. Use when creating a discussion for group collaboration or communication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The title of the new discussion topic. |
| `pinned` | boolean | No | If true, this topic will be listed in the 'Pinned Discussion' section. |
| `lock_at` | string | No | If a timestamp is given, the topic will be scheduled to lock at the provided timestamp. If the timestamp is in the past, the topic will be locked. |
| `message` | string | No | The main content/message of the discussion topic. Supports HTML for rich content formatting. |
| `expanded` | boolean | No | If true, thread will be expanded by default. |
| `group_id` | integer | Yes | The unique identifier for the group where the discussion topic will be created. |
| `published` | boolean | No | Whether this topic is published (true) or draft state (false). Only teachers and TAs have the ability to create draft state topics. |
| `assignment` | string | No | To create an assignment discussion, pass the assignment parameters as a sub-object. See the Create an Assignment API for the available parameters. |
| `attachment` | string | No | A multipart/form-data form-field-style attachment. Attachments larger than 1 kilobyte are subject to quota restrictions. |
| `sort_order` | string ("asc" | "desc") | No | Sort order for discussion entries. |
| `allow_rating` | boolean | No | Whether or not users can rate entries in this topic. |
| `lock_comment` | boolean | No | If is_announcement and lock_comment are true, 'Allow Participants to Comment' setting is disabled. |
| `position_after` | string | No | By default, discussions are sorted chronologically by creation date. Pass the id of another topic to have this one show up after the other when they are listed. |
| `sort_by_rating` | boolean | No | (DEPRECATED) If true, entries will be sorted by rating. |
| `delayed_post_at` | string | No | If a timestamp is given, the topic will not be published until that time. |
| `discussion_type` | string ("side_comment" | "threaded" | "not_threaded") | No | Type of discussion threading. |
| `expanded_locked` | boolean | No | If true, users cannot choose their preferred thread expansion setting. |
| `is_announcement` | boolean | No | If true, this topic is an announcement. It will appear in the announcement's section rather than the discussions section. |
| `podcast_enabled` | boolean | No | If true, the topic will have an associated podcast feed. |
| `group_category_id` | integer | No | If present, the topic will become a group discussion assigned to the group. |
| `sort_order_locked` | boolean | No | If true, users cannot choose their preferred sort order. |
| `specific_sections` | string | No | A comma-separated list of sections ids to which the discussion topic should be made specific to. Can only be present only on announcements and only those that are for a course (as opposed to a group). |
| `require_initial_post` | boolean | No | If true then a user may not respond to other replies until that user has made an initial reply. Defaults to false. |
| `only_graders_can_rate` | boolean | No | If true, only graders will be allowed to rate entries. |
| `podcast_has_student_posts` | boolean | No | If true, the podcast will include posts from students as well. Implies podcast_enabled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create group in set

**Slug:** `CANVAS_CREATE_GROUP_IN_SET`

Tool to create a new group within a Canvas group set. Use when adding a new group to an existing group category.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the group to create. |
| `group_set_id` | string | Yes | The ID of the group set (group category) to create the group in. |
| `non_collaborative` | boolean | No | Whether the group should be non-collaborative (defaults to false if not provided). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a group set

**Slug:** `CANVAS_CREATE_GROUP_SET`

Tool to create a new group set (group category) in a Canvas course or account. Use when organizing students into project teams or study groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the group set. |
| `context_id` | string | Yes | The ID of the context (course or account) where the group set will be created. |
| `group_limit` | integer | No | Maximum number of members allowed per group. |
| `self_signup` | boolean | No | If true, enables self-signup for groups. |
| `assign_async` | boolean | No | If true, assigns students to groups asynchronously. |
| `context_type` | string ("course" | "account") | Yes | The type of context for the group set. |
| `auto_leader_type` | string ("first" | "random") | No | Method of selecting an automatic leader for groups. |
| `group_by_section` | boolean | No | If true, restricts group membership to students within the same section. |
| `non_collaborative` | boolean | No | If true, marks the group set as non-collaborative (students work independently). |
| `create_group_count` | integer | No | Number of groups to create within the group set. |
| `enable_auto_leader` | boolean | No | If true, enables automatic leader assignment for groups. |
| `enable_self_signup` | boolean | No | If true, allows students to sign up for groups themselves. |
| `restrict_self_signup` | boolean | No | If true, restricts self-signup based on additional criteria. |
| `assign_unassigned_members` | boolean | No | If true, automatically assigns unassigned members to groups. |
| `create_group_member_count` | integer | No | Target number of members per group when auto-creating groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Learning Outcome

**Slug:** `CANVAS_CREATE_LEARNING_OUTCOME`

Tool to create a new learning outcome in Canvas using GraphQL. Use when you need to define a new learning objective or competency within an outcome group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The title of the learning outcome. |
| `ratings` | array | No | List of rating criteria for the learning outcome, each with description and points. |
| `group_id` | string | Yes | The ID of the outcome group where this learning outcome will be created. |
| `description` | string | No | A detailed description of the learning outcome. |
| `vendor_guid` | string | No | A third-party vendor GUID for the outcome, used for external integrations. |
| `display_name` | string | No | A short display name for the learning outcome. |
| `mastery_points` | number | No | The number of points required to achieve mastery for this outcome. |
| `calculation_int` | integer | No | An integer parameter for the calculation method. Required for 'decaying_average' (weight between 1-99) and 'n_mastery' (number of times, minimum 1). |
| `calculation_method` | string ("decaying_average" | "n_mastery" | "latest" | "highest" | "average") | No | Calculation methods for learning outcomes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create/Link an outcome in course

**Slug:** `CANVAS_CREATE_LINK_OUTCOME_COURSES`

Tool to link an existing outcome or create a new outcome within a course outcome group. Use when associating outcomes with outcome groups in a Canvas course context. If outcome_id is provided, links the existing outcome; otherwise creates a new outcome with the provided details (title, description, ratings, mastery_points).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the outcome group to link the outcome to. |
| `title` | string | No | The title of the new outcome. Required if outcome_id is absent (creating a new outcome). |
| `course_id` | string | Yes | The ID of the course containing the outcome group. |
| `move_from` | integer | No | The ID of the old outcome group. Only used if outcome_id is present. Moves the outcome from the old group to the new group. |
| `outcome_id` | integer | No | The ID of the existing outcome to link. If provided, links an existing outcome. If omitted, a new outcome is created using title, description, and other fields. |
| `description` | string | No | The description of the new outcome. Only used when creating a new outcome (outcome_id is absent). |
| `vendor_guid` | string | No | A custom GUID for the learning standard. |
| `display_name` | string | No | A friendly name shown in reports for outcomes with cryptic titles, such as common core standards names. |
| `mastery_points` | integer | No | The mastery threshold for the embedded rubric criterion. Used when creating a new outcome. |
| `ratings_points` | array | No | The points corresponding to a rating level for the embedded rubric criterion. Must match the length of ratings_description if provided. |
| `calculation_int` | integer | No | The new calculation int. Only applies if the calculation_method is 'weighted_average', 'decaying_average' or 'n_mastery'. Defaults to 65. |
| `calculation_method` | string ("weighted_average" | "decaying_average" | "n_mastery" | "latest" | "highest" | "average") | No | The new calculation method. Defaults to 'decaying_average' if the Outcomes New Decaying Average Calculation Method FF is ENABLED, otherwise defaults to 'weighted_average'. |
| `ratings_description` | array | No | The description of a rating level for the embedded rubric criterion. Must match the length of ratings_points if provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create an LTI resource link

**Slug:** `CANVAS_CREATE_LTI_RESOURCE_LINK`

Creates a new LTI Resource Link in a Canvas course. Use when integrating LTI 1.3 external tools that can be launched or embedded in rich content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The launch URL for this resource link. This is the URL of the external tool that will be launched. |
| `title` | string | No | The title of the resource link. If not provided, Canvas may use a default or tool-provided title. |
| `custom` | object | No | Custom parameters to be sent to the tool when launching this link. These are key-value pairs specific to the external tool. |
| `course_id` | string | Yes | The unique identifier of the course where the LTI resource link will be created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a membership

**Slug:** `CANVAS_CREATE_MEMBERSHIP`

Tool to join or request to join a group, depending on the join level of the group. Use when you need to add a user to a Canvas group. If the membership or join request already exists, it is simply returned.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `members` | array | No | Bulk add multiple users to a group. Provide array of user IDs. Cannot be used with user_id or all_in_group_course. |
| `user_id` | string | No | The ID of the user for individual membership creation. Required unless using bulk options. |
| `group_id` | string | Yes | The unique identifier of the group to create membership in. |
| `exclude_user_ids` | array | No | An array of user IDs to exclude when using all_in_group_course. Only applies when all_in_group_course is true. |
| `all_in_group_course` | boolean | No | If true, add all enrolled students from the course. Cannot be used with user_id or members. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Module

**Slug:** `CANVAS_CREATE_MODULE`

Creates a new organizational module within a specified Canvas LMS course, with options for availability, sequencing, and prerequisites.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name for the new module. |
| `position` | integer | No | 1-based position in the course's module list. |
| `course_id` | string | Yes | ID of the course for the new module. |
| `unlock_at` | string | No | ISO 8601 datetime for module availability to students. If omitted, availability follows course settings. |
| `publish_final_grade` | boolean | No | If true, automatically publishes the student's final course grade upon module completion. |
| `prerequisite_module_ids` | array | No | List of module IDs that are prerequisites for accessing this module. |
| `require_sequential_progress` | boolean | No | If true, students must complete items sequentially; if false, any order is allowed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create module (GraphQL)

**Slug:** `CANVAS_CREATE_MODULE_GRAPH_QL`

Tool to create a new module in a Canvas course via GraphQL. Use when creating a module with basic settings (name) through the GraphQL API.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the module to create. |
| `course_id` | string | Yes | The ID of the course to create the module in. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Module Item

**Slug:** `CANVAS_CREATE_MODULE_ITEM`

Create and return a new module item within a Canvas course module. Use when you need to add content (assignments, pages, quizzes, files, discussions, external links, or subheaders) to an existing module.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("File" | "Page" | "Discussion" | "Assignment" | "Quiz" | "SubHeader" | "ExternalUrl" | "ExternalTool") | Yes | The type of content linked to the item. Determines which other fields are required. |
| `title` | string | Yes | The name of the module item and associated content. |
| `indent` | integer | No | 0-based indent level; module items may be indented to show a hierarchy. Defaults to 0. |
| `new_tab` | boolean | No | Whether the external tool opens in a new tab. Only applies to 'ExternalTool' type. |
| `page_url` | string | No | Suffix for the linked wiki page (e.g. 'front-page'). Required for 'Page' type. |
| `position` | integer | No | The position of this item in the module (1-based). If not specified, item is added to the end. |
| `course_id` | string | Yes | The unique identifier of the Canvas course containing the module. |
| `module_id` | string | Yes | The unique identifier of the module to add the item to. |
| `content_id` | string | No | The id of the content to link to the module item. Required for 'File', 'Discussion', 'Assignment', 'Quiz', and 'ExternalTool' types. Not required for 'ExternalUrl', 'Page', and 'SubHeader' types. |
| `external_url` | string | No | External url that the item points to. Required for 'ExternalUrl' and 'ExternalTool' types. |
| `iframe_width` | integer | No | Width of the ExternalTool on launch. Only applies to 'ExternalTool' type. |
| `iframe_height` | integer | No | Height of the ExternalTool on launch. Only applies to 'ExternalTool' type. |
| `completion_requirement_type` | string ("must_view" | "must_contribute" | "must_submit" | "must_mark_done" | "min_score") | No | Type of completion requirement for the module item. |
| `completion_requirement_min_score` | integer | No | Minimum score required to complete. Required for completion_requirement_type 'min_score'. Only applies to Assignment and Quiz types. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create or Update Timetable Events

**Slug:** `CANVAS_CREATE_OR_UPDATE_TIMETABLE_EVENTS`

Tool to create or update timetable events for a course or course section. Use when you need to set up a complete schedule of events directly, rather than generating them from a timetable pattern. If a code is provided for an event, existing events with that code will be updated; otherwise, new events are created.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `events` | array | Yes | An array of event objects to create or update. Each event must have start_at and end_at times. |
| `course_id` | string | Yes | The ID of the course for which timetable events will be created or updated. |
| `course_section_id` | string | No | Events will be created for the course section specified by course_section_id. If not present, events will be created for the entire course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a page for a course

**Slug:** `CANVAS_CREATE_PAGE_FOR_COURSE`

Creates a new wiki page in a specified Canvas course, with options for title, HTML body, editing permissions, publication, and designation as front page (which also requires publication).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | HTML content of the new page. Must be valid HTML. |
| `title` | string | Yes | Title for the new wiki page. |
| `course_id` | integer | Yes | Unique identifier for the course. |
| `published` | boolean | No | Publish the page upon creation. Defaults to false (draft). |
| `front_page` | boolean | No | Set as the front page for the course; page must also be published. Defaults to false. |
| `editing_roles` | string | No | Comma-separated string of roles allowed to edit: 'teachers', 'students', 'members', 'public'. Defaults to 'teachers'. |
| `notify_of_update` | boolean | No | Notify users of changes to this page. Defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a page for a group

**Slug:** `CANVAS_CREATE_PAGE_FOR_GROUP`

Creates a new wiki page in a specified Canvas group. Use when you need to create documentation, notes, or collaborative content for a group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | HTML content of the new page. Must be valid HTML. |
| `title` | string | Yes | Title for the new wiki page. |
| `group_id` | string | Yes | Unique identifier for the group where the page will be created. |
| `published` | boolean | No | Whether the page is published (true) or draft state (false). |
| `front_page` | boolean | No | Set an unhidden page as the front page (if true). Page must also be published. |
| `publish_at` | string | No | Schedule a future date/time to publish the page in ISO 8601 format. This will have no effect unless the 'Scheduled Page Publication' feature is enabled in the account. If a future date is supplied, the page will be unpublished and published parameter will be ignored. |
| `editing_roles` | string ("teachers" | "students" | "members" | "public") | No | Which user roles are allowed to edit this page. Any combination of these roles is allowed (separated by commas): 'teachers' (allows editing by teachers), 'students' (allows editing by students), 'members' (for group wikis, allows editing by members of the group), 'public' (allows editing by any user). |
| `notify_of_update` | boolean | No | Whether participants should be notified when this page changes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a planner note

**Slug:** `CANVAS_CREATE_PLANNER_NOTE`

Create a planner note for the current user. Use when adding a personal to-do item or reminder to the Canvas planner.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | The title of the planner note. If linked to a learning object and title is not provided, the planner note will use the learning object's title. |
| `details` | string | No | Text of the planner note. Can contain HTML formatting. |
| `course_id` | integer | No | The ID of the course to associate with the planner note. The caller must be able to view the course in order to associate it with a planner note. |
| `todo_date` | string | No | The date where this planner note should appear in the planner. Format: 'yyyy-mm-dd'. |
| `linked_object_id` | integer | No | The id of a learning object to link to this planner note. Must be used in conjunction with linked_object_type and course_id. If the title argument is not provided, the planner note will use the learning object's title as its title. |
| `linked_object_type` | string ("announcement" | "assignment" | "discussion_topic" | "wiki_page" | "quiz") | No | Valid types for linked learning objects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a planner override

**Slug:** `CANVAS_CREATE_PLANNER_OVERRIDE`

Tool to create a planner override for the current user. Use when marking planner items as complete or dismissing them from the opportunities list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dismissed` | boolean | No | If this is true, the item will not show in the opportunities list. |
| `plannable_id` | integer | Yes | ID of the item that you are overriding in the planner. |
| `plannable_type` | string ("announcement" | "assignment" | "discussion_topic" | "quiz" | "wiki_page" | "planner_note" | "calendar_event" | "assessment_request" | "sub_assignment") | Yes | Type of the item that you are overriding in the planner. |
| `marked_complete` | boolean | No | If this is true, the item will show in the planner as completed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Question Group

**Slug:** `CANVAS_CREATE_QUESTION_GROUP`

Tool to create one or more question groups for a quiz. Use when you need to organize quiz questions into groups for random selection.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `quiz_id` | string | Yes | The ID of the quiz to create the question group for. |
| `course_id` | string | Yes | The ID of the course containing the quiz. |
| `quiz_groups` | array | Yes | List of question groups to create. Each group specifies a name, number of questions to pick, points per question, and optionally a question bank to pull from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Quiz

**Slug:** `CANVAS_CREATE_QUIZ`

Creates a new quiz with various settings in a specified existing Canvas course; `assignment_group_id` applies only to graded quiz types.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The title of the quiz. |
| `due_at` | string | No | The date and time (ISO 8601 format) by which the quiz should be submitted. |
| `lock_at` | string | No | The date and time (ISO 8601 format) after which students can no longer submit the quiz. |
| `course_id` | string | Yes | The ID of the course where the quiz will be created. |
| `ip_filter` | string | No | An optional comma-separated list of IP addresses or CIDR ranges (e.g., '192.168.1.0/24', '203.0.113.42') to restrict quiz access. |
| `published` | boolean | No | If true, the quiz will be published and visible to students according to availability dates and override settings. Default is typically false for new quizzes. |
| `quiz_type` | string ("practice_quiz" | "assignment" | "graded_survey" | "survey") | No | Specifies the type of quiz: 'practice_quiz' (ungraded practice), 'assignment' (graded quiz), 'graded_survey' (graded but no correct answers), or 'survey' (ungraded, no correct answers). Defaults to 'assignment' if omitted. |
| `unlock_at` | string | No | The date and time (ISO 8601 format) when the quiz becomes available for students to take. |
| `time_limit` | integer | No | The time limit for the quiz in minutes. Use null or omit for no time limit. |
| `access_code` | string | No | An optional password students must enter to start the quiz. |
| `description` | string | No | A textual description of the quiz content and instructions. |
| `cant_go_back` | boolean | No | If true and `one_question_at_a_time` is also true, students cannot return to previous questions after submitting an answer for the current question. Default is false. |
| `hide_results` | string ("always" | "until_after_last_attempt") | No | Controls when students can see their quiz results. If null or omitted, results are shown immediately after submission. |
| `scoring_policy` | string ("keep_highest" | "keep_latest") | No | If multiple attempts are allowed, this determines which attempt's score is recorded. |
| `shuffle_answers` | boolean | No | If true, the order of answers for questions will be randomized for each student. Default is typically false. |
| `allowed_attempts` | integer | No | The number of times a student is allowed to take the quiz. Use -1 for unlimited attempts. Omit for course/quiz default. |
| `one_time_results` | boolean | No | If true and `hide_results` is also set (not null), students can only view their results once, immediately after submitting the quiz. Has no effect if `hide_results` is null. Default is false. |
| `assignment_group_id` | integer | No | The ID of the assignment group to associate the quiz with. This is applicable only if the quiz is graded (e.g., 'assignment' or 'graded_survey' type). |
| `show_correct_answers` | boolean | No | If true, students will be able to see the correct answers when viewing their results (subject to other settings like `show_correct_answers_at` and `hide_correct_answers_at`). Default is typically true. |
| `one_question_at_a_time` | boolean | No | If true, students will see one question at a time and must navigate sequentially. Default is false. |
| `hide_correct_answers_at` | string | No | The date and time (ISO 8601 format) after which correct answers will be hidden from students. Requires `show_correct_answers` to be true. |
| `show_correct_answers_at` | string | No | The date and time (ISO 8601 format) when correct answers will become visible to students. Requires `show_correct_answers` to be true. |
| `only_visible_to_overrides` | boolean | No | If true, the quiz is hidden from the general student population and only accessible to students with specific assignment overrides. Default is false. |
| `show_correct_answers_last_attempt` | boolean | No | If true, correct answers will only be shown to students after their last allowed attempt. Requires `show_correct_answers` to be true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a quiz question

**Slug:** `CANVAS_CREATE_QUIZ_QUESTION`

Creates a new question for an existing quiz within a course; if `answers` are provided, their structure must align with `question_type`, and any `quiz_group_id` must be valid for an existing group in the quiz.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `answers` | array | No | Array of Answer objects. Structure must align with `question_type`. For multiple_choice/multiple_answers/true_false, use `answer_text`, `answer_weight`, and optional `answer_comments` (supports HTML). For matching, use `answer_match_left`, `answer_match_right`, and optional `matching_answer_incorrect_matches` (newline-delimited). For numerical, set `numerical_answer_type` to one of `exact_answer`, `range_answer`, or `precision_answer` with the corresponding numeric fields. For fill_in_multiple_blanks/multiple_dropdowns, include `blank_id` to associate answers with specific blanks. |
| `quiz_id` | integer | Yes | Identifier of the quiz to add the question to. |
| `position` | integer | No | 1-based display order in the quiz; defaults to end if omitted. |
| `course_id` | integer | Yes | Identifier of the course containing the quiz. |
| `question_name` | string | Yes | Descriptive name for identification, especially in question banks. |
| `question_text` | string | Yes | Main question content, presented to the student; supports HTML. |
| `question_type` | string ("calculated_question" | "essay_question" | "file_upload_question" | "fill_in_multiple_blanks_question" | "matching_question" | "multiple_answers_question" | "multiple_choice_question" | "multiple_dropdowns_question" | "numerical_question" | "short_answer_question" | "text_only_question" | "true_false_question") | Yes | Question format and answer options. See `QuestionType` enum. |
| `quiz_group_id` | integer | No | ID of an existing quiz group for this question; for organization within the quiz. |
| `points_possible` | integer | No | Maximum points for a correct answer. |
| `correct_comments` | string | No | Feedback (text/HTML) for a correct answer. |
| `neutral_comments` | string | No | Feedback (text/HTML) regardless of answer correctness. |
| `incorrect_comments` | string | No | Feedback (text/HTML) for an incorrect answer. |
| `text_after_answers` | string | No | Additional text/HTML displayed post-submission (e.g., explanations). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Quiz Report

**Slug:** `CANVAS_CREATE_QUIZ_REPORT`

Tool to create a quiz report in Canvas. Generates either a student analysis or item analysis report for a quiz. If a matching report already exists and is current, it will be returned instead.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | string ("file" | "progress") | No | Whether the output should include documents for the 'file' and/or 'progress' objects associated with this report. Only applicable with JSON-API formatted responses. |
| `quiz_id` | string | Yes | The ID of the quiz for which to generate a report. |
| `course_id` | string | Yes | The ID of the course containing the quiz. |
| `report_type` | string ("student_analysis" | "item_analysis") | Yes | The type of report to generate. 'student_analysis' provides detailed student performance data, while 'item_analysis' focuses on question-level statistics. |
| `includes_all_versions` | boolean | No | Whether the report should consider all quiz submission attempts or only the most recent attempt for each student. Defaults to false (most recent only). Ignored for 'item_analysis' reports. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create quiz submission (start quiz)

**Slug:** `CANVAS_CREATE_QUIZ_SUBMISSION`

Tool to start taking a quiz by creating a quiz submission. Use when a student needs to begin a quiz-taking session. Returns the quiz submission with workflow_state indicating the session status (e.g., 'preview' for teacher previews).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `preview` | boolean | No | Whether this should be a preview quiz submission and not count towards the user's course record. Teachers only. |
| `quiz_id` | string | Yes | The unique ID of the quiz. |
| `course_id` | string | Yes | The unique ID of the course. |
| `access_code` | string | No | Access code for the quiz, if the quiz requires one. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Rubric

**Slug:** `CANVAS_CREATE_RUBRIC`

Tool to create a rubric in a Canvas course. Use when you need structured assessment criteria and optional association after confirming course context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rubric` | object | Yes | Rubric data to create |
| `course_id` | string | Yes | The ID of the course in which to create the rubric |
| `rubric_association` | object | No | Optional association settings linking rubric to an assignment, course, or account |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Single Poll

**Slug:** `CANVAS_CREATE_SINGLE_POLL`

Tool to create a new poll for the current user in Canvas. Use when you need to create a poll with a question and optional description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `question` | string | Yes | The title of the poll. This is the main question that will be displayed to poll participants. |
| `description` | string | No | A brief description or instructions for the poll. Provides additional context for participants. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a single poll choice

**Slug:** `CANVAS_CREATE_SINGLE_POLL_CHOICE`

Tool to create one or more poll choices for an existing poll in Canvas. Use when you need to add answer options to a poll.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `poll_id` | string | Yes | The ID of the poll to add the choice to. |
| `poll_choices` | array | Yes | Array of poll choice objects to create. Typically contains one poll choice, but the API accepts multiple. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Single Poll Session

**Slug:** `CANVAS_CREATE_SINGLE_POLL_SESSION`

Tool to create a new poll session for a poll in Canvas. Use when you need to create a poll session associated with a specific course or course section.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `poll_id` | string | Yes | The unique identifier of the poll to create a session for. |
| `course_id` | integer | Yes | The id of the course this session is associated with. |
| `course_section_id` | integer | No | The id of the course section this session is associated with. |
| `has_public_results` | boolean | No | Whether or not results are viewable by students. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a single poll submission

**Slug:** `CANVAS_CREATE_SINGLE_POLL_SUBMISSION`

Tool to create a new poll submission for a poll session. Use when submitting a user's choice(s) for an active poll. The poll session must be published before submissions can be created.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `poll_id` | string | Yes | The unique identifier of the poll. |
| `poll_choice_id` | array | Yes | List of poll choice IDs to submit. Each ID represents a selected choice for this poll submission. |
| `poll_session_id` | string | Yes | The unique identifier of the poll session. The poll session must be published before submissions can be created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Subgroup in Course

**Slug:** `CANVAS_CREATE_SUBGROUP_COURSES`

Creates a new empty subgroup under the outcome group with the given title and description. Use when you need to add a new subgroup to organize outcomes within a course's outcome group hierarchy.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the parent outcome group under which the subgroup will be created. |
| `title` | string | Yes | The title of the new outcome subgroup. |
| `course_id` | string | Yes | The unique identifier of the course that owns the parent outcome group. |
| `description` | string | No | The description of the new outcome subgroup. |
| `vendor_guid` | string | No | A custom GUID for the learning standard. Used for external integrations. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create submission draft

**Slug:** `CANVAS_CREATE_SUBMISSION_DRAFT`

Tool to create a draft submission for an assignment in Canvas via GraphQL. Use when a student needs to save work in progress before final submission, or when pre-populating submission content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | URL for online_url submissions. Required when activeSubmissionType is 'online_url'. |
| `body` | string | No | The body text for online_text_entry submissions. Required when activeSubmissionType is 'online_text_entry'. |
| `attempt` | integer | No | The attempt number for this draft submission. If not provided, uses the next attempt number. |
| `fileIds` | array | No | Array of file IDs for online_upload submissions. Required when activeSubmissionType is 'online_upload'. |
| `mediaId` | string | No | Media ID for media_recording submissions. Required when activeSubmissionType is 'media_recording'. |
| `ltiLaunchUrl` | string | No | LTI launch URL for basic_lti_launch submissions. Used with externalToolId. |
| `submissionId` | string | Yes | The ID of the submission to create a draft for. This is a required field. |
| `externalToolId` | string | No | External tool ID for basic_lti_launch submissions. Required when activeSubmissionType is 'basic_lti_launch'. |
| `activeSubmissionType` | string ("basic_lti_launch" | "media_recording" | "online_text_entry" | "online_upload" | "online_url" | "student_annotation") | Yes | The type of submission draft to create. Must be one of the supported submission types. |
| `resourceLinkLookupUuid` | string | No | Resource link lookup UUID for LTI submissions. Used for LTI 1.3 resource link identification. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create user inbox label

**Slug:** `CANVAS_CREATE_USER_INBOX_LABEL`

Tool to create new user inbox labels in Canvas. Use when organizing inbox messages with custom labels.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `names` | array | Yes | A list of label names to create for the user's inbox. Each name should be a non-empty string. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Users Custom Data

**Slug:** `CANVAS_CREATE_USERS_CUSTOM_DATA`

Tool to create or update custom data for a Canvas user within a specified namespace. Use when you need to store application-specific JSON data for a user. The namespace parameter (ns) is required to prevent data collisions between different applications.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ns` | string | Yes | Namespace parameter (required) to prevent custom_data collisions between different applications. Should use reverse DNS format like 'com.organization.app'. |
| `data` | object | Yes | The custom data to store (JSON object, can be nested). This will replace any existing data at the root level of the namespace. |
| `user_id` | string | No | The user ID. Use 'self' for the authenticated user, or provide a specific user ID (requires admin permissions). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create User Token

**Slug:** `CANVAS_CREATE_USERS_TOKENS`

Tool to create a new access token for a Canvas user. Use when you need to generate an API access token for authentication purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scopes` | array | No | The scopes to associate with the token. Ignored if the default developer key does not have the 'enable scopes' option enabled. In such cases, the token will inherit the user's permissions instead. |
| `purpose` | string | Yes | The purpose of the token. This is a required field that describes what the token will be used for. |
| `user_id` | string | No | The ID of the user to create a token for. Use 'self' to create a token for the currently authenticated user, or provide a specific user ID. |
| `expires_at` | string | No | The time at which the token will expire, in ISO 8601 format (e.g., '2024-12-31T23:59:59Z'). If omitted, the token will not have an expiration date. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete an access token

**Slug:** `CANVAS_DELETE_ACCESS_TOKEN`

Tool to delete an access token for a Canvas user. Use when you need to revoke or remove an API access token. The ID can be the actual database ID of the token, or the 'token_hint' value.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the access token to delete. Can be the actual database ID of the token, or the 'token_hint' value. |
| `user_id` | string | Yes | The ID of the user whose token to delete. Use 'self' for the currently authenticated user, or provide a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete messages from conversation

**Slug:** `CANVAS_DELETE_A_MESSAGE`

Tool to delete messages from a Canvas conversation. Note that this only affects this user's view of the conversation. If all messages are deleted, the conversation will be removed as well.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the conversation from which to delete messages. |
| `remove` | array | Yes | Array of message IDs to be deleted from the conversation. Note that this only affects this user's view of the conversation. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a discussion entry

**Slug:** `CANVAS_DELETE_AN_ENTRY`

Tool to delete a discussion entry. The entry must have been created by the current user, or the current user must have admin rights to the discussion. Use when removing an entry from a discussion topic. The entry will be marked deleted, and user_id and message will be cleared.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the discussion entry to delete. The entry must have been created by the current user, or the current user must have admin rights to the discussion. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic containing the entry. |
| `course_id` | string | Yes | The unique identifier of the course containing the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a group discussion entry

**Slug:** `CANVAS_DELETE_AN_ENTRY2`

Tool to delete a discussion entry in a group discussion. The entry must have been created by the current user, or the current user must have admin rights to the discussion. Use when removing an entry from a group discussion topic. The entry will be marked deleted, and user_id and message will be cleared.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the discussion entry to delete. The entry must have been created by the current user, or the current user must have admin rights to the discussion. |
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic containing the entry. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete an external tool

**Slug:** `CANVAS_DELETE_AN_EXTERNAL_TOOL`

Remove the specified external tool from a course. Use when you need to delete an external tool integration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course containing the external tool. |
| `external_tool_id` | string | Yes | The unique identifier of the external tool to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete an outcome group (courses)

**Slug:** `CANVAS_DELETE_AN_OUTCOME_GROUP_COURSES`

Deletes an outcome group from a course. Deleting an outcome group also deletes all descendant outcome groups and outcome links. Linked outcomes are only deleted if all links to the outcome were deleted. Aligned outcomes cannot be deleted; if all remaining links to an aligned outcome are in this group's descendants, the deletion will fail.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the outcome group to delete. Deleting this group will also delete all descendant outcome groups and outcome links. |
| `course_id` | string | Yes | The unique identifier of the course containing the outcome group to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete appointment group

**Slug:** `CANVAS_DELETE_APPOINTMENT_GROUP`

Permanently deletes an existing appointment group by its ID; associated appointments may also be canceled or affected.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cancel_reason` | string | No | An optional reason for deleting the appointment group. |
| `appointment_group_id` | string | Yes | The unique identifier of the appointment group to be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete an assignment

**Slug:** `CANVAS_DELETE_ASSIGNMENT`

Soft-deletes a specific assignment within a course, returning the assignment object with its `workflow_state` updated to 'deleted'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The unique identifier of the course to which the assignment belongs. |
| `assignment_id` | integer | Yes | The unique identifier of the assignment to be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete assignment override

**Slug:** `CANVAS_DELETE_ASSIGNMENT_OVERRIDE`

Deletes an assignment override and returns its former details. Use when you need to remove date exceptions or special accommodations that were previously set for specific students, groups, or sections.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the assignment override to delete. |
| `course_id` | string | Yes | The unique identifier of the course containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment containing the override. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete blackout date

**Slug:** `CANVAS_DELETE_BLACKOUT_DATE`

Tool to delete a blackout date for the given course context. Use when you need to remove a previously scheduled blackout period.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the blackout date to be deleted. |
| `course_id` | string | Yes | The unique identifier of the course that contains the blackout date. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete bookmark

**Slug:** `CANVAS_DELETE_BOOKMARK`

Deletes a bookmark from the current user's bookmarks. Use when you need to remove a saved bookmark.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the bookmark to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a calendar event

**Slug:** `CANVAS_DELETE_CALENDAR_EVENT`

Delete a calendar event from Canvas and return the deleted event details. Use when you need to remove a calendar event, optionally providing a cancellation reason for participants.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the calendar event to be deleted. |
| `which` | string ("one" | "all" | "following") | No | Defines the scope of deletion for recurring calendar events. |
| `cancel_reason` | string | No | Reason for deleting or canceling the event. This will be visible to event participants. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete comment bank item

**Slug:** `CANVAS_DELETE_COMMENT_BANK_ITEM`

Tool to delete a comment bank item from Canvas. Use when you need to remove a previously saved grading comment that is no longer needed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the comment bank item to delete. This should be a GraphQL global ID (e.g., 'Q29tbWVudEJhbmtJdGVtLTI='). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a communication channel

**Slug:** `CANVAS_DELETE_COMMUNICATION_CHANNEL`

Deletes an existing communication channel for a user. Use when you need to remove an email, SMS, or push notification channel from a user's account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the communication channel to delete. |
| `user_id` | string | Yes | The ID of the user who owns the communication channel. Use 'self' for the current user, a numeric user ID, or a SIS User ID prefixed with 'sis_user_id:'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete communication channel by type and address

**Slug:** `CANVAS_DELETE_COMMUNICATION_CHANNEL_BY_TYPE_AND_ADDRESS`

Deletes a communication channel by type and address. Use when you need to remove a specific email, SMS, or push notification channel from a user's account using the channel type and address instead of the channel ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("email" | "sms" | "push") | Yes | The type of communication channel to delete. Must be one of: 'email', 'sms', or 'push'. |
| `address` | string | Yes | The address of the communication channel to delete. For 'email' type, this is an email address. For 'sms' type, this is a phone number in E.164 format (e.g., +15551234567). |
| `user_id` | string | Yes | The ID of the Canvas user who owns the communication channel. Use 'self' for the current user, a numeric user ID, or a SIS User ID prefixed with 'sis_user_id:'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete conversation messages

**Slug:** `CANVAS_DELETE_CONVERSATION_MESSAGES`

Tool to delete specific messages from a Canvas conversation. Use when you need to remove one or more messages from a conversation thread by their message IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | Yes | Array of conversation message IDs to delete. Each ID should be a string representing the unique identifier of a message. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete conversations

**Slug:** `CANVAS_DELETE_CONVERSATIONS`

Tool to delete one or more Canvas conversations. Use when permanently removing conversation threads. Returns the deleted conversation IDs on success.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | Yes | Array of conversation IDs to delete. Each ID should be a string. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete custom data

**Slug:** `CANVAS_DELETE_CUSTOM_DATA`

Tool to delete custom user data for a given namespace. Use when you need to remove arbitrary JSON data stored for a user in a specific namespace. Without a scope parameter, all custom data in the namespace is deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ns` | string | Yes | The namespace from which to delete the data. This should be something other Canvas API apps aren't likely to use, such as a reverse DNS for your organization (e.g., 'com.composio.test'). |
| `user_id` | string | Yes | The unique identifier of the user whose custom data should be deleted. Use 'self' to refer to the current authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a custom gradebook column

**Slug:** `CANVAS_DELETE_CUSTOM_GRADEBOOK_COLUMN`

Permanently deletes a custom gradebook column and its associated data from a course. This action cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the custom gradebook column to be deleted. |
| `course_id` | string | Yes | The unique identifier of the course containing the custom gradebook column. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete custom grade status

**Slug:** `CANVAS_DELETE_CUSTOM_GRADE_STATUS`

Tool to delete a custom grade status from Canvas. Use when removing a custom grade status that is no longer needed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the custom grade status to delete. Use the legacy ID format (e.g., '1', '2') not GraphQL global ID format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete discussion entry

**Slug:** `CANVAS_DELETE_DISCUSSION_ENTRY`

Tool to delete a discussion entry. Use when removing an entry from a discussion. Returns the deleted entry details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the discussion entry to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete discussion topic (GraphQL)

**Slug:** `CANVAS_DELETE_DISCUSSION_TOPIC_GRAPH_QL`

Tool to delete a discussion topic in Canvas via GraphQL. Returns the deleted discussion topic ID upon successful deletion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the discussion topic to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete external feed from group

**Slug:** `CANVAS_DELETE_EXTERNAL_FEED_FROM_GROUP`

Deletes the external feed from the specified group. Use when removing an RSS/Atom feed that was previously configured for the group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group containing the external feed. |
| `external_feed_id` | string | Yes | The unique identifier of the external feed to be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete file

**Slug:** `CANVAS_DELETE_FILE`

Tool to remove a file from Canvas. Use when comprehensive, irretrievable destruction of the file is needed. Set `replace` to true to destroy file previews and replace contents with a placeholder (requires special permissions).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the file to be deleted. |
| `replace` | boolean | No | If true, the file contents will be replaced with a generic 'file has been removed' file and any previews will be destroyed. This action is irreversible. Must have 'manage files and become other users' permissions to use this option. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a folder

**Slug:** `CANVAS_DELETE_FOLDER`

Permanently deletes an existing folder specified by its unique ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the folder to be deleted. |
| `force` | boolean | No | If `true`, deletes the folder even if it contains items. If `false` (default), the folder must be empty for deletion. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a group

**Slug:** `CANVAS_DELETE_GROUP`

Deletes a group and removes all members. Use when you need to permanently delete a Canvas group by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group to be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete group discussion topic

**Slug:** `CANVAS_DELETE_GROUP_DISCUSSION_TOPIC`

Deletes the discussion topic from a group. This will also delete the assignment, if it's an assignment discussion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete outcome links

**Slug:** `CANVAS_DELETE_OUTCOME_LINKS`

Tool to delete links between outcomes and content in Canvas. Use when removing outcome associations from course content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | Yes | Array of outcome link IDs to delete. Each ID is a string identifier for an outcome link. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete page for a group

**Slug:** `CANVAS_DELETE_PAGE_FOR_GROUP`

Deletes a wiki page from a Canvas group. Use when you need to remove a specific page from a group's wiki.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group containing the wiki page. |
| `url_or_id` | string | Yes | The URL (e.g., 'test-page-for-deletion') or the numeric ID of the page to delete. If a page URL might be identical to another page's numeric ID, prefix the ID with 'page_id:' (e.g., 'page_id:5678'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a planner note

**Slug:** `CANVAS_DELETE_PLANNER_NOTE`

Delete a planner note for the current user. Use when removing a personal to-do item from the Canvas planner.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the planner note to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a planner override

**Slug:** `CANVAS_DELETE_PLANNER_OVERRIDE`

Delete a planner override for the current user. Use when removing customizations or dismissals from planner items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the planner override to be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete poll

**Slug:** `CANVAS_DELETE_POLL`

Permanently deletes the poll identified by `id`; returns 204 No Content if successful.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the poll to be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a poll choice

**Slug:** `CANVAS_DELETE_POLL_CHOICE`

Tool to delete a poll choice from a Canvas poll. Use when you need to remove a specific choice option from an existing poll. Returns a 204 No Content response if the deletion was successful.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the poll choice to be deleted. |
| `poll_id` | string | Yes | The unique identifier of the poll containing the poll choice to be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a poll session

**Slug:** `CANVAS_DELETE_POLL_SESSION`

Tool to permanently delete a poll session from a poll. Use when you need to remove a poll session. Returns a 204 No Content response on successful deletion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the poll session to be deleted. |
| `poll_id` | string | Yes | The unique identifier of the poll containing the poll session. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete quiz

**Slug:** `CANVAS_DELETE_QUIZ`

Permanently deletes the quiz identified by `quiz_id` from the course identified by `course_id`; this action cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `quiz_id` | string | Yes | The unique identifier for the quiz to be deleted. |
| `course_id` | string | Yes | The unique identifier for the course from which the quiz will be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete submission draft

**Slug:** `CANVAS_DELETE_SUBMISSION_DRAFT`

Tool to delete a submission draft in Canvas via GraphQL. Use when removing a draft submission that has not been finalized.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `submission_id` | string | Yes | The ID of the submission draft to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete user inbox label

**Slug:** `CANVAS_DELETE_USER_INBOX_LABEL`

Tool to delete user inbox labels in Canvas. Use when you need to remove one or more custom inbox labels from the current user's inbox.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `names` | array | Yes | Array of inbox label names to delete. Each name must be a string representing an existing user inbox label. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete user custom data scope

**Slug:** `CANVAS_DELETE_USERS_CUSTOM_DATA_SCOPE`

Tool to delete custom user data at a specific scope path. Use when you need to remove data stored at a particular location within the JSON structure for a user's custom data namespace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ns` | string | Yes | The namespace from which to delete the data. This should be something other Canvas API apps aren't likely to use, such as a reverse DNS for your organization (e.g., 'com.composio.test'). |
| `scope` | string | Yes | The scope path for the custom data to delete (e.g., 'test/composio' or 'fruit/kiwi'). This defines the specific location in the JSON data structure to delete. |
| `user_id` | string | Yes | The unique identifier of the user whose custom data should be deleted. Use 'self' to refer to the current authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get current grades

**Slug:** `CANVAS_DEPARTMENT_LEVEL_GRADE_DATA_FOR_CURRENT_GRADES`

Fetches current, aggregated grade data from Canvas analytics for a specified account ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | integer | Yes | Unique Canvas account ID (often a department or sub-account) for which to retrieve current grade analytics. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get term grade data

**Slug:** `CANVAS_DEPARTMENT_LEVEL_GRADE_DATA_FOR_TERM_GRADES`

Retrieves department-level aggregated grade data for a specific academic term within a Canvas account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `term_id` | integer | Yes | Unique identifier for the academic term to request grade data for. |
| `account_id` | integer | Yes | Unique identifier for the Canvas account to retrieve analytics data from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post discussion entry or reply

**Slug:** `CANVAS_DRAFT_REPLY_TO_DISCUSSION`

Posts a new entry or reply to a Canvas discussion topic. Creates either a top-level entry (when entry_id is omitted) or a nested reply to an existing entry (when entry_id is provided). The entry is posted immediately and becomes visible to discussion participants.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes | The content of the entry or reply. Supports HTML formatting. |
| `entry_id` | integer | No | The unique identifier of the discussion entry to reply to. Provide this to create a nested reply to an existing entry. Omit this to create a top-level entry (new thread) in the discussion. |
| `topic_id` | integer | Yes | The unique identifier of the discussion topic within the course. |
| `course_id` | integer | Yes | The unique identifier of the Canvas course. |
| `attachment_ids` | array | No | A list of file attachment IDs to include, if any. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Duplicate group discussion topic

**Slug:** `CANVAS_DUPLICATE_GROUP_DISCUSSION_TOPIC`

Tool to duplicate an existing discussion topic in a Canvas group. Use when you need to create a copy of a group discussion topic with all its settings and content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic to duplicate. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic to duplicate. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Edit assignment

**Slug:** `CANVAS_EDIT_ASSIGNMENT`

Updates an existing assignment in a Canvas course (identified by `course_id` and `assignment_id`); only attributes explicitly provided in the request are modified.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The new name for the assignment. |
| `due_at` | string | No | The new due date for the assignment, formatted in ISO 8601 (e.g., '2025-10-21T18:48:00Z'). |
| `position` | integer | No | The new position of this assignment within its assignment group when displayed in lists. Lower numbers appear first. |
| `course_id` | integer | Yes | The unique identifier for the course containing the assignment. |
| `published` | boolean | No | Whether the assignment should be published. Set to `True` to publish, `False` to unpublish. If not provided, the existing published status will be retained. |
| `unlock_at` | string | No | The new date when the assignment becomes available to students, formatted in ISO 8601 (e.g., '2025-10-21T18:48:00Z'). |
| `description` | string | No | The new HTML content for the assignment's description. |
| `grading_type` | string | No | The new grading type for the assignment. Supported types include 'pass_fail', 'percent', 'letter_grade', 'gpa_scale', 'points', 'not_graded'. |
| `assignment_id` | integer | Yes | The unique identifier for the assignment to be edited. |
| `integration_id` | string | No | The new unique identifier for the assignment from a third-party integration (e.g., an external tool). |
| `points_possible` | integer | No | The new maximum number of points possible for the assignment. |
| `allowed_attempts` | integer | No | The new number of submission attempts allowed for the assignment. Use -1 for unlimited attempts. |
| `submission_types` | array | No | A list of new submission types supported for the assignment. Valid types include 'online_quiz', 'none', 'on_paper', 'discussion_topic', 'external_tool', 'online_upload', 'online_text_entry', 'online_url'. |
| `allowed_extensions` | array | No | File extensions (e.g., 'pdf', 'docx') allowed if `submission_types` includes 'online_upload'. |
| `assignment_group_id` | integer | No | The unique identifier of the assignment group to which this assignment should be moved or associated. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Edit a conversation

**Slug:** `CANVAS_EDIT_CONVERSATION`

Tool to update attributes for a single conversation in Canvas. Use when you need to star/unstar, subscribe/unsubscribe, or change the workflow state (read, unread, archived) of a specific conversation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the conversation to edit. |
| `scope` | string ("unread" | "starred" | "archived") | No | Scope options for generating visible field |
| `filter` | array | No | Used when generating 'visible' in the API response. See the explanation under the index API action. |
| `starred` | boolean | No | Toggle the starred state of the current user's view of the conversation. If true, the conversation is starred; if false, it is unstarred. |
| `subscribed` | boolean | No | Toggle the current user's subscription to the conversation (only valid for group conversations). If unsubscribed, the user will still have access to the latest messages, but the conversation won't be automatically flagged as unread, nor will it jump to the top of the inbox. |
| `filter_mode` | string ("and" | "or" | "default or") | No | Filter mode options for generating visible field |
| `workflow_state` | string ("read" | "unread" | "archived") | No | Workflow state options for a conversation |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Edit a quiz

**Slug:** `CANVAS_EDIT_QUIZ`

Modifies an existing Canvas quiz; only attributes with provided values in the request are updated.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | New title for the quiz. If None, the title will not be updated. |
| `due_at` | string | No | Due date/time for the quiz (ISO 8601 format). No update if None. |
| `lock_at` | string | No | When students can no longer take the quiz (ISO 8601 format). No update if None. |
| `quiz_id` | string | Yes | Identifier for the quiz to be updated. |
| `course_id` | string | Yes | Identifier for the course in which the quiz resides. |
| `ip_filter` | string | No | A comma-separated list of IP addresses or CIDR netmasks (e.g., '192.168.1.1/24') that are allowed to access the quiz. If None, this setting will not be updated. |
| `published` | boolean | No | If true, the quiz is published and visible to students. If false, it is unpublished. If None, the publication status will not be updated. |
| `quiz_type` | string ("practice_quiz" | "assignment" | "graded_survey" | "survey") | No | The type of the quiz. If None, the type will not be updated. |
| `unlock_at` | string | No | When the quiz becomes available (ISO 8601 format). No update if None. |
| `time_limit` | integer | No | Time limit for the quiz in minutes. Use null or omit to remove an existing time limit, effectively setting no time limit. If None, the time limit will not be updated. |
| `access_code` | string | No | A password to restrict access to the quiz. Setting this to an empty string will remove an existing access code. If None, the access code will not be updated. |
| `description` | string | No | New HTML description for the quiz. If None, the description will not be updated. |
| `cant_go_back` | boolean | No | If true, students cannot go back to previous questions after answering them (only applicable if `one_question_at_a_time` is true). If None, this setting will not be updated. |
| `hide_results` | string ("always" | "until_after_last_attempt") | No | Specifies when results should be hidden from students. Use 'always' to hide results completely or 'until_after_last_attempt' to hide them until the student has completed their final attempt. If None, this setting will not be updated. |
| `scoring_policy` | string ("keep_highest" | "keep_latest") | No | Determines which score is kept if multiple attempts are allowed ('keep_highest' or 'keep_latest'). If None, this setting will not be updated. |
| `shuffle_answers` | boolean | No | If true, answers to quiz questions will be shuffled for each student. If None, this setting will not be updated. |
| `allowed_attempts` | integer | No | Number of attempts a student is allowed to take for the quiz. Use -1 for unlimited attempts. If None, this setting will not be updated. |
| `notify_of_update` | boolean | No | If true, sends notifications to users about the quiz update. |
| `one_time_results` | boolean | No | If true, students can only view their quiz results once (this option is disabled if `allowed_attempts` > 1). If None, this setting will not be updated. |
| `assignment_group_id` | integer | No | The ID of the assignment group to associate with the quiz. This is relevant for graded quizzes (e.g., 'assignment', 'graded_survey'). If None, the assignment group will not be updated. |
| `show_correct_answers` | boolean | No | If true, students can see the correct answers after submitting the quiz (subject to other restrictions like `hide_results`, `show_correct_answers_at`, `hide_correct_answers_at`). If None, this setting will not be updated. |
| `one_question_at_a_time` | boolean | No | If true, students will see one question at a time. If None, this setting will not be updated. |
| `hide_correct_answers_at` | string | No | When correct answers will be hidden (ISO 8601 format). No update if None. |
| `show_correct_answers_at` | string | No | When correct answers become visible (ISO 8601 format). No update if None. |
| `only_visible_to_overrides` | boolean | No | If true, the quiz is only visible to students with specific overridden due dates. If None, this setting will not be updated. |
| `show_correct_answers_last_attempt` | boolean | No | If true, correct answers will only be shown after the student's final attempt for quizzes that allow multiple attempts. If None, this setting will not be updated. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Edit User

**Slug:** `CANVAS_EDIT_USER`

Modifies an existing Canvas user's profile and settings. Use to update name, email, timezone, bio, pronouns, and other profile fields. To modify login credentials, use the logins API instead.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | User ID. Can be a Canvas user ID or 'self' for the authenticated user. |
| `user` | object | Yes | User fields to update. At least one field must be provided. |
| `override_sis_stickiness` | boolean | No | If false, fields with 'sticky' changes will not be updated. Default is true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Export content

**Slug:** `CANVAS_EXPORT_CONTENT`

Initiates an asynchronous export of course content from Canvas. Returns an export job ID and progress URL that can be used to track the export status and retrieve the exported file once complete. Supports exporting full courses (Common Cartridge), quizzes (QTI), or files (ZIP).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the course whose content is to be exported. |
| `export_type` | string ("common_cartridge" | "qti" | "zip") | Yes | Format for the exported content. 'common_cartridge' exports the full course in IMS Common Cartridge format, 'qti' exports quizzes in QTI format, and 'zip' exports files in a zip archive. |
| `skip_notifications` | boolean | No | If true, suppresses progress notifications to the initiating user. Defaults to false (notifications are sent). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Export group content

**Slug:** `CANVAS_EXPORT_GROUP_CONTENT`

Tool to begin a content export job for a group. Groups only support ZIP format exports of files and folders. Returns an export job with a progress_url to track the export status using the Progress API. Once complete, the exported file can be downloaded via the attachment URL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `select` | object | No | Optional selective export parameter for group exports. Since groups only support 'zip' export type, only 'folders' and 'files' object types are valid. Keys are object types ('files' or 'folders'). Values are lists of object IDs (can be integers or strings). |
| `group_id` | string | Yes | The unique identifier for the group whose content is to be exported. |
| `export_type` | string ("zip") | Yes | Format for the exported content. Groups only support 'zip' which exports files and folders in a zip archive. |
| `skip_notifications` | boolean | No | If true, suppresses progress notifications to the initiating user. Defaults to false (notifications are sent). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Export user content

**Slug:** `CANVAS_EXPORT_USER_CONTENT`

Tool to begin a content export job for a user. Use when you need to export user content from Canvas in Common Cartridge, QTI, or ZIP format. Track progress using the Progress API via the progress_url returned in the response. Once complete, download the exported file via the attachment URL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `select` | object | No | Allows exporting specific data. Keys are object types like 'files', 'folders', 'pages', etc. Values are lists of object IDs (integers or strings). Multiple object types can be selected. Common Cartridge supports all object types. Zip and QTI only support specific types: zip supports 'folders' and 'files', qti supports 'quizzes'. |
| `user_id` | string | Yes | The unique identifier for the user whose content is to be exported. Use 'self' to export content for the currently authenticated user. |
| `export_type` | string ("common_cartridge" | "qti" | "zip") | Yes | Format for the exported content. 'common_cartridge' exports content in IMS Common Cartridge format, 'qti' exports quizzes in QTI format, and 'zip' exports files in a zip archive. |
| `skip_notifications` | boolean | No | If true, suppresses progress notifications to the user. Defaults to false (notifications are sent). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Data

**Slug:** `CANVAS_FETCH_DATA`

Fetches a specific category of Canvas data (e.g., accounts, courses, users) by setting exactly one `get_*` boolean flag to true and providing any associated IDs. Supports pagination with per_page (default 100, max 100) and page (default 1) parameters to fetch large datasets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. |
| `user_id` | integer | No | Canvas user ID, required when `get_user_courses` is true. |
| `per_page` | integer | No | Number of items to return per page. Maximum is typically 100. Higher values fetch more data in a single request. |
| `course_id` | integer | No | Canvas course ID, required if fetching course-specific data (e.g., assignments, files, users for a course). |
| `get_files` | boolean | No | Fetches files for a specific course (requires `course_id`). |
| `get_pages` | boolean | No | Fetches pages for a specific course (requires `course_id`). |
| `get_users` | boolean | No | Fetches users for an account. If `account_id` is not provided, defaults to 'self' (current user's account). Optionally filter users by `search_term`. |
| `account_id` | integer | No | Canvas account ID (numerical ID). If not provided when `get_users` is true, defaults to the current user's account. Can be found via `get_accounts`. |
| `get_courses` | boolean | No | Fetches courses for the current user, optionally filtered by `enrollment_type` and `enrollment_state`. |
| `get_quizzes` | boolean | No | Fetches quizzes for a specific course (requires `course_id`). |
| `search_term` | string | No | Search term to filter results when `get_users`, `get_discussion_topics`, or `get_quizzes` is true. |
| `get_accounts` | boolean | No | Fetches Canvas accounts accessible to the current user. |
| `assignment_id` | integer | No | Canvas assignment ID, required when `get_submissions` is true. |
| `enrollment_type` | string | No | Filter for `get_courses` or `get_user_courses` by enrollment type. |
| `get_assignments` | boolean | No | Fetches assignments for a specific course (requires `course_id`). |
| `get_submissions` | boolean | No | Fetches submissions for an assignment within a course (requires `course_id` and `assignment_id`). |
| `enrollment_state` | string | No | Filter for `get_courses` or `get_user_courses` by enrollment state. |
| `get_user_courses` | boolean | No | Fetches courses for a specific user (requires `user_id`), optionally filtered by `enrollment_type` and `enrollment_state`. |
| `only_announcements` | boolean | No | When `get_discussion_topics` is true: if true, retrieves only announcements; if false, retrieves only discussion topics; if not specified, retrieves discussion topics (defaults to false). |
| `get_discussion_topics` | boolean | No | Fetches discussion topics for a specific course (requires `course_id`). Use `only_announcements` to control whether to fetch announcements only (true), discussion topics only (false), or use default behavior (None). Can be filtered by `search_term`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find recipients

**Slug:** `CANVAS_FIND_RECIPIENTS`

Find valid recipients (users, courses and groups) that the current user can send messages to. Use when searching for message recipients or looking up specific users/contexts by id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). |
| `type` | string ("user" | "context") | No | Type of recipient to search for. |
| `search` | string | No | Search terms used for matching users/courses/groups (e.g. "bob smith"). If multiple terms are given (separated via whitespace), only results matching all terms will be returned. |
| `context` | string | No | Limit the search to a particular course/group (e.g. "course_3" or "group_4"). |
| `exclude` | array | No | Array of ids to exclude from the search. These may be user ids or course/group ids prefixed with "course_" or "group_" respectively. |
| `user_id` | integer | No | Search for a specific user id. This ignores the other above parameters, and will never return more than one result. |
| `per_page` | integer | No | Number of results per page (max 100). Canvas default is typically 10. |
| `permissions` | array | No | Array of permission strings to be checked for each matched context (e.g. "send_messages"). This argument determines which permissions may be returned in the response; it won't prevent contexts from being returned if they don't grant the permission(s). |
| `from_conversation_id` | integer | No | When searching by user_id, only users that could be normally messaged by this user will be returned. This parameter allows you to specify a conversation that will be referenced for a shared context -- if both the current user and the searched user are in the conversation, the user will be returned. This is used to start new side conversations. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single course from account

**Slug:** `CANVAS_GET_ACCOUNT_COURSE`

Tool to retrieve information on a single course from a Canvas account. Use when you need to get detailed course information including optional data like teachers, term, permissions, or course progress.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional additional data to include with the course response. Accepts multiple values to include permissions, observed users, course images, and other course details. |
| `course_id` | string | Yes | The unique identifier of the course to retrieve. |
| `account_id` | string | Yes | The unique identifier of the Canvas account that owns the course. |
| `teacher_limit` | integer | No | Maximum number of teacher enrollments to return when 'teachers' is included. If the course has more teachers than this limit, only the teacher count will be returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get account (GraphQL)

**Slug:** `CANVAS_GET_ACCOUNT_GRAPH_QL`

Tool to retrieve account information by ID or SIS ID using the Canvas GraphQL API. Use when you need to fetch account details via GraphQL interface.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | GraphQL ID of the account to retrieve. Either id or sisId must be provided. |
| `sisId` | string | No | SIS identifier of the account to retrieve. Either id or sisId must be provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Account Notifications

**Slug:** `CANVAS_GET_ACCOUNT_NOTIFICATIONS`

Tool to retrieve global account notifications for the current user in Canvas LMS. Use when you need to check announcements, alerts, or system-wide messages that admins have posted to the account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The ID of the Canvas account. Use '1' for the root account, or specify a sub-account ID. |
| `include_past` | boolean | No | If true, include notifications that have been closed/dismissed by the user. If false or omitted, only active notifications are returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get accounts outcome groups

**Slug:** `CANVAS_GET_ACCOUNTS_OUTCOME_GROUPS`

Tool to retrieve a specific outcome group from a Canvas account. Use when you need to fetch details about a specific outcome group including its title, description, parent group, and management URLs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the outcome group to retrieve. |
| `account_id` | string | Yes | The unique identifier of the account that owns the outcome group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Accounts That Users Can Create Courses In

**Slug:** `CANVAS_GET_ACCOUNTS_THAT_USERS_CAN_CREATE_COURSES_IN`

Retrieves Canvas accounts where the current user has permission to create courses; typically returns results only for administrators.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a content migration for group

**Slug:** `CANVAS_GET_A_CONTENT_MIGRATION3`

Tool to retrieve data on an individual content migration from a Canvas group. Use when you need to check the status, progress, or details of a specific group migration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the content migration. |
| `group_id` | string | Yes | The unique identifier for the Canvas group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a content migration for user

**Slug:** `CANVAS_GET_A_CONTENT_MIGRATION4`

Tool to retrieve data on an individual content migration from a Canvas user. Use when you need to check the status, progress, or details of a specific user migration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the content migration. |
| `user_id` | string | Yes | The unique identifier for the Canvas user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a late policy

**Slug:** `CANVAS_GET_A_LATE_POLICY`

Tool to retrieve the late policy for a Canvas course. Use when you need to check the course's policy for handling late and missing submissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the Canvas course to retrieve the late policy from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get aligned assignments for an outcome

**Slug:** `CANVAS_GET_ALIGNED_ASSIGNMENTS_FOR_AN_OUTCOME`

Retrieves outcome alignments for a student or assignment within a course. Use when you need to see which assignments are aligned to learning outcomes, optionally filtered by student or assignment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). Use to get results beyond the first page. |
| `per_page` | integer | No | Number of outcome alignments to return per page. If omitted, Canvas default is used. |
| `course_id` | string | Yes | The unique identifier of the Canvas course. |
| `student_id` | integer | No | The id of the student. Returns alignments filtered by student submissions. Can be combined with assignment_id to filter to a specific assignment. |
| `assignment_id` | integer | No | The id of the assignment. When provided without student_id, returns all outcome alignments for the assignment (requires manage_grades or view_all_grades permission). When provided with student_id, filters to that student's submission. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get assignments for a specific course (requires course_id)

**Slug:** `CANVAS_GET_ALL_ASSIGNMENTS`

Retrieves assignments for a specific Canvas course. IMPORTANT: This action requires a course_id parameter - it does NOT retrieve assignments globally across all courses. You must first obtain a valid course_id (e.g., from CANVAS_LIST_COURSES) and provide it to retrieve that course's assignments. Results may be nested under a `response_data` array; inspect the JSON structure before iterating. `due_at` values are ISO 8601 strings in UTC. Filter on `published`, `locked_for_user`, and `has_submitted_submissions` fields to identify actionable assignments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | The number of assignments to return per page. |
| `course_id` | integer | Yes | REQUIRED - The unique numeric identifier of the Canvas course to retrieve assignments from. This action retrieves assignments for ONE specific course only, not all courses. You MUST obtain a valid course_id first (e.g., from CANVAS_LIST_COURSES) before calling this action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All ePortfolios for User

**Slug:** `CANVAS_GET_ALL_E_PORTFOLIOS_FOR_USER`

Tool to retrieve all ePortfolios for a specified user from Canvas LMS. Use when you need to list a user's ePortfolio collection.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Include deleted ePortfolios. Only available to admins who can moderate_user_content. |
| `user_id` | string | Yes | The unique identifier of the user. Can be a numeric user ID or 'self' to reference the current authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All Outcome Groups for Context

**Slug:** `CANVAS_GET_ALL_OUTCOME_GROUPS_FOR_CONTEXT`

Tool to retrieve all outcome groups for an account context in Canvas. Use when you need to list learning outcome groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The unique identifier of the account. Use 'self' to refer to the current user's account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get all outcome groups for course

**Slug:** `CANVAS_GET_ALL_OUTCOME_GROUPS_FOR_CONTEXT2`

Tool to retrieve all outcome groups for a course context in Canvas. Use when you need to list learning outcome groups for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All Outcome Links for Context

**Slug:** `CANVAS_GET_ALL_OUTCOME_LINKS_FOR_CONTEXT`

Retrieves all outcome links for a Canvas account context. Use when you need to fetch the relationships between outcomes and outcome groups within an account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The identifier of the account for which to retrieve outcome links. Use 'self' for the current user's account or a specific account ID. |
| `outcome_style` | string | No | The detail level of the outcomes. Defaults to 'abbrev'. Specify 'full' for more information. |
| `outcome_group_style` | string | No | The detail level of the outcome groups. Defaults to 'abbrev'. Specify 'full' for more information. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All Outcome Links for Context (Courses)

**Slug:** `CANVAS_GET_ALL_OUTCOME_LINKS_FOR_CONTEXT2`

Retrieves all outcome links for a Canvas course context. Use when you need to fetch the relationships between outcomes and outcome groups within a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The identifier of the course for which to retrieve outcome links. |
| `outcome_style` | string | No | The detail level of the outcomes. Defaults to 'abbrev'. Specify 'full' for more information. |
| `outcome_group_style` | string | No | The detail level of the outcome groups. Defaults to 'abbrev'. Specify 'full' for more information. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get all peer reviews for submission

**Slug:** `CANVAS_GET_ALL_PEER_REVIEWS`

Retrieves all peer reviews for a specific submission within a Canvas assignment. Use when you need to view peer reviewers assigned to a student's submission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional list of associations to include with the peer review. Can include 'submission_comments' for submission comments or 'user' for user objects. |
| `course_id` | string | Yes | The unique identifier of the course containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment containing the submission. |
| `submission_id` | string | Yes | The unique identifier of the submission to retrieve peer reviews for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get all peer reviews for section assignment

**Slug:** `CANVAS_GET_ALL_PEER_REVIEWS_FOR_SECTION_ASSIGNMENT`

Retrieves all peer reviews for a specific assignment within a Canvas section. Use when you need to view all peer review assignments for an entire section's assignment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional list of associations to include with the peer review. Can include 'submission_comments' for submission comments or 'user' for user objects. |
| `section_id` | string | Yes | The unique identifier of the section. |
| `assignment_id` | string | Yes | The unique identifier of the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get all peer reviews for section submission

**Slug:** `CANVAS_GET_ALL_PEER_REVIEWS_FOR_SECTION_SUBMISSION`

Retrieves all peer reviews for a specific submission within a Canvas section assignment. Use when you need to view peer reviewers assigned to a student's submission in a specific section.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional list of associations to include with the peer review. Can include 'submission_comments' for submission comments or 'user' for user objects. |
| `section_id` | string | Yes | The unique identifier of the section containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment containing the submission. |
| `submission_id` | string | Yes | The unique identifier of the submission to retrieve peer reviews for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get all users

**Slug:** `CANVAS_GET_ALL_USERS`

Retrieves a list of users for a specified Canvas `account_id` (use 'self' for the current user's root account), supporting filtering, sorting, and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). |
| `sort` | string | No | Field to sort users by (e.g., 'username', 'email', 'sis_id', 'integration_id', 'last_login'). |
| `order` | string | No | Sort direction: 'asc' (ascending) or 'desc' (descending). |
| `per_page` | integer | No | Number of users per page (max 100). |
| `account_id` | string | Yes | Unique identifier for the Canvas account; use 'self' for the current user's root account. |
| `search_term` | string | No | Filter users by name, username, or email. |
| `enrollment_type` | array | No | Filter users by enrollment type (e.g., 'student', 'teacher', 'ta', 'observer', 'designer'). |
| `include_deleted_users` | boolean | No | If true, include users marked as deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get an assignment group

**Slug:** `CANVAS_GET_AN_ASSIGNMENT_GROUP`

Retrieves the assignment group with the given id from a Canvas course. Use when you need to get details about a specific assignment group, including its name, position, weight, and optionally associated assignments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Associations to include with the group. 'discussion_topic', 'assignment_visibility', and 'submission' are only valid if 'assignments' is also included. 'score_statistics' is only valid if 'submission' and 'assignments' are also included. The 'assignment_visibility' option additionally requires that the Differentiated Assignments course feature be turned on. |
| `course_id` | string | Yes | The unique identifier of the course containing the assignment group. |
| `grading_period_id` | integer | No | The id of the grading period in which assignment groups are being requested (Requires grading periods to exist on the account). |
| `assignment_group_id` | string | Yes | The unique identifier of the assignment group to retrieve. |
| `override_assignment_dates` | boolean | No | Apply assignment overrides for each assignment. Defaults to true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get notification preference

**Slug:** `CANVAS_GET_A_PREFERENCE`

Fetches the notification preference for a specific notification on a given communication channel. Use to check how often a user wants to receive a particular type of notification.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The ID of the user. Use 'self' for the current user or a numeric user ID. |
| `notification` | string | Yes | The name of the notification (e.g., 'assignment_graded', 'course_content_changed'). |
| `communication_channel_id` | string | Yes | The ID of the communication channel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get notification preference by type and address

**Slug:** `CANVAS_GET_A_PREFERENCE_BY_TYPE_AND_ADDRESS`

Fetches the notification preference for a specific notification on a given communication channel using channel type and address. Use when you need to check how often a user receives notifications for a particular event type on a specific communication channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | Yes | The type of communication channel (e.g., 'email', 'sms', 'push'). |
| `address` | string | Yes | The address of the communication channel. For email type, this is an email address. For SMS, this is a phone number. |
| `user_id` | string | Yes | The ID of the user. Use 'self' for the current user, a numeric user ID, or a SIS User ID prefixed with 'sis_user_id:'. |
| `notification` | string | Yes | The name of the notification preference to retrieve (e.g., 'new_announcement', 'assignment_due_date_changed', 'access_token_deleted'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single external tool

**Slug:** `CANVAS_GET_A_SINGLE_EXTERNAL_TOOL2`

Tool to retrieve detailed information for a specific external tool within a Canvas course. Use when you need to get configuration details, settings, or metadata for an external tool in a course context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course containing the external tool. |
| `external_tool_id` | string | Yes | The unique identifier of the external tool to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single group membership

**Slug:** `CANVAS_GET_A_SINGLE_GROUP_MEMBERSHIP`

Tool to retrieve a single group membership by its membership_id or user_id. Use when you need to check membership status, moderator privileges, or workflow state for a specific user in a group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group. |
| `membership_id` | string | Yes | The unique identifier of the group membership or user id. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single group membership by user ID

**Slug:** `CANVAS_GET_A_SINGLE_GROUP_MEMBERSHIP2`

Tool to retrieve a single group membership by user_id. Use when you need to check membership status, moderator privileges, or workflow state for a specific user in a group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user. You may use 'self' to refer to the current user. |
| `group_id` | string | Yes | The unique identifier of the group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get assignment (GraphQL)

**Slug:** `CANVAS_GET_ASSIGNMENT2`

Tool to retrieve information about a specific assignment by ID using the Canvas GraphQL API. Returns assignment details including submissions connection.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Assignment identifier (accepts both GraphQL or REST-style IDs). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get assignment group

**Slug:** `CANVAS_GET_ASSIGNMENT_GROUP`

Tool to retrieve information about a specific assignment group by ID. Use when you need to fetch details about an assignment group including its name, position, weight, and state.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | A GraphQL or legacy Canvas ID for the assignment group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Assignment Rubric

**Slug:** `CANVAS_GET_ASSIGNMENT_RUBRIC`

Fetches the detailed rubric for a specified assignment within a Canvas course; fails if the assignment has no associated rubric.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | Unique identifier for the course. |
| `assignment_id` | string | Yes | Unique identifier for the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Audit Logs

**Slug:** `CANVAS_GET_AUDIT_LOGS`

Tool to access Canvas audit logs for a specified asset using the GraphQL API. Use when retrieving mutation logs to track changes and operations performed on accounts, courses, or users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `last` | integer | No | Returns the last n elements from the list. Used for backward pagination. |
| `after` | string | No | Returns elements after the specified cursor. Used with 'first' for forward pagination. |
| `first` | integer | No | Returns the first n elements from the list. Used for forward pagination. |
| `before` | string | No | Returns elements before the specified cursor. Used with 'last' for backward pagination. |
| `end_time` | string | No | Filter logs until this end time (ISO 8601 datetime format, e.g., '2024-12-31T23:59:59Z'). |
| `start_time` | string | No | Filter logs from this start time (ISO 8601 datetime format, e.g., '2024-01-01T00:00:00Z'). |
| `asset_string` | string | Yes | The asset string identifier for the object (e.g., 'account_1', 'course_123'). Required to specify which resource's audit logs to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a user's most recently graded submissions

**Slug:** `CANVAS_GET_A_USERS_MOST_RECENTLY_GRADED`

Retrieves a user's most recently graded submissions. Use 'self' as the user ID to get graded submissions for the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the user to retrieve graded submissions for. Use 'self' for the currently authenticated user, or provide a numeric user ID. |
| `include` | array | No | Associations to include with the graded submissions. Currently only 'assignment' is supported. |
| `only_current_enrollments` | boolean | No | If true, returns submissions for only currently active enrollments. If false or omitted, returns submissions for all enrollments. |
| `only_published_assignments` | boolean | No | If true, returns submissions for only published assignments. If false or omitted, returns submissions for all assignments. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Authentication Provider

**Slug:** `CANVAS_GET_AUTHENTICATION_PROVIDER`

Retrieves a specific authentication provider configuration for a Canvas account. Use when you need to view the configuration details of a specific authentication provider.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the authentication provider to retrieve. |
| `account_id` | string | Yes | The Canvas account ID. Use 'self' for the current account or a specific numeric account ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Bookmark

**Slug:** `CANVAS_GET_BOOKMARK`

Retrieves the details for a specific bookmark by ID. Use when you need to fetch information about a particular bookmark for the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the bookmark to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get brand variables

**Slug:** `CANVAS_GET_BRAND_VARIABLES`

Tool to retrieve all brand configuration variables for the Canvas account. Use when you need to access theme colors, logos, watermarks, or other branding customization settings.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get content share

**Slug:** `CANVAS_GET_CONTENT_SHARE`

Retrieves detailed information about a single content share by ID for a specified user. Use when you need to view the details of a specific shared content item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the content share to retrieve. |
| `user_id` | string | Yes | ID of the user whose content share to retrieve. Use 'self' for the authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get content shares unread count

**Slug:** `CANVAS_GET_CONTENT_SHARES_UNREAD_COUNT`

Tool to retrieve the count of unread content shares for the authenticated user. Use when you need to check how many content shares have not been read yet.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | The unique identifier of the user whose unread content shares count is to be retrieved. Use 'self' to retrieve your own unread count. Only linked observers and administrators may view other users' content shares. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get course

**Slug:** `CANVAS_GET_COURSE`

Tool to retrieve information about a specific course by ID using the Canvas GraphQL API. Use when querying course details with either GraphQL or numeric identifiers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | Course identifier. Accepts both GraphQL global identifiers (e.g., 'Q291cnNlLTE') and legacy numeric IDs (e.g., '1'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get course activity stream

**Slug:** `CANVAS_GET_COURSE_ACTIVITY_STREAM`

Tool to retrieve the current user's course-specific activity stream, paginated. Use when you need to see recent activities in a specific course such as new discussions, announcements, assignments, and submissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. |
| `per_page` | integer | No | Number of items to return per page for pagination. Default is 10. |
| `course_id` | string | Yes | The unique identifier of the Canvas course for which to retrieve the activity stream. |
| `only_active_courses` | boolean | No | If true, will only return objects for courses the user is actively participating in. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get course activity stream summary

**Slug:** `CANVAS_GET_COURSE_ACTIVITY_STREAM_SUMMARY`

Tool to retrieve a summary of the current user's course-specific activity stream. Returns aggregated counts by activity type (discussions, conversations, messages, etc.) for the specified course. Use when you need an overview of activity in a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | REQUIRED - The unique numeric identifier of the Canvas course to retrieve activity summary from. You MUST obtain a valid course_id first (e.g., from CANVAS_LIST_COURSES) before calling this action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Course Activity

**Slug:** `CANVAS_GET_COURSE_LEVEL_PARTICIPATION_DATA`

Retrieves daily activity analytics, such as page views and participation events, for a specified Canvas course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The unique numerical identifier of the Canvas course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get course nickname

**Slug:** `CANVAS_GET_COURSE_NICKNAME`

Retrieves the nickname for a specific Canvas course. Use when you need to get the user-defined alternate name for a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The unique identifier for the Canvas course to retrieve the nickname for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Course Permissions

**Slug:** `CANVAS_GET_COURSE_PERMISSIONS`

Returns permission information for the calling user in the given course. Use when you need to check what actions the authenticated user is authorized to perform in a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the Canvas course to check permissions for. |
| `permissions` | array | No | List of permissions to check against the authenticated user. Permission names are documented in the List assignable permissions endpoint. If not provided, checks all available permissions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Batch retrieve assignment overrides

**Slug:** `CANVAS_GET_COURSES12_ASSIGNMENTS`

Tool to batch retrieve assignment overrides in a course. Use when you need to retrieve multiple assignment overrides at once by providing paired lists of override IDs and assignment IDs. Returns null for overrides that were not found or target sections/groups/students not visible to the current user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The ID of the course to retrieve assignment overrides from. |
| `assignment_overrides_id` | array | Yes | IDs of overrides to retrieve. Must be paired with assignment_overrides_assignment_id - each override ID corresponds to an assignment ID at the same index. |
| `assignment_overrides_assignment_id` | array | Yes | IDs of assignments for each override. Must be paired with assignment_overrides_id - each assignment ID corresponds to an override ID at the same index. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Blueprint Subscription Migrations

**Slug:** `CANVAS_GET_COURSES_BLUEPRINT_SUBSCRIPTIONS_MIGRATIONS`

Retrieves blueprint subscription migrations for a Canvas course. Use when you need to list sync operations from a blueprint course to an associated course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. |
| `per_page` | integer | No | Number of migrations to return per page (max 100). |
| `course_id` | string | Yes | The unique identifier of the associated course for which to retrieve blueprint subscription migrations. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get course settings

**Slug:** `CANVAS_GET_COURSE_SETTINGS`

Tool to retrieve settings for a specific Canvas course. Use when you need to check configuration options like student permissions, grading settings, or display preferences for a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the course whose settings are to be retrieved. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get courses folders by path

**Slug:** `CANVAS_GET_COURSES_FOLDERS_BY_PATH`

Tool to retrieve folder hierarchy by resolving a path within a Canvas course. Use when you need to traverse a folder path or verify a folder exists at a specific location.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the Canvas course. This ID must correspond to an existing course. |
| `full_path` | string | No | The full path to the folder relative to the course root folder. If empty or not provided, returns the root folder alone. Do not include the root folder's name (e.g., 'course files'). Example: 'unfiled' or 'foo/bar/baz'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get course root folder

**Slug:** `CANVAS_GET_COURSES_FOLDERS_ROOT`

Tool to retrieve the root folder for a course. Use when you need to access the root folder from a course context by using 'root' as the folder identifier.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The ID of the course to get the root folder for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get courses (GraphQL)

**Slug:** `CANVAS_GET_COURSES_GRAPH_QL`

Tool to get all courses viewable by the current user using the Canvas GraphQL API. Use when retrieving the list of courses accessible to the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include_fields` | array | No | Optional list of additional fields to include in the response. Common fields: 'name', 'courseCode', 'workflowState', 'sisId', 'createdAt', 'updatedAt', 'enrollmentTermId', 'accountId', 'rootAccountId', 'timeZone', 'startAt', 'endAt', 'publicSyllabus', 'storageQuotaMb', 'hideFinalGrades', 'applyAssignmentGroupWeights', 'defaultView', 'uuid', 'gradingStandardId', 'isPublic', 'allowStudentWikiEdits', 'allowWikiComments', 'allowStudentForumAttachments', 'openEnrollment', 'selfEnrollment', 'restrictEnrollmentsToCourseDates', 'template', 'homeroom', 'blueprint'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get courses outcome groups

**Slug:** `CANVAS_GET_COURSES_OUTCOME_GROUPS`

Retrieves a specific outcome group for a course. Use when you need to fetch detailed information about an outcome group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the outcome group. |
| `course_id` | string | Yes | The unique identifier for the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Current User

**Slug:** `CANVAS_GET_CURRENT_USER`

Retrieves detailed information about the currently authenticated user from the Canvas LMS.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Color

**Slug:** `CANVAS_GET_CUSTOM_COLOR`

Tool to retrieve the custom color that a user has saved for a specific course or context in Canvas. Use when you need to fetch user-specific color preferences for a course or other context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | The unique identifier for the user. Use 'self' to get the authenticated user's custom colors, or provide a specific user ID. |
| `asset_string` | string | Yes | The asset string in the format 'context_id' (e.g., 'course_42'). This identifies the specific context (course, group, etc.) for which to retrieve the custom color. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Colors

**Slug:** `CANVAS_GET_CUSTOM_COLORS`

Tool to retrieve all custom colors saved by a user in Canvas LMS. Use when you need to fetch color customizations for courses or other Canvas objects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | The ID of the user to retrieve custom colors for. Use 'self' for the authenticated user or provide a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Dashboard Positions

**Slug:** `CANVAS_GET_DASHBOARD_POSITIONS`

Tool to retrieve all dashboard positions saved for a user. Use when you need to see the current order of dashboard cards for a specific user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the user to retrieve dashboard positions for. Use 'self' for the current user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get department-level completed statistics

**Slug:** `CANVAS_GET_DEPARTMENT_LEVEL_COMPLETED_STATISTICS`

Retrieves department-level numeric statistics for all completed (concluded) courses within the default term for a specified Canvas account. Returns aggregate counts including courses, subaccounts, enrollments, discussion topics, media objects, attachments, and assignments. Note: Requires Canvas Analytics to be enabled on the instance.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | integer | Yes | The unique numeric identifier for the Canvas account (which may represent a department or institution) for which to retrieve completed statistics. Must be a valid account ID accessible to the authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get department level current statistics

**Slug:** `CANVAS_GET_DEPARTMENT_LEVEL_CURRENT_STATISTICS`

Fetches a snapshot of current numerical statistics for a Canvas account, requiring its valid ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | integer | Yes | The unique identifier for the Canvas account (which may represent a department) for which to retrieve current statistics. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get department level completed grades

**Slug:** `CANVAS_GET_DEPARTMENT_LEVEL_GRADE_DATA_COMPLETED_GRADES`

Retrieves the distribution of final grades (0-100, binned to whole numbers) for all completed courses in a Canvas account, where each data point represents one student's final grade in one course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | integer | Yes | Unique identifier of the Canvas account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get department level term statistics

**Slug:** `CANVAS_GET_DEPARTMENT_LEVEL_TERM_STATISTICS`

Retrieves department-level statistics for a specific academic term, including counts of courses, teachers, students, discussion topics, media objects, attachments, and assignments. Requires the Canvas Analytics feature to be enabled.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `term_id` | integer | Yes | The unique identifier for the academic term. |
| `account_id` | integer | Yes | The unique identifier for the Canvas account (e.g., a specific department). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get document annotations read state

**Slug:** `CANVAS_GET_DOCUMENT_ANNOTATIONS_READ_STATE`

Retrieves the read state of document annotations for a student's submission. Use when checking if a student has viewed feedback annotations on their submitted document.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | Unique identifier for the user whose submission annotations read state is being retrieved. |
| `section_id` | string | Yes | Unique identifier for the section. |
| `assignment_id` | string | Yes | Unique identifier for the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get enrollment by ID

**Slug:** `CANVAS_GET_ENROLLMENT_BY_ID`

Retrieves a specific enrollment by its ID within a given account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the enrollment object to be retrieved. |
| `account_id` | string | Yes | The unique identifier for the account in which the enrollment exists. Often 'self' can be used for the current user's account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Enrollment Invitations

**Slug:** `CANVAS_GET_ENROLLMENT_INVITATIONS`

Tool to retrieve pending enrollment invitations for the current user. Use when you need to check course invitations that the user has not yet accepted or rejected.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `state` | array | No | Filter by enrollment state. Defaults to 'invited' to get pending invitations. Can include multiple states like active, inactive, completed, rejected, deleted. |
| `per_page` | integer | No | Number of enrollments to return per page (max 100). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get feature flag for account

**Slug:** `CANVAS_GET_FEATURE_FLAG`

Tool to retrieve a specific feature flag for a given Canvas account. The flag may be defined on the account, or it may be inherited from a parent account. Check context_id and context_type fields to determine the source; if these fields are missing, the flag represents the global Canvas default.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `feature` | string | Yes | The name of the feature flag to retrieve (e.g., 'epub_export', 'encrypted_sourcedids', 'anonymous_instructor_annotations'). |
| `account_id` | string | Yes | The unique identifier of the account for which to retrieve the feature flag. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get feature flag for course

**Slug:** `CANVAS_GET_FEATURE_FLAG_COURSES`

Get the feature flag that applies to a given Course. The flag may be defined on the course, or it may be inherited from a parent account. Check the context_id and context_type of the returned object to determine which is the case.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `feature` | string | Yes | The name of the feature flag to retrieve (e.g., 'analytics_2', 'epub_export', 'encrypted_sourcedids'). The flag may be defined on the course or inherited from a parent account. |
| `course_id` | string | Yes | The unique identifier of the course for which to retrieve the feature flag. The flag may be defined on this course or inherited from a parent account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get file

**Slug:** `CANVAS_GET_FILE`

Tool to retrieve detailed metadata for a specific Canvas file by its ID. Use when you need information about a single file including its name, size, content type, URLs, and optionally the user who uploaded it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the file to retrieve. |
| `include` | array | No | Array of additional information to include. 'user' includes the user who uploaded the file or last edited its content. |
| `replacement_chain_context_id` | integer | No | When a user replaces a file during upload, Canvas keeps track of the 'replacement chain.' Include this parameter if you wish Canvas to follow the replacement chain if the requested file was deleted and replaced by another. Indicates the context ID Canvas should use when following the 'replacement chain.' The 'replacement_chain_context_type' parameter must also be included. |
| `replacement_chain_context_type` | string ("course" | "account") | No | When a user replaces a file during upload, Canvas keeps track of the 'replacement chain.' Include this parameter if you wish Canvas to follow the replacement chain if the requested file was deleted and replaced by another. Must be set to 'course' or 'account'. The 'replacement_chain_context_id' parameter must also be included. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get folder

**Slug:** `CANVAS_GET_FOLDER`

Retrieves details for a specific folder within a Canvas course. Use 'root' as the folder ID to get the root folder for the course context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The folder ID to retrieve. Use 'root' to get the root folder for the course. |
| `course_id` | string | Yes | The unique identifier for the Canvas course containing the folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Folder By ID

**Slug:** `CANVAS_GET_FOLDER_BY_ID`

Retrieves the details for a specific folder by its ID. Use 'root' as the ID to get the root folder for a context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the folder to retrieve. You can use 'root' to get the root folder from a context. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Full Topic for Groups

**Slug:** `CANVAS_GET_FULL_TOPIC_GROUPS`

Tool to retrieve the full cached structure of a group discussion topic. Use when you need all entries, their authors, and message bodies in a hierarchical format. Note: May require that the user has posted in the topic; if required and the user has not posted, will respond with 403 Forbidden.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | integer | Yes | The unique identifier of the Canvas group containing the discussion topic. |
| `topic_id` | integer | Yes | The unique identifier of the discussion topic. |
| `include_new_entries` | boolean | No | If true, returns newly created or updated entries not yet reflected in the cached view. These are returned in a separate 'new_entries' array in ascending created_at order. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Global Outcome Group

**Slug:** `CANVAS_GET_GLOBAL_OUTCOME_GROUP`

Retrieves a global outcome group by ID from Canvas. Use when you need to get details about a specific global learning outcome group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the global outcome group to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get gradebook history days

**Slug:** `CANVAS_GET_GRADEBOOK_HISTORY_DAYS`

Retrieves a chronological list of dates with grading activity and the active graders for a specified course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the course for which to retrieve the gradebook history days. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a group

**Slug:** `CANVAS_GET_GROUP`

Retrieves detailed information for a single Canvas group by its ID. Use when you need to get information about a specific group including optional permissions and tab configurations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Specifies additional details to include in the group response. 'permissions': Include permissions the current user has for the group. 'tabs': Include the list of tabs configured for each group. |
| `group_id` | string | Yes | The unique identifier of the group to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get group activity stream

**Slug:** `CANVAS_GET_GROUP_ACTIVITY_STREAM`

Tool to retrieve the current user's group-specific activity stream, paginated. Use when you need to see recent activities in a specific group such as new discussions, announcements, and other group-related activities.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. |
| `group_id` | string | Yes | The unique identifier of the Canvas group for which to retrieve the activity stream. |
| `per_page` | integer | No | Number of items to return per page for pagination. Default is 10. |
| `only_active_courses` | boolean | No | If true, will only return objects for courses the user is actively participating in. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Group Activity Stream Summary

**Slug:** `CANVAS_GET_GROUP_ACTIVITY_STREAM_SUMMARY`

Retrieves a summary of the current user's group-specific activity stream. Returns counts and unread counts for different activity types within the specified group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the Canvas group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Group Folder

**Slug:** `CANVAS_GET_GROUP_FOLDER`

Retrieves the details for a folder within a Canvas group. Use 'root' as the folder ID to get the root folder for the group context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The folder ID to retrieve. Use 'root' to get the root folder for the group. |
| `group_id` | string | Yes | The unique identifier for the Canvas group containing the folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Group Permissions

**Slug:** `CANVAS_GET_GROUP_PERMISSIONS`

Returns permission information for the calling user in the given group. Use when you need to check what actions the authenticated user is authorized to perform in a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the Canvas group to check permissions for. |
| `permissions` | array | No | List of permissions to check against the authenticated user. Permission names are documented in the List assignable permissions endpoint. If not provided, checks all available permissions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get account help links

**Slug:** `CANVAS_GET_HELP_LINKS`

Retrieves help links configured for the specified Canvas account. Use when you need to access help resources available to users in an account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The unique identifier of the Canvas account for which to retrieve help links. Use 'self' to retrieve help links for the current user's account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Internal Settings

**Slug:** `CANVAS_GET_INTERNAL_SETTINGS`

Tool to retrieve all internal settings from Canvas using the GraphQL API. Use when you need to query system-level configuration settings.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Kaltura config

**Slug:** `CANVAS_GET_KALTURA_CONFIG`

Tool to return the config information for the Kaltura plugin in JSON format. Use when you need to check Kaltura integration status or retrieve Kaltura service endpoints.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get learning outcome

**Slug:** `CANVAS_GET_LEARNING_OUTCOME`

Tool to retrieve learning outcome information by ID using the Canvas GraphQL API. Use when you need to fetch details about a specific learning outcome including its title and description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the learning outcome to retrieve. Can be a numeric string or GraphQL global ID format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get learning outcome group

**Slug:** `CANVAS_GET_LEARNING_OUTCOME_GROUP`

Tool to retrieve learning outcome group information by ID via GraphQL. Use when you need to fetch details about a specific learning outcome group including its title and description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The global GraphQL ID of the learning outcome group to retrieve. This is a base64-encoded string (e.g., 'TGVhcm5pbmdPdXRjb21lR3JvdXAtNQ=='). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Legacy Node

**Slug:** `CANVAS_GET_LEGACY_NODE`

Tool to fetch Canvas objects using REST-style numeric identifiers via GraphQL. Use when you have a legacy numeric ID and need to retrieve the corresponding object data through the GraphQL API.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `_id` | string | Yes | Legacy numeric identifier from the REST API. Should be a string representation of the numeric ID. |
| `type` | string ("Account" | "Assignment" | "Course" | "Discussion" | "Enrollment" | "Group" | "Module" | "Page" | "Quiz" | "Section" | "Submission" | "User") | Yes | The object type to fetch (e.g., Course, Assignment, User). |
| `fields` | string | No | GraphQL fields to retrieve from the object. If not specified, only __typename and _id will be returned. Use GraphQL fragment syntax (e.g., '... on Course { name enrollmentState }'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get manually-created courses sub-account

**Slug:** `CANVAS_GET_MANUALLY_CREATED_COURSES_ACCOUNT`

Tool to retrieve the manually-created courses sub-account for the domain root account. Use when you need to identify the sub-account that contains courses created manually (as opposed to SIS-imported courses).

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Module Item

**Slug:** `CANVAS_GET_MODULE_ITEM`

Tool to retrieve information about a specific module item by ID using the Canvas GraphQL API. Use when fetching details about a module item including its content, parent module, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The module item ID (can be GraphQL global ID or legacy numeric ID). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Module Item Sequence

**Slug:** `CANVAS_GET_MODULE_ITEM_SEQUENCE`

Tool to find the module item sequence for a given asset in a Canvas course. Returns the current item, previous and next items in the sequence, and applicable mastery path rules. Use when you need to understand the navigation context of a course asset.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `asset_id` | integer | No | The id of the asset (or the url in the case of a Page). |
| `course_id` | string | Yes | The unique identifier of the Canvas course. |
| `asset_type` | string ("ModuleItem" | "File" | "Page" | "Discussion" | "Assignment" | "Quiz" | "ExternalTool") | No | Asset types supported for module item sequence lookup. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get my inbox settings

**Slug:** `CANVAS_GET_MY_INBOX_SETTINGS`

Tool to retrieve inbox settings for the current user in Canvas. Use when you need to check the authenticated user's signature settings or out-of-office configuration.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get next appointment

**Slug:** `CANVAS_GET_NEXT_APPOINTMENT`

Retrieves the next available appointment from Canvas appointment groups. Returns a single-element array if an appointment is available, or an empty array if none are available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `appointment_group_ids` | array | No | List of appointment group IDs to search for the next available appointment. If omitted, searches across all appointment groups accessible to the user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get node by ID

**Slug:** `CANVAS_GET_NODE`

Tool to fetch Canvas objects by their GraphQL global identifier using the node query. Follows the Relay Object Identification spec and works for most Canvas object types including courses, users, assignments, and more.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | Optional GraphQL fragment to specify additional fields to fetch for the node. If not provided, only __typename and id will be returned. Example: '... on Course { _id name }' |
| `node_id` | string | Yes | GraphQL global identifier (Base64 encoded) of the object to fetch. Follows the Relay Object Identification spec. Example: 'Q291cnNlLTEwOTk=' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get outcome calculation method

**Slug:** `CANVAS_GET_OUTCOME_CALCULATION_METHOD`

Tool to retrieve outcome calculation method information by ID using the Canvas GraphQL API. Use when you need to fetch details about how outcomes are calculated for assessments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the outcome calculation method to retrieve (accepts both GraphQL and REST-style IDs). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get outcome proficiency (GraphQL)

**Slug:** `CANVAS_GET_OUTCOME_PROFICIENCY_GRAPH_QL`

Tool to retrieve outcome proficiency information for an account using the Canvas GraphQL API. Use when you need to fetch proficiency ratings and configuration for learning outcomes via GraphQL interface.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The ID of the account for which to retrieve outcome proficiency information. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get outcome result rollups

**Slug:** `CANVAS_GET_OUTCOME_RESULT_ROLLUPS`

Tool to retrieve outcome result rollups for users and outcomes in a specified course context. Use when you need to analyze learning outcome performance data, either for individual users or as a course aggregate.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `exclude` | array | No | Specify additional values to exclude. 'missing_user_rollups' excludes rollups for users without results. 'missing_outcome_results' excludes outcomes without results. |
| `include` | array | No | Specify additional collections to be side loaded with the result. Available options: courses, outcomes, outcomes.alignments, outcome_groups, outcome_links, outcome_paths, users. |
| `sort_by` | string ("student" | "outcome") | No | Sort option for outcome result rollups. |
| `per_page` | integer | No | Number of outcome rollups to return per page. |
| `user_ids` | array | No | If specified, only the users whose ids are given will be included in the results or used in an aggregate result. It is an error to specify an id for a user who is not a student in the context. |
| `aggregate` | string ("course") | No | Aggregate type for outcome rollups. |
| `course_id` | string | Yes | The unique identifier for the Canvas course to retrieve outcome rollups from. |
| `sort_order` | string ("asc" | "desc") | No | Sort order option. |
| `outcome_ids` | array | No | If specified, only the outcomes whose ids are given will be included in the results. It is an error to specify an id for an outcome which is not linked to the context. |
| `add_defaults` | boolean | No | If defaults are requested, then color and mastery level defaults will be added to outcome ratings in the rollup. This will only take effect if the Account Level Mastery Scales FF is DISABLED. |
| `aggregate_stat` | string ("mean" | "median") | No | Aggregate statistic type for rollups. |
| `sort_outcome_id` | integer | No | If outcome sorting requested, then this determines which outcome to use for rollup score sorting. |
| `contributing_scores` | boolean | No | DEPRECATED: This parameter is deprecated. Use the separate GET /api/v1/courses/:course_id/outcomes/:outcome_id/contributing_scores endpoint instead to fetch contributing scores for a specific outcome. If contributing scores are requested, then each individual outcome score will also include all graded artifacts that contributed to the outcome score. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Outcome Results

**Slug:** `CANVAS_GET_OUTCOME_RESULTS`

Tool to get outcome results for users and outcomes in a course context. Use when you need to retrieve learning outcome assessment results for students.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Specify additional collections to be side loaded with the result. Allowed values: 'alignments' (includes only the alignments referenced by the returned results), 'outcomes' (includes outcome details), 'outcomes.alignments' (includes all alignments referenced by outcomes in the context), 'outcome_groups' (includes outcome groups), 'outcome_links' (includes outcome links), 'outcome_paths' (includes outcome paths), 'users' (includes user details). |
| `user_ids` | array | No | If specified, only the users whose ids are given will be included in the results. SIS ids can be used, prefixed by 'sis_user_id:'. It is an error to specify an id for a user who is not a student in the context. |
| `course_id` | string | Yes | The ID of the course to retrieve outcome results for. |
| `outcome_ids` | array | No | If specified, only the outcomes whose ids are given will be included in the results. It is an error to specify an id for an outcome which is not linked to the context. |
| `include_hidden` | boolean | No | If true, results that are hidden from the learning mastery gradebook and student rollup scores will be included. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Page for a Course

**Slug:** `CANVAS_GET_PAGE_FOR_COURSE`

Retrieves a specific content page (wiki or content page) by its URL or numeric ID from a specified Canvas course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the Canvas course. |
| `url_or_id` | string | Yes | The URL (e.g., 'my-first-page') or the numeric ID of the page. If a page URL might be identical to another page's numeric ID, prefix the ID with 'page_id:' (e.g., 'page_id:5678'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get proficiency ratings for course

**Slug:** `CANVAS_GET_PROFICIENCY_RATINGS_FOR_COURSE`

Retrieves course-level proficiency ratings for learning outcomes. If not defined for the requested course, it will return proficiency ratings from the account or nearest super-account with ratings defined. Use when you need to view the performance level definitions used for grading outcomes in a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The identifier of the course for which to retrieve proficiency ratings. If not defined for this course, it will return proficiency ratings for the account or nearest super-account with ratings defined. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get public inline preview URL

**Slug:** `CANVAS_GET_PUBLIC_INLINE_PREVIEW_URL`

Tool to determine the URL for inline preview of a Canvas file. Use when you need to access the public URL of a file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the file for which to retrieve the public inline preview URL. |
| `submission_id` | integer | No | The id of the submission the file is associated with. Provide this argument to gain access to a file that has been submitted to an assignment (Canvas will verify that the file belongs to the submission and the calling user has rights to view the submission). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a quiz report

**Slug:** `CANVAS_GET_QUIZ_REPORT`

Retrieves the data for a single quiz report. Use when you need to check the status or download a previously generated quiz report.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the specific quiz report to retrieve. |
| `include` | string ("file" | "progress") | No | Whether the output should include documents for the file and/or progress objects associated with this report. (Note: JSON-API only) |
| `quiz_id` | string | Yes | The ID of the quiz for which to retrieve the report. |
| `course_id` | string | Yes | The ID of the course containing the quiz. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Quiz Statistics

**Slug:** `CANVAS_GET_QUIZ_STATISTICS`

Tool to fetch the latest quiz statistics for a Canvas quiz. Use when you need statistical data about quiz submissions, including per-question metrics and aggregate submission statistics.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `quiz_id` | string | Yes | The unique identifier of the quiz to fetch statistics for. |
| `course_id` | string | Yes | The unique identifier of the course containing the quiz. |
| `all_versions` | boolean | No | Whether the statistics report should include all submission attempts. If false or omitted, only the latest submission attempts are included. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get quiz submissions

**Slug:** `CANVAS_GET_QUIZ_SUBMISSIONS`

Retrieves all submissions for a specific quiz within a course; ensure `course_id` and `quiz_id` are valid and the quiz belongs to the course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional. Specifies related resources like 'submission', 'quiz', or 'user' to include with each submission. If omitted or empty, minimal data is returned. |
| `quiz_id` | string | Yes | The unique ID of the quiz. |
| `course_id` | string | Yes | The unique ID of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Quota Information

**Slug:** `CANVAS_GET_QUOTA_INFORMATION`

Retrieves the total and used storage quota for a Canvas user. Use when you need to check storage space availability or usage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | Unique identifier for the user. Use 'self' to get the authenticated user's quota information, or provide a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get quota information for group

**Slug:** `CANVAS_GET_QUOTA_INFORMATION_GROUPS`

Returns the total and used storage quota for the group. Use this to check available storage space and monitor usage for a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique Canvas identifier for the group whose quota information is to be retrieved. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get report status

**Slug:** `CANVAS_GET_REPORT_STATUS`

Retrieves the status of a previously initiated report in a Canvas account, specified by its type and ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the specific report instance, usually obtained when report generation is initiated. |
| `report` | string | Yes | Type or name of the report, typically a predefined report type within Canvas. |
| `account_id` | integer | Yes | Unique identifier for the Canvas account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Root Outcome Group for Course

**Slug:** `CANVAS_GET_ROOT_OUTCOME_GROUP_FOR_COURSE`

Retrieves the root outcome group for a specified course context. Use when you need to access the top-level outcome group hierarchy for a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course for which to retrieve the root outcome group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get rubric

**Slug:** `CANVAS_GET_RUBRIC`

Tool to retrieve rubric information by ID using the Canvas GraphQL API. Use when you need to fetch detailed rubric data including criteria, points, and configuration settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rubricId` | string | Yes | Canvas rubric ID to retrieve. Can be either a GraphQL global identifier (for use with node query) or a legacy numeric ID (for use with legacyNode query). |
| `useLegacyNode` | boolean | No | If true, uses legacyNode query with numeric _id (default); if false, uses node query with GraphQL global identifier. Most Canvas integrations use numeric IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Rubric Assessments Read State

**Slug:** `CANVAS_GET_RUBRIC_ASSESSMENTS_READ_STATE`

Tool to check whether new rubric comments/grading made on a submission have been seen by the student being assessed. Use when you need to verify if a student has reviewed their rubric feedback.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | Unique identifier for the user (student) whose submission read state is being checked. |
| `section_id` | string | Yes | Unique identifier for the section. |
| `assignment_id` | string | Yes | Unique identifier for the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Rubrics Upload Template

**Slug:** `CANVAS_GET_RUBRICS_UPLOAD_TEMPLATE`

Tool to retrieve a CSV template file for importing rubrics into Canvas. Use when you need the template format for bulk rubric imports.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get running batches

**Slug:** `CANVAS_GET_RUNNING_BATCHES`

Tool to retrieve any currently running conversation batches for the current user. Use when checking the status of bulk private messages that were sent asynchronously.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get section information

**Slug:** `CANVAS_GET_SECTION_INFORMATION`

Retrieves detailed information for a specific Canvas section within a course. Use when you need section details including optional student lists, enrollment data, or permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the section to retrieve. |
| `include` | array | No | Additional data to include in the response. Options: 'students' (requires permission to view users/grades), 'avatar_url' (avatar URLs for students), 'enrollments' (section enrollment for each student, requires 'students'), 'total_students' (total active and invited students), 'passback_status' (grade passback status), 'permissions' (whether section grants manage_calendar permission). |
| `course_id` | string | Yes | The unique identifier for the Canvas course containing the section. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get section information by ID

**Slug:** `CANVAS_GET_SECTION_INFORMATION2`

Retrieves detailed information for a specific Canvas section by section ID alone. Use when you have the section ID but not the course ID, or when you need section details with optional student lists, enrollment data, or permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the section to retrieve. |
| `include` | array | No | Additional data to include in the response. Options: 'students' (requires permission to view users/grades), 'avatar_url' (avatar URLs for students), 'enrollments' (section enrollment for each student, requires 'students'), 'total_students' (total active and invited students), 'passback_status' (grade passback status), 'permissions' (whether section grants manage_calendar permission). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get section assignment submission summary

**Slug:** `CANVAS_GET_SECTION_SUBMISSION_SUMMARY`

Retrieves submission summary counts for a specific assignment within a section. Returns the number of submissions categorized as graded, ungraded, and not submitted based on gradeable students in the section.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `grouped` | boolean | No | If true, the response will take into account student groups. Defaults to false if not provided. |
| `section_id` | string | Yes | The unique identifier of the Canvas section. |
| `assignment_id` | string | Yes | The unique identifier of the assignment. |
| `include_deactivated` | boolean | No | If true, the response will include deactivated students in the summary. Defaults to false if not provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get sessionless launch URL for external tool

**Slug:** `CANVAS_GET_SESSIONLESS_LAUNCH_URL`

Returns a sessionless launch URL for an external tool in Canvas. Prefers the resource_link_lookup_uuid parameter, but defaults to id, url, or launch_type if not provided. Use when you need to generate a launch URL for an external tool without requiring a user session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | The external id of the tool to launch. Required unless resource_link_lookup_uuid or url is provided, or launch_type is assessment or module_item. |
| `url` | string | No | The LTI launch url for the external tool. Required unless resource_link_lookup_uuid or id is provided, or launch_type is assessment or module_item. |
| `account_id` | string | Yes | The Canvas account ID to get the sessionless launch URL for. This is a required path parameter. |
| `launch_type` | string ("assessment" | "module_item") | No | Supported launch types for external tools. |
| `assignment_id` | string | No | The assignment id for an assignment launch. Required if launch_type is set to "assessment". |
| `module_item_id` | string | No | The module item id for a module item launch. Required if launch_type is set to "module_item". |
| `resource_link_lookup_uuid` | string | No | The identifier to lookup a resource link. This is preferred over id, url, and launch_type parameters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get sessionless launch URL for external tool in course

**Slug:** `CANVAS_GET_SESSIONLESS_LAUNCH_URL_FOR_COURSE`

Returns a sessionless launch URL for an external tool in a Canvas course. Prefers the resource_link_lookup_uuid parameter, but defaults to id, url, or launch_type if not provided. Use when you need to generate a launch URL for an external tool in a specific course without requiring a user session.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | The external id of the tool to launch. Required unless resource_link_lookup_uuid or url is provided, or launch_type is assessment or module_item. |
| `url` | string | No | The LTI launch url for the external tool. Required unless resource_link_lookup_uuid or id is provided, or launch_type is assessment or module_item. |
| `course_id` | string | Yes | The Canvas course ID to get the sessionless launch URL for. This is a required path parameter. |
| `launch_type` | string ("assessment" | "module_item") | No | Supported launch types for external tools. |
| `assignment_id` | string | No | The assignment id for an assignment launch. Required if launch_type is set to "assessment". |
| `module_item_id` | string | No | The module item id for a module item launch. Required if launch_type is set to "module_item". |
| `resource_link_lookup_uuid` | string | No | The identifier to lookup a resource link. This is preferred over id, url, and launch_type parameters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single account

**Slug:** `CANVAS_GET_SINGLE_ACCOUNT`

Retrieve information on an individual account by ID or SIS account ID. Use when you need detailed account information for a specific account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the account. Can be either a numeric account ID or a SIS ID in the format 'sis_account_id:value'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single assignment override

**Slug:** `CANVAS_GET_SINGLE_ASSIGNMENT_OVERRIDE`

Retrieves details of the assignment override with the given id for a specific assignment in a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier for the assignment override to retrieve. |
| `course_id` | string | Yes | Unique identifier for the course containing the assignment. |
| `assignment_id` | string | Yes | Unique identifier for the assignment containing the override. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get single calendar event

**Slug:** `CANVAS_GET_SINGLE_CALENDAR_EVENT`

Tool to retrieve a single calendar event or assignment by ID from Canvas. Use when you need detailed information about a specific calendar item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the calendar event or assignment to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single conversation

**Slug:** `CANVAS_GET_SINGLE_CONVERSATION`

Tool to retrieve detailed information for a single conversation including all messages and extended participant information. Use when you need complete conversation data beyond what's available in list responses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the conversation to retrieve. |
| `scope` | string ("unread" | "starred" | "archived") | No | Scope values for filtering conversation visibility. |
| `filter` | array | No | Used when generating 'visible' in the API response. Narrows results by course/group context. |
| `filter_mode` | string ("and" | "or" | "default or") | No | Filter mode for combining filter criteria. |
| `auto_mark_as_read` | boolean | No | Default true. If true, unread conversations will be automatically marked as read. This will default to false in a future API release, so clients should explicitly send true if that is the desired behavior. |
| `interleave_submissions` | boolean | No | (Obsolete) Submissions are no longer linked to conversations. This parameter is ignored. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single course

**Slug:** `CANVAS_GET_SINGLE_COURSE`

Retrieves detailed information for a specific Canvas course using its `course_id`, which must be valid, and allows for including additional data fields in the response via the `include` parameter. Concluded or unpublished courses may have restricted visibility depending on the caller's role; include 'concluded' in `include` to retrieve richer metadata for such courses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Specifies optional additional data to include with the course response. Allowed values: 'needs_grading_count', 'syllabus_body', 'public_description', 'total_scores', 'current_grading_period_scores', 'term', 'account', 'course_progress', 'sections', 'storage_quota_used_mb', 'total_students', 'passback_status', 'favorites', 'teachers', 'observed_users', 'all_courses', 'permissions', 'course_image', 'banner_image', 'concluded', 'lti_context_id', 'post_manually'. |
| `course_id` | integer | Yes | The unique identifier for the Canvas course to retrieve. |
| `teacher_limit` | integer | No | If 'teachers' is in `include`, limits the number of teacher enrollments returned; API default applies otherwise. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single external tool

**Slug:** `CANVAS_GET_SINGLE_EXTERNAL_TOOL`

Tool to retrieve detailed information for a specific external tool within a Canvas account. Use when you need to get configuration details, settings, or metadata for an external tool.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The unique identifier of the account containing the external tool. |
| `external_tool_id` | string | Yes | The unique identifier of the external tool to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single grading standard in course context

**Slug:** `CANVAS_GET_SINGLE_GRADING_STANDARD_IN2`

Retrieves a single grading standard for the given course context that is visible to the user. Use when you need to view the complete configuration and grading scheme of a specific grading standard within a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course that contains the grading standard. |
| `grading_standard_id` | string | Yes | The unique identifier of the grading standard to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single poll

**Slug:** `CANVAS_GET_SINGLE_POLL`

Tool to retrieve a single poll by its ID from Canvas. Use when you need to fetch detailed information about a specific poll including its question, description, creation time, and aggregated results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the poll to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single poll choice

**Slug:** `CANVAS_GET_SINGLE_POLL_CHOICE`

Tool to retrieve a single poll choice by its ID from a Canvas poll. Use when you need to fetch detailed information about a specific poll choice option including its text, position, and correctness status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the poll choice to retrieve. |
| `poll_id` | string | Yes | The unique identifier of the poll containing the poll choice to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single quiz

**Slug:** `CANVAS_GET_SINGLE_QUIZ`

Retrieves detailed information for a specific quiz in a Canvas course. Use when you need to view quiz settings, questions count, due dates, or other quiz metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the quiz to retrieve. |
| `course_id` | string | Yes | The unique identifier of the course containing the quiz. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get single quiz submission

**Slug:** `CANVAS_GET_SINGLE_QUIZ_SUBMISSION`

Tool to retrieve a single quiz submission by ID. Use when you need details about a specific student's quiz attempt. Returns submission status, score, timing, and optionally related assignment, quiz, or user data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique ID of the quiz submission. |
| `include` | array | No | Associations to include with the quiz submission. Options: 'submission' (assignment submission data), 'quiz' (quiz details), 'user' (student info). |
| `quiz_id` | string | Yes | The unique ID of the quiz. |
| `course_id` | string | Yes | The unique ID of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get single submission

**Slug:** `CANVAS_GET_SINGLE_SUBMISSION`

Retrieves a specific submission for an assignment made by a particular user within a designated course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Additional related resources to include with the submission. Allowed values: 'submission_history', 'submission_comments', 'submission_html_comments', 'rubric_assessment', 'full_rubric_assessment', 'visibility', 'course', 'user', 'read_status', 'student_entered_score'. |
| `user_id` | string | Yes | ID of the user whose submission is being retrieved, or 'self' for the current authenticated user. |
| `course_id` | integer | Yes | ID of the course. |
| `assignment_id` | integer | Yes | ID of the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get single submission by section

**Slug:** `CANVAS_GET_SINGLE_SUBMISSION_BY_SECTION`

Retrieves a specific submission for an assignment made by a particular user within a designated section. Use when you have section_id instead of course_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Additional related resources to include with the submission. Allowed values: 'submission_history', 'submission_comments', 'submission_html_comments', 'rubric_assessment', 'full_rubric_assessment', 'visibility', 'course', 'user', 'read_status', 'student_entered_score'. |
| `user_id` | string | Yes | ID of the user whose submission is being retrieved. |
| `section_id` | string | Yes | ID of the section. |
| `assignment_id` | string | Yes | ID of the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single discussion topic

**Slug:** `CANVAS_GET_SINGLE_TOPIC`

Tool to retrieve detailed information about a single discussion topic in a Canvas course. Use when you need to fetch data for a specific discussion topic by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Specifies additional data to include in the response. Options: 'all_dates' (includes all dates associated with graded discussions' assignments), 'sections' (includes course sections associated with the topic if section-specific), 'sections_user_count' (includes user count per section or total users in topic context), 'overrides' (includes assignment overrides if applicable). |
| `topic_id` | string | Yes | The unique identifier of the discussion topic to retrieve. |
| `course_id` | string | Yes | The unique identifier of the course containing the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get a single group discussion topic

**Slug:** `CANVAS_GET_SINGLE_TOPIC2`

Tool to retrieve detailed information about a single discussion topic within a Canvas group. Use when you need to fetch data for a specific discussion topic by its ID from a group context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Specifies additional data to include in the response. Options: 'all_dates' (includes all dates associated with graded discussions' assignments), 'sections' (includes course sections associated with the topic if section-specific), 'sections_user_count' (includes user count per section or total users in topic context), 'overrides' (includes assignment overrides if applicable). |
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Single User

**Slug:** `CANVAS_GET_SINGLE_USER`

Retrieves detailed information for a single user in a Canvas course. Accepts the same include[] parameters as the list users endpoint and returns a single user with the same fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the user to retrieve. |
| `include` | array | No | Specifies additional details to include in the user response (e.g., 'enrollments', 'avatar_url', 'bio'). |
| `course_id` | string | Yes | The unique identifier for the Canvas course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Status of Last Report

**Slug:** `CANVAS_GET_STATUS_OF_LAST_REPORT`

Tool to retrieve the status of the last generated report for a specific course in Canvas. Use when you need to check the completion status, download URL, or progress of a course report.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the Canvas course to retrieve the report status from. |
| `report_type` | string | Yes | The type of report to query. Common report types include 'student_analysis' and 'item_analysis'. The report type must match one of the available report names configured for the Canvas instance. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get sub-accounts of an account

**Slug:** `CANVAS_GET_SUB_ACCOUNTS`

List accounts that are sub-accounts of the given account. Use when you need to retrieve the organizational hierarchy of Canvas accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order` | string ("id" | "name") | No | Sorts the accounts by id or name. Only applies when recursive is false. Defaults to id. |
| `include` | array | No | Array of additional information to include. 'course_count' returns the number of courses directly under each account. 'sub_account_count' returns the number of sub-accounts directly under each account. |
| `recursive` | boolean | No | If true, the entire account tree underneath this account will be returned (though still paginated). If false, only direct sub-accounts of this account will be returned. Defaults to false. |
| `account_id` | string | Yes | The unique identifier of the Canvas account for which to retrieve sub-accounts. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get submission

**Slug:** `CANVAS_GET_SUBMISSION`

Tool to retrieve submission information by ID using the Canvas GraphQL API. Use when you need to fetch submission details including state, attempt number, and associated user/assignment data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the submission to retrieve. Accepts both GraphQL global identifiers and legacy numeric IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get assignment submission summary

**Slug:** `CANVAS_GET_SUBMISSION_SUMMARY`

Retrieves submission summary counts for a specific assignment. Returns the number of submissions categorized as graded, ungraded, and not submitted based on gradeable students.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `grouped` | boolean | No | If true, the response will take into account student groups. Defaults to false if not provided. |
| `course_id` | string | Yes | The unique identifier of the Canvas course. |
| `assignment_id` | string | Yes | The unique identifier of the assignment. |
| `include_deactivated` | boolean | No | If true, the response will include deactivated students in the summary. Defaults to false if not provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get terms of service

**Slug:** `CANVAS_GET_TERMS_OF_SERVICE`

Tool to retrieve the terms of service for a Canvas account. Use when you need to access the terms of service content, acceptance requirements, or registration settings for an account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The unique identifier of the account. Use 'self' for the current user's account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get quiz submission

**Slug:** `CANVAS_GET_THE_QUIZ_SUBMISSION`

Tool to get the quiz submission for the current user in a specific quiz. Use when you need to retrieve submission details for the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Associations to include with the quiz submission. Allowed values: 'submission', 'quiz', 'user'. If omitted, minimal data is returned. |
| `quiz_id` | string | Yes | The unique ID of the quiz. |
| `course_id` | string | Yes | The unique ID of the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Unread Count

**Slug:** `CANVAS_GET_UNREAD_COUNT`

Tool to get the number of unread conversations for the current user. Use when you need to check how many unread conversations the authenticated user has.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get uploaded media folder for user

**Slug:** `CANVAS_GET_UPLOADED_MEDIA_FOLDER_FOR_USER`

Tool to retrieve the details for a designated upload folder that the user has rights to upload media to, creating it if it doesn't exist. Use when you need to access or manage the media upload folder for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course for which to retrieve the uploaded media folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get uploaded media folder for user (groups)

**Slug:** `CANVAS_GET_UPLOADED_MEDIA_FOLDER_FOR_USER_GROUPS`

Tool to retrieve the details for a designated upload folder that the user has rights to upload media to within a group, creating it if it doesn't exist. Use when you need to access or manage the media upload folder for a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group for which to retrieve the uploaded media folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user activity stream summary

**Slug:** `CANVAS_GET_USER_ACTIVITY_STREAM_SUMMARY`

Tool to retrieve a summary of the current user's global activity stream. Returns aggregated counts by activity type (discussions, conversations, messages, etc.) across all courses. Use when you need an overview of the user's activity across their entire Canvas account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `only_active_courses` | boolean | No | If true, will only return objects for courses the user is actively participating in. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user assignment analytics

**Slug:** `CANVAS_GET_USER_ASSIGNMENT_ANALYTICS`

Fetches detailed assignment-level analytics for a specific student in a designated course, including submission details and class performance statistics.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The unique identifier for the course. |
| `student_id` | integer | Yes | The unique identifier for the student. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Avatars

**Slug:** `CANVAS_GET_USER_AVATARS`

Tool to retrieve available avatar options for a Canvas user. Use when you need to list all avatar choices for a user, including uploaded images and default options.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | Unique identifier for the user. Use 'self' to get the authenticated user's avatar options, or provide a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user content export

**Slug:** `CANVAS_GET_USER_CONTENT_EXPORT`

Tool to retrieve information about a specific content export job for a user. Use when you need to check the status of a user's export and get the download URL when the export completes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the content export to retrieve. |
| `user_id` | string | Yes | The unique identifier for the user. Can be a numeric ID or 'self' for the authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user course progress

**Slug:** `CANVAS_GET_USER_COURSE_PROGRESS`

Retrieves the academic progress of a specific user within a given course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user whose course progress is being requested. Use 'self' to fetch progress for the currently authenticated user. |
| `course_id` | integer | Yes | The unique numerical identifier of the course for which progress is being requested. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user file

**Slug:** `CANVAS_GET_USER_FILE`

Tool to retrieve detailed metadata for a specific file owned by a user. Use when you need information about a file in a user's context, including its name, size, content type, URLs, and optionally the user who uploaded it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the file to retrieve. |
| `include` | array | No | Array of additional information to include. 'user' includes the user who uploaded the file or last edited its content. |
| `user_id` | string | Yes | The unique identifier of the user. Can be 'self' for the current user or a specific user ID. |
| `replacement_chain_context_id` | integer | No | When a user replaces a file during upload, Canvas keeps track of the 'replacement chain.' Include this parameter if you wish Canvas to follow the replacement chain if the requested file was deleted and replaced by another. Indicates the context ID Canvas should use when following the 'replacement chain.' The 'replacement_chain_context_type' parameter must also be included. |
| `replacement_chain_context_type` | string ("course" | "account") | No | When a user replaces a file during upload, Canvas keeps track of the 'replacement chain.' Include this parameter if you wish Canvas to follow the replacement chain if the requested file was deleted and replaced by another. Must be set to 'course' or 'account'. The 'replacement_chain_context_id' parameter must also be included. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user folder

**Slug:** `CANVAS_GET_USER_FOLDER`

Tool to retrieve details for a specific folder in a user's Canvas file space. Use 'root' as the folder ID to get the root folder, or 'self' as user_id for the current authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the folder to retrieve. Use 'root' to get the root folder for the user context. |
| `user_id` | string | Yes | The unique identifier of the user whose folder to retrieve. Use 'self' to refer to the current authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user migration issue

**Slug:** `CANVAS_GET_USER_MIGRATION_ISSUE`

Tool to retrieve detailed information about a specific migration issue for a user in Canvas. Use when you need to investigate issues that occurred during a user's content migration process.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the migration issue to retrieve. |
| `user_id` | string | Yes | The unique identifier for the user. Use 'self' to refer to the current authenticated user. |
| `content_migration_id` | string | Yes | The unique identifier for the content migration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user participation analytics

**Slug:** `CANVAS_GET_USER_PARTICIPATION_ANALYTICS`

Retrieves page view activity and participation details for a specific student enrolled in a designated course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The unique identifier of the course for which to retrieve analytics. |
| `student_id` | integer | Yes | The unique identifier of the student for whom to retrieve analytics. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Profile

**Slug:** `CANVAS_GET_USER_PROFILE`

Retrieves profile information for an existing Canvas user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | Unique identifier for the user. Use 'self' to get the authenticated user's profile, or provide a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Users Custom Data Scope

**Slug:** `CANVAS_GET_USERS_CUSTOM_DATA_SCOPE`

Tool to retrieve custom data stored for a Canvas user within a specified namespace and optional scope. Use when you need to fetch application-specific data that was previously stored for a user. The namespace parameter (ns) is required to prevent data collisions between different applications.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ns` | string | Yes | Namespace parameter (required) to prevent custom_data collisions between different applications. Should use reverse DNS format like 'com.organization.app'. |
| `scope` | string | No | Optional scope path that defines the structure of JSON data to retrieve. When provided, retrieves data from /custom_data/{scope}. Leave empty to retrieve all custom data. |
| `user_id` | string | No | The user ID. Use 'self' for the authenticated user, or provide a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get users self files

**Slug:** `CANVAS_GET_USERS_SELF_FILES`

Tool to retrieve all files for the currently authenticated user. Use when you need to list files in the user's personal file storage. Supports filtering by content type, searching by filename, and sorting options.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `only` | array | No | Restricts returned information. 'names' returns file name information only (minimal response). |
| `sort` | string ("name" | "size" | "created_at" | "updated_at" | "content_type" | "user") | No | Sort results by this field. Defaults to 'name'. |
| `order` | string ("asc" | "desc") | No | The sorting order. Defaults to 'asc'. |
| `include` | array | No | Array of additional information to include: 'user' includes the user who uploaded the file, 'usage_rights' includes copyright and license information. |
| `search_term` | string | No | The partial name of the files to match and return. Searches file display names. |
| `content_types` | array | No | Filter results by content-type. You can specify type/subtype pairs (e.g., 'image/jpeg'), or simply types (e.g., 'image'). |
| `exclude_content_types` | array | No | Exclude specified content-types from results. Same format as content_types. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Token

**Slug:** `CANVAS_GET_USERS_TOKENS`

Retrieves detailed information about a specific access token for a Canvas user. Use when you need to inspect token properties like expiration, scopes, or workflow state.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | Unique identifier for the user. Use 'self' to get the authenticated user's token, or provide a specific user ID. |
| `token_id` | string | Yes | The ID of the token to retrieve, or the token_hint value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get visible course navigation tools

**Slug:** `CANVAS_GET_VISIBLE_COURSE_NAVIGATION_TOOLS`

Tool to get external tools with course_navigation placement that are visible to the requesting user. Use when you need to see which external tools appear in the course navigation menu for one or more courses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `context_codes` | array | Yes | List of context_codes to retrieve visible course nav tools for (for example, course_123). Only courses are presently supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get visible course navigation tools

**Slug:** `CANVAS_GET_VISIBLE_COURSE_NAVIGATION_TOOLS_FOR`

Retrieves external tools with course_navigation placement that are visible in the course navigation for a specific course. Use when you need to see which external tools appear in the course navigation menu for a given course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the Canvas course to retrieve visible navigation tools for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Grade or comment on a submission

**Slug:** `CANVAS_GRADE_COMMENT_SUBMISSION`

Updates a student's assignment submission with a grade, comment, sticker, or status change; requires `course_id`, `assignment_id`, `user_id`, and at least one update field. Rubric assessments are not supported and require a separate Canvas API call.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `excuse` | boolean | No | If true, marks submission 'excused'. Excused assignments typically don't affect total grade. |
| `attempt` | integer | No | Specific attempt number for the comment, if multiple attempts allowed. |
| `sticker` | string | No | The name of a sticker to apply to the submission (e.g., 'apple', 'star'). |
| `user_id` | integer | Yes | The unique identifier for the user (student) whose submission is being addressed. |
| `course_id` | integer | Yes | The unique identifier for the course. |
| `posted_grade` | string | No | Grade/score to assign (e.g., '95', 'A-'). Updates 'score' and 'grade' in Canvas. Overwrites any existing instructor-entered score. |
| `text_comment` | string | No | A textual comment to add to the submission. |
| `assignment_id` | integer | Yes | The unique identifier for the assignment within the course. |
| `group_comment` | boolean | No | If true, comment is visible to student's group (if a group assignment). |
| `media_comment_id` | string | No | Identifier for a pre-existing media comment. Obtaining this ID may require UI interaction due to Canvas API limitations for its management. |
| `late_policy_status` | string | No | Sets late policy status. If omitted, existing status is unchanged. |
| `media_comment_type` | string | No | Type of media comment (e.g., 'audio', 'video'), relevant if `media_comment_id` is provided. |
| `seconds_late_override` | integer | No | Overrides calculated lateness in seconds; used with `late_policy_status` or for manual adjustment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Grade or comment on submission (sections)

**Slug:** `CANVAS_GRADE_OR_COMMENT_ON_SUBMISSION_SECTIONS`

Update grades and/or add comments to a student's assignment submission. Use when you need to provide feedback or scoring. Requires permission to manage grades when updating grades or rubric assessments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `excuse` | boolean | No | Set to true to excuse the assignment for this student. Excused assignments do not affect the student's grade. |
| `include` | array | No | Additional associations to include in the response. submission_comments is always included by default. |
| `sticker` | string ("apple" | "basketball" | "bell" | "book" | "bookbag" | "briefcase" | "bus" | "calendar" | "chem" | "design" | "pencil" | "beaker" | "paintbrush" | "computer" | "column" | "pen" | "tablet" | "telescope" | "calculator" | "paperclip" | "composite_notebook" | "scissors" | "ruler" | "clock" | "globe" | "grad" | "gym" | "mail" | "microscope" | "mouse" | "music" | "notebook" | "page" | "panda1" | "panda2" | "panda3" | "panda4" | "panda5" | "panda6" | "panda7" | "panda8" | "panda9" | "presentation" | "science" | "science2" | "star" | "tag" | "tape" | "target" | "trophy") | No | Assign a sticker to the submission for visual feedback. |
| `user_id` | string | Yes | The ID of the student (user) whose submission to grade or comment on. |
| `section_id` | string | Yes | The ID of the section containing the assignment. |
| `peer_review` | boolean | No | Set to true to update the peer review sub-assignment submission instead of the parent assignment. Requires peer reviews enabled and peer_review_allocation_and_grading feature flag. |
| `posted_grade` | string | No | Grade to assign. Can be a number (e.g., '85'), percentage (e.g., '85%'), letter grade (e.g., 'A-'), or pass/fail/complete/incomplete. Updates both score and grade fields. |
| `text_comment` | string | No | Add a text comment to the submission. |
| `assignment_id` | string | Yes | The ID of the assignment to grade or comment on. |
| `comment_attempt` | integer | No | The attempt number (starts at 1) to associate the comment with. |
| `comment_file_ids` | array | No | List of file IDs to attach to the comment. Files must be previously uploaded using the Submission Comment API's files action. |
| `rubric_assessment` | string | No | Rubric assessment data. Format: For each criterion, provide points, rating_id, and/or comments as query-string formatted data (e.g., 'rubric_assessment[crit1][points]=3&rubric_assessment[crit1][rating_id]=rat1&rubric_assessment[crit1][comments]=Well Done'). Requires permission to manage grades. |
| `late_policy_status` | string | No | Set the late policy status. Valid values: 'late', 'missing', 'extended', 'none', or null. Note: 'extended' may require specific UI features enabled. |
| `comment_group_comment` | boolean | No | Set to true to send the comment to the entire group for group assignments. Requires text_comment to be provided. Defaults to false. |
| `seconds_late_override` | integer | No | Override the number of seconds late. Only valid when late_policy_status is 'late'. |
| `comment_media_comment_id` | string | No | ID of an audio/video media comment to attach. Note: API for generating/listing media comments is limited. |
| `prefer_points_over_scheme` | boolean | No | If true, treat posted_grade as raw points even if the value matches a grading scheme value. |
| `comment_media_comment_type` | string ("audio" | "video") | No | Type of media comment being added. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Hide all stream items

**Slug:** `CANVAS_HIDE_ALL_STREAM_ITEMS`

Tool to hide all activity stream items for the current user. Use when the user wants to clear their entire activity stream.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Hide assignment grades for sections

**Slug:** `CANVAS_HIDE_ASSIGNMENT_GRADES_FOR_SECTIONS`

Tool to hide assignment grades for specific sections in Canvas. Use when you need to conceal grades from students in particular course sections, typically during grading periods or before releasing final grades.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `section_ids` | array | Yes | Array of section IDs for which to hide assignment grades. Must contain at least one section ID. |
| `assignment_id` | string | Yes | The unique identifier of the assignment whose grades should be hidden. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Hide stream item

**Slug:** `CANVAS_HIDE_STREAM_ITEM`

Tool to hide a stream item from the user's activity stream. Use when you want to remove a specific activity item from view.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the activity stream item to hide. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Import an outcome group (courses)

**Slug:** `CANVAS_IMPORT_OUTCOME_GROUP_COURSES`

Tool to import an outcome group into a Canvas course. Creates a new subgroup with the same title and description as the source, then creates links to the same outcomes and recursively imports subgroups. Use when duplicating outcome groups within or across courses. Set async=true for large imports to track progress.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the destination outcome group into which the source group will be imported. |
| `async` | boolean | No | If true, perform action asynchronously and return a Progress object instead of an OutcomeGroup. Use the progress endpoint to query the status. The imported outcome group id and url will be returned in the Progress results as 'outcome_group_id' and 'outcome_group_url'. |
| `course_id` | string | Yes | The unique identifier for the Canvas course where the destination outcome group resides. |
| `source_outcome_group_id` | integer | Yes | The ID of the source outcome group to import. The system will create a new subgroup with the same title and description, link the same outcomes, and recursively import any subgroups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invite others to a group

**Slug:** `CANVAS_INVITE_OTHERS_TO_GROUP`

Tool to send invitations to all supplied email addresses which will allow the receivers to join the group. Use when you need to add new members to a Canvas group via email invitation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The ID of the group to which the invitations will be sent. |
| `invitees` | array | Yes | An array of email addresses to be sent invitations. Each email will receive an invitation allowing them to join the group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Leave a group

**Slug:** `CANVAS_LEAVE_GROUP`

Tool to leave a group by removing the specified membership. Use when you need to remove a user from a group they are allowed to leave. Note: Some groups, such as sets of course groups created by teachers, cannot be left.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group to leave. |
| `membership_id` | string | Yes | The unique identifier of the group membership to remove. Use 'self' to leave your own membership. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Leave group

**Slug:** `CANVAS_LEAVE_GROUP2`

Tool to leave a group if allowed. Use when a user needs to exit a group membership. Note that some groups, such as course groups created by teachers, cannot be left by members.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user leaving the group. You may use 'self' to refer to the current user. |
| `group_id` | string | Yes | The unique identifier of the group to leave. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List account notifications

**Slug:** `CANVAS_LIST_ACCOUNT_NOTIFICATIONS`

Tool to retrieve all active global notifications for a Canvas account. Use when you need to check current announcements for the user. Closed notifications are excluded unless include_past is specified.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The unique identifier of the Canvas account to retrieve notifications for. Can be a numeric ID or 'self' for the current user's account. |
| `include_all` | boolean | No | Include all global announcements, regardless of user's role or availability date. Only available to account admins. |
| `include_past` | boolean | No | Include past and dismissed global announcements. If false or omitted, only active notifications not closed by the user are returned. |
| `show_is_closed` | boolean | No | Include a flag for each notification indicating whether it has been read/closed by the user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Accounts for Course Admins

**Slug:** `CANVAS_LIST_ACCOUNTS_FOR_COURSE_ADMINS`

Retrieves Canvas accounts visible to the current user due to their course-level administrative roles; no request parameters are needed.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List the activity stream

**Slug:** `CANVAS_LIST_ACTIVITY_STREAM`

Retrieves the current user's global activity stream from Canvas, paginated. Returns recent activities across courses including discussions, conversations, messages, submissions, conferences, and announcements. Use to display user's recent Canvas activity or notifications.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | Number of items to return per page for pagination. Canvas default is typically 10-20 items. |
| `only_active_courses` | boolean | No | If true, will only return objects for courses the user is actively participating in. If false or omitted, returns activity from all courses including concluded ones. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List all courses (GraphQL)

**Slug:** `CANVAS_LIST_ALL_COURSES_GRAPH_QL`

Tool to retrieve all courses that the user is enrolled in using the Canvas GraphQL API. Returns information about courses on the user's dashboard.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List all folders

**Slug:** `CANVAS_LIST_ALL_FOLDERS`

Retrieves the paginated list of all folders for a specified Canvas course. Returns a flat list containing the root folder and all nested subfolders. This action is scoped to courses only.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | string | No | Page token or number to fetch. Use the next_page value from a previous response to get the next page of results. |
| `per_page` | integer | No | Number of folders to return per page. Default is 10. |
| `course_id` | string | Yes | The unique identifier of the Canvas course for which to list folders. This ID must correspond to an existing course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List all folders for group

**Slug:** `CANVAS_LIST_ALL_FOLDERS_GROUPS`

Retrieves the paginated list of all folders for a specified Canvas group. Returns a flat list containing the root folder and all nested subfolders.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the Canvas group for which to list folders. This ID must correspond to an existing group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List all folders for user

**Slug:** `CANVAS_LIST_ALL_FOLDERS_USERS`

Tool to retrieve the paginated list of all folders for a specified Canvas user. Returns a flat list containing the root folder and all nested subfolders. Use when you need to access or browse a user's folder structure.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the Canvas user for which to list folders. Use 'self' to refer to the currently authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Announcements

**Slug:** `CANVAS_LIST_ANNOUNCEMENTS`

Tool to retrieve paginated list of announcements for specified courses and date range. Use when you need to fetch course announcements with optional filtering by dates and inclusion of additional context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional list of resources to include with the response. Possible values: 'sections', 'sections_user_count'. If 'sections' is passed, includes the course sections associated with the topic if specific to certain sections. If 'sections_user_count' is passed and sections were requested and topic is section-specific, includes the number of users in each section; otherwise, includes the total number of users in the topic's context. |
| `end_date` | string | No | Only return announcements posted before the end_date (inclusive). Defaults to 28 days from start_date. The value should be formatted as yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ. Announcements scheduled for future posting will only be returned to course administrators. |
| `start_date` | string | No | Only return announcements posted since the start_date (inclusive). Defaults to 14 days ago. The value should be formatted as yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ. |
| `active_only` | boolean | No | Only return active announcements that have been published. Applies only to requesting users that have permission to view unpublished items. Defaults to false for users with access to view unpublished items, otherwise true and unmodifiable. |
| `latest_only` | boolean | No | Only return the latest announcement for each associated context. The response will include at most one announcement for each specified context in the context_codes parameter. Defaults to false. |
| `context_codes` | array | Yes | List of context codes to retrieve announcements for (e.g., 'course_123', 'course_456'). Only courses are presently supported. The call will fail unless the caller has View Announcements permission in all listed courses. |
| `available_after` | string | No | Only return announcements having locked_at nil or after available_after (exclusive). The value should be formatted as yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ. Effective only for students (who don't have moderate forum right). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List appointment groups

**Slug:** `CANVAS_LIST_APPOINTMENT_GROUPS`

Retrieves a list of Canvas appointment groups based on specified filters; any provided `context_codes` must be valid and accessible by the user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scope` | string | No | Determines the scope of appointment groups to retrieve. For example, 'reservable' returns groups the user can sign up for. |
| `include` | array | No | List of additional data to include with each appointment group. Possible values: 'appointments', 'child_events', 'participant_count', 'reserved_times', 'all_context_codes'. |
| `context_codes` | array | No | List of context codes (e.g., 'course_123' or 'group_456') to filter appointment groups by specific courses or groups. If omitted, groups from all relevant contexts are returned. |
| `include_past_appointments` | boolean | No | If true, appointment groups that have already passed will be included in the results. Defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List assignment groups

**Slug:** `CANVAS_LIST_ASSIGNMENT_GROUPS`

Returns the paginated list of assignment groups for the current context. Use when you need to retrieve assignment groups for a course. The returned groups are sorted by their position field.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `include` | array | No | Associations to include with the group. 'discussion_topic', 'all_dates', 'can_edit', 'assignment_visibility', and 'submission' are only valid if 'assignments' is also included. 'score_statistics' requires that 'assignments' and 'submission' options are included. The 'assignment_visibility' option additionally requires that the Differentiated Assignments course feature be turned on. If 'observed_users' is passed along with 'assignments' and 'submission', submissions for observed users will also be included as an array. The 'peer_review' option requires that the Peer Review Grading course feature be turned on and that 'assignments' is included. |
| `per_page` | integer | No | The number of assignment groups to return per page. If not specified, Canvas API default will be used. |
| `course_id` | string | Yes | The unique identifier of the Canvas course to retrieve assignment groups from. |
| `assignment_ids` | array | No | If 'assignments' are included, optionally return only assignments having their ID in this array. |
| `grading_period_id` | integer | No | The id of the grading period in which assignment groups are being requested. Requires grading periods to exist. |
| `override_assignment_dates` | boolean | No | Apply assignment overrides for each assignment. Defaults to true if not specified. |
| `scope_assignments_to_student` | boolean | No | If true, all assignments returned will apply to the current user in the specified grading period. If assignments apply to other students in the specified grading period, but not the current user, they will not be returned. Requires the grading_period_id argument and grading periods to exist. In addition, the current user must be a student. |
| `exclude_assignment_submission_types` | array | No | If 'assignments' are included, those with the specified submission types will be excluded from the assignment groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List assignment overrides

**Slug:** `CANVAS_LIST_ASSIGNMENT_OVERRIDES`

Tool to retrieve the paginated list of overrides for an assignment. Use when you need to see which sections, groups, or students have custom due dates or availability settings for a specific assignment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | The number of assignment overrides to return per page. |
| `course_id` | string | Yes | The unique identifier of the Canvas course containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment to retrieve overrides for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List assignments for assignment group

**Slug:** `CANVAS_LIST_ASSIGNMENTS_FOR_ASSIGNMENT_GROUP`

Tool to retrieve the paginated list of assignments for a specific assignment group within a course. Use when you need assignments grouped by assignment group rather than all assignments for a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `bucket` | string ("past" | "overdue" | "undated" | "ungraded" | "unsubmitted" | "upcoming" | "future") | No | Filter assignments by due date and submission status. |
| `include` | array | No | Optional information to include with each assignment: 'submission' (current user's submission), 'assignment_visibility' (array of student IDs who can see it), 'all_dates' (array of AssignmentDate structures including overrides), 'overrides' (array of AssignmentOverride structures), 'observed_users' (submissions for observed users), 'can_edit' (whether caller can edit), 'score_statistics' (min/max/mean scores, requires 5+ graded assignments), 'ab_guid' (academic benchmark GUIDs). |
| `order_by` | string ("position" | "name" | "due_at") | No | Determines the order of the assignments. |
| `per_page` | integer | No | The number of assignments to return per page. |
| `course_id` | string | Yes | The unique identifier of the Canvas course. |
| `new_quizzes` | boolean | No | Return only New Quizzes assignments. |
| `post_to_sis` | boolean | No | Return only assignments that have post_to_sis set or not set. |
| `search_term` | string | No | The partial title of the assignments to match and return. |
| `assignment_ids` | array | No | If set, return only assignments specified by these IDs. |
| `assignment_group_id` | string | Yes | The unique identifier of the assignment group. |
| `override_assignment_dates` | boolean | No | Apply assignment overrides for each assignment, defaults to true. |
| `needs_grading_count_by_section` | boolean | No | Split up 'needs_grading_count' by sections into the 'needs_grading_count_by_section' key, defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List assignments for user in course

**Slug:** `CANVAS_LIST_ASSIGNMENTS_FOR_USER`

Tool to list assignments for a specific user in a Canvas course. Use when you need to retrieve assignments visible to a particular user, with optional filtering by due date, submission status, or search term. This endpoint respects user permissions and returns only assignments the specified user has rights to view.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `bucket` | string | No | Filter assignments by due date and submission status. Allowed values: 'past' (submitted and graded), 'overdue' (past due and not submitted), 'undated' (no due date), 'ungraded' (submitted but not graded), 'unsubmitted' (not yet submitted), 'upcoming' (due soon), 'future' (due in future). |
| `include` | array | No | Optional information to include with each assignment. Allowed values: 'submission' (current user's submission), 'assignment_visibility' (user IDs who can see), 'all_dates' (all dates including overrides), 'overrides' (assignment overrides), 'observed_users' (observed users' submissions), 'can_edit' (if user can edit), 'score_statistics' (score stats), 'ab_guid' (A/B test info). |
| `user_id` | string | Yes | The unique identifier of the user to retrieve assignments for. Use 'self' to refer to the current authenticated user. |
| `order_by` | string | No | Determines the order of the assignments. Allowed values: 'position' (course order), 'name' (alphabetical), 'due_at' (by due date). Defaults to 'position'. |
| `per_page` | integer | No | The number of assignments to return per page. Canvas default is typically 10. |
| `course_id` | string | Yes | The unique identifier of the course to retrieve assignments from. |
| `new_quizzes` | boolean | No | Return only New Quizzes assignments. Set to true to filter for New Quizzes only. |
| `post_to_sis` | boolean | No | Return only assignments that have post_to_sis set (true) or not set (false). If omitted, returns all assignments regardless of this setting. |
| `search_term` | string | No | Filter assignments by partial title match. Returns only assignments whose title contains this search term. |
| `assignment_ids` | array | No | If set, return only assignments with the specified IDs. Useful for retrieving specific assignments. |
| `override_assignment_dates` | boolean | No | Apply assignment overrides for each assignment. Defaults to true in the API if not specified. |
| `needs_grading_count_by_section` | boolean | No | Split up needs_grading_count by sections into the needs_grading_count_by_section key. Defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List assignment submissions

**Slug:** `CANVAS_LIST_ASSIGNMENT_SUBMISSIONS`

Retrieves submissions for a specific assignment within a course, optionally including related resources or grouping by student group for group assignments. Supports pagination to retrieve more than the default 10 submissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). Use to get results beyond the first page. |
| `grouped` | boolean | No | If set to true, and the assignment is a group assignment, the submissions will be grouped by student group. Otherwise, submissions are returned ungrouped. Defaults to false if not provided. |
| `include` | array | No | A list of optional related resources to include in the response for each submission. Common values include 'submission_history', 'submission_comments', 'user', and 'assignment'. |
| `per_page` | integer | No | Number of submissions to return per page (max 100). If omitted, Canvas default (10) is used. Set to a higher value (e.g., 100) to get more submissions. |
| `course_id` | integer | Yes | The unique identifier of the course. |
| `assignment_id` | integer | Yes | The unique identifier of the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List assignment submissions by section

**Slug:** `CANVAS_LIST_ASSIGNMENT_SUBMISSIONS_BY_SECTION`

Tool to list all submissions for an assignment within a specific section. Use when you need to retrieve submissions for a section-level assignment rather than a course-level assignment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `grouped` | boolean | No | If set to true, and the assignment is a group assignment, the submissions will be grouped by student group. Otherwise, submissions are returned ungrouped. Defaults to false if not provided. |
| `include` | array | No | A list of optional related resources to include in the response for each submission. Common values include 'submission_history', 'submission_comments', 'user', and 'assignment'. |
| `section_id` | string | Yes | The unique identifier of the section. |
| `assignment_id` | string | Yes | The unique identifier of the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Authentication Events for User

**Slug:** `CANVAS_LIST_AUTHENTICATION_EVENTS_FOR_USER`

Tool to list authentication events (logins and logouts) for a given user from Canvas LMS audit logs. Use when you need to track user authentication activity or investigate login/logout history. Events are stored for one year and returned in descending chronological order.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier for the user. Use 'self' for the authenticated user or provide a specific user ID. |
| `end_time` | string | No | The end of the time range from which you want events. ISO 8601 format (e.g., '2023-12-31T23:59:59Z'). |
| `start_time` | string | No | The beginning of the time range from which you want events. Events are stored for one year. ISO 8601 format (e.g., '2023-01-01T00:00:00Z'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List available account calendars

**Slug:** `CANVAS_LIST_AVAILABLE_ACCOUNT_CALENDARS`

Returns a paginated list of account calendars available to the current user. Includes visible account calendars where the user has an account association.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `search_term` | string | No | When included, searches available account calendars for the term. Returns matching results. Term must be at least 2 characters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Available Reports

**Slug:** `CANVAS_LIST_AVAILABLE_REPORTS`

Lists available reports (including those that can be or have been generated) for a valid Canvas account ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | integer | Yes | The unique identifier for the Canvas account for which to list available reports. This ID can typically be found in the Canvas URL or account settings. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Available Tabs for a Course

**Slug:** `CANVAS_LIST_AVAILABLE_TABS_FOR_COURSE`

Tool to retrieve navigation tabs for a Canvas course. Use when you need to see available navigation options for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional flag to return the tabs associated with a canvas_for_elementary subject course's home page instead of the typical sidebar navigation. Only takes effect if this request is for a course context in a canvas_for_elementary-enabled account or sub-account. |
| `course_id` | string | Yes | The unique identifier of the course for which to retrieve available tabs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Available Tabs for a Group

**Slug:** `CANVAS_LIST_AVAILABLE_TABS_FOR_COURSE3`

Tool to retrieve navigation tabs for a Canvas group. Use when you need to see available navigation options for a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional flag to return the tabs associated with a canvas_for_elementary subject course's home page instead of the typical sidebar navigation. Only takes effect if this request is for a course context in a canvas_for_elementary-enabled account or sub-account. |
| `group_id` | string | Yes | The unique identifier of the group for which to retrieve available tabs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Available Tabs for User

**Slug:** `CANVAS_LIST_AVAILABLE_TABS_FOR_USER`

Tool to retrieve a paginated list of navigation tabs available in a user context. Use when you need to discover what tabs (like Home, Assignments, Grades, etc.) are accessible for a specific user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional flag to return the tabs associated with a canvas_for_elementary subject course's home page instead of the typical sidebar navigation. Only takes effect if this request is for a course context in a canvas_for_elementary-enabled account or sub-account. |
| `user_id` | string | Yes | The unique identifier of the user. Use 'self' for the current authenticated user or provide a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List blackout dates for account

**Slug:** `CANVAS_LIST_BLACKOUT_DATES`

Retrieves the list of blackout dates for a Canvas account context. Blackout dates prevent scheduling assignments on specific dates in course pacing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The unique identifier for the Canvas account whose blackout dates are to be retrieved. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Blueprint Imports

**Slug:** `CANVAS_LIST_BLUEPRINT_IMPORTS`

Tool to list blueprint migrations imported into a course associated with a blueprint. Use when you need to see a paginated list of sync operations from a blueprint course to an associated course, starting with the most recent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. |
| `per_page` | integer | No | Number of migrations to return per page (max 100). |
| `course_id` | string | Yes | The unique identifier of the course associated with a blueprint subscription. |
| `subscription_id` | string | No | The ID of the blueprint subscription. Use 'default' to use the currently active blueprint subscription. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Bookmarks

**Slug:** `CANVAS_LIST_BOOKMARKS`

Returns the paginated list of bookmarks for the authenticated user. Use when you need to retrieve all bookmarks saved by the current user.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List calendar events for current user

**Slug:** `CANVAS_LIST_CALENDAR_EVENTS`

Tool to retrieve the paginated list of calendar events or assignments for the current user. Use when you need to fetch upcoming events, assignments, or both with various filtering options like date ranges, context codes, and event types.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("event" | "assignment" | "sub_assignment") | No | Type of calendar item to filter by. Defaults to 'event'. Use 'event' for general calendar events, 'assignment' for assignments, or 'sub_assignment' for sub-assignments. |
| `undated` | boolean | No | Defaults to false (dated events only). If true, only return undated events and ignore start_date and end_date. |
| `end_date` | string | No | Only return events before the end_date (inclusive). Defaults to start_date. The value should be formatted as: yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ. If end_date is the same as start_date, then only events on that day are returned. |
| `excludes` | array | No | Array of attributes to exclude. Possible values are 'description', 'child_events' and 'assignment' |
| `includes` | array | No | Array of optional attributes to include. Possible values are 'web_conference' and 'series_natural_language' |
| `all_events` | boolean | No | Defaults to false (uses start_date, end_date, and undated criteria). If true, all events are returned, ignoring start_date, end_date, and undated criteria. |
| `start_date` | string | No | Only return events since the start_date (inclusive). Defaults to today. The value should be formatted as: yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ. |
| `blackout_date` | boolean | No | Defaults to false. If true, only events with blackout date set to true will be returned. |
| `context_codes` | array | No | List of context codes of courses, groups, users, or accounts whose events you want to see. If not specified, defaults to the current user (i.e personal calendar, no course/group events). Limited to 10 context codes, additional ones are ignored. The format of this field is the context type, followed by an underscore, followed by the context id. For example: course_42 |
| `important_dates` | boolean | No | Defaults to false. If true, only events with important dates set to true will be returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List calendar events for a user

**Slug:** `CANVAS_LIST_CALENDAR_EVENTS_FOR_USER`

Retrieves calendar events and assignments for a specific user from Canvas LMS, supporting extensive filtering options detailed in the request schema. Returned due_at values are ISO 8601 UTC; convert to user's local timezone before display. For pending task identification, exclude items where locked_for_user is true or has_submitted_submissions is true. Results may be incomplete even when assignments exist; do not use as the sole source for pending task lists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | No | Type of calendar item to filter by. Use 'event' for general calendar events or 'assignment' for assignments. |
| `undated` | boolean | No | If true, only undated events will be returned. This filter is ignored if 'all_events' is true. |
| `user_id` | integer | Yes | The unique identifier for the Canvas user whose calendar events are to be listed. |
| `end_date` | string | No | The end date for filtering events, in ISO 8601 format (e.g., 'YYYY-MM-DDTHH:MM:SSZ' or 'YYYY-MM-DD'). Events occurring on or before this date will be returned. This filter is ignored if 'all_events' is true. |
| `excludes` | array | No | Assignment attributes to exclude (e.g., 'description', 'html_url') if items are assignments. No effect on non-assignment events. |
| `includes` | array | No | Optional related resources to include in the response (e.g., 'submission', 'assignment_visibility'). E.g., 'submission' adds submission data for assignments. |
| `all_events` | boolean | No | If true, returns all calendar events for the user, overriding 'start_date', 'end_date', and 'undated' filters. |
| `start_date` | string | No | The start date for filtering events, in ISO 8601 format (e.g., 'YYYY-MM-DDTHH:MM:SSZ' or 'YYYY-MM-DD'). Events occurring on or after this date will be returned. This filter is ignored if 'all_events' is true. |
| `blackout_date` | boolean | No | If true, retrieves only 'blackout dates' (e.g., dates when a course might be unavailable). |
| `context_codes` | array | No | Context codes (e.g., 'course_123', 'group_456', 'user_self') to filter events by. If omitted, events from all contexts visible to the user are returned. |
| `important_dates` | boolean | No | If true, retrieves only events marked 'important_dates' (e.g., course announcements with specific dates). |
| `submission_types` | array | No | Submission types (e.g., 'online_quiz', 'on_paper') to filter by if item is an assignment. No effect if 'type' is not 'assignment'. |
| `exclude_submission_types` | array | No | Submission types to exclude if item is an assignment. No effect if 'type' is not 'assignment'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Enabled Features for a User

**Slug:** `CANVAS_LIST_CANVAS_ENABLED_FEATURES3`

Tool to retrieve a paginated list of enabled feature names for a Canvas user. Use when you need to check which optional features are currently active for a specific user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `user_id` | string | Yes | The unique identifier of the user to retrieve enabled features from. Use 'self' to refer to the currently authenticated user, or provide a numeric user ID. |
| `per_page` | integer | No | The number of feature names to return per page. If not specified, Canvas uses its default page size. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List external tools for course

**Slug:** `CANVAS_LIST_CANVAS_EXTERNAL_TOOLS2`

Tool to retrieve the paginated list of external tools for a course. Use when you need to discover LTI tools available in a course context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course to list external tools for. |
| `placement` | string | No | The placement type to filter by (e.g., 'editor_button', 'course_navigation', 'account_navigation'). |
| `selectable` | boolean | No | If true, then only tools that are meant to be selectable are returned. |
| `search_term` | string | No | The partial name of the tools to match and return. |
| `include_parents` | boolean | No | If true, then include tools installed in all accounts above the current context. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List closed poll sessions

**Slug:** `CANVAS_LIST_CLOSED_POLL_SESSIONS`

Tool to retrieve a paginated list of all closed poll sessions available to the current user. Use when you need to see which poll sessions have been closed and their results.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List communication messages

**Slug:** `CANVAS_LIST_COMM_MESSAGES`

Retrieves communication messages from Canvas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | Identifier for the user whose messages are listed. Defaults to the authenticated user if omitted. |
| `end_time` | string | No | End of the time filter (inclusive), as an ISO 8601 timestamp. Includes messages sent on or before this time. |
| `start_time` | string | No | Start of the time filter (inclusive), as an ISO 8601 timestamp. Includes messages sent on or after this time. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List communication channels

**Slug:** `CANVAS_LIST_COMMUNICATION_CHANNELS`

Retrieves a list of communication channels associated with a specific user in Canvas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The ID of the user for whom to list communication channels. Use 'self' for the current user, a numeric user ID, or a SIS User ID prefixed with 'sis_user_id:'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Conferences for Current User

**Slug:** `CANVAS_LIST_CONFERENCES_FOR_CURRENT_USER`

Tool to retrieve the paginated list of conferences for all courses and groups the current user belongs to. Use when you need to get conferences for the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | string ("live") | No | If set to 'live', returns only conferences that are live (i.e., have started and not finished yet). If omitted, returns all conferences for this user's groups and courses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List content exports

**Slug:** `CANVAS_LIST_CONTENT_EXPORTS`

Lists all content export jobs for a course. Content exports are snapshots of course content that can be downloaded as Common Cartridge (IMSCC), QTI, or ZIP files. Returns exports in reverse chronological order (newest first), including their status, type, and download URLs when available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the course. Can be a numeric ID or SIS ID. Returns 404 if the course does not exist or the user lacks permission to access it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List content exports for groups

**Slug:** `CANVAS_LIST_CONTENT_EXPORTS_GROUPS`

Lists all content export jobs for a group. Content exports are snapshots of group content that can be downloaded as Common Cartridge (IMSCC), QTI, or ZIP files. Returns exports in reverse chronological order (newest first), including their status, type, and download URLs when available.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the group. Can be a numeric ID or SIS ID. Returns 404 if the group does not exist or the user lacks permission to access it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List content licenses for a course

**Slug:** `CANVAS_LIST_CONTENT_LICENSES`

Tool to retrieve a list of content licenses that can be applied to course content in Canvas. Use when you need to know what license options are available for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The unique identifier for the Canvas course. This is required to retrieve the list of content licenses available for the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List content migrations for user

**Slug:** `CANVAS_LIST_CONTENT_MIGRATIONS4`

Tool to retrieve paginated content migrations for a specified user in Canvas. Use when you need to view the list of content migration operations initiated by or for a user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `user_id` | string | Yes | The unique identifier of the user whose content migrations are to be retrieved. This can be the numeric Canvas user ID or 'self' to represent the currently authenticated user. |
| `per_page` | integer | No | Number of content migrations to return per page. If not specified, Canvas default pagination is used. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List content migrations for groups

**Slug:** `CANVAS_LIST_CONTENT_MIGRATIONS_GROUPS`

Lists all content migrations for a group. Content migrations allow importing group content from various sources like Common Cartridge files or external systems. Returns migrations with their current status, progress URLs, and any associated files or issues.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the group. Can be a numeric ID or a SIS ID prefixed with 'sis_group_id:'. Returns content migrations for this specific group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Conversations

**Slug:** `CANVAS_LIST_CONVERSATIONS`

Tool to retrieve the paginated list of conversations for the current user, most recent ones first. Use when you need to fetch user conversations with optional filtering by scope (unread, starred, archived, sent) and context (courses, groups, users).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `scope` | string ("unread" | "starred" | "archived" | "sent") | No | Scope filter for conversations. |
| `filter` | array | No | When set, only return conversations for the specified courses, groups or users. The id should be prefixed with its type, e.g. 'user_123', 'course_456', 'group_789'. |
| `include` | array | No | Optional list of additional data to include. 'participant_avatars': Optionally include an 'avatar_url' key for each user participating in the conversation. 'uuid': Optionally include an 'uuid' key for each user participating in the conversation. |
| `per_page` | integer | No | The number of conversations to return per page. |
| `filter_mode` | string | No | When filter[] contains multiple filters, combine them with this mode, filtering conversations that at have at least all of the contexts ('and') or at least one of the contexts ('or'). Defaults to 'or'. |
| `interleave_submissions` | boolean | No | (Obsolete) Submissions are no longer linked to conversations. This parameter is ignored. |
| `include_all_conversation_ids` | boolean | No | Default is false. If true, the top-level element of the response will be an object rather than an array, and will have the keys 'conversations' which will contain the paged conversation data, and 'conversation_ids' which will contain the ids of all conversations under this scope/filter in the same order. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List counts for todo items

**Slug:** `CANVAS_LIST_COUNTS_FOR_TODO_ITEMS`

Get counts of different todo items for the current user, including assignments needing grading and assignments needing submitting. Note: Only counts the first 100 todo items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optionally include "ungraded_quizzes" to count ungraded quizzes (such as practice quizzes and surveys) in the list. These will be returned under a "quiz" key instead of an "assignment" key in response elements. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List blackout dates for course

**Slug:** `CANVAS_LIST_COURSE_BLACKOUT_DATES`

Tool to retrieve the list of blackout dates for a Canvas course. Use when you need to check which dates are blocked for assignments in course pacing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the Canvas course whose blackout dates are to be retrieved. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Nicknames

**Slug:** `CANVAS_LIST_COURSE_NICKNAMES`

Tool to retrieve all course nicknames set by the current user. Use when you need to see all custom course name preferences.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List courses

**Slug:** `CANVAS_LIST_COURSES`

Retrieves a list of the current user's courses from Canvas, optionally filtered by enrollment type and state. Excessive request frequency may return HTTP 429; respect the Retry-After header before retrying.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `state` | array | No | Filter courses by workflow state. Only return courses in the given state(s). By default, 'available' is returned for students and observers, and anything except 'deleted' for all other enrollment types. |
| `include` | array | No | Optional additional data to include with each course. Multiple values can be specified. |
| `per_page` | integer | No | Number of courses to return per page. If omitted, Canvas default (10) is used. Set to a higher value (e.g., 100) to get more courses. |
| `enrollment_role` | string | No | Deprecated. Filters courses by the specified course-level role. Can be a role created with the Add Role API or a base role type: 'StudentEnrollment', 'TeacherEnrollment', 'TaEnrollment', 'ObserverEnrollment', or 'DesignerEnrollment'. This argument is ignored if enrollment_role_id is given. |
| `enrollment_type` | string | No | Filters courses by the user's enrollment type. If omitted, courses are not filtered by enrollment type. |
| `enrollment_state` | string | No | Filters courses by the enrollment workflow state. This will respect section/course/term date overrides. |
| `enrollment_role_id` | integer | No | Filters courses by the specified course-level role ID. Only return courses where the user is enrolled with the specified role. |
| `exclude_blueprint_courses` | boolean | No | When set to true, only return courses that are not configured as blueprint courses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List course sections

**Slug:** `CANVAS_LIST_COURSE_SECTIONS`

Tool to retrieve a paginated list of sections for a specific course. Use when you need to get all sections or search for specific sections within a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `include` | array | No | Optional additional data to include with each section. Allowed values: 'students' (if you have permission to view users or grades), 'avatar_url' (include avatar URLs for students), 'enrollments' (if 'students' is also included, returns section enrollment for each student), 'total_students' (returns total amount of active and invited students), 'passback_status' (include grade passback status), 'permissions' (include whether section grants :manage_calendar permission). |
| `per_page` | integer | No | Number of sections to return per page. If omitted, Canvas default (10) is used. Set to a higher value (e.g., 100) to get more sections. |
| `course_id` | string | Yes | The unique identifier for the Canvas course to retrieve sections for. |
| `search_term` | string | No | Search course sections for the term. Returns only matching results. Term must be at least 2 characters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Courses for a User

**Slug:** `CANVAS_LIST_COURSES_FOR_USER`

Retrieves a list of courses in Canvas for a specified `user_id`, requiring observer or admin permissions to view courses for others.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | array | No | Filters courses by workflow state. Allowed values: 'unpublished', 'available', 'completed', 'deleted'. Default behavior (when not specified) returns all courses except deleted ones. |
| `include` | array | No | Specifies additional details to include for each course. Allowed values: 'needs_grading_count', 'syllabus_body', 'public_description', 'total_scores', 'current_grading_period_scores', 'term', 'account', 'course_progress', 'sections', 'storage_quota_used_mb', 'total_students', 'passback_status', 'favorites', 'teachers', 'observed_users', 'all_courses', 'permissions', 'course_image', 'banner_image', 'concluded', 'post_manually'. |
| `user_id` | integer | Yes | The unique identifier of the user for whom to retrieve the list of courses. |
| `homeroom` | boolean | No | If true, filters the results to include only homeroom courses. Set to false or omit to include all course types. |
| `account_id` | integer | No | Filters the results to include only courses associated with the specified account ID. Use this to narrow down results to courses within a specific account. |
| `enrollment_state` | string | No | Filters courses by the user's enrollment state. Allowed values: 'active' (actively enrolled), 'invited_or_pending' (invited but not yet accepted), 'completed' (enrollment has been completed/finished). When not specified, returns courses in all enrollment states. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Subgroups

**Slug:** `CANVAS_LIST_COURSE_SUBGROUPS`

Tool to retrieve a paginated list of immediate OutcomeGroup children of an outcome group in a course. Use when you need to explore the hierarchical structure of learning outcomes within a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the parent outcome group whose subgroups to list. |
| `page` | integer | No | Page number to fetch (1-indexed). |
| `per_page` | integer | No | Number of subgroups to return per page (max 100). |
| `course_id` | string | Yes | The unique identifier of the Canvas course containing the outcome group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List courses with their latest ePub export

**Slug:** `CANVAS_LIST_COURSES_WITH_THEIR_LATEST_E_PUB_EXPORT`

Tool to list all courses a user is actively participating in and their latest ePub exports. Use when you need to see which courses have been exported and their export status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). Use to navigate through result pages. If omitted, returns the first page. |
| `per_page` | integer | No | Number of items per page (default: 10, max: ~100). Controls pagination size. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course TODO Items

**Slug:** `CANVAS_LIST_COURSE_TODO_ITEMS`

Returns the current user's course-specific todo items. Use this to get assignments that need grading or submission for a specific course. For full documentation, see the API documentation for user todo items in the Users API.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the Canvas course to retrieve todo items for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Course Users

**Slug:** `CANVAS_LIST_COURSE_USERS`

Retrieves a paginated list of users for a given Canvas `course_id` (which must be an existing course), supporting various filtering, sorting, and data inclusion options.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. |
| `sort` | string ("username" | "last_login" | "email" | "sis_id") | No | The field to sort the list of users by. Results are sorted in ascending order. |
| `include` | array | No | Specifies additional details to include for each user in the response (e.g., 'enrollments', 'avatar_url'). |
| `user_id` | string | No | If provided, the response will be paginated to the page where this specific user ID appears. Useful for finding a user within a large list. |
| `per_page` | integer | No | Number of users to return per page (max 100). Higher values fetch more data in a single request. |
| `user_ids` | array | No | A list of user IDs to filter the results. Only users whose IDs are in this list will be returned. |
| `course_id` | string | Yes | The unique identifier for the Canvas course from which to list users. |
| `search_term` | string | No | A partial name or full ID to filter users. If provided, only users matching the search term will be returned. |
| `enrollment_role` | string | No | Deprecated: Filters users by a specific course-level role name. Use `enrollment_role_id` instead for better precision. |
| `enrollment_type` | array | No | Filters the list to include only users with the specified enrollment types (e.g., 'student', 'teacher'). |
| `enrollment_state` | array | No | Filters the list to include only users with the specified enrollment states (e.g., 'active', 'invited'). |
| `enrollment_role_id` | integer | No | Filters the list to include only users enrolled with the specified course-level role ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List custom gradebook columns

**Slug:** `CANVAS_LIST_CUSTOM_GRADEBOOK_COLUMNS`

Returns a paginated list of all custom gradebook columns for a course. Use when you need to retrieve custom columns that instructors have added to the gradebook.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | The number of custom gradebook columns to return per page. If not specified, Canvas API default will be used. |
| `course_id` | string | Yes | The unique identifier of the course to retrieve custom gradebook columns from. |
| `include_hidden` | boolean | No | Include hidden parameters. Defaults to false if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Discussion Entries

**Slug:** `CANVAS_LIST_DISCUSSION_ENTRIES`

Tool to retrieve paginated discussion entries for a specific discussion topic in a course. Use when needing to list all posts and replies under a given topic, supports pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve (pagination). |
| `per_page` | integer | No | Number of entries to return per page (pagination). |
| `topic_id` | integer | Yes | The unique identifier of the discussion topic. |
| `course_id` | integer | Yes | The unique identifier of the course containing the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Discussion Entry List

**Slug:** `CANVAS_LIST_DISCUSSION_ENTRY_LIST`

Tool to retrieve a paginated list of discussion entries by their ids from a group discussion topic. Use when needing to fetch specific entries given their identifiers. May require that the user has posted in the topic; if required and user has not posted, returns 403 Forbidden with body 'require_initial_post'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | No | A list of entry ids to retrieve. Entries will be returned in id order, smallest id first. If not provided, all entries may be returned subject to pagination. |
| `page` | integer | No | Page number to retrieve (pagination). |
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `per_page` | integer | No | Number of entries to return per page (pagination). |
| `topic_id` | string | Yes | The unique identifier of the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Discussion Topics

**Slug:** `CANVAS_LIST_DISCUSSION_TOPICS`

Retrieves a paginated list of discussion topics or announcements for a specified course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scope` | string | No | Filters topics by a specific state. Only one state can be specified. Valid options: 'locked', 'unlocked', 'pinned', 'unpinned'. |
| `include` | array | No | Specifies additional data to return for each discussion topic. Valid options: 'all_dates', 'sections', 'sections_user_count', 'overrides'. Multiple options can be provided as a list of strings. |
| `order_by` | string | No | The criteria for ordering discussion topics. Defaults to 'position' if not specified. Valid options: 'position', 'recent_activity', 'title'. |
| `course_id` | integer | Yes | The unique identifier of the course for which to list discussion topics. |
| `filter_by` | string | No | Filters topics based on a characteristic, typically read status. Use 'unread' to get only unread topics. Valid options: 'all', 'unread'. |
| `search_term` | string | No | A search string to match against discussion topic titles. Returns topics with partially matching titles. |
| `only_announcements` | boolean | No | If true, retrieves only announcements; otherwise, retrieves discussion topics. Defaults to false. |
| `exclude_context_module_locked_topics` | boolean | No | If true, and the requester is a student, excludes topics that are locked by module progression. Defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List discussion topics for group

**Slug:** `CANVAS_LIST_DISCUSSION_TOPICS2`

Tool to retrieve the paginated list of discussion topics for a specific group. Use when you need to list or browse discussion topics within a group context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scope` | string ("locked" | "unlocked" | "pinned" | "unpinned") | No | Filter options for discussion topic states. |
| `include` | array | No | Specifies additional data to return for each discussion topic. Multiple options can be provided. 'all_dates' includes all dates associated with graded discussions' assignments. 'sections' includes course sections associated with the topic. 'sections_user_count' includes the number of users in each section or total users in the topic's context. 'overrides' includes assignment overrides. |
| `group_id` | string | Yes | The unique identifier of the group for which to list discussion topics. |
| `order_by` | string ("position" | "recent_activity" | "title") | No | Ordering criteria for discussion topics. |
| `filter_by` | string ("all" | "unread") | No | Filter options for discussion topic read state. |
| `search_term` | string | No | The partial title of the discussion topics to match and return. |
| `only_announcements` | boolean | No | Return announcements instead of discussion topics. Defaults to false. |
| `exclude_context_module_locked_topics` | boolean | No | For students, exclude topics that are locked by module progression. Defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Enabled Features for a Course

**Slug:** `CANVAS_LIST_ENABLED_FEATURES_COURSES`

Tool to retrieve a paginated list of enabled feature names for a Canvas course. Use when you need to check which optional features are currently active on a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | The number of feature names to return per page. If not specified, Canvas uses its default page size. |
| `course_id` | string | Yes | The unique identifier of the course to retrieve enabled features from. This can be a numeric ID or a course SIS ID (e.g., 'sis_course_id:MATH101'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Enrollments

**Slug:** `CANVAS_LIST_ENROLLMENTS`

Tool to retrieve a paginated list of enrollments for a course, section, or user. Use when you need to query enrollments with filters like type, state, or role.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `role` | array | No | Filter by custom or base course-level enrollment roles. Overrides type parameter if provided. |
| `type` | array | No | Filter by enrollment type. Returns all types if omitted. |
| `state` | array | No | Filter by enrollment state. Defaults to active and invited if omitted. |
| `include` | array | No | Include additional data in the response. |
| `user_id` | string | No | Filter by user ID (course/section queries only). |
| `per_page` | integer | No | Number of enrollments to return per page (max 100). |
| `context_id` | string | Yes | The ID of the context (course, section, or user) to list enrollments for. |
| `sis_user_id` | array | No | Filter by SIS user IDs. |
| `context_type` | string ("course" | "section" | "user") | Yes | The context type for listing enrollments: 'course', 'section', or 'user'. |
| `sis_course_id` | array | No | Filter by SIS course IDs. |
| `sis_account_id` | array | No | Filter by SIS account IDs. |
| `sis_section_id` | array | No | Filter section enrollments by SIS section IDs. |
| `grading_period_id` | integer | No | Returns grades for specified grading period; otherwise returns full-course grades. |
| `created_for_sis_id` | array | No | When combined with sis_user_id, restricts results to enrollments created from specified SIS import. |
| `enrollment_term_id` | string | No | Returns enrollments for specified term (user enrollments path only). Accepts enrollment term ID or SIS ID with 'sis_term_id:' prefix. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Enrollment Terms

**Slug:** `CANVAS_LIST_ENROLLMENT_TERMS`

Tool to retrieve a paginated list of all enrollment terms in an account. Use when you need to query terms with filters like workflow state or search by name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `include` | array | No | Array of additional information to include. 'overrides' returns term start/end dates overridden for different enrollment types. |
| `per_page` | integer | No | Number of terms to return per page (max 100). |
| `term_name` | string | No | Filter terms by name. Returns only terms that match the given search keyword. Search is matched against term name. |
| `account_id` | string | Yes | The unique identifier for the account. Use 'self' for the current account or provide a specific account ID. |
| `workflow_state` | array | No | Filter terms by state. If not set, defaults to 'active'. Use 'all' to retrieve all terms regardless of state. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Entries By IDs

**Slug:** `CANVAS_LIST_ENTRIES_BY_IDS`

Tool to retrieve specific discussion entries by their IDs from a discussion topic. May require user to have posted if topic requires initial post (responds with 403 Forbidden if not met).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | No | A list of entry ids to retrieve. Entries will be returned in id order, smallest id first. If not provided, returns all entries. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic. |
| `course_id` | string | Yes | The unique identifier of the course containing the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List entries for a column

**Slug:** `CANVAS_LIST_ENTRIES_FOR_COLUMN`

Tool to retrieve entries from a custom gradebook column for a course. Use when you need to view data entered in custom columns. Note: Only returns entries for students with associated data; students without entries are excluded.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the custom gradebook column to retrieve data for. |
| `course_id` | string | Yes | The unique identifier of the course containing the custom gradebook column. |
| `include_hidden` | boolean | No | If true, hidden columns will be included in the result. If false or absent, only visible columns will be returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Entry Replies

**Slug:** `CANVAS_LIST_ENTRY_REPLIES`

Tool to retrieve replies for a specific discussion entry in a course. Use when needing to list all replies to a particular discussion entry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve (pagination). |
| `entry_id` | string | Yes | The unique identifier of the discussion entry whose replies to retrieve. |
| `per_page` | integer | No | Number of replies to return per page (pagination). |
| `topic_id` | string | Yes | The unique identifier of the discussion topic. |
| `course_id` | string | Yes | The unique identifier of the course containing the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List environment features

**Slug:** `CANVAS_LIST_ENVIRONMENT_FEATURES`

Tool to return a hash of global feature options that pertain to the Canvas user interface. Use when you need to check which features are enabled in the Canvas environment.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Environment Settings

**Slug:** `CANVAS_LIST_ENVIRONMENT_SETTINGS`

Retrieves global environment settings for the root Canvas account. Use when you need to access instance-wide configuration values.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List external feeds for group

**Slug:** `CANVAS_LIST_EXTERNAL_FEEDS_FOR_GROUP`

Tool to retrieve the paginated list of external RSS feeds for a group. Use when you need to discover what external feeds are configured to automatically create announcements in a group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group to list external feeds for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List External Tools

**Slug:** `CANVAS_LIST_EXTERNAL_TOOLS`

Retrieves the paginated list of external tools for the specified Canvas account. Use to discover LTI tools available in the account context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `placement` | string | No | The placement type to filter by (e.g., 'editor_button', 'course_navigation', 'account_navigation'). |
| `account_id` | string | Yes | The Canvas account ID to list external tools for. Use 'self' to refer to the current user's account. |
| `selectable` | boolean | No | If true, then only tools that are meant to be selectable are returned. |
| `search_term` | string | No | The partial name of the tools to match and return. |
| `include_parents` | boolean | No | If true, then include tools installed in all accounts above the current context. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List favorite courses

**Slug:** `CANVAS_LIST_FAVORITE_COURSES`

Tool to retrieve the paginated list of favorite courses for the current user. Use when you need to get the user's favorite courses. If the user has not chosen any favorites, then a selection of currently enrolled courses will be returned.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | Number of courses to return per page. If omitted, Canvas default (10) is used. Set to a higher value (e.g., 100) to get more courses. |
| `exclude_blueprint_courses` | boolean | No | When set, only return courses that are not configured as blueprint courses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List favorite groups

**Slug:** `CANVAS_LIST_FAVORITE_GROUPS`

Retrieves the paginated list of favorite groups for the current user. Use when you need to see which groups a user has favorited.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). |
| `per_page` | integer | No | Number of groups per page (max 100). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Features for Course

**Slug:** `CANVAS_LIST_FEATURES_COURSES`

Retrieves all feature flags for a Canvas course. Use when checking which features are available or enabled for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The Canvas course ID whose features to list. |
| `hide_inherited_enabled` | boolean | No | When true, feature flags that are enabled in a higher context and cannot be overridden will be omitted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Features for User

**Slug:** `CANVAS_LIST_FEATURES_USERS`

Retrieves a paginated list of all features that apply to a given User. Use when checking which features are available or enabled for a specific user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The Canvas user ID whose features to list. Use 'self' to refer to the authenticated user. |
| `hide_inherited_enabled` | boolean | No | When true, feature flags that are enabled in a higher context and cannot be overridden will be omitted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Files

**Slug:** `CANVAS_LIST_FILES`

Fetches metadata (ID, name, size, type, URLs) for all files within a specified Canvas course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique Canvas identifier for the course whose files are to be listed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List files in folder

**Slug:** `CANVAS_LIST_FILES_IN_FOLDER`

Tool to list files within a specific Canvas folder. Use when you need to retrieve files from a particular folder by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the folder whose files are to be listed. |
| `only` | array | No | Array of information to restrict to. Overrides include[]. Supported values: 'names' (only returns file name information). |
| `sort` | string ("name" | "size" | "created_at" | "updated_at" | "content_type" | "user") | No | Allowed sort fields for listing files. |
| `order` | string ("asc" | "desc") | No | Allowed sort order values. |
| `include` | array | No | Array of additional information to include. Supported values: 'user' (the user who uploaded the file or last edited its content), 'usage_rights' (copyright and license information for the file). |
| `search_term` | string | No | The partial name of the files to match and return. |
| `content_types` | array | No | Filter results by content-type. You can specify type/subtype pairs (e.g., 'image/jpeg'), or simply types (e.g., 'image', which will match 'image/gif', 'image/jpeg', etc.). |
| `exclude_content_types` | array | No | Exclude given content-types from your results. You can specify type/subtype pairs (e.g., 'image/jpeg'), or simply types (e.g., 'image', which will match 'image/gif', 'image/jpeg', etc.). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List folders

**Slug:** `CANVAS_LIST_FOLDERS`

Retrieves a list of immediate sub-folders within the specified `folder_id`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `folder_id` | string | Yes | ID of the parent folder for which to list direct sub-folders. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Global Subgroups

**Slug:** `CANVAS_LIST_GLOBAL_SUBGROUPS`

Tool to retrieve a paginated list of immediate OutcomeGroup children of a global outcome group. Use when you need to explore the hierarchical structure of global learning outcomes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the global outcome group whose subgroups to list. |
| `page` | integer | No | Page number to fetch (1-indexed). |
| `per_page` | integer | No | Number of subgroups to return per page (max 100). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List gradeable students

**Slug:** `CANVAS_LIST_GRADEABLE_STUDENTS`

Tool to retrieve a paginated list of students eligible to submit a specific assignment. Use when you need to identify which students can submit work for grading. The caller must have permission to view grades in the course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). Use to get results beyond the first page. |
| `sort` | string ("name") | No | Sort results by this field. Currently only 'name' is supported. |
| `order` | string ("asc" | "desc") | No | The sorting order. Defaults to 'asc' if not specified. |
| `per_page` | integer | No | Number of students to return per page (max 100). If omitted, Canvas default (10) is used. |
| `course_id` | string | Yes | The unique identifier for the Canvas course. |
| `assignment_id` | string | Yes | The unique identifier for the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List grading periods for a course

**Slug:** `CANVAS_LIST_GRADING_PERIODS_FOR_COURSE`

Returns the paginated list of grading periods for the current course. Use when you need to view grading period configurations for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | The number of grading periods to return per page. |
| `course_id` | string | Yes | The unique identifier of the course to retrieve grading periods for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Grading Standards Available in Context

**Slug:** `CANVAS_LIST_GRADING_STANDARDS_AVAILABLE_IN_CONTEXT`

Tool to retrieve grading standards available in a Canvas course context. Use when you need to list or view the grading schemes configured for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | Number of grading standards to return per page. If not specified, uses Canvas default pagination. |
| `course_id` | string | Yes | The unique identifier of the course to retrieve grading standards from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List group categories for a course

**Slug:** `CANVAS_LIST_GROUP_CATEGORIES_FOR_A_CONTEXT2`

Tool to retrieve group categories in a course context. Use when you need to list all group categories for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course to retrieve group categories from. |
| `collaboration_state` | string ("all" | "collaborative" | "non_collaborative") | No | Filter group categories by their collaboration state. Options: 'all' (both collaborative and non-collaborative), 'collaborative' (default), or 'non_collaborative'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Group Entry Replies

**Slug:** `CANVAS_LIST_GROUP_ENTRY_REPLIES`

Tool to retrieve paginated replies to a top-level entry in a group discussion topic. Use when needing to list all replies to a particular discussion entry in a group. May require that the user has posted in the topic depending on topic settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve (pagination). |
| `entry_id` | string | Yes | The unique identifier of the discussion entry whose replies to retrieve. |
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `per_page` | integer | No | Number of replies to return per page (pagination). |
| `topic_id` | string | Yes | The unique identifier of the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List external tools for group

**Slug:** `CANVAS_LIST_GROUP_EXTERNAL_TOOLS`

Tool to retrieve the paginated list of external tools for a group. Use when you need to discover LTI tools available in a group context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group to list external tools for. |
| `placement` | string | No | The placement type to filter by (e.g., 'editor_button', 'course_navigation', 'account_navigation'). |
| `selectable` | boolean | No | If true, then only tools that are meant to be selectable are returned. |
| `search_term` | string | No | The partial name of the tools to match and return. |
| `include_parents` | boolean | No | If true, then include tools installed in all accounts above the current context. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Group Files

**Slug:** `CANVAS_LIST_GROUP_FILES`

Tool to retrieve the paginated list of files for a specified group in Canvas. Use when you need to access or list files within a group context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `only` | array | No | Array of information to restrict to. Overrides include[]. 'names' only returns file name information. |
| `sort` | string ("name" | "size" | "created_at" | "updated_at" | "content_type" | "user") | No | Sort field options for file listing. |
| `order` | string ("asc" | "desc") | No | Sort order options. |
| `include` | array | No | Array of additional information to include. 'user' includes the user who uploaded the file or last edited its content. |
| `group_id` | string | Yes | The unique Canvas identifier for the group whose files are to be listed. |
| `search_term` | string | No | The partial name of the files to match and return. |
| `content_types` | array | No | Filter results by content-type. You can specify type/subtype pairs (e.g., 'image/jpeg'), or simply types (e.g., 'image', which will match 'image/gif', 'image/jpeg', etc.). |
| `exclude_content_types` | array | No | Exclude given content-types from your results. You can specify type/subtype pairs (e.g., 'image/jpeg'), or simply types (e.g., 'image', which will match 'image/gif', 'image/jpeg', etc.). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Group Memberships

**Slug:** `CANVAS_LIST_GROUP_MEMBERSHIPS`

Tool to retrieve a paginated list of members in a Canvas group. Use when you need to query group memberships with optional workflow state filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `group_id` | string | Yes | The unique identifier of the group to list memberships for. |
| `per_page` | integer | No | Number of memberships to return per page (max 100). |
| `filter_states` | array | No | Filter memberships by workflow state. Returns all memberships by default if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List groups available in a context

**Slug:** `CANVAS_LIST_GROUPS_AVAILABLE_IN_CONTEXT`

Tool to retrieve the paginated list of active groups in a course context that are visible to the user. Use when you need to list all groups available in a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `include` | array | No | Include additional data in the response. 'tabs' includes the list of tabs configured for each group. |
| `per_page` | integer | No | Number of groups to return per page (max 100). |
| `course_id` | string | Yes | The unique identifier of the course to list groups from. |
| `only_own_groups` | boolean | No | If true, only includes groups that the user belongs to. |
| `collaboration_state` | string ("all" | "collaborative" | "non_collaborative") | No | Collaboration state filter for groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Groups in Account

**Slug:** `CANVAS_LIST_GROUPS_IN_ACCOUNT`

Retrieves the paginated list of active groups in the specified Canvas account (use 'self' for current user's root account) that are visible to the user. Supports filtering by user membership and collaboration state.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Additional information to include in the response. Currently supports 'tabs' to include the list of tabs configured for each group. |
| `account_id` | string | Yes | The ID of the account to retrieve groups for. Use 'self' for the current user's root account. |
| `only_own_groups` | boolean | No | If true, only include groups that the user belongs to. If false or omitted, returns all visible groups in the account. |
| `collaboration_state` | string ("all" | "collaborative" | "non_collaborative") | No | Filter groups by collaboration state. 'all' returns both collaborative and non-collaborative groups, 'collaborative' returns only collaborative groups (default if not specified), 'non_collaborative' returns only non-collaborative groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List group's users

**Slug:** `CANVAS_LIST_GROUPS_USERS`

Retrieves a paginated list of users in a Canvas group. Use when you need to see all members of a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). |
| `include` | array | No | Additional data to include in the response. Use 'avatar_url' to include users' avatar URLs. |
| `group_id` | string | Yes | The unique identifier of the Canvas group to retrieve users from. |
| `per_page` | integer | No | Number of users per page (max 100). |
| `search_term` | string | No | The partial name or full ID of the users to match and return in the results list. Must be at least 2 characters. |
| `exclude_inactive` | boolean | No | Whether to filter out inactive users from the results. If not specified, defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Licenses

**Slug:** `CANVAS_LIST_LICENSES`

Retrieves a paginated list of licenses that can be applied to content in Canvas. Use when setting usage rights for files or determining available licensing options.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The identifier of the user for which to retrieve content licenses. Use 'self' for the current authenticated user or provide a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List licenses for a group

**Slug:** `CANVAS_LIST_LICENSES_GROUPS`

Tool to retrieve a paginated list of content licenses that can be applied to group content in Canvas. Use when you need to know what license options are available for a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the Canvas group. This is required to retrieve the list of content licenses available for the group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List linked outcomes for outcome group

**Slug:** `CANVAS_LIST_LINKED_OUTCOMES`

Tool to retrieve a paginated list of the immediate OutcomeLink children of an outcome group. Use when you need to list outcomes linked to a specific outcome group within an account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the outcome group. |
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | The number of outcomes to return per page. If omitted, uses Canvas default pagination. |
| `account_id` | string | Yes | The unique identifier of the Canvas account. |
| `outcome_style` | string | No | The detail level of the outcomes. Defaults to "abbrev". Specify "full" for more information. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List linked outcomes for course outcome group

**Slug:** `CANVAS_LIST_LINKED_OUTCOMES2`

Tool to retrieve a paginated list of the immediate OutcomeLink children of an outcome group in a course. Use when you need to list outcomes linked to a specific outcome group within a course context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the outcome group. |
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | The number of outcomes to return per page. If omitted, uses Canvas default pagination. |
| `course_id` | string | Yes | The unique identifier of the Canvas course. |
| `outcome_style` | string | No | The detail level of the outcomes. Defaults to "abbrev". Specify "full" for more information. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List LTI Launch Definitions for Course

**Slug:** `CANVAS_LIST_LTI_LAUNCH_DEFINITIONS_COURSES`

Retrieves LTI launch definitions for a Canvas course. Use to discover LTI app placements available in the course context. Note: If placements parameter is not provided, an empty list will be returned.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The Canvas course ID to list LTI launch definitions for. |
| `placements` | array | No | The placements to return launch definitions for. If not provided, an empty list will be returned. Common placements include: 'course_navigation', 'account_navigation', 'editor_button', 'assignment_selection', 'link_selection', 'global_navigation', 'user_navigation', 'homework_submission', 'migration_selection', 'tool_configuration', 'resource_selection', 'post_grades', 'submission_type_selection'. |
| `only_visible` | boolean | No | If true, only return launch definitions that are visible to the current user. Defaults to true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Manageable Accounts

**Slug:** `CANVAS_LIST_MANAGEABLE_ACCOUNTS`

Retrieves Canvas accounts where the current user has permission to create or manage courses. Use when you need to see which accounts an admin can manage. List will be empty for students and teachers.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Media Objects

**Slug:** `CANVAS_LIST_MEDIA_OBJECTS`

Tool to list media objects associated with a Canvas course. Use when you need to retrieve video/audio attachments for a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("title" | "created_at") | No | Sort field options for media objects. |
| `order` | string ("asc" | "desc") | No | Sort order options. |
| `exclude` | array | No | Array of data to exclude. By excluding 'sources' and 'tracks', the API will not need to query Kaltura, which greatly speeds up its response. 'sources' excludes media_sources, 'tracks' excludes media_tracks. |
| `course_id` | string | Yes | The unique identifier of the course for which to retrieve media attachments. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Media Objects 2

**Slug:** `CANVAS_LIST_MEDIA_OBJECTS2`

Tool to list media objects created by the user for a Canvas course. Use when you need to retrieve video/audio content associated with a specific course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("title" | "created_at") | No | Sort field options for media objects. |
| `order` | string ("asc" | "desc") | No | Sort order options. |
| `exclude` | array | No | Array of data to exclude. By excluding 'sources' and 'tracks', the API will not need to query Kaltura, which greatly speeds up its response. 'sources' excludes media_sources, 'tracks' excludes media_tracks. |
| `course_id` | string | Yes | The unique identifier of the course for which to retrieve media objects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Media Objects for Group

**Slug:** `CANVAS_LIST_MEDIA_OBJECTS3`

Tool to list media objects created by the user in a Canvas group. Use when you need to retrieve video/audio attachments for a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("title" | "created_at") | No | Sort field options for media objects. |
| `order` | string ("asc" | "desc") | No | Sort order options. |
| `exclude` | array | No | Array of data to exclude. By excluding 'sources' and 'tracks', the API will not need to query Kaltura, which greatly speeds up its response. 'sources' excludes media_sources, 'tracks' excludes media_tracks. |
| `group_id` | string | Yes | The unique identifier of the group for which to retrieve media attachments. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Media Objects for Group

**Slug:** `CANVAS_LIST_MEDIA_OBJECTS4`

Tool to list media objects associated with a Canvas group. Use when you need to retrieve video/audio content for a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("title" | "created_at") | No | Sort field options for media objects. |
| `order` | string ("asc" | "desc") | No | Sort order options. |
| `exclude` | array | No | Array of data to exclude. By excluding 'sources' and 'tracks', the API will not need to query Kaltura, which greatly speeds up its response. 'sources' excludes media_sources, 'tracks' excludes media_tracks. |
| `group_id` | string | Yes | The unique identifier of the group for which to retrieve media objects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Media Objects for User

**Slug:** `CANVAS_LIST_MEDIA_OBJECTS6`

Tool to list media objects created by the authenticated user. Use when you need to retrieve video/audio objects uploaded by the current user across all courses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("title" | "created_at") | No | Sort field options for media objects. |
| `order` | string ("asc" | "desc") | No | Sort order options. |
| `exclude` | array | No | Array of data to exclude. By excluding 'sources' and 'tracks', the API will not need to query Kaltura, which greatly speeds up its response. 'sources' excludes media_sources, 'tracks' excludes media_tracks. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List migration issues

**Slug:** `CANVAS_LIST_MIGRATION_ISSUES`

Retrieves paginated list of issues that occurred during a content migration. Use this to identify problems, warnings, or items requiring attention after importing content into Canvas. Issues are returned with details about their severity, current status, and links to investigate or resolve them.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier for the user. Can be a numeric ID, SIS ID prefixed with 'sis_user_id:', or 'self' for the currently authenticated user. |
| `content_migration_id` | string | Yes | The unique identifier for the content migration. This is the ID of the migration for which to retrieve issues. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List migration systems for group

**Slug:** `CANVAS_LIST_MIGRATION_SYSTEMS_GROUPS`

Lists the currently available migration types for a Canvas group. Use this to determine which content import types are supported before creating a content migration. Migration types vary by Canvas instance and may include Common Cartridge, Canvas Cartridge, course copy, QTI, Moodle, and other importers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the Canvas group. Can be a numeric ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List migration systems for user

**Slug:** `CANVAS_LIST_MIGRATION_SYSTEMS_USERS`

Lists currently available migration types for importing content into a user's Canvas context. Use this to discover which migration systems are supported before creating a content migration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier for the user. Use 'self' to refer to the authenticated user, or provide a numeric user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List missing submissions for a user

**Slug:** `CANVAS_LIST_MISSING_SUBMISSIONS`

List past-due assignments for which the student does not have a submission. The user making the request must either be the student, an admin, or a parent observer using the parent app. Use this to identify assignments that are overdue and still need to be completed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `filter` | array | No | Filter the results. 'submittable' returns only assignments that the current user can submit (filters out locked assignments). 'current_grading_period' returns only missing assignments in the current grading period. |
| `include` | array | No | Optionally include additional data. 'planner_overrides' includes the assignment's associated planner override if it exists. 'course' includes the assignments' courses. |
| `user_id` | string | No | The ID of the user to retrieve missing submissions for. Use 'self' for the currently authenticated user, or provide a numeric user ID. The user making the request must either be the student, an admin, or a parent observer. |
| `per_page` | integer | No | Number of items to return per page for pagination. |
| `course_ids` | array | No | Optionally restricts the list of past-due assignments to only those associated with the specified course IDs. Required if observed_user_id is passed. |
| `observed_user_id` | string | No | Return missing submissions for the given observed user. Must be accompanied by course_ids. The user making the request must be observing the observed user in all the courses specified by course_ids. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List module items

**Slug:** `CANVAS_LIST_MODULE_ITEMS`

Retrieves a paginated list of items (assignments, quizzes, pages, files, etc.) from a specific module in a Canvas course. Use when you need to see the contents and structure of a module.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `include` | array | No | Optional array to include additional details. When 'content_details' is included, returns content-specific details (points_possible, due_at, unlock_at, lock_at, locked_for_user) and standard lock information for each item. |
| `per_page` | integer | No | The number of items to return per page. If not specified, Canvas API default applies (typically 10). |
| `course_id` | string | Yes | The unique identifier of the Canvas course containing the module. |
| `module_id` | string | Yes | The unique identifier of the module whose items to retrieve. |
| `student_id` | string | No | Returns module completion information for the student with this id. Allows viewing progress for a specific student. |
| `search_term` | string | No | The partial title of the items to match and return. Filters results to items whose titles contain this search term. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Modules

**Slug:** `CANVAS_LIST_MODULES`

Tool to retrieve a paginated list of modules in a Canvas course. Use when you need to see all modules in a course, including their structure, items, and completion requirements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `include` | array | No | Additional data to include with each module. Options: 'items' returns module items inline if possible (Canvas may omit items if too numerous), 'content_details' requires 'items' and returns additional details specific to content items including standard lock information. |
| `per_page` | integer | No | The number of modules to return per page. If omitted, uses Canvas default pagination. |
| `course_id` | string | Yes | The unique identifier of the Canvas course to retrieve modules from. This is REQUIRED. |
| `student_id` | string | No | Returns module completion information for the student with this id. Use this to see completion status for a specific student. |
| `search_term` | string | No | The partial name of the modules (and module items, if 'items' is specified with include) to match and return. Use this to filter modules by name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List My Admin Roles

**Slug:** `CANVAS_LIST_MY_ADMIN_ROLES`

Retrieves a paginated list of the current user's admin roles in a Canvas account. Use when you need to check what administrative permissions the authenticated user has within a specific account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The ID of the account to list admin roles for. Use '1' for the root account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List notification preference categories

**Slug:** `CANVAS_LIST_NOTIFICATION_PREFERENCE_CATEGORIES`

Fetches all notification preference categories for a specific communication channel. Use this to discover which notification categories are available for configuring user notification preferences.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The ID of the user. Use 'self' for the current user, a numeric user ID, or a SIS User ID prefixed with 'sis_user_id:'. |
| `communication_channel_id` | string | Yes | The ID of the communication channel for which to fetch notification preference categories. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List notification preferences

**Slug:** `CANVAS_LIST_NOTIFICATION_PREFERENCES`

Tool to fetch all notification preferences for a given communication channel. Use when you need to retrieve how a user has configured notification delivery for a specific channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | Yes | The communication channel type (e.g., 'email', 'sms', 'push'). |
| `address` | string | Yes | The channel address corresponding to the type. For email type, this is an email address (e.g., 'alice@rolai.com'). For sms type, this is a phone number. |
| `user_id` | string | Yes | The ID of the user whose notification preferences are being retrieved. Use 'self' for the current user, a numeric user ID, or a SIS User ID prefixed with 'sis_user_id:'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Observees

**Slug:** `CANVAS_LIST_OBSERVEES`

Retrieves a paginated list of observees for a Canvas user. All users can list their own observees; administrators can list observees for other users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Additional information to include in the response. Supported value: 'avatar_url' to include the observee's avatar URL. |
| `user_id` | string | Yes | The unique identifier of the user for whom to retrieve observees. Use 'self' to list observees for the authenticated user. Administrators can specify any user ID to list observees for other users. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List observers for a user

**Slug:** `CANVAS_LIST_OBSERVERS`

Retrieves a paginated list of observers linked to a given user. All users can list their own observers using user_id='self'. Administrators can list other users' observers by providing the specific user_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | Optional list of additional data to include. Currently supports 'avatar_url' to include the observer's avatar URL. |
| `user_id` | string | Yes | The ID of the user whose observers to list. Use 'self' to list observers of the current authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List opened poll sessions

**Slug:** `CANVAS_LIST_OPENED_POLL_SESSIONS`

Tool to retrieve a paginated list of all opened poll sessions available to the current user. Use when you need to see which poll sessions are currently open.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List pages for a course

**Slug:** `CANVAS_LIST_PAGES_FOR_COURSE`

Retrieves a list of wiki pages associated with a specific, existing course in Canvas. Supports pagination via `page` and `per_page` query parameters for courses with many pages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | The field to sort the list of pages by. Valid values are: 'title', 'created_at', or 'updated_at'. |
| `order` | string | No | The order in which to sort the results. Valid values are: 'asc' for ascending order or 'desc' for descending order. Defaults to 'asc' if not specified. |
| `include` | array | No | Optional array of additional data to include in the response. Currently supports 'body' to include the full HTML content of each page. For example: ['body'] |
| `course_id` | integer | Yes | The unique identifier for the course for which to list pages. |
| `published` | boolean | No | Filter pages by published status. Set to true to include only published pages, false to exclude published pages, or omit to show all pages regardless of published status. |
| `search_term` | string | No | The partial title of the pages to match and return. Use this to filter pages by searching for text in their titles. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List pages for a group

**Slug:** `CANVAS_LIST_PAGES_FOR_GROUP`

Tool to retrieve a paginated list of wiki pages associated with a Canvas group. Use when you need to list pages for a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("title" | "created_at" | "updated_at") | No | Allowed sort field values for listing pages. |
| `order` | string ("asc" | "desc") | No | Allowed sort order values. |
| `include` | array | No | Optionally include the page body with each Page. If this is a block_editor page, returns the block_editor_attributes. |
| `group_id` | string | Yes | The unique identifier for the group for which to list pages. |
| `published` | boolean | No | If true, include only published pages. If false, exclude published pages. If not present, do not filter on published status. |
| `search_term` | string | No | The partial title of the pages to match and return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List planner items for a user

**Slug:** `CANVAS_LIST_PLANNER_ITEMS`

List a user's cross-course Planner items (assignments, discussions, quizzes, etc.) within a date range, including Planner override/completion state. Use this to retrieve items from the Canvas dashboard/to-do planner view.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | string | No | Page bookmark token from a previous response's next_page field. Canvas planner API uses bookmark-based pagination with opaque tokens. Do not pass arbitrary values - only use tokens returned in previous responses. If omitted, returns the first page. |
| `filter` | string | No | Filter to apply to planner items. Use 'new_activity' to return only items with new or unread activity, or 'incomplete_items' to exclude completed items. |
| `user_id` | string | No | User ID to retrieve planner items for. If omitted or set to 'self', retrieves items for the current authenticated user. Use an integer user ID to retrieve items for a specific user. |
| `end_date` | string | No | Only return items with a due date on or before this date. Format: 'yyyy-mm-dd' or ISO 8601 datetime string (e.g., '2024-12-31' or '2024-12-31T23:59:59Z'). Strongly recommended for date-window queries. |
| `per_page` | integer | No | Number of items to return per page for pagination. |
| `start_date` | string | No | Only return items with a due date on or after this date. Format: 'yyyy-mm-dd' or ISO 8601 datetime string (e.g., '2024-01-01' or '2024-01-01T00:00:00Z'). Strongly recommended for date-window queries. |
| `context_codes` | array | No | Array of context codes to filter by (e.g., 'course_42', 'group_123'). If omitted, defaults to all contexts visible to the user. |
| `observed_user_id` | integer | No | For observers: retrieve planner items for an observed student. Requires context_codes parameter to be specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List planner notes

**Slug:** `CANVAS_LIST_PLANNER_NOTES`

Retrieve the paginated list of planner notes for the current authenticated user. Use to fetch personal to-do items and reminders from the Canvas planner.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `end_date` | string | No | Only return notes with todo dates before the end_date (inclusive). Format: 'yyyy-mm-dd' or ISO 8601 'YYYY-MM-DDTHH:MM:SSZ'. If end_date and start_date are both specified and equivalent, only notes with todo dates on that day are returned. |
| `per_page` | integer | No | Number of planner notes to return per page for pagination. |
| `start_date` | string | No | Only return notes with todo dates since the start_date (inclusive). Format: 'yyyy-mm-dd' or ISO 8601 'YYYY-MM-DDTHH:MM:SSZ'. |
| `context_codes` | array | No | List of context codes of courses whose notes you want to see. Format: context_type + '_' + context_id (e.g., 'course_42', 'user_1'). If not specified, defaults to all contexts that the user belongs to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Planner Overrides

**Slug:** `CANVAS_LIST_PLANNER_OVERRIDES`

Retrieves planner overrides for the currently authenticated user. Planner overrides allow users to mark plannable items as complete or dismissed in the Canvas planner.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List poll choices in a poll

**Slug:** `CANVAS_LIST_POLL_CHOICES_IN_A_POLL`

Returns the paginated list of poll choices in a poll. Use when you need to retrieve all available choices for a specific poll.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `poll_id` | string | Yes | The unique identifier of the poll to retrieve choices from. |
| `per_page` | integer | No | The number of poll choices to return per page. If not specified, Canvas API default will be used. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List polls for current user

**Slug:** `CANVAS_LIST_POLLS`

Retrieves the paginated list of polls for the current authenticated user. Use when you need to view all polls created by or accessible to the user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | The number of polls to return per page. Must be a positive integer. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List poll sessions for a poll

**Slug:** `CANVAS_LIST_POLL_SESSIONS_FOR_POLL`

Tool to retrieve the paginated list of poll sessions for a specific poll. Use when you need to see all sessions associated with a particular poll.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `poll_id` | string | Yes | The unique identifier of the poll to retrieve sessions for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List notification preferences

**Slug:** `CANVAS_LIST_PREFERENCES`

Fetches all notification preferences for a given communication channel. Use when you need to see all notification settings for a specific user's communication channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The ID of the user whose notification preferences are being listed. Use 'self' for the current user, a numeric user ID, or a SIS User ID prefixed with 'sis_user_id:'. |
| `communication_channel_id` | string | Yes | The ID of the communication channel for which to fetch notification preferences. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List questions in a quiz

**Slug:** `CANVAS_LIST_QUESTIONS_IN_QUIZ`

Returns the paginated list of QuizQuestions in this quiz. Use when you need to retrieve all questions for a quiz, or questions from a specific submission attempt.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The page number for paginated results, starting from 1. If not specified, the first page is returned. |
| `quiz_id` | string | Yes | The unique identifier of the quiz to retrieve questions from. |
| `per_page` | integer | No | The number of questions to return per page. If not specified, Canvas default will be used. |
| `course_id` | string | Yes | The unique identifier of the course containing the quiz. |
| `quiz_submission_id` | integer | No | If specified, returns the questions that were presented for that submission. Useful if the quiz has been modified after the submission was created. NOTE: Must specify quiz_submission_attempt as well. |
| `quiz_submission_attempt` | integer | No | The attempt of the submission you want the questions for. Required if quiz_submission_id is specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Quizzes in Course

**Slug:** `CANVAS_LIST_QUIZZES_IN_COURSE`

Retrieves a paginated list of quizzes for a specified, valid Canvas course, optionally filtering by a search term in the quiz title.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The page number for paginated results, starting from 1. If not specified, the first page is returned. |
| `per_page` | integer | No | The number of quizzes to return per page for paginated results. If not specified, a default number (e.g., 10) set by Canvas will be used. |
| `course_id` | string | Yes | The unique identifier of the course from which to list quizzes. |
| `search_term` | string | No | A partial title to filter quizzes. Only quizzes whose titles contain this term will be returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List received content shares

**Slug:** `CANVAS_LIST_RECEIVED_CONTENT_SHARES`

Retrieves content shares received by the specified user from other users or courses within Canvas. Use 'self' as user_id to retrieve your own received shares.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `user_id` | string | Yes | The unique identifier of the user whose received content shares are to be retrieved. This can be the numeric Canvas user ID or a SIS ID prefixed with 'sis_user_id:'. Use 'self' to represent the currently authenticated user. |
| `per_page` | integer | No | The number of content shares to return per page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Recent History for a User

**Slug:** `CANVAS_LIST_RECENT_HISTORY_FOR_A_USER`

Return a paginated list of the user's recent browsing history in Canvas. History entries are returned in descending order, newest to oldest. Use to track recently visited assignments, pages, discussions, and other Canvas items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user to retrieve history for. Use 'self' to retrieve history for the currently authenticated user, an integer user ID for a specific user (requires observer or admin permissions), or '+self+' as an alternative to 'self'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List revisions for a group page

**Slug:** `CANVAS_LIST_REVISIONS_FOR_GROUP_PAGE`

Tool to retrieve a paginated list of revisions for a specific page in a Canvas group. Use when you need to view the history of changes made to a group page. Callers must have update rights on the page to see its revision history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the Canvas group. |
| `url_or_id` | string | Yes | The URL (e.g., 'test-page-for-revisions') or the numeric ID of the page. If a page URL might be identical to another page's numeric ID, prefix the ID with 'page_id:' (e.g., 'page_id:5678'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Roles

**Slug:** `CANVAS_LIST_ROLES`

Retrieves all available roles in a Canvas account. Use when verifying enrollment roles or mapping user capabilities.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | array | No | Filters results by role state. Can include 'active', 'inactive', or both. Defaults to active roles only if not specified. |
| `account_id` | string | Yes | The identifier of the account for which to retrieve roles. |
| `show_inherited` | boolean | No | When set to true, includes all roles inherited from parent accounts. Defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Section Enrollments

**Slug:** `CANVAS_LIST_SECTION_ENROLLMENTS`

Tool to retrieve a paginated list of enrollments for a specific section. Use when you need to query section enrollments with filters like type, state, or role.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `role` | array | No | Filter by enrollment roles. Accepts course-level roles created via Add Role API and base enrollment types. Overrides type parameter if provided. |
| `type` | array | No | Filter by enrollment type. Returns all types if omitted. Ignored if role parameter is provided. |
| `state` | array | No | Filter by enrollment state. Defaults to active and invited if omitted. Some synthetic states are only supported when querying user enrollments. |
| `include` | array | No | Array of additional information to include on enrollment or user records. 'avatar_url' and 'group_ids' are returned on the user record. 'current_points' includes current_points and unposted_current_points in grades hash for student enrollments. |
| `user_id` | string | No | Filter by user_id. Only valid for course or section enrollment queries. If set to current user's id, determines if user has any enrollments independent of roster view permissions. |
| `per_page` | integer | No | Number of enrollments to return per page (max 100). |
| `section_id` | string | Yes | The ID of the section to list enrollments for. |
| `sis_user_id` | array | No | Returns only enrollments for specified SIS user ID(s). May pass array or string. |
| `sis_course_id` | array | No | Returns only enrollments matching specified SIS course ID(s). May pass array or string. |
| `sis_account_id` | array | No | Returns only enrollments for specified SIS account ID(s). Does not look into sub_accounts. May pass array or string. |
| `sis_section_id` | array | No | Returns only section enrollments matching specified SIS section ID(s). May pass array or string. |
| `grading_period_id` | integer | No | Return grades for the given grading_period. If not specified, returned grades will be for the whole course. |
| `created_for_sis_id` | boolean | No | If sis_user_id is present and created_for_sis_id is true, returns only enrollments for specified SIS ID(s). When user has two sis_id's, this limits enrollments to those created from sis_import with that sis_user_id. |
| `enrollment_term_id` | string | No | Returns only enrollments for specified enrollment term. Only applies to user enrollments path. May pass enrollment term ID or SIS id prepended with 'sis_term_id:'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List sent content shares

**Slug:** `CANVAS_LIST_SENT_CONTENT_SHARES`

Retrieves content shares sent by the specified user to other users or courses within Canvas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user whose sent content shares are to be retrieved. This can be the numeric Canvas user ID or a SIS ID prefixed with 'sis_user_id:'. Use 'self' to represent the currently authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Students

**Slug:** `CANVAS_LIST_STUDENTS`

Tool to retrieve the paginated list of students enrolled in a Canvas course. Use when you need to get student information for a specific course. DEPRECATED: The Canvas API recommends using the course users endpoint with enrollment_type='student' instead.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. |
| `per_page` | integer | No | Number of students to return per page (max 100). Higher values fetch more data in a single request. |
| `course_id` | string | Yes | The unique identifier for the Canvas course from which to list students. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Subgroups

**Slug:** `CANVAS_LIST_SUBGROUPS`

Retrieves a paginated list of immediate outcome subgroups for a specified outcome group. Use when you need to fetch the child outcome groups within an account's outcome group hierarchy.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the outcome group whose subgroups will be listed. |
| `account_id` | string | Yes | The unique identifier of the account that owns the outcome group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List submissions

**Slug:** `CANVAS_LIST_SUBMISSIONS`

Fetches gradebook history submissions for a specific course, assignment, grader, and date from Canvas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | The specific date for which to retrieve submission history, in 'YYYY-MM-DD' format. This refers to the date when grading events occurred. Use the gradebook history days endpoint to find dates with available history. |
| `course_id` | integer | Yes | The unique identifier for the course. You can obtain course IDs from the list courses endpoint. |
| `grader_id` | integer | Yes | The unique identifier for the grader (teacher/instructor) whose grading history you want to view. You can obtain grader IDs from the list course users endpoint. |
| `assignment_id` | integer | Yes | The unique identifier for the assignment. You can obtain assignment IDs from the list assignments endpoint or from the gradebook history days endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List submissions for multiple assignments

**Slug:** `CANVAS_LIST_SUBMISSIONSFOR_MULTIPLE_ASSIGNMENTS`

Retrieves submissions from a Canvas course for specified assignments and/or students; the course must be accessible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The unique identifier for the Canvas course from which to retrieve submissions. |
| `student_ids` | array | No | List of student identifiers to filter submissions. Accepts Canvas user IDs, SIS user IDs (e.g., 'sis_user_id:S123'), or the special keyword 'all'. If omitted, submissions for the current authenticated user are returned. Students can only retrieve their own submissions. Observers can only retrieve submissions for students they are associated with. The 'all' keyword retrieves submissions for all students in the specified course or section. |
| `assignment_ids` | array | No | List of assignment identifiers (Canvas assignment IDs) for which to retrieve submissions. If this list is omitted or empty, submissions for all assignments in the course will be returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List submissions for multiple assignments in section

**Slug:** `CANVAS_LIST_SUBMISSIONS_FOR_MULTIPLE_ASSIGNMENTS_SECTIONS`

Tool to retrieve submissions from a Canvas section for specified assignments and/or students. Use when you need section-level submission data across multiple assignments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order` | string ("id" | "graded_at") | No | Sort order for submissions. Defaults to 'id'. Does not affect grouped mode results. |
| `grouped` | boolean | No | If set to true, the response will be grouped by student (user_id), with each entry containing a user_id, submissions array, and optionally total_scores. If false or omitted, the response is a flat array of submissions. |
| `include` | array | No | Additional associations to include in the response. Note: 'total_scores' requires the 'grouped' parameter to be true. |
| `section_id` | string | Yes | The unique identifier for the Canvas section from which to retrieve submissions. |
| `post_to_sis` | boolean | No | If set to true, only include submissions for assignments that have post_to_sis enabled and user enrollments added through SIS. |
| `student_ids` | array | No | List of student identifiers to filter submissions. Accepts Canvas user IDs, SIS user IDs (e.g., 'sis_user_id:S123'), or the special keyword 'all'. If omitted, submissions for the current authenticated user are returned. Students can only retrieve their own submissions. Observers can only retrieve submissions for students they are associated with. The 'all' keyword retrieves submissions for all students in the specified section. |
| `graded_since` | string | No | Filter to only include submissions graded after this date/time. Must be ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ). Excludes ungraded submissions. |
| `assignment_ids` | array | No | List of assignment identifiers (Canvas assignment IDs) for which to retrieve submissions. If this list is omitted or empty, submissions for all assignments in the section will be returned. |
| `workflow_state` | string ("submitted" | "unsubmitted" | "graded" | "pending_review") | No | Filter submissions by their current workflow state. |
| `order_direction` | string ("ascending" | "descending") | No | Sort direction for submissions. Defaults to 'ascending'. Does not affect grouped mode results. |
| `submitted_since` | string | No | Filter to only include submissions submitted after this date/time. Must be ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ). Excludes unsubmitted submissions. |
| `enrollment_state` | string ("active" | "concluded") | No | Filter by enrollment state. If omitted, includes all enrollments except deleted ones. |
| `grading_period_id` | integer | No | Filter submissions to those within a specific grading period. Requires grading periods to exist on the account. |
| `state_based_on_date` | boolean | No | When true (default), uses effective enrollment state. When false, uses workflow_state. Only applies when enrollment_state is also specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List the activity stream

**Slug:** `CANVAS_LIST_THE_ACTIVITY_STREAM`

Tool to retrieve the current user's global activity stream, paginated. Use when you need to see recent activities, notifications, or updates across all courses and groups the user is enrolled in.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `per_page` | integer | No | Number of activity items to return per page. If omitted, Canvas default (10) is used. |
| `only_active_courses` | boolean | No | If true, will only return objects for courses the user is actively participating in. If false or omitted, returns activity from all courses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List the current user's TODO items

**Slug:** `CANVAS_LIST_TODO_ITEMS`

Retrieves a paginated list of the current user's todo items in Canvas. Use when you need to see pending tasks that require action, such as assignments needing submission or grading.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `include` | array | No | Optional array of additional data to include. Use ["ungraded_quizzes"] to include ungraded quizzes (such as practice quizzes and surveys) in the list. These will be returned under a "quiz" key instead of an "assignment" key in response elements. |
| `per_page` | integer | No | Number of todo items to return per page for pagination. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Topic Entries

**Slug:** `CANVAS_LIST_TOPIC_ENTRIES`

Tool to retrieve paginated top-level entries in a group discussion topic. Use when needing to list discussion entries in a group. May respond with 403 Forbidden if the topic requires an initial post and the user has not posted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve (pagination). |
| `group_id` | integer | Yes | The unique identifier of the group containing the discussion topic. |
| `per_page` | integer | No | Number of entries to return per page (pagination). |
| `topic_id` | integer | Yes | The unique identifier of the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List uncollated submission versions

**Slug:** `CANVAS_LIST_UNCOLLATED_SUBMISSION_VERSIONS`

Retrieves a feed of uncollated submission versions from the Gradebook history for a course; any provided `assignment_id` must be valid for the course, and any `user_id` must be for a user enrolled in the course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | No | ID of the user (student) to filter submission versions. |
| `ascending` | boolean | No | If true, returns submission versions in ascending order by date (oldest first); defaults to descending (newest first). |
| `course_id` | integer | Yes | ID of an existing course to fetch submission versions from. |
| `assignment_id` | integer | No | ID of the assignment to filter submission versions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Upcoming Assignments Calendar Events

**Slug:** `CANVAS_LIST_UPCOMING_ASSIGNMENTS_CALENDAR_EVENTS`

Tool to retrieve a paginated list of the current user's upcoming events and assignments. Use when you need to see what's coming up on the user's calendar, including both calendar events and assignment due dates.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List user content exports

**Slug:** `CANVAS_LIST_USER_CONTENT_EXPORTS`

Tool to retrieve a paginated list of past and pending content export jobs for a user. Use when you need to view export history or check export status for a user. Exports are returned newest first.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier for the user. Can be a numeric ID or 'self' for the current user. Returns 404 if the user does not exist or the user lacks permission to access it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List User Enrollments

**Slug:** `CANVAS_LIST_USER_ENROLLMENTS`

Tool to retrieve a paginated list of all enrollments for a specific user. Use when you need to query a user's enrollments across courses, with filters like type, state, or term.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `role` | array | No | Filter by custom or base course-level enrollment roles. Overrides type parameter if provided. |
| `type` | array | No | Filter by enrollment type. Returns all types if omitted. Ignored if role parameter is provided. |
| `state` | array | No | Filter by enrollment state. Defaults to active and invited if omitted. Synthetic states like current_and_invited are supported for user enrollments. |
| `include` | array | No | Include additional data in the response (e.g., avatar_url, group_ids). |
| `user_id` | string | Yes | The ID of the user to retrieve enrollments for. Use 'self' for the current user. |
| `per_page` | integer | No | Number of enrollments to return per page (max 100). |
| `sis_user_id` | array | No | Filter by SIS user IDs. |
| `sis_course_id` | array | No | Filter by SIS course IDs. |
| `sis_account_id` | array | No | Filter by SIS account IDs. Does not look into sub-accounts. |
| `sis_section_id` | array | No | Filter section enrollments by SIS section IDs. |
| `grading_period_id` | integer | No | Returns grades for specified grading period; otherwise returns full-course grades. |
| `created_for_sis_id` | array | No | When combined with sis_user_id, restricts results to enrollments created from specified SIS import. |
| `enrollment_term_id` | string | No | Returns enrollments for specified term. Accepts enrollment term ID (e.g. '789') or SIS ID with 'sis_term_id:' prefix (e.g. 'sis_term_id:ABC123'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List User Files

**Slug:** `CANVAS_LIST_USER_FILES`

Retrieves the paginated list of files for a specific user. Use when you need to access or enumerate files uploaded by or accessible to a user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `only` | array | No | Array of information to restrict to. Overrides include[]. 'names': only returns file name information. |
| `sort` | string ("name" | "size" | "created_at" | "updated_at" | "content_type" | "user") | No | Sort field options for file listing. |
| `order` | string ("asc" | "desc") | No | Sort order options. |
| `include` | array | No | Array of additional information to include. 'user': the user who uploaded the file or last edited its content. 'usage_rights': copyright and license information for the file. |
| `user_id` | string | Yes | The unique Canvas identifier for the user whose files are to be listed. Use 'self' for the current user. |
| `search_term` | string | No | The partial name of the files to match and return. |
| `content_types` | array | No | Filter results by content-type. You can specify type/subtype pairs (e.g., 'image/jpeg'), or simply types (e.g., 'image', which will match 'image/gif', 'image/jpeg', etc.). |
| `exclude_content_types` | array | No | Exclude given content-types from your results. You can specify type/subtype pairs (e.g., 'image/jpeg'), or simply types (e.g., 'image', which will match 'image/gif', 'image/jpeg', etc.). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List user logins

**Slug:** `CANVAS_LIST_USER_LOGINS`

Retrieves a paginated list of user logins for the specified Canvas account. Use when you need to see all login credentials associated with an account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The unique identifier of the Canvas account for which to retrieve user logins. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List User Logins

**Slug:** `CANVAS_LIST_USER_LOGINS2`

Tool to retrieve a paginated list of logins for a specific Canvas user. Use when you need to see all login credentials associated with a particular user ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). |
| `user_id` | string | Yes | The unique identifier of the Canvas user for which to retrieve logins. Can be a numeric user ID or 'self' for the authenticated user. |
| `per_page` | integer | No | Number of logins to return per page (max 100). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List users in course

**Slug:** `CANVAS_LIST_USERS_IN_COURSE`

Tool to return the paginated list of users in a Canvas course. Use when you need to retrieve users enrolled in a specific course with optional enrollment details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. |
| `sort` | string ("username" | "last_login" | "email" | "sis_id") | No | When set, sort the results of the search based on the given field. |
| `include` | array | No | Optionally include additional data with each user: 'enrollments' (includes current and invited enrollments with grades if permitted), 'locked' (enrollment locked status), 'avatar_url' (user avatar), 'bio' (user bio), 'test_student' (course's Test Student if present), 'custom_links' (plugin-supplied custom links), 'current_grading_period_scores' (scores for current grading period), 'uuid' (user uuid). |
| `user_id` | string | No | If this parameter is given and it corresponds to a user in the course, the page parameter will be ignored and the page containing the specified user will be returned instead. |
| `per_page` | integer | No | Number of users to return per page (max 100). |
| `user_ids` | array | No | If included, the course users set will only include users with IDs specified by the param. Note: this will not work in conjunction with the 'user_id' argument but multiple user_ids can be included. |
| `course_id` | string | Yes | The unique identifier for the Canvas course from which to list users. |
| `search_term` | string | No | The partial name or full ID of the users to match and return in the results list. |
| `section_ids` | array | No | When set, only return users who are enrolled in the given section(s). |
| `enrollment_role` | string | No | Deprecated. When set, only return users enrolled with the specified course-level role. This can be a role created with the Add Role API or a base role type of 'StudentEnrollment', 'TeacherEnrollment', 'TaEnrollment', 'ObserverEnrollment', or 'DesignerEnrollment'. |
| `enrollment_type` | array | No | When set, only return users where the user is enrolled as this type. 'student_view' implies include[]=test_student. This argument is ignored if enrollment_role is given. |
| `enrollment_state` | array | No | When set, only return users where the enrollment workflow state is of one of the given types. 'active' and 'invited' enrollments are returned by default. |
| `enrollment_role_id` | integer | No | When set, only return courses where the user is enrolled with the specified course-level role. This can be a role created with the Add Role API or a built_in role id with type 'StudentEnrollment', 'TeacherEnrollment', 'TaEnrollment', 'ObserverEnrollment', or 'DesignerEnrollment'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List users in group category

**Slug:** `CANVAS_LIST_USERS_IN_GROUP_CATEGORY`

Retrieve a paginated list of users in a group category. Use when you need to see all users within a specific group category or filter for unassigned users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `unassigned` | boolean | No | Set this value to true if you wish only to search unassigned users in the group category. |
| `search_term` | string | No | The partial name or full ID of the users to match and return in the results list. Must be at least 3 characters. |
| `group_category_id` | string | Yes | The unique identifier of the group category from which to retrieve the list of users. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List your groups

**Slug:** `CANVAS_LIST_YOUR_GROUPS`

Returns a paginated list of active groups for the current user. Use this to retrieve all groups the authenticated user belongs to, optionally filtered by context type (Account or Course).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (1-indexed). Use to get results beyond the first page. If omitted, returns the first page. |
| `include` | array | No | Include additional data in the response. Use 'tabs' to include the list of tabs configured for each group. |
| `per_page` | integer | No | Number of groups to return per page. If omitted, Canvas default is used. |
| `context_type` | string ("Account" | "Course") | No | Context type filter for groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark all conversations as read

**Slug:** `CANVAS_MARK_ALL_CONVERSATIONS_AS_READ`

Tool to mark all conversations as read for the current user. Use when you need to mark all conversation messages in the inbox as read.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark all entries as read

**Slug:** `CANVAS_MARK_ALL_ENTRIES_AS_READ`

Tool to mark the discussion topic and all its entries as read. Use when you need to mark all entries in a discussion topic as read for the current user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `topic_id` | string | Yes | The unique identifier for the discussion topic whose entries should be marked as read. |
| `course_id` | string | Yes | The unique identifier for the course containing the discussion topic. |
| `forced_read_state` | boolean | No | A boolean value to set all of the entries' forced_read_state. No change is made if this argument is not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark all group discussion entries as read

**Slug:** `CANVAS_MARK_ALL_ENTRIES_AS_READ2`

Tool to mark the discussion topic and all its entries as read in a group. Use when you need to mark all entries in a group discussion topic as read for the current user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier for the discussion topic whose entries should be marked as read. |
| `forced_read_state` | boolean | No | A boolean value to set all of the entries' forced_read_state. No change is made if this argument is not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark all group discussion entries as unread

**Slug:** `CANVAS_MARK_ALL_ENTRIES_AS_UNREAD2`

Tool to mark the discussion topic and all its entries as unread for a group. Use when you need to flag an entire group discussion and all its replies as unread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier for the discussion topic to mark as unread. |
| `forced_read_state` | boolean | No | A boolean value to set all of the entries' forced_read_state. No change is made if this argument is not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark all discussion topics as read

**Slug:** `CANVAS_MARK_ALL_TOPIC_AS_READ`

Mark the initial text of all discussion topics as read in a course. Use when you need to mark all discussion topics in a course as read for the current user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier for the course containing the discussion topics. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark all group discussion topics as read

**Slug:** `CANVAS_MARK_ALL_TOPIC_AS_READ2`

Mark the initial text of all discussion topics as read in a group. Use when you need to mark all discussion topics in a group as read for the current user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the group containing the discussion topics. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark bulk submissions as read

**Slug:** `CANVAS_MARK_BULK_SUBMISSIONS_AS_READ`

Marks multiple submissions as read in a single operation. Use when you need to mark several submissions as read at once instead of marking them individually.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course containing the submissions. |
| `submission_ids` | array | Yes | Array of submission IDs to mark as read. Each submission in the array will be marked as read. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark bulk submissions as read (section)

**Slug:** `CANVAS_MARK_BULK_SUBMISSIONS_AS_READ2`

Marks multiple submissions as read for a specific section. Use when you need to mark several submissions as read at once for a section instead of marking them individually.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `section_id` | string | Yes | The unique identifier of the section containing the submissions. |
| `submission_ids` | array | Yes | Array of submission IDs to mark as read. Each submission in the array will be marked as read. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark document annotations as read

**Slug:** `CANVAS_MARK_DOCUMENT_ANNOTATIONS_AS_READ`

Marks document annotations on a submitted assignment as read by the student. Use when a student has viewed feedback annotations on their submission. Only the student who owns the submission can mark annotations as read.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user (student) whose submission annotations should be marked as read. Only the student who owns the submission can use this endpoint. |
| `course_id` | string | Yes | The unique identifier of the course containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment containing the submission. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark document annotations as read (section)

**Slug:** `CANVAS_MARK_DOCUMENT_ANNOTATIONS_AS_READ2`

Tool to mark annotations on a submitted document as read by the student. Use when a student needs to acknowledge they have viewed feedback annotations on their submitted document. Note: Document annotations are automatically marked as read when viewed in Canvas web.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | Unique identifier for the user whose submission's document annotations should be marked as read. Only the student who owns the submission can mark annotations as read. |
| `section_id` | string | Yes | Unique identifier for the section. |
| `assignment_id` | string | Yes | Unique identifier for the assignment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark group discussion entry as read

**Slug:** `CANVAS_MARK_ENTRY_AS_READ_GROUPS`

Tool to mark a discussion entry as read in a group context. Use when you need to change the read status of a specific discussion entry to read within a group discussion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entry_id` | string | Yes | The unique identifier of the discussion entry to mark as read. |
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic containing the entry. |
| `forced_read_state` | boolean | No | A boolean value to set the entry's forced_read_state. No change is made if this argument is not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark group discussion entry as unread

**Slug:** `CANVAS_MARK_GROUP_ENTRY_AS_UNREAD`

Tool to mark a group discussion entry as unread. Use when you need to change the read status of a specific discussion entry in a group back to unread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entry_id` | string | Yes | The unique identifier of the discussion entry to mark as unread. |
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic containing the entry. |
| `forced_read_state` | boolean | No | A boolean value to set the entry's forced_read_state. No change is made if this argument is not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark module item as read

**Slug:** `CANVAS_MARK_MODULE_ITEM_READ`

Tool to mark a module item as read, fulfilling the 'must view' requirement. Use when accessing external content directly without using the html_url redirect that normally fulfills view requirements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the module item to mark as read. |
| `course_id` | string | Yes | The unique identifier of the course containing the module. |
| `module_id` | string | Yes | The unique identifier of the module containing the item. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark rubric assessments as read

**Slug:** `CANVAS_MARK_RUBRIC_ASSESSMENTS_AS_READ`

Tool to mark rubric comments/grading on a submission as read by the student. Use when a student needs to acknowledge they have viewed their rubric feedback. Note: Rubric assessments are automatically marked as read when viewed in Canvas web.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the student whose submission's rubric assessments should be marked as read. Only the student who owns the submission can mark it as read. |
| `course_id` | string | Yes | The unique identifier of the course containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment with the rubric assessment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark rubric assessments as read (sections)

**Slug:** `CANVAS_MARK_RUBRIC_ASSESSMENTS_AS_READ_SECTIONS`

Tool to mark rubric comments/grading on a submission as read by the student within a specific section. Use when a student needs to acknowledge they have viewed their rubric feedback. Only the student who owns the submission can use this endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the student whose submission's rubric assessments should be marked as read. Use 'self' to mark the current authenticated user's submission as read. |
| `section_id` | string | Yes | The unique identifier of the section containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment with the rubric assessment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark submission as read (sections)

**Slug:** `CANVAS_MARK_SUBMISSION_AS_READ_SECTIONS`

Marks a student's submission as read for a specific assignment within a section. Use when you need to mark a submission as read in the context of a section rather than a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user whose submission should be marked as read. |
| `section_id` | string | Yes | The unique identifier of the section containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment containing the submission. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark submission as unread

**Slug:** `CANVAS_MARK_SUBMISSION_AS_UNREAD`

Marks a student's submission as unread for a specific assignment. Use when you need to reset the read status of a submission to unread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user whose submission should be marked as unread. |
| `course_id` | string | Yes | The unique identifier of the course containing the assignment. |
| `assignment_id` | string | Yes | The unique identifier of the assignment containing the submission. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark submission comments as read

**Slug:** `CANVAS_MARK_SUBMISSION_COMMENTS_READ`

Tool to mark submission comments as read in Canvas via GraphQL. Use when tracking which comments have been viewed or when updating read status for instructor feedback.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `submissionId` | string | Yes | The ID of the submission that the comments belong to. This is a required field. |
| `submissionCommentIds` | array | Yes | Array of submission comment IDs to mark as read. This is a required field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark group discussion topic as read

**Slug:** `CANVAS_MARK_TOPIC_AS_READ_GROUPS`

Marks the initial text of a discussion topic as read for the current user in a group. Use when you need to flag a group discussion topic as read to indicate it has been reviewed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier for the discussion topic to mark as read. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark group discussion topic as unread

**Slug:** `CANVAS_MARK_TOPIC_AS_UNREAD_GROUPS`

Marks the initial text of a group discussion topic as unread for the current user. Use when you need to flag a group discussion topic as unread to track it for later review.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier for the discussion topic to mark as unread. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post assignment grades for sections

**Slug:** `CANVAS_POST_ASSIGNMENT_GRADES_FOR_SECTIONS`

Tool to post assignment grades for specific sections in Canvas. Use when you need to release grades to students in particular course sections.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `gradedOnly` | boolean | No | Whether to only post grades for graded submissions. If true, only submissions with grades will be posted; if false or omitted, all submissions will be posted. |
| `sectionIds` | array | Yes | List of section IDs to post grades for. Must contain at least one section ID. |
| `assignmentId` | string | Yes | The ID of the assignment to post grades for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post group discussion entry

**Slug:** `CANVAS_POST_GROUP_DISCUSSION_ENTRY`

Tool to create a new entry in a Canvas group discussion topic. Use when posting a message with optional attachment to a group discussion topic.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes | The body of the entry. Supports HTML formatting. |
| `group_id` | string | Yes | The unique identifier of the Canvas group. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic within the group. |
| `attachment` | string | No | A multipart/form-data form-field-style attachment. Attachments larger than 1 kilobyte are subject to quota restrictions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post group discussion reply

**Slug:** `CANVAS_POST_GROUP_DISCUSSION_REPLY`

Tool to post a reply to a discussion entry in a group. Use when you need to add a reply to an entry in a group discussion topic. May require that the user has posted in the topic.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | No | The body content of the reply to create. Supports HTML formatting. |
| `entry_id` | string | Yes | The unique identifier for the discussion entry to which the reply will be posted. |
| `group_id` | string | Yes | The unique identifier for the Canvas group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier for the discussion topic within the group. |
| `attachment` | string | No | A multipart/form-data form-field-style attachment. Attachments larger than 1 kilobyte are subject to quota restrictions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Preview processed HTML

**Slug:** `CANVAS_PREVIEW_PROCESSED_HTML`

Tool to preview HTML content processed for a Canvas course. Use when you need to see how HTML will be rendered in Canvas after sanitization and link processing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `html` | string | Yes | The HTML content to process and sanitize for this course. This can include course-relative links and image references that will be converted to absolute URLs. |
| `course_id` | string | Yes | The unique identifier for the Canvas course where the HTML content will be processed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Preview processed HTML for group

**Slug:** `CANVAS_PREVIEW_PROCESSED_HTML_FOR_GROUP`

Tool to preview HTML content processed for a specific Canvas group. Use when you need to see how HTML will be rendered after Canvas applies group-specific processing and security policies.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `html` | string | Yes | The HTML content to preview and process. Canvas will process this HTML according to group-specific settings and security policies. |
| `group_id` | string | Yes | Unique identifier of the Canvas group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Query progress

**Slug:** `CANVAS_QUERY_PROGRESS`

Tool to return completion and status information about an asynchronous job in Canvas LMS. Use when you need to check the status of a long-running operation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the Progress object to query. This is typically returned when initiating an asynchronous operation. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rate group discussion entry

**Slug:** `CANVAS_RATE_GROUP_DISCUSSION_ENTRY`

Tool to rate a discussion entry in a Canvas group. Use when you need to add or remove a rating (like/unlike) on a group discussion entry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rating` | string ("unrate" | "like") | Yes | A rating to set on this entry. Use 'like' (1) to rate positively or 'unrate' (0) to remove the rating. |
| `entry_id` | string | Yes | The unique identifier for the discussion entry to rate. |
| `group_id` | string | Yes | The unique identifier for the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier for the discussion topic containing the entry. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Redirect to Assignment Override for Section

**Slug:** `CANVAS_REDIRECT_TO_ASSIGNMENT_OVERRIDE_FOR_SECTION`

Tool to retrieve the assignment override for a specific section. Use when you need to fetch override details for a particular section's assignment. Returns 404 if no override exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `assignment_id` | string | Yes | Unique identifier for the assignment to retrieve the override for. |
| `course_section_id` | string | Yes | Unique identifier for the course section to retrieve the assignment override for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Redirect to Root Outcome Group for Context

**Slug:** `CANVAS_REDIRECT_TO_ROOT_OUTCOME_GROUP_FOR_CONTEXT`

Retrieves the root outcome group for a specified account context. Use when you need to access the top-level outcome group hierarchy for an account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The unique identifier of the account for which to retrieve the root outcome group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove content share

**Slug:** `CANVAS_REMOVE_CONTENT_SHARE`

Tool to remove a content share from your list. Use 'self' as the user_id to remove your own content shares. Note that this endpoint does not delete other users' copies of the content share.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the content share to remove. |
| `user_id` | string | Yes | The unique identifier of the user whose content share is to be removed. Use 'self' to represent the currently authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove course from favorites

**Slug:** `CANVAS_REMOVE_COURSE_FROM_FAVORITES`

Tool to remove a course from the current user's favorites list. Use when you need to unfavorite a course for the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the course to remove from favorites. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Course Nickname

**Slug:** `CANVAS_REMOVE_COURSE_NICKNAME`

Tool to remove the nickname for a specific course. Use when you need to clear a custom course name and revert to using the actual course name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course whose nickname should be removed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove feature flag for users

**Slug:** `CANVAS_REMOVE_FEATURE_FLAG_USERS`

Remove feature flag for a given User. The flag must be defined directly on the User. After removal, the user will inherit feature flags from a higher account if any exist.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `feature` | string | Yes | The name of the feature flag to remove (e.g., 'new_user_tutorial_on_off'). The flag must be defined directly on the specified user. |
| `user_id` | string | Yes | The unique identifier of the user from which to remove the feature flag. Use 'self' to refer to the current user. The flag must be defined directly on this user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove group from favorites

**Slug:** `CANVAS_REMOVE_GROUP_FROM_FAVORITES`

Tool to remove a group from the current user's favorites. Use when you need to unfavorite a group for the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the group to remove from favorites. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove usage rights from group files

**Slug:** `CANVAS_REMOVE_USAGE_RIGHTS_GROUPS`

Tool to remove copyright and license information from one or more files in a group. Use when you need to clear usage rights metadata from group files.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_ids` | array | Yes | List of file IDs to remove associated usage rights from. At least one file_id or folder_id must be provided. |
| `group_id` | string | Yes | The unique identifier of the group from which usage rights will be removed. |
| `folder_ids` | array | No | List of folder IDs. Usage rights will be removed from all files in these folders. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove usage rights from user files

**Slug:** `CANVAS_REMOVE_USAGE_RIGHTS_USERS`

Tool to remove copyright and license information from one or more files for a user. Use when you need to clear usage rights metadata from user files.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user from which usage rights will be removed. Use 'self' for the current user. |
| `file_ids` | array | Yes | List of file IDs to remove associated usage rights from. At least one file_id or folder_id must be provided. |
| `folder_ids` | array | No | List of folder IDs. Usage rights will be removed from all files in these folders. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reorder custom gradebook columns

**Slug:** `CANVAS_REORDER_CUSTOM_COLUMNS`

Reorders custom gradebook columns in a course. Use when you need to change the display order of custom columns in the gradebook.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order` | array | Yes | Array of custom column IDs in the desired order. The IDs should be arranged in the sequence you want them to appear in the gradebook, from left to right. |
| `course_id` | string | Yes | The unique identifier of the course containing the custom gradebook columns to reorder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reorder pinned topics for group

**Slug:** `CANVAS_REORDER_PINNED_TOPICS_FOR_GROUP`

Tool to reorder pinned discussion topics in a Canvas group. Use when you need to change the display order of pinned topics in a group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order` | array | Yes | List of pinned discussion topic IDs in the desired order. All pinned topics should be included. |
| `group_id` | string | Yes | The unique identifier of the group containing the pinned discussion topics to reorder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reply to discussion entry

**Slug:** `CANVAS_REPLY_TO_DISCUSSION_ENTRY`

Tool to reply to a discussion entry. Use when you need to send a message to a discussion entry with optional attachments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes | The body content of the reply to create. Supports HTML formatting. |
| `entry_id` | integer | Yes | The unique identifier for the discussion entry to which the reply will be posted. |
| `topic_id` | integer | Yes | The unique identifier for the discussion topic within the course. |
| `course_id` | integer | Yes | The unique identifier for the Canvas course containing the discussion topic. |
| `attachment_ids` | array | No | A list of file attachment IDs to include with the reply, if any. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reset Course Favorites

**Slug:** `CANVAS_RESET_COURSE_FAVORITES`

Tool to reset the current user's course favorites to the default automatically generated list of enrolled courses. Use when you need to restore default favorites.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reset group favorites

**Slug:** `CANVAS_RESET_GROUP_FAVORITES`

Tool to reset the current user's group favorites to the default automatically generated list of enrolled groups. Use when you need to clear custom group favorites and restore the default selection.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reset link verifier

**Slug:** `CANVAS_RESET_LINK_VERIFIER`

Resets the link verifier for a file. Any existing links using the previous hard-coded verifier parameter will no longer automatically grant access. Requires manage files and become other users permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the file whose link verifier should be reset. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Resolve Folder Path

**Slug:** `CANVAS_RESOLVE_FOLDER_PATH`

Resolves a folder path and returns the complete hierarchy. Given the full path to a folder, returns a list of all Folders in the path hierarchy starting at the root folder and ending at the requested folder. Use when you need to navigate or verify folder structure within a user's files.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | ID of the user whose folders to search. Use 'self' for the current authenticated user. |
| `full_path` | string | No | The full path to the folder, relative to the user's root folder (e.g., 'documents/assignments'). Do not include the root folder's name. If empty or omitted, returns only the root folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Resolve group folder path

**Slug:** `CANVAS_RESOLVE_GROUP_FOLDER_PATH`

Tool to retrieve folder hierarchy by resolving a path within a Canvas group. Use when you need to traverse a folder path or verify a folder exists at a specific location within a group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the Canvas group. This ID must correspond to an existing group. |
| `full_path` | string | No | The full path to the folder relative to the group root folder. If empty or not provided, returns the root folder alone. Do not include the root folder's name (e.g., 'group files'). Example: 'unfiled' or 'foo/bar/baz'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve All Quiz Reports

**Slug:** `CANVAS_RETRIEVE_ALL_QUIZ_REPORTS`

Retrieves a list of all available reports for a specified quiz. Use when you need to see what quiz reports exist or check their status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `quiz_id` | string | Yes | The ID of the quiz for which to retrieve all available reports. |
| `course_id` | string | Yes | The ID of the course containing the quiz. |
| `includes_all_versions` | boolean | No | Whether to retrieve reports that consider all the submissions or only the most recent. Defaults to false, ignored for item_analysis reports. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve assignment overridden dates for Classic Quizzes

**Slug:** `CANVAS_RETRIEVE_ASSIGNMENT_OVERRIDDEN_DATES_FOR_CLASSIC`

Retrieves the actual due-at, unlock-at, and lock-at dates for Classic Quizzes based on assignment overrides active for the current API user. Use this to get personalized quiz dates that reflect section overrides, group overrides, or individual student overrides.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `quiz_ids` | array | No | An array of quiz IDs to filter the results. If omitted, overrides for all Classic Quizzes available to the operating user will be returned. |
| `course_id` | string | Yes | The unique identifier of the Canvas course to retrieve assignment overrides from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve assignment overridden dates for New Quizzes

**Slug:** `CANVAS_RETRIEVE_ASSIGNMENT_OVERRIDDEN_DATES_FOR_NEW`

Retrieves the actual due-at, unlock-at, and lock-at dates for New Quizzes based on assignment overrides active for the current API user. Use this to get personalized quiz dates that reflect section overrides, group overrides, or individual student overrides.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `quiz_ids` | array | No | An array of quiz IDs to filter the results. If omitted, overrides for all quizzes available to the operating user will be returned. |
| `course_id` | string | Yes | The unique identifier of the Canvas course to retrieve assignment overrides from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve enrollment term

**Slug:** `CANVAS_RETRIEVE_ENROLLMENT_TERM`

Retrieves detailed information for a specific enrollment term within a given root account in Canvas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `term_id` | string | Yes | The unique identifier of the enrollment term to be retrieved from the specified account. |
| `account_id` | string | Yes | The unique identifier for the root account. Important: This must be the ID of a root-level account, not a sub-account, to avoid errors. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve Internal Setting

**Slug:** `CANVAS_RETRIEVE_INTERNAL_SETTING`

Tool to retrieve a single internal setting by ID or name from Canvas LMS using the GraphQL API. Use when you need to fetch configuration or system settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | The ID of the internal setting to retrieve. Either id or name must be provided. |
| `name` | string | No | The name of the internal setting to retrieve. Either id or name must be provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Revert Group Page to Revision

**Slug:** `CANVAS_REVERT_GROUP_PAGE_TO_REVISION`

Tool to revert a Canvas group page to a prior revision. Use when you need to restore a group page to a previous version, undoing recent changes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the Canvas group containing the page. |
| `url_or_id` | string | Yes | The URL (e.g., 'test-wiki-page-created-by-api') or the numeric ID of the page to revert. |
| `revision_id` | string | Yes | The revision number to revert to. This will restore the page content to this historical version. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Save enabled account calendars

**Slug:** `CANVAS_SAVE_ENABLED_ACCOUNT_CALENDARS`

Tool to save user preferences for enabled account calendars and mark the feature as seen. Use when updating which account calendars a user has enabled or marking that the user has viewed the account calendars feature.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `mark_feature_as_seen` | boolean | No | Flag to mark the account calendars feature as seen by the user. Set to true to indicate the user has viewed this feature. |
| `enabled_account_calendars` | array | No | An array of account IDs to remember in the calendars list of the user. If not provided or empty, no account calendars will be enabled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set course nickname

**Slug:** `CANVAS_SET_COURSE_NICKNAME`

Tool to set a nickname for a specific Canvas course. Use when you need to assign a custom name to a course that will appear in API outputs and the Canvas web interface.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `nickname` | string | Yes | The nickname to set for the course. Must be non-empty and shorter than 60 characters. This will replace the course's name in API call outputs and selected Canvas UI locations. |
| `course_id` | string | Yes | The unique identifier for the Canvas course to set the nickname for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set extensions for student quiz submissions

**Slug:** `CANVAS_SET_EXTENSIONS_FOR_STUDENT_QUIZ_SUBMISSIONS`

Tool to set extensions for student quiz submissions in Canvas. Use when you need to grant students additional attempts, extra time, or date extensions for a quiz. Returns success status (200 OK if successful, 403 Forbidden if not allowed to extend quizzes for this course).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `quiz_id` | string | Yes | The ID of the quiz to set extensions for. |
| `course_id` | string | Yes | The ID of the course to set quiz extensions for. |
| `quiz_extensions` | array | Yes | List of quiz extensions to apply. Each extension specifies a user_id and the extension parameters (extra_time, extra_attempts, etc.). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set feature flag for course

**Slug:** `CANVAS_SET_FEATURE_FLAG_COURSES`

Tool to set a feature flag for a given Course. Use when you need to enable or disable a Canvas feature at the course level. This call will fail if a parent account sets a feature flag for the same feature in any state other than "allowed".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | string ("off" | "allowed" | "on") | Yes | The state to set for the feature flag. 'off': The feature is not available for the course. 'allowed': (valid only on accounts) The feature is off in the account, but may be enabled in sub-accounts and courses. 'on': The feature is turned on unconditionally for the course. |
| `feature` | string | Yes | The name of the feature flag to set (e.g., 'epub_export', 'analytics_2', 'encrypted_sourcedids'). |
| `course_id` | string | Yes | The unique identifier of the course for which to set the feature flag. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set feature flag for user

**Slug:** `CANVAS_SET_FEATURE_FLAG_USERS`

Tool to set a feature flag for a given User. Use when you need to enable or disable a Canvas feature at the user level. This call will fail if a parent account sets a feature flag for the same feature in any state other than "allowed".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | string ("off" | "allowed" | "on") | Yes | The state to set for the feature flag. 'off': The feature is not available for the user. 'allowed': (valid only on accounts) The feature is off in the account, but may be enabled in sub-accounts and courses. 'on': The feature is turned on unconditionally for the user. |
| `feature` | string | Yes | The name of the feature flag to set (e.g., 'high_contrast', 'underline_all_links'). |
| `user_id` | string | Yes | The unique identifier of the user for which to set the feature flag. Use 'self' to refer to the currently authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set friendly description

**Slug:** `CANVAS_SET_FRIENDLY_DESCRIPTION`

Tool to set a friendly description for a learning outcome in Canvas using GraphQL. Use when you need to add or update a user-friendly explanation for an outcome in a specific course or account context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `context_id` | string | Yes | The ID of the context (e.g., course, account) where the outcome is used. |
| `outcome_id` | string | Yes | The ID of the learning outcome to set friendly description for. |
| `description` | string | Yes | The friendly description text to set for the outcome. This provides a user-friendly explanation of the learning outcome. |
| `context_type` | string ("Account" | "Course") | Yes | The type of context - either 'Course' or 'Account'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set module item completion

**Slug:** `CANVAS_SET_MODULE_ITEM_COMPLETION`

Tool to mark a module item as complete or incomplete in Canvas using the REST API. Use when tracking student progress or updating module item completion status. Uses PUT method to mark as done, DELETE method to mark as not done.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `done` | boolean | Yes | Whether to mark the item as done (true) or not done (false). |
| `item_id` | string | Yes | The ID of the module item to mark as complete or incomplete. |
| `course_id` | string | Yes | The ID of the course containing the module. |
| `module_id` | string | Yes | The ID of the module containing the item. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set override status

**Slug:** `CANVAS_SET_OVERRIDE_STATUS`

Tool to set an override status for a student's enrollment in Canvas. Use when applying or clearing a custom grade status for a student.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `enrollment_id` | string | Yes | The enrollment ID to set override status for. |
| `grading_period_id` | string | No | Optional grading period ID to limit the override to a specific grading period. |
| `custom_grade_status_id` | string | No | The custom grade status ID to apply. Set to null to clear any existing custom grade status. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set usage rights for group files

**Slug:** `CANVAS_SET_USAGE_RIGHTS_GROUPS`

Sets copyright and license information for one or more files in a Canvas group. Use when you need to specify intellectual property rights for group materials.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `publish` | boolean | No | Whether the file(s) or folder(s) should be published on save, provided that usage rights have been specified |
| `file_ids` | array | Yes | List of IDs of files to set usage rights for. At least one file_id or folder_id must be provided. |
| `group_id` | string | Yes | The unique Canvas identifier for the group containing the files |
| `folder_ids` | array | No | List of IDs of folders to search for files to set usage rights for. Note that new files uploaded to these folders do not automatically inherit these rights. |
| `usage_rights` | object | Yes | Copyright and license information to apply to the files |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set usage rights for user files

**Slug:** `CANVAS_SET_USAGE_RIGHTS_USERS`

Tool to set copyright and license information for one or more files in a user's account. Use when you need to specify intellectual property rights for user files.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `publish` | boolean | No | Whether the file(s) or folder(s) should be published on save, provided that usage rights have been specified. Set to true to publish on save. |
| `user_id` | string | Yes | The unique identifier of the user. Use 'self' for the current user. |
| `file_ids` | array | Yes | List of file IDs to set usage rights for. At least one file_id or folder_id must be provided. |
| `folder_ids` | array | No | List of folder IDs. Usage rights will be set for all files in these folders. Note that new files uploaded to these folders do not automatically inherit these rights. |
| `usage_rights` | object | Yes | Copyright and license information to apply to the files |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show an observee

**Slug:** `CANVAS_SHOW_AN_OBSERVEE`

Tool to get information about an observed user. Use when you need to retrieve details about a user being observed by another user. Note that all users are allowed to view their own observees.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The ID of the user (observer). Use 'self' to refer to the currently authenticated user. |
| `observee_id` | string | Yes | The ID of the observee (the user being observed). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show a planner override

**Slug:** `CANVAS_SHOW_A_PLANNER_OVERRIDE`

Retrieve a specific planner override for the current user. Use when you need to check the completion or dismissal status of a plannable item in the user's planner.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier for the planner override to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show content export

**Slug:** `CANVAS_SHOW_CONTENT_EXPORT`

Retrieves information about a specific content export job for a course. Use this to check the status of an export and get the download URL when the export completes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the content export to retrieve. |
| `course_id` | string | Yes | The unique identifier for the course. Can be a numeric ID or SIS ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show ePub export

**Slug:** `CANVAS_SHOW_EPUB_EXPORT`

Tool to retrieve information about a single ePub export for a course. Use this to check the status of an export and get the download URL when the export completes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the ePub export to retrieve. |
| `course_id` | string | Yes | The unique identifier for the course. Can be a numeric ID or SIS ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show Front Page for Group

**Slug:** `CANVAS_SHOW_FRONT_PAGE_FOR_GROUP`

Tool to retrieve the front page content for a specific Canvas group. Use when you need to access the main wiki page of a group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier for the Canvas group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show group content export

**Slug:** `CANVAS_SHOW_GROUP_CONTENT_EXPORT`

Retrieves information about a specific content export job for a group. Use this to check the status of an export and get the download URL when the export completes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the content export to retrieve. |
| `group_id` | string | Yes | The unique identifier for the group. Can be a numeric ID or SIS ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show Group Page Revision

**Slug:** `CANVAS_SHOW_GROUP_PAGE_REVISION`

Tool to retrieve the metadata and optionally content of the latest revision of a page in a Canvas group. Use when you need to view the most recent version of a group page. Note that retrieving historic versions requires edit rights.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `summary` | boolean | No | If set to true, exclude page content (body) from results and return only metadata. |
| `group_id` | string | Yes | The unique identifier for the Canvas group. |
| `url_or_id` | string | Yes | The URL (e.g., 'test-page-for-revision-api') or the numeric ID of the page. If a page URL might be identical to another page's numeric ID, prefix the ID with 'page_id:' (e.g., 'page_id:5678'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show an outcome

**Slug:** `CANVAS_SHOW_OUTCOME`

Retrieves detailed information for a specific outcome in Canvas using its ID. Use when you need to view outcome details, ratings, or mastery settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the outcome to retrieve. |
| `add_defaults` | boolean | No | If true, adds color and mastery level defaults to outcome ratings in the result. This will only take effect if the Account Level Mastery Scales feature flag is DISABLED. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show page for a group

**Slug:** `CANVAS_SHOW_PAGE_FOR_GROUP`

Retrieves the content of a specific wiki page by its URL or numeric ID from a Canvas group. Use when you need to fetch the full content and metadata of a group's wiki page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group containing the wiki page. |
| `url_or_id` | string | Yes | The URL (e.g., 'test-page-for-api') or the numeric ID of the page to retrieve. If a page URL might be identical to another page's numeric ID, prefix the ID with 'page_id:' (e.g., 'page_id:5678'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show a planner note

**Slug:** `CANVAS_SHOW_PLANNER_NOTE`

Retrieve a specific planner note for the current user. Use when fetching details of a personal to-do item from the Canvas planner.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the planner note to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show revision for group page

**Slug:** `CANVAS_SHOW_REVISION_FOR_GROUP_PAGE`

Tool to retrieve the metadata and optionally content of a specific revision of a group page. Use when you need to view a historic version of a page. Note that retrieving historic versions requires edit rights.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `summary` | boolean | No | If set to true, exclude page content from results and return only metadata. |
| `group_id` | string | Yes | The unique identifier for the group. |
| `url_or_id` | string | Yes | The unique identifier or URL slug of the page. Use the page ID (numeric) or the URL-safe version of the page title. |
| `revision_id` | string | Yes | The unique identifier for the revision to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show Temporary Enrollment Status

**Slug:** `CANVAS_SHOW_TEMPORARY_ENROLLMENT_STATUS`

Tool to retrieve the temporary enrollment status for a Canvas user. Use when you need to check if a user is providing or receiving temporary enrollments, or if they have permission to provide temporary enrollments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | Unique identifier for the user. Use 'self' to get the authenticated user's temporary enrollment status, or provide a specific user ID. |
| `account_id` | string | No | The ID of the account to check for temporary enrollment status. Defaults to the domain root account if not provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show User Details

**Slug:** `CANVAS_SHOW_USER_DETAILS`

Tool to retrieve detailed information about a specific Canvas user by ID. Use when you need to fetch profile data, permissions, and other user attributes for a given user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The user ID to retrieve. Can be a numeric user ID or 'self' for the current user. |
| `include` | array | No | Array of additional information to include. 'locale', 'avatar_url', 'permissions', 'email', and 'effective_locale' are always returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Start a Report

**Slug:** `CANVAS_START_REPORT`

Initiates an asynchronous report generation for a Canvas account, using a valid report type for the account; the response confirms initiation and may include progress tracking details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `report` | string | Yes | The type or name of the report to start. Use the 'List Available Reports' action or Canvas API documentation to get available report types. |
| `account_id` | integer | Yes | The unique identifier for the Canvas account for which the report will be generated. |
| `parameters` | object | No | Parameters specific to the chosen report type (e.g., a 'grade_export_csv' might need `courses[course_id]`). Consult 'List Available Reports' or API documentation for parameter details. Omit if none are needed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Submit assignment

**Slug:** `CANVAS_SUBMIT_ASSIGNMENT`

Tool to make a submission for an assignment in Canvas. Use when a student needs to submit their work for an assignment. You must be enrolled as a student in the course/section to do this. All online turn-in submission types are supported (text, URL, file upload, media recording, LTI launch, student annotation).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | Submit the assignment as a URL. The URL scheme must be 'http' or 'https', no 'ftp' or other URL schemes are allowed. If no scheme is given (e.g. 'www.example.com') then 'http' will be assumed. Required when submission_type is 'online_url' or 'basic_lti_launch'. |
| `body` | string | No | Submit the assignment as an HTML document snippet. Note this HTML snippet will be sanitized using the same ruleset as a submission made from the Canvas web UI. The sanitized HTML will be returned in the response as the submission body. Required when submission_type is 'online_text_entry'. |
| `user_id` | integer | No | Submit on behalf of the given user. Requires grading permission. |
| `file_ids` | array | No | Submit the assignment as a set of one or more previously uploaded files residing in the submitting user's files section (or the group's files section, for group assignments). Required when submission_type is 'online_upload'. |
| `course_id` | string | Yes | The ID of the course containing the assignment. |
| `submitted_at` | string | No | Choose the time the submission is listed as submitted at. Requires grading permission. ISO 8601 format (e.g., '2026-02-13T10:30:00Z'). |
| `text_comment` | string | No | Include a textual comment with the submission. |
| `assignment_id` | string | Yes | The ID of the assignment to submit. |
| `group_comment` | boolean | No | Whether or not this comment should be sent to the entire group (defaults to false). Ignored if this is not a group assignment or if no text_comment is provided. |
| `submission_type` | string ("online_text_entry" | "online_url" | "online_upload" | "media_recording" | "basic_lti_launch" | "student_annotation") | Yes | The type of submission being made. The assignment submission_types must include this submission type as an allowed option, or the submission will be rejected with a 400 error. |
| `media_comment_id` | string | No | The media comment id to submit. Media comment ids can be submitted via this API, however, note that there is not yet an API to generate or list existing media comments, so this functionality is currently of limited use. Required when submission_type is 'media_recording'. |
| `media_comment_type` | string ("audio" | "video") | No | Enum for media comment types. |
| `annotatable_attachment_id` | integer | No | The Attachment ID of the document being annotated. This should match the annotatable_attachment_id on the assignment. Required when submission_type is 'student_annotation'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Subscribe to discussion topic

**Slug:** `CANVAS_SUBSCRIBE_TO_DISCUSSION_TOPIC`

Tool to subscribe or unsubscribe from a discussion topic to receive or stop receiving notifications. Use when managing discussion topic subscriptions via GraphQL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subscribed` | boolean | Yes | Whether to subscribe (true) or unsubscribe (false) to the discussion topic. |
| `discussion_topic_id` | string | Yes | The ID of the discussion topic to subscribe to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Subscribe to a topic

**Slug:** `CANVAS_SUBSCRIBE_TO_TOPIC`

Subscribe to a discussion topic to receive notifications about new entries. Use when you need to enable notifications for a specific discussion topic in a course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `topic_id` | string | Yes | The unique identifier of the discussion topic to subscribe to. |
| `course_id` | string | Yes | The unique identifier of the course containing the discussion topic. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Subscribe to a topic in group

**Slug:** `CANVAS_SUBSCRIBE_TO_TOPIC_IN_GROUP`

Subscribe to a group discussion topic to receive notifications about new entries. On success, returns 204 No Content with an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic to subscribe to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Translate File Reference

**Slug:** `CANVAS_TRANSLATE_FILE_REFERENCE`

Resolves a file's migration ID to its current representation within a specific Canvas course.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | Identifier for the Canvas course containing the file. |
| `migration_id` | string | Yes | Identifier for a file reference, typically assigned during content import, used to find its current representation in the course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unsubscribe from a topic in group

**Slug:** `CANVAS_UNSUBSCRIBE_FROM_TOPIC_IN_GROUP`

Unsubscribe from a group discussion topic to stop receiving notifications about new entries. On success, returns 204 No Content with an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic to unsubscribe from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a content migration for user

**Slug:** `CANVAS_UPDATE_A_CONTENT_MIGRATION4`

Tool to update a content migration for a user in Canvas. Use when you need to modify migration settings, handle file upload problems, or configure selective imports. Note: migration_type cannot be changed, and most settings changes after the migration has started will have no effect.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the content migration to update. |
| `select` | object | No | For course_copy_importer migrations, select objects to copy without using selective_import workflow. Keys are object types (e.g., 'files', 'folders', 'pages'), values are lists of object ids. |
| `user_id` | string | Yes | The unique identifier for the Canvas user. Use 'self' for the current user. |
| `settings` | object | No | Settings for content migration configuration. |
| `pre_attachment` | object | No | Parameters for pre-uploading a file for content migration. |
| `selective_import` | boolean | No | If true, perform a selective import instead of importing all content. The migration will identify contents and stop in 'waiting_for_select' state. Use the List items endpoint to enumerate contents, then call the Update endpoint with copy parameters to start import. |
| `date_shift_options` | object | No | Date shifting options for migrated content. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a membership

**Slug:** `CANVAS_UPDATE_A_MEMBERSHIP`

Tool to accept a membership request or add/remove moderator rights for a group member. Use when you need to approve a user's request to join a group or modify their moderator status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | The unique identifier of the user whose membership to update. |
| `group_id` | string | Yes | The unique identifier of the group. |
| `moderator` | string | No | Set or remove moderator rights. No description provided by API. |
| `workflow_state` | string ("accepted") | No | Allowed workflow state for accepting membership requests. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update an entry

**Slug:** `CANVAS_UPDATE_AN_ENTRY`

Tool to update an existing discussion entry. Use when editing a discussion entry's message content. The entry must have been created by the current user, or the current user must have admin rights to the discussion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the discussion entry to update. The entry must have been created by the current user, or the current user must have admin rights. |
| `message` | string | No | The updated body of the entry. Supports HTML formatting. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic within the course. |
| `course_id` | string | Yes | The unique identifier of the Canvas course. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a planner override

**Slug:** `CANVAS_UPDATE_A_PLANNER_OVERRIDE`

Update a planner override's visibility and completion status for the current user. Use this to mark planner items as complete/incomplete or dismiss/show them in the opportunities list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the planner override to update. |
| `dismissed` | boolean | No | Whether the planner item is dismissed from the opportunities list. Set to true to dismiss, false to show in opportunities. |
| `marked_complete` | boolean | No | Whether the planner item is marked as completed. Set to true to mark as complete, false to mark as incomplete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Appointment Group

**Slug:** `CANVAS_UPDATE_APPOINTMENT_GROUP`

Updates an existing Canvas appointment group by its ID; only provided fields are modified, but `publish` defaults to `False` if omitted. The `appointment_group_id` must be valid.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Short title. Omit to keep existing. |
| `publish` | boolean | No | Set `True` to publish; `False` for draft. Defaults to `False` if omitted. |
| `description` | string | No | Detailed description. Omit to keep existing. |
| `context_codes` | array | No | Codes (e.g., 'course_123') linking to contexts like courses/groups. Omit to keep existing. |
| `location_name` | string | No | Location name (e.g., 'Room 301', 'Online Zoom'). Omit to keep existing. |
| `location_address` | string | No | Physical/virtual address for location. Omit to keep existing. |
| `sub_context_codes` | array | No | Codes (e.g., 'section_abc') for sub-contexts like course sections. Omit to keep existing. |
| `appointment_group_id` | string | Yes | Unique identifier of the appointment group to update. |
| `allow_observer_signup` | boolean | No | `True` allows observer sign-ups, `False` disallows. Omit to keep existing. |
| `participant_visibility` | string ("private" | "protected") | No | Participant list visibility ('private' or 'protected'). Omit to keep existing. |
| `participants_per_appointment` | integer | No | Max participants per slot. Omit to keep existing. |
| `max_appointments_per_participant` | integer | No | Max slots a user may book. Omit to keep existing. |
| `min_appointments_per_participant` | integer | No | Min slots a user must book. Omit to keep existing. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update notification preference

**Slug:** `CANVAS_UPDATE_A_PREFERENCE`

Tool to update the notification preference for a single notification on a specific communication channel. Use when changing how frequently a user receives a particular notification type.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `frequency` | string ("immediately" | "daily" | "weekly" | "never") | Yes | The desired frequency for this notification. Determines how often notifications are sent through this communication channel. |
| `notification` | string | Yes | The name of the notification to update (e.g., 'alert', 'assignment_graded', 'course_content_changed'). |
| `communication_channel_id` | string | Yes | The ID of the communication channel to update the notification preference for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Bookmark

**Slug:** `CANVAS_UPDATE_BOOKMARK`

Updates an existing bookmark for the authenticated user. Use when you need to modify the name, URL, position, or metadata of a bookmark.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the bookmark to update. |
| `url` | string | No | The new URL that the bookmark should link to. If not provided, the existing URL will be preserved. |
| `data` | string | No | Optional additional data/metadata to update for the bookmark. If not provided, the existing data will be preserved. |
| `name` | string | No | The new name/title for the bookmark. If not provided, the existing name will be preserved. |
| `position` | integer | No | The new position of the bookmark in the list. Lower numbers appear first. If not provided, the existing position will be preserved. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Calendar Event

**Slug:** `CANVAS_UPDATE_CALENDAR_EVENT`

Tool to update an existing calendar event in Canvas. Use when you need to modify event details like title, description, timing, or location.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the calendar event to update. |
| `rrule` | string | No | Valid if the event whose ID is in the URL is part of a series. This defines the shape of the recurring event series after it's updated. Its value is the iCalendar RRULE. Unending series are not supported. |
| `title` | string | No | Short title for the calendar event. |
| `which` | string ("one" | "all" | "following") | No | Specifies which events to update in a recurring series. |
| `end_at` | string | No | End date/time of the event (ISO 8601 'YYYY-MM-DDTHH:MM:SSZ'). |
| `all_day` | boolean | No | When true event is considered to span the whole day and times are ignored. |
| `start_at` | string | No | Start date/time of the event (ISO 8601 'YYYY-MM-DDTHH:MM:SSZ'). |
| `description` | string | No | Longer HTML description of the event. |
| `context_code` | string | No | Context code of the course, group, user, or account to move this event to. Scheduler appointments and events with section-specific times cannot be moved between calendars. |
| `blackout_date` | boolean | No | If the blackout_date is true, this event represents a holiday or some other special day that does not count in course pacing. |
| `location_name` | string | No | Location name of the event. |
| `child_event_data` | object | No | Section-specific start/end times. Keys are arbitrary identifiers; values are ChildEventData objects. |
| `location_address` | string | No | Location address |
| `time_zone_edited` | string | No | Time zone of the user editing the event. Allowed time zones are IANA time zones or Ruby on Rails time zones. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update comment bank item

**Slug:** `CANVAS_UPDATE_COMMENT_BANK_ITEM`

Tool to update an existing comment bank item in Canvas. Use when modifying the text of a previously saved grading comment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the comment bank item to update. Supports both legacy numeric IDs and GraphQL relay IDs. |
| `comment` | string | Yes | The updated text content for the comment bank item. Must not be blank. This reusable comment can be used when grading assignments. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a content share

**Slug:** `CANVAS_UPDATE_CONTENT_SHARE`

Tool to mark a Canvas content share as read or unread. Use when updating the read state of a content share.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the content share to update. |
| `user_id` | string | Yes | ID of the user who owns the content share; use 'self' for the authenticated user. |
| `read_state` | string ("read" | "unread") | Yes | Mark the content share as read or unread. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update conversation participants

**Slug:** `CANVAS_UPDATE_CONVERSATION_PARTICIPANTS`

Tool to batch update conversation workflow states in Canvas. Use when you need to mark conversations as read/unread, star/unstar, archive, or delete multiple conversations at once.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event` | string ("mark_as_read" | "mark_as_unread" | "star" | "unstar" | "archive" | "destroy") | Yes | Action to perform on the specified conversations. 'mark_as_read' marks conversations as read, 'mark_as_unread' marks as unread, 'star' adds a star, 'unstar' removes a star, 'archive' archives the conversations, and 'destroy' permanently deletes them. |
| `conversation_ids` | array | Yes | List of conversation IDs to update. Maximum of 500 conversation IDs can be updated at once. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update course

**Slug:** `CANVAS_UPDATE_COURSE`

Updates an existing course, specified by its ID, with new attributes or triggers a lifecycle event like 'conclude' or 'delete'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the course to update. |
| `name` | string | No | New name for the course. |
| `event` | string ("claim" | "offer" | "conclude" | "delete" | "undelete") | No | Lifecycle action for the course (e.g., 'conclude', 'offer', 'delete'). |
| `end_at` | string | No | New end date in ISO8601 format. |
| `license` | string ("private" | "cc_by_nc_nd" | "cc_by_nc_sa" | "cc_by_nc" | "cc_by_nd" | "cc_by_sa" | "cc_by" | "public_domain") | No | New license for course content, defining usage. |
| `term_id` | integer | No | ID of the academic term to associate with the course. |
| `start_at` | string | No | New start date in ISO8601 format. |
| `blueprint` | boolean | No | If `true`, sets the course as a blueprint course. |
| `is_public` | boolean | No | If `true`, course is visible to all users (authenticated and unauthenticated). |
| `account_id` | integer | No | The ID of the account to which the course will be reassigned. |
| `course_code` | string | No | New course code. |
| `default_view` | string ("feed" | "wiki" | "modules" | "syllabus" | "assignments") | No | Default landing page view when users navigate to the course. |
| `syllabus_body` | string | No | HTML content for the course syllabus, replacing existing content. |
| `open_enrollment` | boolean | No | If `true`, allows open enrollment where users can self-enroll without approval. |
| `public_syllabus` | boolean | No | If `true`, syllabus is publicly visible to everyone. |
| `self_enrollment` | boolean | No | If `true`, allows users to self-enroll, often via a URL or code. |
| `public_description` | string | No | Publicly visible description of course content or objectives. |
| `allow_wiki_comments` | boolean | No | If `true`, course members can add comments to wiki pages. |
| `is_public_to_auth_users` | boolean | No | If `true`, course is visible only to authenticated users. |
| `override_sis_stickiness` | boolean | No | If `true`, API updates can override SIS-controlled fields; if `false`, updates to 'sticky' SIS fields are prevented. |
| `public_syllabus_to_auth` | boolean | No | If `true`, syllabus is visible only to authenticated users. |
| `allow_student_wiki_edits` | boolean | No | If `true`, enrolled students can edit wiki pages. |
| `allow_student_forum_attachments` | boolean | No | If `true`, students can attach files to forum posts. |
| `restrict_enrollments_to_course_dates` | boolean | No | If `true`, enrollment is restricted to the course's start and end dates. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update course settings

**Slug:** `CANVAS_UPDATE_COURSE_SETTINGS`

Updates various settings for an existing course in Canvas, identified by `course_id`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The unique identifier for the course whose settings are to be updated. |
| `default_due_time` | string | No | Sets the default due time for new assignments. This time will be pre-selected in the Canvas UI. Does not affect existing assignments. Format: HH:MM:SS (24-hour). Default is '23:59:59'. Use 'inherit' to use the account-level setting. |
| `hide_final_grades` | boolean | No | If true, hides the total grades in the student grades summary page. |
| `conditional_release` | boolean | No | If true, enables individual learning paths for students, allowing content to be released based on their performance on assessments or other criteria. |
| `usage_rights_required` | boolean | No | If true, requires copyright and license information to be provided for files before they can be published. |
| `lock_all_announcements` | boolean | No | If true, disables comments on all course announcements. |
| `syllabus_course_summary` | boolean | No | If true (default), shows the course summary, including a list of assignments and calendar events, on the syllabus page. |
| `hide_distribution_graphs` | boolean | No | If true, hides grade distribution graphs from students' view. |
| `allow_final_grade_override` | boolean | No | If true, allows instructors to override the final grade for students for a grading period or the entire course. |
| `restrict_student_past_view` | boolean | No | If true, restricts students from viewing the course content after the official course end date. |
| `home_page_announcement_limit` | integer | No | Specifies the maximum number of announcements to display on the home page when `show_announcements_on_home_page` is enabled. Only applicable if the home page is a Wiki. |
| `restrict_student_future_view` | boolean | No | If true, restricts students from viewing the course content before the official course start date. |
| `allow_student_organized_groups` | boolean | No | If true, allows students to create and manage their own groups within the course. |
| `allow_student_discussion_topics` | boolean | No | If true, allows students to create new discussion topics. |
| `allow_student_forum_attachments` | boolean | No | If true, allows students to attach files to their discussion posts and replies. |
| `show_announcements_on_home_page` | boolean | No | If true, displays the most recent course announcements on the course home page. For Wiki home pages, this defaults to five announcements but can be configured via `home_page_announcement_limit`. This setting is ignored by Canvas for Elementary subjects. |
| `allow_student_discussion_editing` | boolean | No | If true, allows students to edit or delete their own discussion posts and replies. |
| `allow_student_discussion_reporting` | boolean | No | If true, allows students to report discussion content they deem offensive or inappropriate. |
| `hide_sections_on_course_users_page` | boolean | No | If true, prevents students from viewing other students in sections they are not enrolled in on the course users page. |
| `filter_speed_grader_by_student_group` | boolean | No | If true, SpeedGrader will be filtered to display students only from the currently selected group. |
| `allow_student_anonymous_discussion_topics` | boolean | No | If true, allows students to create discussion topics anonymously. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update/Create Front Page for Groups

**Slug:** `CANVAS_UPDATE_CREATE_FRONT_PAGE_GROUPS`

Tool to update or create the front page of a Canvas group wiki. Use when you need to modify the title or contents of the group front page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | The content for the front page in HTML format. |
| `title` | string | No | The title for the front page. NOTE: changing a page's title will change its url. The updated url will be returned in the result. |
| `group_id` | string | Yes | The unique identifier for the Canvas group. |
| `published` | boolean | No | Whether the page is published (true) or draft state (false). |
| `editing_roles` | string ("teachers" | "students" | "members" | "public") | No | Which user roles are allowed to edit this page. Any combination of these roles is allowed (separated by commas): 'teachers' allows editing by teachers, 'students' allows editing by students, 'members' for group wikis allows editing by members of the group, 'public' allows editing by any user. |
| `notify_of_update` | boolean | No | Whether participants should be notified when this page changes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Custom Color

**Slug:** `CANVAS_UPDATE_CUSTOM_COLOR`

Tool to update the custom color for a user for a specific course or context in Canvas. Use when you need to set or modify user-specific color preferences for calendar and other UI elements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hexcode` | string | Yes | The hexadecimal color code to set for the specified asset_string. Should be in the format '#RRGGBB' (e.g., '#FF5733'). If passing as a query parameter, do NOT include the '#' unless it is URL-escaped. |
| `user_id` | string | No | The unique identifier for the user. Use 'self' to update the authenticated user's custom colors, or provide a specific user ID. |
| `asset_string` | string | Yes | The asset string in the format 'context_id' (e.g., 'course_42'). This identifies the specific context (course, group, etc.) for which to set the custom color. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a custom gradebook column

**Slug:** `CANVAS_UPDATE_CUSTOM_GRADEBOOK_COLUMN`

Updates an existing custom gradebook column in a course. Use when you need to modify properties like title, position, visibility, or editability of a custom gradebook column.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the custom gradebook column to update. |
| `title` | string | No | The title/header text for the custom gradebook column. |
| `hidden` | boolean | No | If true, the column will not be displayed in the gradebook. |
| `position` | integer | No | The position of the column relative to other custom columns. Lower numbers appear first. |
| `course_id` | string | Yes | The unique identifier of the course containing the custom gradebook column. |
| `read_only` | boolean | No | If true, the column will not be editable in the gradebook UI. |
| `teacher_notes` | boolean | No | If true, this column is designated as a teacher notes column. The gradebook only supports one teacher_notes column. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk update custom gradebook column data

**Slug:** `CANVAS_UPDATE_CUSTOM_GRADEBOOK_COLUMN_DATA`

Bulk updates custom gradebook column data for multiple students. Use when you need to set or update content in custom columns for multiple student/column combinations in a single operation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | Yes | The unique identifier of the course containing the custom gradebook columns. |
| `column_data` | array | Yes | Array of column data objects to update. Each object specifies a column_id, user_id, and content value. Setting content to empty string will delete the data object. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update discussion entries read state

**Slug:** `CANVAS_UPDATE_DISCUSSION_ENTRIES_READ_STATE`

Tool to update read state for discussion entries. Use when marking discussion entries as read or unread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `read` | boolean | Yes | Read state to set: true for marking as read, false for marking as unread. |
| `discussion_entry_ids` | array | Yes | List of discussion entry IDs to update read state for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update discussion entry

**Slug:** `CANVAS_UPDATE_DISCUSSION_ENTRY`

Tool to update an existing discussion entry in Canvas via GraphQL. Use when editing the message content or file attachments of a previously posted discussion entry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_id` | string | No | Associated file identifier. |
| `message` | string | No | Updated text content of the entry. |
| `discussion_entry_id` | string | Yes | Required identifier for the discussion entry to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update discussion entry participant

**Slug:** `CANVAS_UPDATE_DISCUSSION_ENTRY_PARTICIPANT`

Tool to update a discussion entry participant's read state or rating. Use when marking entries as read/unread or changing ratings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `read` | boolean | No | Whether to mark the discussion entry as read (true) or unread (false). |
| `rating` | string ("liked" | "not_liked") | No | Rating to assign to the discussion entry. Use 'liked' to like the entry or 'not_liked' to unlike it. |
| `forced_read_state` | boolean | No | Whether to force the read state. If true, the entry will remain in the specified state regardless of other factors. |
| `discussion_entry_id` | string | Yes | The ID of the discussion entry participant to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update discussion read state

**Slug:** `CANVAS_UPDATE_DISCUSSION_READ_STATE`

Tool to update the read state for a discussion topic in Canvas via GraphQL. Use when marking a discussion as read or unread for the current user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `read` | boolean | No | Whether to mark the discussion topic as read (true) or unread (false). If not provided, the state is toggled. |
| `discussion_topic_id` | string | Yes | The ID of the discussion topic to update read state for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update discussion thread read state

**Slug:** `CANVAS_UPDATE_DISCUSSION_THREAD_READ_STATE`

Tool to update the read state of a discussion entry. Use when marking a discussion entry as read or unread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `read` | boolean | No | Whether to mark the discussion entry as read (true) or unread (false). If not provided, defaults to true. |
| `discussion_entry_id` | string | Yes | The ID of the discussion entry to update read state for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update discussion topic (GraphQL)

**Slug:** `CANVAS_UPDATE_DISCUSSION_TOPIC`

Tool to update an existing discussion topic using the Canvas GraphQL API. Use when modifying the title or message of a discussion topic.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | The new title for the discussion topic. |
| `message` | string | No | The new message/body content for the discussion topic. Can include HTML formatting. |
| `discussion_topic_id` | string | Yes | The ID of the discussion topic to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update file

**Slug:** `CANVAS_UPDATE_FILE`

Modifies an existing file's name or relocates it to a new parent folder; the target folder, if specified, must be valid and in the file's original context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The new display name for the file. If this field is not provided or is null, the file's current name will be preserved. |
| `file_id` | string | Yes | The unique identifier of the file to be updated. |
| `on_duplicate` | string | No | Defines the action to take if a file with the specified `name` already exists in the target `parent_folder_id`. Valid options are: 'rename' (the uploaded file will be renamed to avoid conflict, e.g., 'filename (1).txt') or 'overwrite' (the existing file will be replaced). If not provided or null, the Canvas API's default behavior for handling duplicates will apply. |
| `parent_folder_id` | string | No | ID of the folder to move the file to. Must be an existing folder in the same context as the file's original parent. Ignored if the context lacks folders (e.g., root user files) or if null (file stays in current location). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Folder

**Slug:** `CANVAS_UPDATE_FOLDER`

Updates an existing folder's properties (name, position, lock state, visibility) specified by its unique ID. Use when modifying folder attributes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the folder to be updated. |
| `name` | string | No | The new name of the folder. |
| `hidden` | boolean | No | Flag the folder as hidden. |
| `locked` | boolean | No | Flag the folder as locked. |
| `lock_at` | string | No | The datetime to lock the folder at (ISO 8601 format). |
| `position` | integer | No | Set an explicit sort position for the folder. |
| `unlock_at` | string | No | The datetime to unlock the folder at (ISO 8601 format). |
| `parent_folder_id` | string | No | The id of the folder to move this folder into. The new folder must be in the same context as the original parent folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a group content migration

**Slug:** `CANVAS_UPDATE_GROUP_CONTENT_MIGRATION`

Tool to update a content migration in a Canvas group. Use when you need to modify migration settings, handle file upload problems, configure selective imports, or specify which content to copy. Note: migration_type cannot be changed, and most settings changes after the migration has started will have no effect.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the content migration to update. |
| `copy` | object | No | Options for selective content copying during migration. |
| `select` | object | No | For course_copy_importer migrations, select objects to copy without using selective_import workflow. Keys are object types (e.g., 'files', 'folders', 'pages'), values are lists of object ids. |
| `group_id` | string | Yes | The unique identifier for the Canvas group where the content migration exists. |
| `settings` | object | No | Settings for content migration configuration. |
| `pre_attachment` | object | No | Parameters for pre-uploading a file for content migration. |
| `selective_import` | boolean | No | If true, perform a selective import instead of importing all content. The migration will identify contents and stop in 'waiting_for_select' state. Use the List items endpoint to enumerate contents, then call the Update endpoint with copy parameters to start import. |
| `date_shift_options` | object | No | Date shifting options for migrated content. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update group discussion entry

**Slug:** `CANVAS_UPDATE_GROUP_DISCUSSION_ENTRY`

Tool to update an existing discussion entry in a Canvas group. Use when editing a group discussion entry's message content. The entry must have been created by the current user, or the current user must have admin rights to the discussion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the discussion entry to update. The entry must have been created by the current user, or the current user must have admin rights. |
| `message` | string | No | The updated body of the entry. Supports HTML formatting. |
| `group_id` | string | Yes | The unique identifier of the Canvas group. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic within the group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update multiple notification preferences

**Slug:** `CANVAS_UPDATE_MULTIPLE_NOTIFICATION_PREFERENCES`

Update multiple notification preferences for a single communication channel at once. Use when you need to configure how often a user receives notifications for multiple event types on a specific communication channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | Yes | The type of communication channel (e.g., 'email', 'sms', 'push'). |
| `address` | string | Yes | The address of the communication channel. For email type, this is an email address. For SMS, this is a phone number. |
| `notification_preferences` | array | Yes | List of notification preferences to update. Each entry specifies a notification name and its desired frequency. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update multiple preferences by channel ID

**Slug:** `CANVAS_UPDATE_MULTIPLE_PREFERENCES_BY_CHANNEL_ID`

Tool to change the preferences for multiple notifications for a single communication channel at once using the channel ID. Use when you need to configure how frequently (immediately, daily, weekly, or never) various notification types are sent to a specific communication channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `communication_channel_id` | string | Yes | The ID of the communication channel to update notification preferences for. This is the channel (e.g., email, SMS) where notifications are delivered. |
| `notification_preferences` | object | Yes | Dictionary mapping notification names to their preference settings. Keys are notification identifiers (e.g., 'assignment_due_date_changed', 'course_content_changed'). Each value specifies the desired frequency for that notification type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update notification preferences

**Slug:** `CANVAS_UPDATE_NOTIFICATION_PREFERENCES`

Tool to update user notification preferences in Canvas using GraphQL. Use when configuring how and when a user receives notifications for specific categories through a communication channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | string | No | The Canvas course ID. Required when context_type is Course. |
| `frequency` | string ("immediately" | "daily" | "weekly" | "never") | Yes | How often notifications should be sent for this category. |
| `account_id` | string | No | The Canvas account ID. Required when context_type is Account. |
| `context_type` | string ("Course" | "Account") | Yes | The context type for the notification preference (Course or Account). |
| `notification_category` | string ("Account_Notification" | "Announcement" | "Announcement_Created_By_You" | "Appointment_Availability" | "Appointment_Cancelations" | "Appointment_Signups" | "Calendar" | "All_Submissions" | "Late_Grading" | "Submission_Comment" | "Conversation_Message" | "Conversation_Created" | "Added_To_Conversation" | "Discussion" | "DiscussionEntry" | "DiscussionMention" | "ReportedReply" | "Due_Date" | "Grading" | "Grading_Policies" | "Invitation" | "Other" | "Content_Link_Error" | "Files" | "Membership_Update" | "Student_Appointment_Signups" | "Blueprint" | "Course_Content" | "Recording_Ready") | Yes | The notification category to update. |
| `communication_channel_id` | string | Yes | The ID of the communication channel to update preferences for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update page for a course

**Slug:** `CANVAS_UPDATE_PAGE_FOR_COURSE`

Updates an existing wiki page in a Canvas course; if setting as front page, it must also be or be made published.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | New HTML content for the page body. Retains existing if None. |
| `title` | string | No | New title for the page. Retains existing if None. |
| `course_id` | string | Yes | Identifier of the course containing the page. |
| `published` | boolean | No | Publish or unpublish the page. Retains existing status if None. |
| `url_or_id` | string | Yes | URL (hyphenated string from title) or numeric ID of the page to update. |
| `front_page` | boolean | No | Set as course front page (must be published). Retains existing status if None. |
| `editing_roles` | string | No | Comma-separated list of roles ('teachers', 'students', 'members', 'public') allowed to edit. Retains existing if None. |
| `notify_of_update` | boolean | No | Notify course participants of the update. Retains existing preference if None. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a page for a group

**Slug:** `CANVAS_UPDATE_PAGE_FOR_GROUP`

Updates the title or contents of an existing wiki page in a Canvas group. Use when you need to modify group documentation, notes, or collaborative content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | New HTML content for the page body. If not provided, the existing body is retained. |
| `title` | string | No | New title for the page. NOTE: Changing a page's title will change its URL. The updated URL will be returned in the result. If not provided, the existing title is retained. |
| `group_id` | string | Yes | Unique identifier for the group containing the page to update. |
| `published` | boolean | No | Whether the page is published (true) or draft state (false). If not provided, the existing status is retained. |
| `url_or_id` | string | Yes | The unique locator (URL slug) or numeric ID of the page to update. NOTE: If you pass a numeric value that does not represent an existing page ID, it will be interpreted as a URL and may fail. |
| `front_page` | boolean | No | Set an unhidden page as the front page (if true). The page must also be published to become the front page. If not provided, the existing status is retained. |
| `publish_at` | string | No | Schedule a future date/time to publish the page in ISO 8601 format. This will have no effect unless the 'Scheduled Page Publication' feature is enabled in the account. If a future date is set and the page is already published, it will be unpublished. |
| `editing_roles` | string ("teachers" | "students" | "members" | "public") | No | Which user roles are allowed to edit this page. Any combination of these roles is allowed (separated by commas): 'teachers' (allows editing by teachers), 'students' (allows editing by students), 'members' (for group wikis, allows editing by members of the group), 'public' (allows editing by any user). If not provided, existing roles are retained. |
| `notify_of_update` | boolean | No | Whether participants should be notified when this page changes. If not provided, the existing preference is retained. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a planner note

**Slug:** `CANVAS_UPDATE_PLANNER_NOTE`

Update a planner note for the current user. Use when modifying an existing to-do item or reminder in the Canvas planner.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the planner note to update. |
| `title` | string | No | The title of the planner note. |
| `details` | string | No | Text of the planner note. Can contain HTML formatting. |
| `course_id` | integer | No | The ID of the course to associate with the planner note. The caller must be able to view the course in order to associate it with a planner note. Use a null or empty value to remove a planner note from a course. Note that if the planner note is linked to a learning object, its course_id cannot be changed. |
| `todo_date` | string | No | The date where this planner note should appear in the planner. The value should be formatted as: yyyy-mm-dd. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update notification preference by type and address

**Slug:** `CANVAS_UPDATE_PREFERENCE_BY_TYPE_AND_ADDRESS`

Tool to update the notification preference for a single notification on a communication channel identified by type and address. Use when changing how frequently a user receives a particular notification type on a specific channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | Yes | The type of communication channel (e.g., 'email', 'sms', 'push'). |
| `address` | string | Yes | The address of the communication channel. For email type, this is an email address. For SMS, this is a phone number. |
| `frequency` | string ("immediately" | "daily" | "weekly" | "never") | Yes | The desired frequency for this notification. Determines how often notifications are sent through this communication channel. |
| `notification` | string | Yes | The name of the notification to update (e.g., 'alert', 'assignment_graded', 'course_content_changed'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update preferences by category

**Slug:** `CANVAS_UPDATE_PREFERENCES_BY_CATEGORY`

Tool to change notification preferences for all notifications in a category for a single communication channel. Use when updating the frequency setting for an entire notification category at once.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `category` | string | Yes | The notification category to update (e.g., 'announcement', 'due_date', 'grading'). |
| `frequency` | string ("immediately" | "daily" | "weekly" | "never") | Yes | How often notifications should be sent for this category. |
| `communication_channel_id` | string | Yes | The ID of the communication channel to update preferences for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update quiz submission scores

**Slug:** `CANVAS_UPDATE_QUIZ_SUBMISSION_SCORES`

Updates scores, comments for questions, and/or applies fudge points to a specific quiz submission attempt; the attempt must be completed and referenced by valid, existing course, quiz, and submission IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier for the quiz submission to be updated. |
| `attempt` | integer | Yes | The specific attempt number of the quiz submission to update. The attempt must have been completed before scores can be updated. |
| `quiz_id` | string | Yes | The unique identifier for the quiz to which the submission belongs. |
| `course_id` | string | Yes | The unique identifier for the course to which the quiz submission belongs. |
| `questions` | object | No | Scores and comments for individual questions. Keys are question IDs (as strings); values are objects with 'score' (float or null) and 'comment' (string or null) fields. Only specified questions will be updated; others remain unchanged. |
| `fudge_points` | number | No | A numerical value (positive or negative) used to manually adjust the total score of the quiz submission. This can be used for applying discretionary bonuses or penalties. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update rubric assessment read state

**Slug:** `CANVAS_UPDATE_RUBRIC_ASSESSMENT_READ_STATE`

Tool to update rubric assessment read state for submissions in Canvas via GraphQL. Use when marking rubric assessments as read for specific submissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `submission_ids` | array | Yes | List of submission IDs to update rubric assessment read state for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Single Poll

**Slug:** `CANVAS_UPDATE_SINGLE_POLL`

Tool to update an existing poll belonging to the current user. Use when you need to modify a poll's question or description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the poll to update. |
| `polls` | array | Yes | Array containing poll update data. Typically contains a single poll update object with question and optional description. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a single poll choice

**Slug:** `CANVAS_UPDATE_SINGLE_POLL_CHOICE`

Tool to update an existing poll choice for a poll in Canvas. Use when you need to modify the text, correctness status, or position of a poll choice.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the poll choice to update. |
| `poll_id` | string | Yes | The ID of the poll containing the choice to update. |
| `poll_choices` | array | Yes | Array of poll choice objects to update. Typically contains one poll choice. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Single Poll Session

**Slug:** `CANVAS_UPDATE_SINGLE_POLL_SESSION`

Tool to update an existing poll session for a poll in Canvas. Use when you need to modify a poll session's attributes such as making results public or changing the associated course section.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the poll session to update. |
| `poll_id` | string | Yes | The unique identifier of the poll containing the session to update. |
| `course_id` | integer | No | The id of the course this session is associated with. |
| `course_section_id` | integer | No | The id of the course section this session is associated with. |
| `has_public_results` | boolean | No | Whether or not results are viewable by students. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update SpeedGrader settings

**Slug:** `CANVAS_UPDATE_SPEED_GRADER_SETTINGS`

Tool to update SpeedGrader settings in Canvas via GraphQL. Use when you need to configure SpeedGrader options such as enabling grade-by-question mode.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `gradeByQuestion` | boolean | Yes | Whether to grade by question in SpeedGrader. When enabled, SpeedGrader will allow grading individual questions instead of submissions as a whole. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update split screen view deeply nested alert

**Slug:** `CANVAS_UPDATE_SPLIT_SCREEN_VIEW_DEEPLY_NESTED_ALERT`

Tool to update the split screen view deeply nested alert setting for a user. Use when enabling or disabling the deeply nested alert warning in split screen view mode.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `split_screen_view_deeply_nested_alert` | boolean | Yes | Whether to enable or disable the deeply nested alert for split screen view. Set to true to enable the alert, false to disable it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update submission student-entered score

**Slug:** `CANVAS_UPDATE_SUBMISSION_STUDENT_ENTERED_SCORE`

Tool to update the student-entered score (what-if score) for a submission. Use when a student wants to set or modify a hypothetical score to calculate potential grades.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entered_score` | number | Yes | The student-entered score value (what-if score). This is a hypothetical score that students can use to calculate potential grades. |
| `submission_id` | string | Yes | The ID of the submission to update. This is the unique identifier for the student's submission. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update submission what-if score

**Slug:** `CANVAS_UPDATE_SUBMISSION_WHAT_IF_SCORE`

Tool to enter a what-if score for a submission and receive calculated grades. Grade calculation is costly, so use sparingly. Use when students want to test hypothetical scores to see their impact on overall grades.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the submission to update with a what-if score. |
| `student_entered_score` | number | Yes | The hypothetical score the student wants to test to see calculated grades. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update group discussion topic

**Slug:** `CANVAS_UPDATE_TOPIC_FOR_GROUP`

Tool to update an existing discussion topic for a group. Use when modifying the title, message, publication settings, or engagement features of a group discussion topic.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | The new title for the discussion topic. |
| `pinned` | boolean | No | If true, this topic will be listed in the 'Pinned Discussion' section. |
| `lock_at` | string | No | If a timestamp is given, the topic will be scheduled to lock at the provided timestamp. If the timestamp is in the past, the topic will be locked. Provide in ISO 8601 format. |
| `message` | string | No | The new message/body content for the discussion topic. Supports HTML formatting. |
| `expanded` | boolean | No | If true, thread will be expanded by default. |
| `group_id` | string | Yes | The unique identifier of the group containing the discussion topic. |
| `topic_id` | string | Yes | The unique identifier of the discussion topic to update. |
| `published` | boolean | No | Whether this topic is published (true) or draft state (false). Only teachers and TAs have the ability to create draft state topics. |
| `assignment` | string | No | To create an assignment discussion, pass the assignment parameters as a sub-object. See the Create an Assignment API for the available parameters. The name parameter will be ignored, as it's taken from the discussion title. If you want to make a discussion that was an assignment NOT an assignment, pass set_assignment = false as part of the assignment object. |
| `sort_order` | string ("asc" | "desc") | No | Sort order for discussion entries. |
| `allow_rating` | boolean | No | If true, users will be allowed to rate entries. |
| `lock_comment` | boolean | No | If is_announcement and lock_comment are true, 'Allow Participants to Comment' setting is disabled. |
| `position_after` | string | No | By default, discussions are sorted chronologically by creation date. You can pass the id of another topic to have this one show up after the other when they are listed. |
| `sort_by_rating` | boolean | No | (DEPRECATED) If true, entries will be sorted by rating. |
| `delayed_post_at` | string | No | If a timestamp is given, the topic will not be published until that time. Provide in ISO 8601 format. |
| `discussion_type` | string ("side_comment" | "threaded" | "not_threaded") | No | The type of discussion. |
| `expanded_locked` | boolean | No | If true, users cannot choose their preferred thread expansion setting. |
| `is_announcement` | boolean | No | If true, this topic is an announcement. It will appear in the announcement's section rather than the discussions section. This requires announcement-posting permissions. |
| `podcast_enabled` | boolean | No | If true, the topic will have an associated podcast feed. |
| `group_category_id` | integer | No | If present, the topic will become a group discussion assigned to the group. |
| `sort_order_locked` | boolean | No | If true, users cannot choose their preferred sort order. |
| `specific_sections` | string | No | A comma-separated list of sections ids to which the discussion topic should be made specific to. If it is not desired to make the discussion topic specific to sections, then this parameter may be omitted or set to 'all'. Can only be present only on announcements and only those that are for a course (as opposed to a group). |
| `require_initial_post` | boolean | No | If true then a user may not respond to other replies until that user has made an initial reply. |
| `only_graders_can_rate` | boolean | No | If true, only graders will be allowed to rate entries. |
| `podcast_has_student_posts` | boolean | No | If true, the podcast will include posts from students as well. Implies podcast_enabled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update user discussions splitscreen view

**Slug:** `CANVAS_UPDATE_USER_DISCUSSIONS_SPLITSCREEN_VIEW`

Tool to update user discussions splitscreen view setting via Canvas GraphQL API. Use when enabling or disabling the splitscreen view for discussions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `discussions_splitscreen_view` | boolean | Yes | Boolean value to enable (true) or disable (false) splitscreen view for discussions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update User Settings

**Slug:** `CANVAS_UPDATE_USER_SETTINGS`

Updates a Canvas user's preferences for various interface elements and content interaction behaviors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | Yes | The unique identifier of the user whose settings are to be updated. |
| `collapse_course_nav` | boolean | No | If `true`, course navigation menus will load collapsed by default. |
| `collapse_global_nav` | boolean | No | If `true`, the global navigation menu will load collapsed by default. |
| `manual_mark_as_read` | boolean | No | If `true`, user must manually mark discussion posts as read; `false` means posts are marked read automatically upon viewing. |
| `hide_dashcard_color_overlays` | boolean | No | If `true`, color overlays on dashboard course card images will be hidden. |
| `release_notes_badge_disabled` | boolean | No | If `true`, the badge indicating new release notes will be hidden. |
| `elementary_dashboard_disabled` | boolean | No | If `true`, the classic Canvas dashboard view is displayed; `false` displays the Canvas for Elementary view. |
| `comment_library_suggestions_enabled` | boolean | No | If `true`, suggestions from the comment library will be displayed when commenting. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update user text editor preference

**Slug:** `CANVAS_UPDATE_USERS_TEXT_EDITOR_PREFERENCE`

Tool to update a user's text editor preference. Use when you need to change the default text editor for a user in Canvas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the user whose text editor preference is to be updated. Use 'self' for the current authenticated user. |
| `text_editor_preference` | string ("block_editor" | "rce" | "") | Yes | The identifier for the editor. Valid values are 'block_editor' (Block Editor), 'rce' (Rich Content Editor), or empty string '' (no preference). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update User Token

**Slug:** `CANVAS_UPDATE_USERS_TOKENS`

Tool to update an existing access token for a Canvas user. Use when you need to modify token properties like purpose, expiration, scopes, or regenerate the token value.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scopes` | array | No | The scopes to associate with the token. If omitted, the token's current scopes will be preserved. Ignored if the default developer key does not have the 'enable scopes' option enabled. |
| `purpose` | string | No | The new purpose of the token. If omitted, the token's current purpose will be preserved. |
| `user_id` | string | No | The ID of the user whose token will be updated. Use 'self' to update a token for the currently authenticated user, or provide a specific user ID. |
| `token_id` | string | Yes | The ID of the token to update, or the token_hint value. |
| `expires_at` | string | No | The time at which the token will expire, in ISO 8601 format (e.g., '2024-12-31T23:59:59Z'). If omitted, the token's current expiration date will be preserved. |
| `regenerate` | boolean | No | If true, regenerates the actual token value while maintaining the same token ID. The old token will become invalid. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload a course file

**Slug:** `CANVAS_UPLOAD_COURSE_FILE`

Uploads a file to an accessible Canvas course, optionally to a specific folder (created if a non-existent `parent_folder_path` is provided) and with defined behavior for duplicate filenames.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | The file to upload to the course. Must include `name` (filename string), `mimetype` (MIME type string), and `s3key` (S3 object key string) fields. |
| `course_id` | string | Yes | Unique identifier of the accessible Canvas course. |
| `on_duplicate` | string | No | Action for duplicate filenames: 'overwrite' or 'rename'. If unspecified, Canvas's default behavior applies. |
| `parent_folder_id` | integer | No | Unique ID of the target folder. If omitted, uploads to the course's root folder. Mutually exclusive with `parent_folder_path`. |
| `parent_folder_path` | string | No | Full path to the target folder (e.g., 'course_materials/week1'). If omitted, uploads to the course's root folder. Mutually exclusive with `parent_folder_id`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload a file to group

**Slug:** `CANVAS_UPLOAD_FILE_TO_GROUP`

Initiates file upload to a Canvas group (Step 1 of 3-step workflow). Returns upload_url and upload_params needed for Step 2. Only users with 'Manage Files' permission can upload to groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The filename of the file to upload. Any UTF-8 name is allowed (e.g., 'test_document.txt', 'assignment.pdf'). |
| `size` | integer | No | The size of the file in bytes. Recommended to check quota before uploading. |
| `group_id` | string | Yes | The unique identifier of the group to upload the file to. |
| `content_type` | string | No | The MIME content type of the file (e.g., 'text/plain', 'application/pdf'). If not provided, Canvas will attempt to guess from the file extension. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload submission file

**Slug:** `CANVAS_UPLOAD_SUBMISSION_FILE`

Uploads a file for an assignment submission in Canvas (step 1 of submitting); the returned file can later be included in an actual submission. The specified user must be enrolled in the course with access to the assignment. Use 'self' for `user_id` to upload as the authenticated user, or specify another user's ID (requires masquerade permissions).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | The file to upload for the submission. |
| `user_id` | string | Yes | Identifier of the user (e.g., student) making the submission; use 'self' for the currently authenticated user. |
| `course_id` | string | Yes | Identifier of the course containing the assignment. |
| `assignment_id` | string | Yes | Identifier of the assignment for the submission. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert custom grade status

**Slug:** `CANVAS_UPSERT_CUSTOM_GRADE_STATUS`

Tool to create or update a custom grade status in Canvas. Use when you need to add a new custom grade status or modify an existing one.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | The ID of an existing custom grade status to update. If not provided, a new custom grade status will be created. |
| `name` | string | Yes | The name of the custom grade status. |
| `color` | string | Yes | The hex color code for the status (e.g., #FF5733). Must start with # followed by 6 hexadecimal characters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert standard grade status

**Slug:** `CANVAS_UPSERT_STANDARD_GRADE_STATUS`

Tool to create or update a standard grade status in Canvas. Use when customizing standard grade status labels and colors. Standard grade statuses include: late, missing, excused, and none.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | ID of the standard grade status to update. If provided, updates an existing status; if omitted, creates a new one. |
| `name` | string | Yes | Name of the standard grade status. Must be one of the predefined Canvas status names: 'late', 'missing', 'excused', or 'none'. |
| `color` | string | Yes | Color for the standard grade status in hex format (e.g., '#FF5733'). Must include the '#' prefix. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate quiz access code

**Slug:** `CANVAS_VALIDATE_QUIZ_ACCESS_CODE`

Validates a quiz access code by checking if it matches the configured access code for the quiz. Use when verifying student-provided access codes before allowing quiz access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the quiz to validate the access code for. |
| `course_id` | string | Yes | The ID of the course containing the quiz. |
| `access_code` | string | Yes | The access code to validate against the quiz's configured access code. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |


## Triggers

### Canvas Assignment Graded

**Slug:** `CANVAS_ASSIGNMENT_GRADED_TRIGGER`

**Type:** poll

Polls Canvas for newly graded submissions for a specific assignment.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `assignment_id` | integer | Yes | The ID of the assignment to monitor for grading activity. |
| `course_id` | integer | Yes | The ID of the Canvas course containing the assignment. |
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `canvas_user_id` | integer | Yes | The ID of the Canvas user who submitted the assignment. |
| `grade` | string | No | The grade for the submission. |
| `is_graded` | boolean | Yes | Whether the submission has been graded. |

### New Canvas Assignment Submission

**Slug:** `CANVAS_NEW_ASSIGNMENT_SUBMISSION_TRIGGER`

**Type:** poll

Polls Canvas for new submissions to a specific assignment.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `assignment_id` | integer | Yes | The ID of the assignment to monitor for new submissions. |
| `course_id` | integer | Yes | The ID of the Canvas course containing the assignment. |
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `canvas_user_id` | integer | Yes | The ID of the Canvas user who submitted the assignment. |
| `grade` | string | No | The grade, if graded. |
| `id` | integer | Yes | The ID of the submission. |
| `late` | boolean | Yes | Whether the submission was late. |
| `preview_url` | string | Yes | URL to preview the submission. |
| `submission_type` | string | No | The type of submission (online_text_entry, online_upload, etc). |
| `submitted_at` | string | No | When the submission was made. |
| `workflow_state` | string | Yes | The state of the submission (submitted, unsubmitted, graded, etc). |

### New Canvas Discussion Message

**Slug:** `CANVAS_NEW_CANVAS_DISCUSSION_MESSAGE_TRIGGER`

**Type:** poll

Polls Canvas discussion topics for new messages.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The ID of the Canvas course containing the discussion. |
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |
| `topic_ids` | string | Yes | The IDs of the discussion topics to monitor for new messages. |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `canvas_user_id` | integer | No | Canvas user ID of the entry author. |
| `course_id` | integer | Yes | The course ID the discussion belongs to. |
| `created_at` | string | No | When the entry was created. |
| `id` | integer | Yes | The ID of the discussion entry. |
| `message` | string | No | The content of the discussion entry. |
| `parent_id` | integer | No | Parent entry ID if this is a reply. |
| `raw_entry` | object | No | The raw API response for this entry. |
| `topic_id` | integer | Yes | The discussion topic ID this entry belongs to. |
| `updated_at` | string | No | When the entry was last updated. |
| `user_name` | string | No | The name of the user who posted the entry. |

### New Canvas Discussion Topic

**Slug:** `CANVAS_NEW_CANVAS_DISCUSSION_TRIGGER`

**Type:** poll

Polls a Canvas course for new discussion topics.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The ID of the Canvas course to monitor for new discussion topics. |
| `filter_by` | string | No | The state of the discussion topics to return. Options: 'all', 'unread'. |
| `include` | array | No | Additional fields to include. Options: 'all_dates', 'sections', 'sections_user_count', 'overrides' |
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |
| `order_by` | string | No | Determines the order of the discussion topic list. Options: 'position', 'recent_activity', 'title'. |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event_type` | string | No | Type of discussion event |
| `topic` | object | Yes | The discussion topic that was created |

### New Course Created for User

**Slug:** `CANVAS_NEW_COURSE_CREATED_TRIGGER`

**Type:** poll

Polls Canvas for newly created courses for a specific user.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |
| `user_id` | integer | Yes | The ID of the user to monitor courses for. |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | integer | No | The account ID the course belongs to. |
| `course_code` | string | No | The course code. |
| `created_at` | string | No | When the course was created. |
| `end_at` | string | No | When the course ends. |
| `enrollment_term_id` | integer | No | The term ID for this course. |
| `id` | integer | Yes | The ID of the course. |
| `name` | string | Yes | The name of the course. |
| `start_at` | string | No | When the course starts. |
| `time_zone` | string | No | The time zone of the course. |
| `workflow_state` | string | No | The state of the course. |

### New Canvas File Upload

**Slug:** `CANVAS_NEW_FILE_UPLOADED_TRIGGER`

**Type:** poll

Polls a Canvas course for new file uploads.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `course_id` | integer | Yes | The ID of the Canvas course to monitor for new file uploads. |
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `new_files` | array | Yes | The new files uploaded to Canvas. |
