Canvas · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canvas LMS REST Accounts API
22 actions
22 updates
phrasing
extends
openapi/canvas-accounts-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Canvas's API. It is a proposal applied on top of the contract, not a document Canvas publishes.
What the actions change
x-apievangelist-phrasing
Targets 22 · first 16 shown; the file carries all of them
$.info
$.paths['/v1/accounts'].get
$.paths['/v1/horizon_accounts'].get
$.paths['/v1/manageable_accounts'].get
$.paths['/v1/course_creation_accounts'].get
$.paths['/v1/course_accounts'].get
$.paths['/v1/accounts/{id}'].get
$.paths['/v1/accounts/{id}'].put
$.paths['/v1/accounts/{account_id}/settings'].get
$.paths['/v1/settings/environment'].get
$.paths['/v1/accounts/{account_id}/permissions'].get
$.paths['/v1/accounts/{account_id}/sub_accounts'].get
$.paths['/v1/accounts/{account_id}/sub_accounts'].post
$.paths['/v1/accounts/{account_id}/terms_of_service'].get
$.paths['/v1/accounts/{account_id}/help_links'].get
$.paths['/v1/manually_created_courses_account'].get
OpenAPI Overlay
# 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 Accounts API
version: 1.0.0
extends: openapi/canvas-accounts-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: 21
- target: $.paths['/v1/accounts'].get
update:
x-apievangelist-phrasing:
intent: List accounts I can view or manage
effect: read
questions:
- Which Canvas accounts am I an admin of?
- Why do students and teachers get an empty list of accounts?
instructions:
- text: List every account I can view or manage.
- text: List my admin accounts and include {include}.
slots:
include: query.include
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/horizon_accounts'].get
update:
x-apievangelist-phrasing:
intent: List accounts with Horizon enabled
effect: read
questions:
- Which of my accounts have the Horizon setting turned on?
- Is Site Admin included when I list Horizon accounts?
instructions:
- text: List the Horizon accounts I have access to.
- text: Show my Horizon-enabled accounts including {include}.
slots:
include: query.include
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/manageable_accounts'].get
update:
x-apievangelist-phrasing:
intent: List accounts where I can manage courses
effect: read
questions:
- In which accounts do I have permission to create or manage courses as an admin?
- What accounts can I manage courses in?
instructions:
- text: List the manageable accounts where I can administer courses.
- text: Show the accounts I'm allowed to manage courses in.
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/course_creation_accounts'].get
update:
x-apievangelist-phrasing:
intent: List accounts where I can create courses
effect: read
questions:
- Where am I allowed to create a new course?
- Which accounts give me course-creation permission?
instructions:
- text: List the accounts I can create courses in.
- text: Show where I have permission to start a new course.
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/course_accounts'].get
update:
x-apievangelist-phrasing:
intent: List accounts visible through my teaching roles
effect: read
questions:
- As a teacher or TA, which accounts can I see through my course enrollments?
- What accounts do my designer enrollments give me visibility into?
instructions:
- text: List the accounts I can see through my teacher, TA or designer enrollments.
- text: Show the course-admin accounts tied to my enrollments.
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get details of an account
effect: read
questions:
- What are the details of a specific account, by ID or SIS ID?
- Can I look up an account using its SIS account ID?
instructions:
- text: Get account {id}.
slots:
id: path.id
- text: Show me the details for the account with ID {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update an account's name and settings
effect: write
questions:
- How do I rename an account or change its default time zone?
- Can I change the default storage quota for courses in an account?
- Is it possible to lock announcements for every course in an account?
instructions:
- text: Rename account {id} to {name}.
slots:
id: path.id
name: requestBody.account[name]
- text: Set the default time zone of account {id} to {default_time_zone}.
slots:
id: path.id
default_time_zone: requestBody.account[default_time_zone]
- text: Change account {id}'s default course storage quota to {default_storage_quota_mb} MB.
slots:
id: path.id
default_storage_quota_mb: requestBody.account[default_storage_quota_mb]
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/settings'].get
update:
x-apievangelist-phrasing:
intent: Get an account's settings
effect: read
questions:
- What settings are configured on my account?
- Which permission do I need to read an account's settings?
instructions:
- text: Get the settings for account {account_id}.
slots:
account_id: path.account_id
- text: Show me how account {account_id} is configured.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/settings/environment'].get
update:
x-apievangelist-phrasing:
intent: Get global environment settings
effect: read
questions:
- What global settings does the root account expose to the web interface?
- Can I read the ENV.SETTINGS values through the API?
instructions:
- text: List the environment settings for the root account.
- text: Show the global ENV settings the web UI uses.
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/permissions'].get
update:
x-apievangelist-phrasing:
intent: Check my permissions on an account
effect: read
questions:
- Do I have a given permission in this account?
- Can I check permissions against the domain root account using self?
instructions:
- text: Check whether I have {permissions} on account {account_id}.
slots:
permissions: query.permissions
account_id: path.account_id
- text: Show my permissions on account {account_id}.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sub_accounts'].get
update:
x-apievangelist-phrasing:
intent: List an account's sub-accounts
effect: read
questions:
- What sub-accounts sit under this account?
- Can I list sub-accounts recursively, all the way down the tree?
instructions:
- text: List the sub-accounts of account {account_id}.
slots:
account_id: path.account_id
- text: List every nested sub-account under account {account_id}, recursively set to {recursive}.
slots:
account_id: path.account_id
recursive: query.recursive
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sub_accounts'].post
update:
x-apievangelist-phrasing:
intent: Create a sub-account
effect: write
questions:
- How do I add a new department as a sub-account?
- Can I give a new sub-account its own SIS ID when I create it?
instructions:
- text: Create a sub-account called {name} under account {account_id}.
slots:
name: requestBody.account[name]
account_id: path.account_id
- text: Add sub-account {name} with SIS ID {sis_account_id} to account {account_id}.
slots:
name: requestBody.account[name]
sis_account_id: requestBody.account[sis_account_id]
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/terms_of_service'].get
update:
x-apievangelist-phrasing:
intent: Get an account's terms of service
effect: read
questions:
- What terms of service does this account show users?
- Where can I read the account's terms of use?
instructions:
- text: Get the terms of service for account {account_id}.
slots:
account_id: path.account_id
- text: Show account {account_id}'s terms of use.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/help_links'].get
update:
x-apievangelist-phrasing:
intent: Get an account's help links
effect: read
questions:
- What help links are set up in the account's Help menu?
- Which support links does my institution show users?
instructions:
- text: Get the help links for account {account_id}.
slots:
account_id: path.account_id
- text: Show the help menu links configured on account {account_id}.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/manually_created_courses_account'].get
update:
x-apievangelist-phrasing:
intent: Get the manually-created courses sub-account
effect: read
questions:
- Which sub-account holds courses that were created by hand?
- Where do manually created courses land in the root account?
instructions:
- text: Get the manually-created courses sub-account for the root account.
- text: Show the sub-account that holds hand-made courses.
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/courses'].get
update:
x-apievangelist-phrasing:
intent: List and search courses in an account
effect: read
questions:
- What courses exist in this account?
- Can I find only published courses in a given term?
- Is there a way to search an account's courses by name or teacher?
instructions:
- text: List the courses in account {account_id}.
slots:
account_id: path.account_id
- text: Search account {account_id} for courses matching {search_term}.
slots:
account_id: path.account_id
search_term: query.search_term
- text: List courses in account {account_id} for term {enrollment_term_id}.
slots:
account_id: path.account_id
enrollment_term_id: query.enrollment_term_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/users/{user_id}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a user from the root account
effect: destructive
questions:
- How do I delete a user from my institution's root account?
- Will removing a user here also remove them from other root accounts?
instructions:
- text: Delete user {user_id} from root account {account_id}.
slots:
user_id: path.user_id
account_id: path.account_id
- text: Remove user {user_id}'s record from account {account_id}.
slots:
user_id: path.user_id
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/users'].delete
update:
x-apievangelist-phrasing:
intent: Remove several users from the root account
effect: destructive
questions:
- Can I delete a batch of users from the root account in one call?
- How do I bulk-remove users from my institution?
instructions:
- text: Delete multiple users from root account {account_id}.
slots:
account_id: path.account_id
- text: Bulk-remove the users I list from account {account_id}.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/users/bulk_update'].put
update:
x-apievangelist-phrasing:
intent: Update several users at once
effect: write
questions:
- How do I apply the same change to many users in bulk?
- Can I update attributes for a list of user IDs in one request?
instructions:
- text: Bulk update users {user_ids} in account {account_id}.
slots:
user_ids: requestBody.user_ids
account_id: path.account_id
- text: Apply {user} to users {user_ids} in account {account_id}.
slots:
user: requestBody.user
user_ids: requestBody.user_ids
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/users/{user_id}/restore'].put
update:
x-apievangelist-phrasing:
intent: Restore a deleted user to the root account
effect: write
questions:
- How do I undo the deletion of a user from the root account?
- Can I bring back a deleted user along with their most recent login?
instructions:
- text: Restore deleted user {user_id} in account {account_id}.
slots:
user_id: path.user_id
account_id: path.account_id
- text: Undo the removal of user {user_id} from root account {account_id}.
slots:
user_id: path.user_id
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sub_accounts/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a sub-account
effect: destructive
questions:
- How do I delete a sub-account that's no longer used?
- Why can't I delete a sub-account that still has active courses?
instructions:
- text: Delete sub-account {id} from account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Remove the empty sub-account {id} under {account_id}.
slots:
id: path.id
account_id: path.account_id
method: generated
generated: '2026-10-01'