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/global/outcome_groups/{id} Get a global outcome group · Show an outcome group #
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}.
PUT /v1/global/outcome_groups/{id} Update a global outcome group · Update an outcome group #
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}.
DELETE /v1/global/outcome_groups/{id} Delete a global outcome group · Delete an outcome group #
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.
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}.
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.
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}).

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/canvas:canvas-outcome-groups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

canvas-outcome-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canvas LMS REST Outcome Groups API
  version: v1
  summary: The complete Canvas LMS REST API, converted from the Swagger 1.2 documents Instructure publishes under https://canvas.instructure.com/doc/api/.
  description: The Canvas LMS REST API covers courses, assignments, quizzes, grades, users, enrollments, accounts, files, modules, rubrics, submissions, SIS imports, LTI, analytics and account administration.
  contact:
    name: Instructure Canvas
    url: https://canvas.instructure.com/doc/api/
  license:
    name: AGPL-3.0
    url: https://github.com/instructure/canvas-lms/blob/master/LICENSE
servers:
- url: https://canvas.instructure.com/api
  description: Instructure-hosted Canvas (canvas.instructure.com)
- url: https://{canvas_host}/api
  description: Any Canvas instance; Canvas is multi-tenant and self-hostable, so the host is the institution's Canvas domain.
  variables:
    canvas_host:
      default: canvas.instructure.com
      description: Your institution's Canvas hostname, e.g. school.instructure.com
security:
- bearerAuth: []
- oauth2: []
tags:


# --- truncated at 32 KB (89 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/openapi/canvas-outcome-groups-api-openapi.yml