# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Canvas LMS REST Assignments API version: 1.0.0 extends: openapi/canvas-assignments-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 20 - target: $.paths['/v1/courses/{course_id}/assignments/{id}'].get update: x-apievangelist-phrasing: intent: Get one assignment in a course effect: read questions: - How can I look up the details of a single Canvas assignment? - Can I see how many submissions still need grading per section for one assignment? - Will the due date I get back reflect my own overrides? instructions: - text: Show assignment {id} in course {course_id}. slots: id: path.id course_id: path.course_id - text: Get assignment {id} from course {course_id} with all of its dates included. slots: id: path.id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{id}'].put update: x-apievangelist-phrasing: intent: Edit an assignment effect: write questions: - Can I change the due date or point value of an existing assignment? - Is it possible to publish an assignment that is still a draft? - Can I turn on moderated grading for an assignment that already exists? instructions: - text: Change the due date of assignment {id} in course {course_id} to {due_at}. slots: id: path.id course_id: path.course_id due_at: requestBody.assignment[due_at] - text: Set assignment {id} in course {course_id} to be worth {points_possible} points. slots: id: path.id course_id: path.course_id points_possible: requestBody.assignment[points_possible] - text: Rename existing assignment {id} in course {course_id} to {name}. slots: id: path.id course_id: path.course_id name: requestBody.assignment[name] method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{id}'].delete update: x-apievangelist-phrasing: intent: Delete an assignment effect: destructive questions: - Can I permanently remove an assignment from a course? - What does deleting an assignment return? instructions: - text: Delete assignment {id} from course {course_id}. slots: id: path.id course_id: path.course_id - text: Remove the assignment {id} in course {course_id}. slots: id: path.id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments'].get update: x-apievangelist-phrasing: intent: List a course's assignments effect: read questions: - Which assignments in my course are overdue or still upcoming? - Can I search a course's assignments by name? - How do I list only the assignments marked to post grades to the SIS? instructions: - text: List all assignments in course {course_id}. slots: course_id: path.course_id - text: Find assignments in course {course_id} whose name contains {search_term}. slots: course_id: path.course_id search_term: query.search_term - text: Show course {course_id} assignments in the {bucket} bucket. slots: course_id: path.course_id bucket: query.bucket method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments'].post update: x-apievangelist-phrasing: intent: Create an assignment effect: write questions: - How do I add a new assignment to a course? - Can I create an assignment that only accepts certain file extensions? - Is a newly created assignment published right away? instructions: - text: Create an assignment called {name} in course {course_id}. slots: name: requestBody.assignment[name] course_id: path.course_id - text: Add assignment {name} to course {course_id} worth {points_possible} points due {due_at}. slots: name: requestBody.assignment[name] course_id: path.course_id points_possible: requestBody.assignment[points_possible] due_at: requestBody.assignment[due_at] method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignment_groups/{assignment_group_id}/assignments'].get update: x-apievangelist-phrasing: intent: List assignments in an assignment group effect: read questions: - Which assignments belong to one assignment group, like Homework or Exams? - Can I list just the assignments inside a single weighted category? instructions: - text: List assignments in assignment group {assignment_group_id} of course {course_id}. slots: assignment_group_id: path.assignment_group_id course_id: path.course_id - text: Show group {assignment_group_id}'s assignments in course {course_id} ordered by {order_by}. slots: assignment_group_id: path.assignment_group_id course_id: path.course_id order_by: query.order_by method: generated generated: '2026-10-01' - target: $.paths['/v1/users/{user_id}/courses/{course_id}/assignments'].get update: x-apievangelist-phrasing: intent: List a student's assignments in a course effect: read questions: - How can a parent or advisor see the assignments for one particular student? - Can I view assignments as they apply to a specific user in a course? instructions: - text: List assignments for user {user_id} in course {course_id}. slots: user_id: path.user_id course_id: path.course_id - text: Show what student {user_id} has been assigned in course {course_id}. slots: user_id: path.user_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/duplicate'].post update: x-apievangelist-phrasing: intent: Duplicate an assignment effect: write questions: - Can I make a copy of an existing assignment? - What can the response look like after copying an assignment? instructions: - text: Duplicate assignment {assignment_id} in course {course_id}. slots: assignment_id: path.assignment_id course_id: path.course_id - text: Copy assignment {assignment_id} in course {course_id} and return the result as {result_type}. slots: assignment_id: path.assignment_id course_id: path.course_id result_type: requestBody.result_type method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/users/{user_id}/group_members'].get update: x-apievangelist-phrasing: intent: List a student's group mates on an assignment effect: read questions: - Who is in the same group as a student for a group assignment? - Can I get the names of a student's teammates on one assignment? instructions: - text: List group members of student {user_id} on assignment {assignment_id} in course {course_id}. slots: user_id: path.user_id assignment_id: path.assignment_id course_id: path.course_id - text: Who are student {user_id}'s teammates for assignment {assignment_id} in course {course_id}. slots: user_id: path.user_id assignment_id: path.assignment_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/bulk_update'].put update: x-apievangelist-phrasing: intent: Bulk update assignment dates effect: write questions: - Can I shift due dates for many assignments at once? - Is there a way to change availability dates across a whole course in one request? instructions: - text: Bulk update due and availability dates for several assignments in course {course_id}. slots: course_id: path.course_id - text: Push back the due dates of multiple assignments in course {course_id} in one request. slots: course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/overrides'].get update: x-apievangelist-phrasing: intent: List an assignment's overrides effect: read questions: - Which sections or students have a different due date for this assignment? - How do I see all date exceptions set on one assignment? instructions: - text: List overrides for assignment {assignment_id} in course {course_id}. slots: assignment_id: path.assignment_id course_id: path.course_id - text: Show every due date exception on assignment {assignment_id} in course {course_id}. slots: assignment_id: path.assignment_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/overrides'].post update: x-apievangelist-phrasing: intent: Create an assignment override effect: write questions: - Can I give one student an extended due date on an assignment? - 'What target does an override need: students, a group, or a section?' instructions: - text: Give students {student_ids} a due date of {due_at} on assignment {assignment_id} in course {course_id}. slots: student_ids: requestBody.assignment_override[student_ids] due_at: requestBody.assignment_override[due_at] assignment_id: path.assignment_id course_id: path.course_id - text: Create an override for section {course_section_id} on assignment {assignment_id} in course {course_id}. slots: course_section_id: requestBody.assignment_override[course_section_id] assignment_id: path.assignment_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}'].get update: x-apievangelist-phrasing: intent: Get one assignment override effect: read questions: - How do I check the dates on a specific override? - Can I see which students a single assignment override targets? instructions: - text: Show override {id} on assignment {assignment_id} in course {course_id}. slots: id: path.id assignment_id: path.assignment_id course_id: path.course_id - text: Get the details of assignment {assignment_id}'s override {id} in course {course_id}. slots: id: path.id assignment_id: path.assignment_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}'].put update: x-apievangelist-phrasing: intent: Update an assignment override effect: write questions: - If I update an override and leave out the due date, is it cleared? - Can I add students to an existing assignment override? instructions: - text: Change override {id} on assignment {assignment_id} in course {course_id} to lock at {lock_at}. slots: id: path.id assignment_id: path.assignment_id course_id: path.course_id lock_at: requestBody.assignment_override[lock_at] - text: Update override {id} on assignment {assignment_id} in course {course_id} to cover students {student_ids}. slots: id: path.id assignment_id: path.assignment_id course_id: path.course_id student_ids: requestBody.assignment_override[student_ids] method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}'].delete update: x-apievangelist-phrasing: intent: Delete an assignment override effect: destructive questions: - Can I remove an extension I gave a section? - Does deleting an override return what it used to contain? instructions: - text: Delete override {id} from assignment {assignment_id} in course {course_id}. slots: id: path.id assignment_id: path.assignment_id course_id: path.course_id - text: Remove the date exception {id} on assignment {assignment_id} in course {course_id}. slots: id: path.id assignment_id: path.assignment_id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/groups/{group_id}/assignments/{assignment_id}/override'].get update: x-apievangelist-phrasing: intent: Find a group's assignment override effect: read questions: - Does a student group have its own due date for an assignment? - Can I jump to the override for a particular group without knowing its id? instructions: - text: Find the override for group {group_id} on assignment {assignment_id}. slots: group_id: path.group_id assignment_id: path.assignment_id - text: Go to group {group_id}'s date override for assignment {assignment_id}. slots: group_id: path.group_id assignment_id: path.assignment_id method: generated generated: '2026-10-01' - target: $.paths['/v1/sections/{course_section_id}/assignments/{assignment_id}/override'].get update: x-apievangelist-phrasing: intent: Find a section's assignment override effect: read questions: - Does a course section have a special due date for an assignment? - Can I locate a section's override using only the section and assignment ids? instructions: - text: Find the override for section {course_section_id} on assignment {assignment_id}. slots: course_section_id: path.course_section_id assignment_id: path.assignment_id - text: Go to section {course_section_id}'s date override for assignment {assignment_id}. slots: course_section_id: path.course_section_id assignment_id: path.assignment_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/overrides'].get update: x-apievangelist-phrasing: intent: Fetch several overrides in a course at once effect: read questions: - Can I fetch many assignment overrides across different assignments in one call? - What comes back for an override id I can't see when batch fetching? instructions: - text: Fetch overrides {override_ids} for assignments {assignment_ids} in course {course_id}. slots: override_ids: query.assignment_overrides[id] assignment_ids: query.assignment_overrides[assignment_id] course_id: path.course_id - text: Batch look up overrides {override_ids} on assignments {assignment_ids} in course {course_id}. slots: override_ids: query.assignment_overrides[id] assignment_ids: query.assignment_overrides[assignment_id] course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/overrides'].put update: x-apievangelist-phrasing: intent: Update many overrides in a course together effect: write questions: - Can I update overrides on several assignments in a single all-or-nothing transaction? - If one override update in a batch fails, are the others still applied? instructions: - text: Batch update overrides {assignment_overrides} in course {course_id}. slots: assignment_overrides: requestBody.assignment_overrides course_id: path.course_id - text: Apply these override changes {assignment_overrides} across course {course_id} all at once. slots: assignment_overrides: requestBody.assignment_overrides course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/assignments/overrides'].post update: x-apievangelist-phrasing: intent: Create many overrides in a course together effect: write questions: - Can I create due date exceptions for several assignments in one request? - Is batch override creation all or nothing? instructions: - text: Batch create overrides {assignment_overrides} in course {course_id}. slots: assignment_overrides: requestBody.assignment_overrides course_id: path.course_id - text: Create these new date exceptions {assignment_overrides} for multiple assignments in course {course_id}. slots: assignment_overrides: requestBody.assignment_overrides course_id: path.course_id method: generated generated: '2026-10-01'