Canvas Outcome Groups API
The Outcome Groups API from Canvas — 22 operation(s) for outcome groups.
Operations 37
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
GET
/v1/global/root_outcome_group
Find the global root outcome group · Redirect to root outcome group for context
#
Ask an LLM
“Where does the global outcome hierarchy start in Canvas?”
“Is there a shortcut to the top-level outcome group shared across all institutions?”
Tell an agent
Take me to the global root outcome group.
Resolve the root of the global learning outcomes tree.
GET
/v1/accounts/{account_id}/root_outcome_group
Find an account's root outcome group · Redirect to root outcome group for context
#
Ask an LLM
“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?”
Tell an agent
Find the root outcome group for account {account_id}.
Resolve where account {account_id}'s outcome hierarchy begins.
GET
/v1/courses/{course_id}/root_outcome_group
Find a course's root outcome group · Redirect to root outcome group for context
#
Ask an LLM
“What is the top-level outcome group for my course?”
“Can I get the starting folder of a course's learning outcomes?”
Tell an agent
Find the root outcome group for course {course_id}.
Resolve where course {course_id}'s outcome hierarchy begins.
GET
/v1/accounts/{account_id}/outcome_groups
List every outcome group in an account · Get all outcome groups for context
#
Ask an LLM
“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?”
Tell an agent
List all outcome groups in account {account_id}.
Give me every outcome folder under account {account_id}, flattened.
GET
/v1/courses/{course_id}/outcome_groups
List every outcome group in a course · Get all outcome groups for context
#
Ask an LLM
“How can I see all outcome groups a course uses?”
“Is there a flat list of every outcome folder in one course?”
Tell an agent
List all outcome groups in course {course_id}.
Give me every outcome folder in course {course_id} as one list.
GET
/v1/accounts/{account_id}/outcome_group_links
List all outcome links in an account · Get all outcome links for context
#
Ask an LLM
“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?”
Tell an agent
List every outcome link across account {account_id}.
Show outcome links in account {account_id} using the {outcome_style} outcome style.
GET
/v1/courses/{course_id}/outcome_group_links
List all outcome links in a course · Get all outcome links for context
#
Ask an LLM
“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?”
Tell an agent
List every outcome link in course {course_id}.
Show course {course_id}'s outcome links with outcome groups in {outcome_group_style} style.
Ask an LLM
“What details are stored on a global outcome group?”
“Can I look up one shared global outcome folder by its id?”
Tell an agent
Show global outcome group {id}.
Fetch the title and description of global outcome group {id}.
Ask an LLM
“Can I rename a global outcome group?”
“Is it possible to move a global outcome group under a different parent?”
Tell an agent
Rename global outcome group {id} to {title}.
Move global outcome group {id} under parent group {parent_outcome_group_id}.
Ask an LLM
“What happens to child groups and links when I delete a global outcome group?”
“Can I remove a global outcome folder entirely?”
Tell an agent destructive · confirm first
Delete global outcome group {id}.
Remove global outcome group {id} along with its subgroups and links.
GET
/v1/accounts/{account_id}/outcome_groups/{id}
Get an outcome group in an account · Show an outcome group
#
Ask an LLM
“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?”
Tell an agent
Show outcome group {id} in account {account_id}.
Fetch account {account_id}'s outcome group {id} details.
PUT
/v1/accounts/{account_id}/outcome_groups/{id}
Update an outcome group in an account · Update an outcome group
#
Ask an LLM
“Can I change the description of an account outcome group?”
“How do I move an outcome folder in my account to another parent group?”
Tell an agent
Rename outcome group {id} in account {account_id} to {title}.
Set the vendor GUID of account {account_id} outcome group {id} to {vendor_guid}.
DELETE
/v1/accounts/{account_id}/outcome_groups/{id}
Delete an outcome group in an account · Delete an outcome group
#
Ask an LLM
“Does deleting an account outcome group also delete the outcomes inside it?”
“Can I clean up an unused outcome folder at the account level?”
Tell an agent destructive · confirm first
Delete outcome group {id} from account {account_id}.
Remove account {account_id}'s outcome folder {id} and everything beneath it.
GET
/v1/courses/{course_id}/outcome_groups/{id}
Get an outcome group in a course · Show an outcome group
#
Ask an LLM
“How can I inspect one outcome group in a course?”
“Can I see which parent a course outcome folder belongs to?”
Tell an agent
Show outcome group {id} in course {course_id}.
Fetch course {course_id}'s outcome group {id} details.
PUT
/v1/courses/{course_id}/outcome_groups/{id}
Update an outcome group in a course · Update an outcome group
#
Ask an LLM
“Can a teacher retitle an outcome group inside their course?”
“How do I reparent an outcome folder within a course?”
Tell an agent
Rename outcome group {id} in course {course_id} to {title}.
Move course {course_id} outcome group {id} under group {parent_outcome_group_id}.
DELETE
/v1/courses/{course_id}/outcome_groups/{id}
Delete an outcome group in a course · Delete an outcome group
#
Ask an LLM
“Will removing a course outcome group delete outcomes that are linked elsewhere?”
“Can I delete an outcome folder from a single course?”
Tell an agent destructive · confirm first
Delete outcome group {id} from course {course_id}.
Remove course {course_id}'s outcome folder {id} with its sub-folders.
GET
/v1/global/outcome_groups/{id}/outcomes
List outcomes linked in a global group · List linked outcomes
#
Ask an LLM
“Which outcomes sit directly inside a global outcome group?”
“Can I list the immediate outcome links of a shared global folder?”
Tell an agent
List the outcomes linked directly in global outcome group {id}.
Show global group {id}'s outcomes in {outcome_style} detail.
POST
/v1/global/outcome_groups/{id}/outcomes
Add an outcome to a global group · Create/link an outcome
#
Ask an LLM
“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?”
Tell an agent
Create outcome {title} in global outcome group {id}.
Link existing outcome {outcome_id} into global group {id}.
GET
/v1/accounts/{account_id}/outcome_groups/{id}/outcomes
List outcomes linked in an account group · List linked outcomes
#
Ask an LLM
“What outcomes are directly inside one of my account's outcome groups?”
“Is the list of outcomes in an account outcome folder paginated?”
Tell an agent
List outcomes linked in group {id} of account {account_id}.
Show the immediate outcome links under account {account_id} folder {id}.
POST
/v1/accounts/{account_id}/outcome_groups/{id}/outcomes
Add an outcome to an account group · Create/link an outcome
#
Ask an LLM
“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?”
Tell an agent
Create outcome {title} in group {id} of account {account_id}.
Create account {account_id} outcome {title} in group {id} with mastery at {mastery_points} points.
GET
/v1/courses/{course_id}/outcome_groups/{id}/outcomes
List outcomes linked in a course group · List linked outcomes
#
Ask an LLM
“Which outcomes are attached directly to a course outcome group?”
“Can I get the outcome links in one course folder with full outcome details?”
Tell an agent
List outcomes linked in group {id} of course {course_id}.
Show course {course_id} group {id} outcomes in {outcome_style} style.
POST
/v1/courses/{course_id}/outcome_groups/{id}/outcomes
Add an outcome to a course group · Create/link an outcome
#
Ask an LLM
“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?”
Tell an agent
Create outcome {title} in group {id} of course {course_id}.
Link outcome {outcome_id} into course {course_id} group {id}, moving it from group {move_from}.
PUT
/v1/global/outcome_groups/{id}/outcomes/{outcome_id}
Link a specific outcome into a global group · Create/link an outcome
#
Ask an LLM
“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?”
Tell an agent
Put outcome {outcome_id} into global outcome group {id}.
Link outcome {outcome_id} under global group {id} and retitle it {title}.
DELETE
/v1/global/outcome_groups/{id}/outcomes/{outcome_id}
Unlink an outcome from a global group · Unlink an outcome
#
Ask an LLM
“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?”
Tell an agent destructive · confirm first
Unlink outcome {outcome_id} from global outcome group {id}.
Detach outcome {outcome_id} from global folder {id}.
PUT
/v1/accounts/{account_id}/outcome_groups/{id}/outcomes/{outcome_id}
Link a specific outcome into an account group · Create/link an outcome
#
Ask an LLM
“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?”
Tell an agent
Put outcome {outcome_id} into group {id} of account {account_id}.
Move outcome {outcome_id} from group {move_from} into account {account_id} group {id}.
DELETE
/v1/accounts/{account_id}/outcome_groups/{id}/outcomes/{outcome_id}
Unlink an outcome from an account group · Unlink an outcome
#
Ask an LLM
“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?”
Tell an agent destructive · confirm first
Unlink outcome {outcome_id} from group {id} in account {account_id}.
Detach outcome {outcome_id} from account {account_id} folder {id}.
PUT
/v1/courses/{course_id}/outcome_groups/{id}/outcomes/{outcome_id}
Link a specific outcome into a course group · Create/link an outcome
#
Ask an LLM
“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?”
Tell an agent
Put outcome {outcome_id} into group {id} of course {course_id}.
Link outcome {outcome_id} into course {course_id} group {id} with display name {display_name}.
DELETE
/v1/courses/{course_id}/outcome_groups/{id}/outcomes/{outcome_id}
Unlink an outcome from a course group · Unlink an outcome
#
Ask an LLM
“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?”
Tell an agent destructive · confirm first
Unlink outcome {outcome_id} from group {id} in course {course_id}.
Detach outcome {outcome_id} from course {course_id} folder {id}.
GET
/v1/global/outcome_groups/{id}/subgroups
List subgroups of a global outcome group · List subgroups
#
Ask an LLM
“What child folders sit under a global outcome group?”
“Can I browse the global outcome tree one level at a time?”
Tell an agent
List the subgroups of global outcome group {id}.
Show the immediate child groups beneath global group {id}.
POST
/v1/global/outcome_groups/{id}/subgroups
Create a subgroup in a global outcome group · Create a subgroup
#
Ask an LLM
“How do I add a new empty folder inside a global outcome group?”
“Can I give a new global outcome subgroup a vendor GUID?”
Tell an agent
Create subgroup {title} under global outcome group {id}.
Add global subgroup {title} beneath {id} with vendor GUID {vendor_guid}.
GET
/v1/accounts/{account_id}/outcome_groups/{id}/subgroups
List subgroups of an account outcome group · List subgroups
#
Ask an LLM
“Which child outcome groups are nested under an account outcome group?”
“Can I walk the outcome folder tree in my account level by level?”
Tell an agent
List subgroups of group {id} in account {account_id}.
Show child groups beneath account {account_id} outcome folder {id}.
POST
/v1/accounts/{account_id}/outcome_groups/{id}/subgroups
Create a subgroup in an account outcome group · Create a subgroup
#
Ask an LLM
“How do I create a nested outcome folder in my account?”
“Can I add a description when I create an account outcome subgroup?”
Tell an agent
Create subgroup {title} under group {id} in account {account_id}.
Add subgroup {title} to account {account_id} folder {id} described as {description}.
GET
/v1/courses/{course_id}/outcome_groups/{id}/subgroups
List subgroups of a course outcome group · List subgroups
#
Ask an LLM
“What nested outcome groups does a course outcome folder contain?”
“Can I list just the direct child folders of a course outcome group?”
Tell an agent
List subgroups of group {id} in course {course_id}.
Show child groups beneath course {course_id} outcome folder {id}.
POST
/v1/courses/{course_id}/outcome_groups/{id}/subgroups
Create a subgroup in a course outcome group · Create a subgroup
#
Ask an LLM
“How can a teacher organize course outcomes into a new sub-folder?”
“Does a new course outcome subgroup start empty?”
Tell an agent
Create subgroup {title} under group {id} in course {course_id}.
Add an empty course {course_id} outcome folder named {title} inside {id}.
POST
/v1/global/outcome_groups/{id}/import
Import an outcome group into a global group · Import an outcome group
#
Ask an LLM
“Can I copy an existing outcome group into a global outcome group?”
“Is there an asynchronous option when importing outcome groups globally?”
Tell an agent
Import outcome group {source_outcome_group_id} into global group {id}.
Import group {source_outcome_group_id} under global group {id} as a background job set to {async}.
POST
/v1/accounts/{account_id}/outcome_groups/{id}/import
Import an outcome group into an account · Import an outcome group
#
Ask an LLM
“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?”
Tell an agent
Import outcome group {source_outcome_group_id} into group {id} of account {account_id}.
Copy source group {source_outcome_group_id} as a new subgroup of account {account_id} folder {id}.
POST
/v1/courses/{course_id}/outcome_groups/{id}/import
Import an outcome group into a course · Import an outcome group
#
Ask an LLM
“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?”
Tell an agent
Import outcome group {source_outcome_group_id} into group {id} of course {course_id}.
Copy source group {source_outcome_group_id} into course {course_id} folder {id} asynchronously ({async}).
Documentation
📖
Documentation
https://canvas.instructure.com/doc/api/
📖
Authentication
https://canvas.instructure.com/doc/api/file.oauth.html
📖
APIReference
https://canvas.instructure.com/doc/api/
📖
RateLimits
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/rate-limits/canvas-rate-limits.yml
Specifications
SDKs
Other Resources
🔗
Pagination
https://canvas.instructure.com/doc/api/file.pagination.html
🔗
Swagger
https://canvas.instructure.com/doc/api/api-docs.json
🔗
OAuthScopes
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/scopes/canvas-scopes.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/errors/canvas-problem-types.yml
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/data-model/canvas-data-model.yml