# 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 Outcome Groups API version: 1.0.0 extends: openapi/canvas-outcome-groups-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: 37 - target: $.paths['/v1/global/root_outcome_group'].get update: x-apievangelist-phrasing: intent: Find the global root outcome group effect: read questions: - Where does the global outcome hierarchy start in Canvas? - Is there a shortcut to the top-level outcome group shared across all institutions? instructions: - text: Take me to the global root outcome group. - text: Resolve the root of the global learning outcomes tree. method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/root_outcome_group'].get update: x-apievangelist-phrasing: intent: Find an account's root outcome group effect: read questions: - Which outcome group sits at the top of my account's outcome tree? - Can I jump straight to the root outcome folder for a sub-account? instructions: - text: Find the root outcome group for account {account_id}. slots: account_id: path.account_id - text: Resolve where account {account_id}'s outcome hierarchy begins. slots: account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/root_outcome_group'].get update: x-apievangelist-phrasing: intent: Find a course's root outcome group effect: read questions: - What is the top-level outcome group for my course? - Can I get the starting folder of a course's learning outcomes? instructions: - text: Find the root outcome group for course {course_id}. slots: course_id: path.course_id - text: Resolve where course {course_id}'s outcome hierarchy begins. slots: course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups'].get update: x-apievangelist-phrasing: intent: List every outcome group in an account effect: read questions: - How can I see all outcome groups defined at the account level? - Can I pull a flat list of every outcome folder in a sub-account? instructions: - text: List all outcome groups in account {account_id}. slots: account_id: path.account_id - text: Give me every outcome folder under account {account_id}, flattened. slots: account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups'].get update: x-apievangelist-phrasing: intent: List every outcome group in a course effect: read questions: - How can I see all outcome groups a course uses? - Is there a flat list of every outcome folder in one course? instructions: - text: List all outcome groups in course {course_id}. slots: course_id: path.course_id - text: Give me every outcome folder in course {course_id} as one list. slots: course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_group_links'].get update: x-apievangelist-phrasing: intent: List all outcome links in an account effect: read questions: - How do I find every outcome linked anywhere in an account? - Can I get account outcome links with abbreviated outcome details instead of full ones? instructions: - text: List every outcome link across account {account_id}. slots: account_id: path.account_id - text: Show outcome links in account {account_id} using the {outcome_style} outcome style. slots: account_id: path.account_id outcome_style: query.outcome_style method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_group_links'].get update: x-apievangelist-phrasing: intent: List all outcome links in a course effect: read questions: - Which outcomes are linked into my course, across all its groups? - Can I control how much outcome group detail comes back with each course outcome link? instructions: - text: List every outcome link in course {course_id}. slots: course_id: path.course_id - text: Show course {course_id}'s outcome links with outcome groups in {outcome_group_style} style. slots: course_id: path.course_id outcome_group_style: query.outcome_group_style method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}'].get update: x-apievangelist-phrasing: intent: Get a global outcome group effect: read questions: - What details are stored on a global outcome group? - Can I look up one shared global outcome folder by its id? instructions: - text: Show global outcome group {id}. slots: id: path.id - text: Fetch the title and description of global outcome group {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}'].put update: x-apievangelist-phrasing: intent: Update a global outcome group effect: write questions: - Can I rename a global outcome group? - Is it possible to move a global outcome group under a different parent? instructions: - text: Rename global outcome group {id} to {title}. slots: id: path.id title: requestBody.title - text: Move global outcome group {id} under parent group {parent_outcome_group_id}. slots: id: path.id parent_outcome_group_id: requestBody.parent_outcome_group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a global outcome group effect: destructive questions: - What happens to child groups and links when I delete a global outcome group? - Can I remove a global outcome folder entirely? instructions: - text: Delete global outcome group {id}. slots: id: path.id - text: Remove global outcome group {id} along with its subgroups and links. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}'].get update: x-apievangelist-phrasing: intent: Get an outcome group in an account effect: read questions: - How do I view the details of one outcome group in my account? - Can I check the parent and description of an account-level outcome folder? instructions: - text: Show outcome group {id} in account {account_id}. slots: id: path.id account_id: path.account_id - text: Fetch account {account_id}'s outcome group {id} details. slots: id: path.id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}'].put update: x-apievangelist-phrasing: intent: Update an outcome group in an account effect: write questions: - Can I change the description of an account outcome group? - How do I move an outcome folder in my account to another parent group? instructions: - text: Rename outcome group {id} in account {account_id} to {title}. slots: id: path.id account_id: path.account_id title: requestBody.title - text: Set the vendor GUID of account {account_id} outcome group {id} to {vendor_guid}. slots: id: path.id account_id: path.account_id vendor_guid: requestBody.vendor_guid method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}'].delete update: x-apievangelist-phrasing: intent: Delete an outcome group in an account effect: destructive questions: - Does deleting an account outcome group also delete the outcomes inside it? - Can I clean up an unused outcome folder at the account level? instructions: - text: Delete outcome group {id} from account {account_id}. slots: id: path.id account_id: path.account_id - text: Remove account {account_id}'s outcome folder {id} and everything beneath it. slots: id: path.id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}'].get update: x-apievangelist-phrasing: intent: Get an outcome group in a course effect: read questions: - How can I inspect one outcome group in a course? - Can I see which parent a course outcome folder belongs to? instructions: - text: Show outcome group {id} in course {course_id}. slots: id: path.id course_id: path.course_id - text: Fetch course {course_id}'s outcome group {id} details. slots: id: path.id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}'].put update: x-apievangelist-phrasing: intent: Update an outcome group in a course effect: write questions: - Can a teacher retitle an outcome group inside their course? - How do I reparent an outcome folder within a course? instructions: - text: Rename outcome group {id} in course {course_id} to {title}. slots: id: path.id course_id: path.course_id title: requestBody.title - text: Move course {course_id} outcome group {id} under group {parent_outcome_group_id}. slots: id: path.id course_id: path.course_id parent_outcome_group_id: requestBody.parent_outcome_group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}'].delete update: x-apievangelist-phrasing: intent: Delete an outcome group in a course effect: destructive questions: - Will removing a course outcome group delete outcomes that are linked elsewhere? - Can I delete an outcome folder from a single course? instructions: - text: Delete outcome group {id} from course {course_id}. slots: id: path.id course_id: path.course_id - text: Remove course {course_id}'s outcome folder {id} with its sub-folders. slots: id: path.id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}/outcomes'].get update: x-apievangelist-phrasing: intent: List outcomes linked in a global group effect: read questions: - Which outcomes sit directly inside a global outcome group? - Can I list the immediate outcome links of a shared global folder? instructions: - text: List the outcomes linked directly in global outcome group {id}. slots: id: path.id - text: Show global group {id}'s outcomes in {outcome_style} detail. slots: id: path.id outcome_style: query.outcome_style method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}/outcomes'].post update: x-apievangelist-phrasing: intent: Add an outcome to a global group effect: write questions: - How do I create a new outcome inside a global outcome group? - Can I link an existing outcome into a global folder by posting its id? instructions: - text: Create outcome {title} in global outcome group {id}. slots: id: path.id title: requestBody.title - text: Link existing outcome {outcome_id} into global group {id}. slots: id: path.id outcome_id: requestBody.outcome_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}/outcomes'].get update: x-apievangelist-phrasing: intent: List outcomes linked in an account group effect: read questions: - What outcomes are directly inside one of my account's outcome groups? - Is the list of outcomes in an account outcome folder paginated? instructions: - text: List outcomes linked in group {id} of account {account_id}. slots: id: path.id account_id: path.account_id - text: Show the immediate outcome links under account {account_id} folder {id}. slots: id: path.id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}/outcomes'].post update: x-apievangelist-phrasing: intent: Add an outcome to an account group effect: write questions: - How do I add a brand-new outcome to an account outcome group? - Can I set mastery points and a calculation method when creating an account outcome? instructions: - text: Create outcome {title} in group {id} of account {account_id}. slots: id: path.id account_id: path.account_id title: requestBody.title - text: Create account {account_id} outcome {title} in group {id} with mastery at {mastery_points} points. slots: id: path.id account_id: path.account_id title: requestBody.title mastery_points: requestBody.mastery_points - text: Link outcome {outcome_id} into account {account_id} group {id} via POST. slots: id: path.id account_id: path.account_id outcome_id: requestBody.outcome_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}/outcomes'].get update: x-apievangelist-phrasing: intent: List outcomes linked in a course group effect: read questions: - Which outcomes are attached directly to a course outcome group? - Can I get the outcome links in one course folder with full outcome details? instructions: - text: List outcomes linked in group {id} of course {course_id}. slots: id: path.id course_id: path.course_id - text: Show course {course_id} group {id} outcomes in {outcome_style} style. slots: id: path.id course_id: path.course_id outcome_style: query.outcome_style method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}/outcomes'].post update: x-apievangelist-phrasing: intent: Add an outcome to a course group effect: write questions: - How can a teacher create a new learning outcome inside a course group? - Can I move an outcome from another group into a course folder while linking it? instructions: - text: Create outcome {title} in group {id} of course {course_id}. slots: id: path.id course_id: path.course_id title: requestBody.title - text: Link outcome {outcome_id} into course {course_id} group {id}, moving it from group {move_from}. slots: id: path.id course_id: path.course_id outcome_id: requestBody.outcome_id move_from: requestBody.move_from method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}/outcomes/{outcome_id}'].put update: x-apievangelist-phrasing: intent: Link a specific outcome into a global group effect: write questions: - Can I attach a known outcome to a global outcome group by its URL? - Is there a way to relink an outcome into a global folder and edit its title in one call? instructions: - text: Put outcome {outcome_id} into global outcome group {id}. slots: id: path.id outcome_id: path.outcome_id - text: Link outcome {outcome_id} under global group {id} and retitle it {title}. slots: id: path.id outcome_id: path.outcome_id title: requestBody.title method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}/outcomes/{outcome_id}'].delete update: x-apievangelist-phrasing: intent: Unlink an outcome from a global group effect: destructive questions: - Does unlinking an outcome from a global group delete the outcome itself? - Why can't I unlink an outcome that is aligned to content in a global group? instructions: - text: Unlink outcome {outcome_id} from global outcome group {id}. slots: id: path.id outcome_id: path.outcome_id - text: Detach outcome {outcome_id} from global folder {id}. slots: id: path.id outcome_id: path.outcome_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}/outcomes/{outcome_id}'].put update: x-apievangelist-phrasing: intent: Link a specific outcome into an account group effect: write questions: - Can I attach an existing outcome to an account outcome group by addressing it directly? - How do I move a known outcome into a different outcome folder in my account? instructions: - text: Put outcome {outcome_id} into group {id} of account {account_id}. slots: id: path.id account_id: path.account_id outcome_id: path.outcome_id - text: Move outcome {outcome_id} from group {move_from} into account {account_id} group {id}. slots: id: path.id account_id: path.account_id outcome_id: path.outcome_id move_from: requestBody.move_from method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}/outcomes/{outcome_id}'].delete update: x-apievangelist-phrasing: intent: Unlink an outcome from an account group effect: destructive questions: - What happens when I unlink the last link to an outcome in my account? - Can I remove an outcome from one account outcome folder without deleting it elsewhere? instructions: - text: Unlink outcome {outcome_id} from group {id} in account {account_id}. slots: id: path.id account_id: path.account_id outcome_id: path.outcome_id - text: Detach outcome {outcome_id} from account {account_id} folder {id}. slots: id: path.id account_id: path.account_id outcome_id: path.outcome_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}/outcomes/{outcome_id}'].put update: x-apievangelist-phrasing: intent: Link a specific outcome into a course group effect: write questions: - Can I pull an account outcome into one of my course outcome groups by its id? - Is it possible to set a display name while linking a known outcome into a course? instructions: - text: Put outcome {outcome_id} into group {id} of course {course_id}. slots: id: path.id course_id: path.course_id outcome_id: path.outcome_id - text: Link outcome {outcome_id} into course {course_id} group {id} with display name {display_name}. slots: id: path.id course_id: path.course_id outcome_id: path.outcome_id display_name: requestBody.display_name method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}/outcomes/{outcome_id}'].delete update: x-apievangelist-phrasing: intent: Unlink an outcome from a course group effect: destructive questions: - Can a teacher remove an outcome from a course group if it is aligned to an assignment? - Does unlinking a course outcome delete the account copy too? instructions: - text: Unlink outcome {outcome_id} from group {id} in course {course_id}. slots: id: path.id course_id: path.course_id outcome_id: path.outcome_id - text: Detach outcome {outcome_id} from course {course_id} folder {id}. slots: id: path.id course_id: path.course_id outcome_id: path.outcome_id method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}/subgroups'].get update: x-apievangelist-phrasing: intent: List subgroups of a global outcome group effect: read questions: - What child folders sit under a global outcome group? - Can I browse the global outcome tree one level at a time? instructions: - text: List the subgroups of global outcome group {id}. slots: id: path.id - text: Show the immediate child groups beneath global group {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}/subgroups'].post update: x-apievangelist-phrasing: intent: Create a subgroup in a global outcome group effect: write questions: - How do I add a new empty folder inside a global outcome group? - Can I give a new global outcome subgroup a vendor GUID? instructions: - text: Create subgroup {title} under global outcome group {id}. slots: id: path.id title: requestBody.title - text: Add global subgroup {title} beneath {id} with vendor GUID {vendor_guid}. slots: id: path.id title: requestBody.title vendor_guid: requestBody.vendor_guid method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}/subgroups'].get update: x-apievangelist-phrasing: intent: List subgroups of an account outcome group effect: read questions: - Which child outcome groups are nested under an account outcome group? - Can I walk the outcome folder tree in my account level by level? instructions: - text: List subgroups of group {id} in account {account_id}. slots: id: path.id account_id: path.account_id - text: Show child groups beneath account {account_id} outcome folder {id}. slots: id: path.id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}/subgroups'].post update: x-apievangelist-phrasing: intent: Create a subgroup in an account outcome group effect: write questions: - How do I create a nested outcome folder in my account? - Can I add a description when I create an account outcome subgroup? instructions: - text: Create subgroup {title} under group {id} in account {account_id}. slots: id: path.id account_id: path.account_id title: requestBody.title - text: Add subgroup {title} to account {account_id} folder {id} described as {description}. slots: id: path.id account_id: path.account_id title: requestBody.title description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}/subgroups'].get update: x-apievangelist-phrasing: intent: List subgroups of a course outcome group effect: read questions: - What nested outcome groups does a course outcome folder contain? - Can I list just the direct child folders of a course outcome group? instructions: - text: List subgroups of group {id} in course {course_id}. slots: id: path.id course_id: path.course_id - text: Show child groups beneath course {course_id} outcome folder {id}. slots: id: path.id course_id: path.course_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}/subgroups'].post update: x-apievangelist-phrasing: intent: Create a subgroup in a course outcome group effect: write questions: - How can a teacher organize course outcomes into a new sub-folder? - Does a new course outcome subgroup start empty? instructions: - text: Create subgroup {title} under group {id} in course {course_id}. slots: id: path.id course_id: path.course_id title: requestBody.title - text: Add an empty course {course_id} outcome folder named {title} inside {id}. slots: id: path.id course_id: path.course_id title: requestBody.title method: generated generated: '2026-10-01' - target: $.paths['/v1/global/outcome_groups/{id}/import'].post update: x-apievangelist-phrasing: intent: Import an outcome group into a global group effect: write questions: - Can I copy an existing outcome group into a global outcome group? - Is there an asynchronous option when importing outcome groups globally? instructions: - text: Import outcome group {source_outcome_group_id} into global group {id}. slots: id: path.id source_outcome_group_id: requestBody.source_outcome_group_id - text: Import group {source_outcome_group_id} under global group {id} as a background job set to {async}. slots: id: path.id source_outcome_group_id: requestBody.source_outcome_group_id async: requestBody.async method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/outcome_groups/{id}/import'].post update: x-apievangelist-phrasing: intent: Import an outcome group into an account effect: write questions: - How do I bring a whole outcome group from the global bank into my account? - Does importing an outcome group into an account copy the outcomes or just link them? instructions: - text: Import outcome group {source_outcome_group_id} into group {id} of account {account_id}. slots: id: path.id account_id: path.account_id source_outcome_group_id: requestBody.source_outcome_group_id - text: Copy source group {source_outcome_group_id} as a new subgroup of account {account_id} folder {id}. slots: id: path.id account_id: path.account_id source_outcome_group_id: requestBody.source_outcome_group_id method: generated generated: '2026-10-01' - target: $.paths['/v1/courses/{course_id}/outcome_groups/{id}/import'].post update: x-apievangelist-phrasing: intent: Import an outcome group into a course effect: write questions: - Can a teacher import an account's outcome group into their course? - What does a course get when I import an outcome group into it? instructions: - text: Import outcome group {source_outcome_group_id} into group {id} of course {course_id}. slots: id: path.id course_id: path.course_id source_outcome_group_id: requestBody.source_outcome_group_id - text: Copy source group {source_outcome_group_id} into course {course_id} folder {id} asynchronously ({async}). slots: id: path.id course_id: path.course_id source_outcome_group_id: requestBody.source_outcome_group_id async: requestBody.async method: generated generated: '2026-10-01'