The whole Canvas REST API in one Go binary — plus a local store, offline search, and cross-resource commands (roster, at-risk, standings) that no single Canvas endpoint returns.
canvas-pp-cli mirrors the full Canvas LMS REST surface as typed, agent-native commands and keeps a local SQLite mirror you can join and search offline. Beyond the endpoint wrappers every SDK ships, it adds joins Canvas never returns directly: 'roster' fuses enrollments, sections, and grades; 'at-risk' and 'to-grade' aggregate submissions across all your courses; 'standings' rolls grades up by term; 'audit-enrollments' finds account anomalies.
Created by @johnnyrobot.
Prefer to have this done for you? Skip to Let your coding agent set this up — paste one prompt and your agent handles install, credentials and verification.
canvas-pp-cli is all you need. The separate canvas-pp-mcp server is only for chat apps that can't run shell commands — see Use with chat apps.
brew tap johnnyrobot/tap
brew trust johnnyrobot/tap
brew install canvas-pp-cliInstalls both canvas-pp-cli and canvas-pp-mcp into the same prefix, which is what the MCP server needs to find its companion CLI.
Recent Homebrew refuses to load formulae from third-party taps until you trust them, so brew trust is required — without it brew install fails with "Refusing to load formula ... from untrusted tap".
Requires Go 1.26.5 or newer:
go install github.com/johnnyrobot/canvas-pp-cli/cmd/canvas-pp-cli@latestTo also install the MCP server binary:
go install github.com/johnnyrobot/canvas-pp-cli/cmd/canvas-pp-mcp@latestDownload a binary for your platform from the latest release. Builds are published for macOS, Linux and Windows on both amd64 and arm64.
On macOS, clear the Gatekeeper quarantine after downloading:
xattr -d com.apple.quarantine canvas-pp-cliOn Unix, mark it executable:
chmod +x canvas-pp-cligit clone https://github.com/johnnyrobot/canvas-pp-cli.git
cd canvas-pp-cli
make build # or: go build ./cmd/canvas-pp-cli
make build-all # CLI + MCP serverThe fastest path is to hand this to an agent. Paste this into Claude Code, Codex, Antigravity, or any agent that can run shell commands:
Install the Canvas LMS CLI from https://github.com/johnnyrobot/canvas-pp-cli and set it up for me.
go install github.com/johnnyrobot/canvas-pp-cli/cmd/canvas-pp-cli@latest— or, if Go isn't available, download the release archive for my platform and put the binary on my PATH.- Ask me for my Canvas host and an API token (Account → Settings → New Access Token), then set
CANVAS_BASE_URLandCANVAS_API_TOKEN.- Verify with
canvas-pp-cli doctor.- Read
SKILL.mdfrom the repo so you know the commands, then show me whatcanvas-pp-cli which "students at risk"returns.Use the CLI directly from the shell from now on — every command takes
--agentfor JSON output. Don't set up an MCP server; you have a terminal, so you don't need one.
That's the whole setup. There is no daemon and no config file to register — the CLI is the integration.
If your agent can run shell commands, just let it run the CLI. That covers Claude Code, Codex, Google Antigravity, Cursor, Aider, and anything else with terminal access. No MCP server, no wiring, nothing to keep running.
The CLI is built for this. Every command takes --agent for JSON plus non-interactive behavior, --select to project just the fields you want, and --dry-run to show what would happen. Point your agent at SKILL.md — it documents all ~1,000 endpoints' worth of commands with worked recipes.
The flow an agent should use is discover, then execute:
# 1. Find the right command from a plain-English description
canvas-pp-cli which "students at risk of failing"
# 2. Run it
canvas-pp-cli at-risk --course 12345 --since 14d --agent
# 3. Project only what you need, to keep context small
canvas-pp-cli roster 12345 --agent --select students.name,students.current_scorewhich exists precisely so an agent never has to hold a thousand endpoints in its head — it searches the command index and returns the handful that match, with a note on when to reach for each.
For repeated analysis, sync once and query locally instead of re-hitting the API:
canvas-pp-cli sync # hydrate the local SQLite mirror
canvas-pp-cli search "late work" # FTS5 full-text search over synced data
canvas-pp-cli tail # stream live changes by pollingsearch runs against the local mirror when the API has no search endpoint, and falls back to local automatically on a network failure — so an agent keeps working offline.
SKILL.md in this repo is a ready-to-use agent skill. Copy it wherever your agent looks for skills — for Claude Code that's ~/.claude/skills/, for others check their docs — or just tell the agent to read it from the repo.
Claude Desktop and ChatGPT Desktop have no shell, so they can't invoke the CLI. For those, canvas-pp-mcp bridges the gap: it's a thin MCP server that shells out to the same CLI binary on your behalf, exposing canvas_search to find an endpoint and canvas_execute to call it.
You only need this for shell-less hosts. If your agent has a terminal, use the section above instead — the MCP server would just be a wrapper around a command it can already run.
Install both binaries, into the same directory. canvas-pp-mcp locates the CLI by looking in its own directory first, then CANVAS_CLI_PATH, then PATH; installing only the server produces companion CLI binary not found.
go install github.com/johnnyrobot/canvas-pp-cli/cmd/canvas-pp-cli@latest
go install github.com/johnnyrobot/canvas-pp-cli/cmd/canvas-pp-mcp@latestBoth hosts need the same two environment variables:
| Variable | Value |
|---|---|
CANVAS_BASE_URL |
Your institution's Canvas host, e.g. https://your-school.instructure.com |
CANVAS_API_TOKEN |
Account → Settings → New Access Token |
Tokens are user-scoped: the server can do exactly what your Canvas account can, no more.
Edit claude_desktop_config.json — on macOS ~/Library/Application Support/Claude/claude_desktop_config.json, on Windows %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"canvas": {
"command": "canvas-pp-mcp",
"env": {
"CANVAS_BASE_URL": "https://your-school.instructure.com",
"CANVAS_API_TOKEN": "your-token"
}
}
}
}Restart Claude Desktop. If the server doesn't come up, use an absolute path for command — desktop apps don't always inherit your shell PATH. which canvas-pp-mcp gives you the value.
ChatGPT reaches MCP servers over HTTP rather than stdio, so run the server in HTTP mode:
CANVAS_BASE_URL=https://your-school.instructure.com \
CANVAS_API_TOKEN=your-token \
canvas-pp-mcp -transport http -addr :7777Then add http://localhost:7777 as a connector. That setting lives under developer/connector settings and has moved between releases, so check ChatGPT's current MCP documentation for where it is today.
Leave the process running while you use it. This transport binds a local port with no authentication of its own, so keep -addr on localhost and don't expose it to a network you don't control.
Any MCP-speaking host works the same way: point it at the canvas-pp-mcp binary over stdio, or run -transport http and point it at the port.
Canvas uses a per-institution base URL and a Bearer access token. Set CANVAS_BASE_URL to your instance host (e.g. https://your-school.instructure.com) and CANVAS_API_TOKEN to a token from Account > Settings > New Access Token. Tokens are user-scoped, so the CLI can only do what your Canvas account can.
# Verify config and connectivity before anything else (works without a token).
canvas-pp-cli doctor --dry-run
# List your courses as JSON to grab a course_id to work with.
canvas-pp-cli courses index --agent
# Unified roster for a course: enrollments + sections + scores in one table.
canvas-pp-cli roster 12345 --agent
# Students with missing or late work in the last two weeks.
canvas-pp-cli at-risk --course 12345 --since 14d --agent
These capabilities aren't available in any other tool for this API.
-
roster— One table of every student in a course with section, login/SIS ID, role, current and final score, and missing-work count.Reach for this instead of paging three endpoints when you need a complete per-student course view in one call.
canvas-pp-cli roster 12345 --agent
-
at-risk— Ranked list of students with missing, late, or unsubmitted work across one or all of an instructor's courses, time-windowed.Use this for early-alert outreach; it is the one call that answers 'who is falling behind right now'.
canvas-pp-cli at-risk --all-my-courses --since 14d --agent
-
to-grade— A single oldest-first queue of every submitted-but-ungraded item across the instructor's courses, with student, assignment, and points.Pick this to plan a grading session across courses without opening each gradebook.
canvas-pp-cli to-grade --all-my-courses --sort oldest --agent
-
since— A 'what changed' digest of new submissions, new announcements, and new enrollments since a time window.Use this for a standup-style digest of course activity over a window the API cannot query directly.
canvas-pp-cli since 24h --course 12345 --agent
-
standings— Grade-distribution and pass/fail/DFW rollups computed locally across every course in a term, drillable by section or course.Reach for this for term-level reporting that joins enrollments, submissions, and courses no single endpoint combines.
canvas-pp-cli standings --term 7 --by course --agent
-
audit-enrollments— Flags enrollment anomalies in an account: students with no submissions, teacher-less courses, and concluded-but-active users.Use this for compliance and cleanup sweeps before a term rolls over.
canvas-pp-cli audit-enrollments --account 1 --orphans --agent
canvas-pp-cli roster 12345 --agent --select students.name,students.section,students.current_scoreNarrows the joined roster to just the fields an agent needs, keeping token use low.
canvas-pp-cli to-grade --all-my-courses --sort oldest --agentOne oldest-first list of everything you still owe a grade on, across every course you teach.
canvas-pp-cli search "Jordan" --type user --agentOffline full-text search over the synced local store finds people without an API round-trip.
canvas-pp-cli at-risk --course 12345 --since 7d --anonymize --agentHashes names and drops SIS/login IDs so the list is safe to hand to an AI assistant.
canvas-pp-cli enrollments create 12345 --enrollment-user-id 987 --enrollment-type StudentEnrollment --dry-runPreview the request first; drop --dry-run to enroll. Every one of the 1,042 endpoints is reachable this way.
Run canvas-pp-cli --help for the full command reference and flag list.
This CLI separates local files into four path kinds:
| Kind | Contents |
|---|---|
config |
User-editable settings such as config.toml and saved profiles |
data |
Durable local data: credentials.toml, data.db, cookies, browser-session proof files, and other auth sidecars |
state |
Runtime state such as persisted queries, jobs, and teach.log |
cache |
Regenerable HTTP/cache files |
Each kind resolves independently. The ladder is:
- Per-kind env var:
CANVAS_CONFIG_DIR,CANVAS_DATA_DIR,CANVAS_STATE_DIR, orCANVAS_CACHE_DIR --home <dir>for this invocationCANVAS_HOMEfor a flat relocated root- XDG env vars:
XDG_CONFIG_HOME,XDG_DATA_HOME,XDG_STATE_HOME,XDG_CACHE_HOME - Platform defaults matching existing installs
For containers and agent sandboxes, prefer a single relocated root:
export CANVAS_HOME=/srv/canvas
canvas-pp-cli doctorUnder CANVAS_HOME=/srv/canvas, the four dirs resolve to /srv/canvas/config, /srv/canvas/data, /srv/canvas/state, and /srv/canvas/cache.
MCP servers do not receive CLI flags from the host. Put relocation in the host env block:
{
"mcpServers": {
"canvas": {
"command": "canvas-pp-mcp",
"env": {
"CANVAS_HOME": "/srv/canvas"
}
}
}
}Precedence matters in fleets: an ambient per-kind variable such as CANVAS_DATA_DIR overrides an explicit --home for that kind. Use CANVAS_HOME or the per-kind variables for durable fleet relocation; treat --home as the weaker per-invocation lever.
Relocation is one-way. Unsetting CANVAS_HOME does not move files back to platform defaults, and doctor cannot find credentials left under a former root. Move the files manually before unsetting relocation variables.
Existing installs keep working because the platform-default rung matches the legacy layout. On the first auth write, stored secrets leave config.toml and are consolidated into credentials.toml under the data directory. Run canvas-pp-cli doctor --fail-on warn to check path and credential-location warnings in automation.
{
canvas-pp-cli access-tokens create- Create an access tokencanvas-pp-cli access-tokens destroy- Delete an access tokencanvas-pp-cli access-tokens show- Show an access tokencanvas-pp-cli access-tokens update- Update an access tokencanvas-pp-cli access-tokens user-generated-tokens- List access tokens for a user
AccessibilityCourseScansController#create
canvas-pp-cli accessibility-course-scans <user_id>- Trigger accessibility course scan
// Per-course accessibility issue counts for a user's active teacher/designer
canvas-pp-cli accessibility-course-statistics <user_id>- List accessibility course statistics
API for viewing and toggling settings of account calendars.
canvas-pp-cli account-calendars all-calendars- List all account calendarscanvas-pp-cli account-calendars bulk-update- Update several calendarscanvas-pp-cli account-calendars index- List available account calendarscanvas-pp-cli account-calendars show- Get a single account calendarcanvas-pp-cli account-calendars update- Update a calendarcanvas-pp-cli account-calendars visible-calendars-count- Count of all visible account calendars
canvas-pp-cli account-domain-lookups- Search account domains
API for account notifications.
canvas-pp-cli account-notifications create- Create a global notificationcanvas-pp-cli account-notifications show- Show a global notificationcanvas-pp-cli account-notifications update- Update a global notificationcanvas-pp-cli account-notifications user-close-notification- Close notification for user. Destroy notification for admincanvas-pp-cli account-notifications user-index- Index of active global notification for the user
API for accessing account reports.
canvas-pp-cli account-reports abort- Abort a Reportcanvas-pp-cli account-reports available-reports- List Available Reportscanvas-pp-cli account-reports create- Start a Reportcanvas-pp-cli account-reports destroy- Delete a Reportcanvas-pp-cli account-reports index- Index of Reportscanvas-pp-cli account-reports show- Status of a Report
API for accessing account data.
canvas-pp-cli accounts course-accounts- List accounts for course adminscanvas-pp-cli accounts course-creation-accounts- Get accounts that users can create courses incanvas-pp-cli accounts courses-api- List active courses in an accountcanvas-pp-cli accounts create- Create a new sub-accountcanvas-pp-cli accounts destroy- Delete a sub-accountcanvas-pp-cli accounts environment- List environment settingscanvas-pp-cli accounts help-links- Get help linkscanvas-pp-cli accounts horizon-accounts- List horizon accountscanvas-pp-cli accounts index- List accountscanvas-pp-cli accounts manageable-accounts- Get accounts that admins can managecanvas-pp-cli accounts manually-created-courses-account- Get the manually-created courses sub-account for the domain root accountcanvas-pp-cli accounts permissions- Permissionscanvas-pp-cli accounts remove-user- Delete a user from the root accountcanvas-pp-cli accounts remove-users- Delete multiple users from the root accountcanvas-pp-cli accounts restore-user- Restore a deleted user from a root accountcanvas-pp-cli accounts show- Get a single accountcanvas-pp-cli accounts show-settings- Settingscanvas-pp-cli accounts sub-accounts- Get the sub-accounts of an accountcanvas-pp-cli accounts terms-of-service- Get the Terms of Servicecanvas-pp-cli accounts update- Update an accountcanvas-pp-cli accounts update-users- Update multiple users
Manage account role assignments
canvas-pp-cli admins create- Make an account admincanvas-pp-cli admins destroy- Remove account admincanvas-pp-cli admins index- List account adminscanvas-pp-cli admins self-roles- List my admin roles
API for managing conversations with AI Experiences.
canvas-pp-cli ai-conversations active-conversation- Get active conversationcanvas-pp-cli ai-conversations create- Create AI conversationcanvas-pp-cli ai-conversations create-feedback- Create feedback on a conversation messagecanvas-pp-cli ai-conversations delete-feedback- Delete feedback on a conversation messagecanvas-pp-cli ai-conversations destroy- Delete AI conversationcanvas-pp-cli ai-conversations evaluation- Get conversation evaluationcanvas-pp-cli ai-conversations post-message- Post message to conversationcanvas-pp-cli ai-conversations show- Show conversation
API for creating, accessing and updating AI Experiences. AI Experiences are used to create interactive AI-powered learning scenarios within courses.
canvas-pp-cli ai-experiences ai-conversation-show- Show student AI conversationcanvas-pp-cli ai-experiences ai-conversations-index- List student AI conversationscanvas-pp-cli ai-experiences create- Create an AI experiencecanvas-pp-cli ai-experiences destroy- Delete an AI experiencecanvas-pp-cli ai-experiences edit- Show edit AI experience formcanvas-pp-cli ai-experiences index- List AI experiencescanvas-pp-cli ai-experiences new- Show new AI experience formcanvas-pp-cli ai-experiences show- Show an AI experiencecanvas-pp-cli ai-experiences update- Update an AI experience
API for retrieving the data exposed in Canvas Analytics
canvas-pp-cli analytics-resource course-assignments- Get course-level assignment datacanvas-pp-cli analytics-resource course-participation- Get course-level participation datacanvas-pp-cli analytics-resource course-student-summaries- Get course-level student summary datacanvas-pp-cli analytics-resource department-grades- Get department-level grade datacanvas-pp-cli analytics-resource department-grades-2- Get department-level grade datacanvas-pp-cli analytics-resource department-grades-3- Get department-level grade datacanvas-pp-cli analytics-resource department-participation- Get department-level participation datacanvas-pp-cli analytics-resource department-participation-2- Get department-level participation datacanvas-pp-cli analytics-resource department-participation-3- Get department-level participation datacanvas-pp-cli analytics-resource department-statistics- Get department-level statisticscanvas-pp-cli analytics-resource department-statistics-2- Get department-level statisticscanvas-pp-cli analytics-resource department-statistics-3- Get department-level statisticscanvas-pp-cli analytics-resource department-statistics-by-subaccount- Get department-level statistics, broken down by subaccountcanvas-pp-cli analytics-resource department-statistics-by-subaccount-2- Get department-level statistics, broken down by subaccountcanvas-pp-cli analytics-resource department-statistics-by-subaccount-3- Get department-level statistics, broken down by subaccountcanvas-pp-cli analytics-resource student-in-course-assignments- Get user-in-a-course-level assignment datacanvas-pp-cli analytics-resource student-in-course-messaging- Get user-in-a-course-level messaging datacanvas-pp-cli analytics-resource student-in-course-participation- Get user-in-a-course-level participation data
External feeds represent RSS feeds that can be attached to a Course or Group, in order to automatically create announcements for each new item in the feed.
canvas-pp-cli announcement-external-feeds create- Create an external feedcanvas-pp-cli announcement-external-feeds create-2- Create an external feedcanvas-pp-cli announcement-external-feeds destroy- Delete an external feedcanvas-pp-cli announcement-external-feeds destroy-2- Delete an external feedcanvas-pp-cli announcement-external-feeds index- List external feedscanvas-pp-cli announcement-external-feeds index-2- List external feeds
API for retrieving announcements. This API is Announcement-specific. See also the Discussion Topics API, which operates on Announcements also.
canvas-pp-cli announcements- List announcements
{% hint style="warning" %}
canvas-pp-cli api-token-scopes <account_id>- List scopes
API for creating, accessing and updating appointment groups. Appointment groups provide a way of creating a bundle of time slots that users can sign up for (e.g. "Office Hours" or "Meet with professor about Final Project"). Both time slots
canvas-pp-cli appointment-groups create- Create an appointment groupcanvas-pp-cli appointment-groups destroy- Delete an appointment groupcanvas-pp-cli appointment-groups groups- List student group participantscanvas-pp-cli appointment-groups index- List appointment groupscanvas-pp-cli appointment-groups next-appointment- Get next appointmentcanvas-pp-cli appointment-groups show- Get a single appointment groupcanvas-pp-cli appointment-groups update- Update an appointment groupcanvas-pp-cli appointment-groups users- List user participants
{
canvas-pp-cli assessment-question-banks index- List question bankscanvas-pp-cli assessment-question-banks questions- List assessment questions for a question bankcanvas-pp-cli assessment-question-banks show- Get a single question bank
API for setting extensions on student assignment submissions. These cannot be set for discussion assignments or quizzes. For quizzes, use Quiz Extensions instead.
canvas-pp-cli assignment-extensions <course_id> <assignment_id>- Set extensions for student assignment submissions
API for accessing Assignment Group and Assignment information.
canvas-pp-cli assignment-groups create- Create an Assignment Groupcanvas-pp-cli assignment-groups destroy- Destroy an Assignment Groupcanvas-pp-cli assignment-groups index- List assignment groupscanvas-pp-cli assignment-groups show- Get an Assignment Groupcanvas-pp-cli assignment-groups update- Edit an Assignment Group
API for accessing assignment information.
canvas-pp-cli assignments batch-create- Batch create overrides in a coursecanvas-pp-cli assignments batch-retrieve- Batch retrieve overrides in a coursecanvas-pp-cli assignments batch-update- Batch update overrides in a coursecanvas-pp-cli assignments bulk-update- Bulk update assignment datescanvas-pp-cli assignments create- Create an assignmentcanvas-pp-cli assignments create-2- Create an assignment overridecanvas-pp-cli assignments destroy- Delete an assignmentcanvas-pp-cli assignments destroy-2- Delete an assignment overridecanvas-pp-cli assignments duplicate- Duplicate assignmentcanvas-pp-cli assignments group-alias- Redirect to the assignment override for a groupcanvas-pp-cli assignments index- List assignmentscanvas-pp-cli assignments index-2- List assignmentscanvas-pp-cli assignments index-3- List assignment overridescanvas-pp-cli assignments section-alias- Redirect to the assignment override for a sectioncanvas-pp-cli assignments show- Get a single assignmentcanvas-pp-cli assignments show-2- Get a single assignment overridecanvas-pp-cli assignments student-group-members- List group members for a student on an assignmentcanvas-pp-cli assignments update- Edit an assignmentcanvas-pp-cli assignments update-2- Update an assignment overridecanvas-pp-cli assignments user-index- List assignments for user
{
canvas-pp-cli authentication-providers create- Add authentication providercanvas-pp-cli authentication-providers destroy- Delete authentication providercanvas-pp-cli authentication-providers force-password-reset- Force password resetcanvas-pp-cli authentication-providers index- List authentication providerscanvas-pp-cli authentication-providers restore- Restore a deleted authentication providercanvas-pp-cli authentication-providers show- Get authentication providercanvas-pp-cli authentication-providers show-sso-settings- Show account auth settingscanvas-pp-cli authentication-providers update- Update authentication providercanvas-pp-cli authentication-providers update-sso-settings- Update account auth settings
Query audit log of authentication events (logins and logouts).
canvas-pp-cli authentications-log for-account- Query by account.canvas-pp-cli authentications-log for-login- Query by login.canvas-pp-cli authentications-log for-user- Query by user.
API for accessing blackout date information.
canvas-pp-cli blackout-dates bulk-update- Update a list of Blackout Datescanvas-pp-cli blackout-dates create- Create Blackout Datecanvas-pp-cli blackout-dates create-2- Create Blackout Datecanvas-pp-cli blackout-dates destroy- Delete Blackout Datecanvas-pp-cli blackout-dates destroy-2- Delete Blackout Datecanvas-pp-cli blackout-dates index- List blackout datescanvas-pp-cli blackout-dates index-2- List blackout datescanvas-pp-cli blackout-dates new- New Blackout Datecanvas-pp-cli blackout-dates new-2- New Blackout Datecanvas-pp-cli blackout-dates show- Get a single blackout datecanvas-pp-cli blackout-dates show-2- Get a single blackout datecanvas-pp-cli blackout-dates update- Update Blackout Datecanvas-pp-cli blackout-dates update-2- Update Blackout Date
Block Editor Templates are pre-build templates that can be used to create pages. The BlockEditorTemplate API allows you to create, retrieve, update, and delete templates.
canvas-pp-cli blockeditortemplate <course_id>- List block templates
Configure blueprint courses
canvas-pp-cli blueprint-courses get-associated-courses- Returns a list of courses that are configured to receive updates from this blueprintcanvas-pp-cli blueprint-courses get-blueprint-subscriptions- Returns a list of blueprint subscriptions for the given course. (Currently a course may have no more than one.)canvas-pp-cli blueprint-courses get-blueprint-templates- Using 'default' as the template_id should suffice for the current implmentation (as there should be only one template pecanvas-pp-cli blueprint-courses get-details- Show the changes that were propagated in a blueprint migration. This endpoint can be called on a blueprint course. See acanvas-pp-cli blueprint-courses get-details-2- Show the changes that were propagated to a course associated with a blueprint. See also [the blueprint course side](#metcanvas-pp-cli blueprint-courses get-migrations- Shows a paginated list of migrations for the template, starting with the most recent. This endpoint can be called on a bcanvas-pp-cli blueprint-courses get-migrations-2- Shows the status of a migration. This endpoint can be called on a blueprint course. See also [the associated course sidecanvas-pp-cli blueprint-courses get-migrations-3- Shows a paginated list of migrations imported into a course associated with a blueprint, starting with the most recent.canvas-pp-cli blueprint-courses get-migrations-4- Shows the status of an import into a course associated with a blueprint. See also [the blueprint course side](#method.macanvas-pp-cli blueprint-courses get-unsynced-changes- Retrieve a list of learning objects that have changed since the last blueprint sync operation. If no syncs have been comcanvas-pp-cli blueprint-courses post-migrations- Begins a migration to push recently updated content to all associated courses. Only one migration can be running at a ticanvas-pp-cli blueprint-courses put-restrict-item- If a blueprint course object is restricted, editing will be limited for copies in associated courses.canvas-pp-cli blueprint-courses put-update-associations- Send a list of course ids to add or remove new associations for the template. Cannot add courses that do not belong to t
{
canvas-pp-cli bookmarks delete-bookmarks- Deletes a bookmarkcanvas-pp-cli bookmarks get-bookmarks- Returns the paginated list of bookmarks.canvas-pp-cli bookmarks get-bookmarks-2- Returns the details for a bookmark.canvas-pp-cli bookmarks post-bookmarks- Creates a bookmark.canvas-pp-cli bookmarks put-bookmarks- Updates a bookmark
BrandConfigsApiController#show
canvas-pp-cli brand-configs show- Get the brand config variables that should be used for this domaincanvas-pp-cli brand-configs show-context- Get the brand config variables for a sub-account or coursecanvas-pp-cli brand-configs show-context-2- Get the brand config variables for a sub-account or course
API for creating, accessing and updating calendar events.
canvas-pp-cli calendar-events create- Create a calendar eventcanvas-pp-cli calendar-events destroy- Delete a calendar eventcanvas-pp-cli calendar-events get-course-timetable- Get course timetablecanvas-pp-cli calendar-events index- List calendar eventscanvas-pp-cli calendar-events reserve- Reserve a time slotcanvas-pp-cli calendar-events reserve-2- Reserve a time slotcanvas-pp-cli calendar-events save-enabled-account-calendars- Save enabled account calendarscanvas-pp-cli calendar-events set-course-timetable- Set a course timetablecanvas-pp-cli calendar-events set-course-timetable-events- Create or update events directly for a course timetablecanvas-pp-cli calendar-events show- Get a single calendar event or assignmentcanvas-pp-cli calendar-events update- Update a calendar eventcanvas-pp-cli calendar-events user-index- List calendar events for a user
API for managing user career experience and role preferences in Canvas.
canvas-pp-cli canvas-career-experiences enabled- Check if Canvas Career is enabledcanvas-pp-cli canvas-career-experiences experience-summary- Get current and available experiencescanvas-pp-cli canvas-career-experiences switch-experience- Switch experiencecanvas-pp-cli canvas-career-experiences switch-role- Switch role
API for accessing course and group collaboration information.
canvas-pp-cli collaborations api-index- List collaborationscanvas-pp-cli collaborations api-index-2- List collaborationscanvas-pp-cli collaborations members- List members of a collaboration.canvas-pp-cli collaborations potential-collaborators- List potential memberscanvas-pp-cli collaborations potential-collaborators-2- List potential members
API for accessing the messages (emails, sms, etc) that have been sent to a user.
canvas-pp-cli commmessages- List of CommMessages for a user
API for accessing users' email and SMS communication channels.
canvas-pp-cli communication-channels create- Create a communication channelcanvas-pp-cli communication-channels delete-push-token- Delete a push notification endpointcanvas-pp-cli communication-channels destroy- Delete a communication channelcanvas-pp-cli communication-channels destroy-2- Delete a communication channelcanvas-pp-cli communication-channels index- List user communication channels
API for accessing information on conferences.
canvas-pp-cli conferences for-user- List conferences for the current usercanvas-pp-cli conferences index- List conferencescanvas-pp-cli conferences index-2- List conferences
API for exporting courses and course content
canvas-pp-cli content-exports create- Export contentcanvas-pp-cli content-exports create-2- Export contentcanvas-pp-cli content-exports create-3- Export contentcanvas-pp-cli content-exports index- List content exportscanvas-pp-cli content-exports index-2- List content exportscanvas-pp-cli content-exports index-3- List content exportscanvas-pp-cli content-exports show- Show content exportcanvas-pp-cli content-exports show-2- Show content exportcanvas-pp-cli content-exports show-3- Show content export
API for accessing content migrations and migration issues
canvas-pp-cli content-migrations asset-id-mapping- Get asset id mappingcanvas-pp-cli content-migrations available-migrators- List Migration Systemscanvas-pp-cli content-migrations available-migrators-2- List Migration Systemscanvas-pp-cli content-migrations available-migrators-3- List Migration Systemscanvas-pp-cli content-migrations available-migrators-4- List Migration Systemscanvas-pp-cli content-migrations content-list- List items for selective importcanvas-pp-cli content-migrations content-list-2- List items for selective importcanvas-pp-cli content-migrations content-list-3- List items for selective importcanvas-pp-cli content-migrations content-list-4- List items for selective importcanvas-pp-cli content-migrations create- Create a content migrationcanvas-pp-cli content-migrations create-2- Create a content migrationcanvas-pp-cli content-migrations create-3- Create a content migrationcanvas-pp-cli content-migrations create-4- Create a content migrationcanvas-pp-cli content-migrations index- List migration issuescanvas-pp-cli content-migrations index-2- List migration issuescanvas-pp-cli content-migrations index-3- List migration issuescanvas-pp-cli content-migrations index-4- List migration issuescanvas-pp-cli content-migrations index-5- List content migrationscanvas-pp-cli content-migrations index-6- List content migrationscanvas-pp-cli content-migrations index-7- List content migrationscanvas-pp-cli content-migrations index-8- List content migrationscanvas-pp-cli content-migrations show- Get a migration issuecanvas-pp-cli content-migrations show-2- Get a migration issuecanvas-pp-cli content-migrations show-3- Get a migration issuecanvas-pp-cli content-migrations show-4- Get a migration issuecanvas-pp-cli content-migrations show-5- Get a content migrationcanvas-pp-cli content-migrations show-6- Get a content migrationcanvas-pp-cli content-migrations show-7- Get a content migrationcanvas-pp-cli content-migrations show-8- Get a content migrationcanvas-pp-cli content-migrations update- Update a migration issuecanvas-pp-cli content-migrations update-2- Update a migration issuecanvas-pp-cli content-migrations update-3- Update a migration issuecanvas-pp-cli content-migrations update-4- Update a migration issuecanvas-pp-cli content-migrations update-5- Update a content migrationcanvas-pp-cli content-migrations update-6- Update a content migrationcanvas-pp-cli content-migrations update-7- Update a content migrationcanvas-pp-cli content-migrations update-8- Update a content migration
{% hint style="warning" %}
canvas-pp-cli content-security-policy-settings add-domain- Add an allowed domain to accountcanvas-pp-cli content-security-policy-settings add-multiple-domains- Add multiple allowed domains to an accountcanvas-pp-cli content-security-policy-settings get-csp-settings- Get current settings for account or coursecanvas-pp-cli content-security-policy-settings get-csp-settings-2- Get current settings for account or coursecanvas-pp-cli content-security-policy-settings remove-domain- Remove a domain from accountcanvas-pp-cli content-security-policy-settings set-csp-lock- Lock or unlock current CSP settings for sub-accounts and coursescanvas-pp-cli content-security-policy-settings set-csp-setting- Enable, disable, or clear explicit CSP settingcanvas-pp-cli content-security-policy-settings set-csp-setting-2- Enable, disable, or clear explicit CSP setting
API for creating, accessing and updating Content Sharing. Content shares are used to share content directly between users.
canvas-pp-cli content-shares add-users- Add users to content sharecanvas-pp-cli content-shares create- Create a content sharecanvas-pp-cli content-shares destroy- Remove content sharecanvas-pp-cli content-shares index- List content sharescanvas-pp-cli content-shares index-2- List content sharescanvas-pp-cli content-shares show- Get content sharecanvas-pp-cli content-shares unread-count- Get unread shares countcanvas-pp-cli content-shares update- Update a content share
API for creating, accessing and updating user conversations.
canvas-pp-cli conversations add-message- Add a messagecanvas-pp-cli conversations add-recipients- Add recipientscanvas-pp-cli conversations batch-update- Batch update conversationscanvas-pp-cli conversations batches- Get running batchescanvas-pp-cli conversations create- Create a conversationcanvas-pp-cli conversations destroy- Delete a conversationcanvas-pp-cli conversations find-recipients- Find recipientscanvas-pp-cli conversations index- List conversationscanvas-pp-cli conversations mark-all-as-read- Mark all as readcanvas-pp-cli conversations remove-messages- Delete a messagecanvas-pp-cli conversations show- Get a single conversationcanvas-pp-cli conversations unread-count- Unread countcanvas-pp-cli conversations update- Edit a conversation
Query audit log of course events.
canvas-pp-cli course-audit-log for-account- Query by account.canvas-pp-cli course-audit-log for-course- Query by course.
API for accessing and building Course Paces.
canvas-pp-cli course-pace api-show- Show a Course pacecanvas-pp-cli course-pace create- Create a Course pacecanvas-pp-cli course-pace destroy- Delete a Course pacecanvas-pp-cli course-pace update- Update a Course pace
API for setting extensions on student quiz submissions at the course level
canvas-pp-cli course-quiz-extensions <course_id>- \Responses\
API for accessing course reports.
canvas-pp-cli course-reports create- Start a Reportcanvas-pp-cli course-reports last- Status of last Reportcanvas-pp-cli course-reports show- Status of a Report
API for accessing course information.
canvas-pp-cli courses activity-stream- Course activity streamcanvas-pp-cli courses activity-stream-summary- Course activity stream summarycanvas-pp-cli courses api-settings- Get course settingscanvas-pp-cli courses batch-update- Update coursescanvas-pp-cli courses bulk-user-progress- Get bulk user progresscanvas-pp-cli courses content-share-users- Search for content share userscanvas-pp-cli courses copy-course-content- Copy course contentcanvas-pp-cli courses copy-course-status- Get course copy statuscanvas-pp-cli courses create- Create a new coursecanvas-pp-cli courses create-file- Upload a filecanvas-pp-cli courses destroy- Delete/Conclude a coursecanvas-pp-cli courses dismiss-migration-limitation-msg- Remove quiz migration alertcanvas-pp-cli courses effective-due-dates- Get effective due datescanvas-pp-cli courses index- List your coursescanvas-pp-cli courses permissions- Permissionscanvas-pp-cli courses preview-html- Preview processed htmlcanvas-pp-cli courses recent-students- List recently logged in studentscanvas-pp-cli courses reset-content- Reset a coursecanvas-pp-cli courses restore-version- Restore course syllabus versioncanvas-pp-cli courses show- Get a single coursecanvas-pp-cli courses show-2- Get a single coursecanvas-pp-cli courses student-view-student- Return test student for coursecanvas-pp-cli courses students- List studentscanvas-pp-cli courses todo-items- Course TODO itemscanvas-pp-cli courses update- Update a coursecanvas-pp-cli courses update-settings- Update course settingscanvas-pp-cli courses user- Get single usercanvas-pp-cli courses user-index- List courses for a usercanvas-pp-cli courses user-progress- Get user progresscanvas-pp-cli courses users- List users in coursecanvas-pp-cli courses users-2- List users in course
API for adding additional columns to the gradebook. Custom gradebook columns will be displayed with the other frozen gradebook columns.
canvas-pp-cli custom-gradebook-columns bulk-update- Bulk update column datacanvas-pp-cli custom-gradebook-columns create- Create a custom gradebook columncanvas-pp-cli custom-gradebook-columns destroy- Delete a custom gradebook columncanvas-pp-cli custom-gradebook-columns index- List custom gradebook columnscanvas-pp-cli custom-gradebook-columns index-2- List entries for a columncanvas-pp-cli custom-gradebook-columns reorder- Reorder custom columnscanvas-pp-cli custom-gradebook-columns update- Update a custom gradebook columncanvas-pp-cli custom-gradebook-columns update-2- Update column data
Developer key account bindings API for binding a developer key to a context and specifying a workflow state for that relationship.
canvas-pp-cli developer-key-account-bindings <account_id> <developer_key_id>- Create a Developer Key Account Binding
Manage Canvas API Keys, used for OAuth access to this API. See the OAuth access docs for usage of these keys. Note that DeveloperKeys are also (currently) used for LTI 1.3 registration and OIDC access,
canvas-pp-cli developer-keys create- Create a Developer Keycanvas-pp-cli developer-keys destroy- Delete a Developer Keycanvas-pp-cli developer-keys index- List Developer Keyscanvas-pp-cli developer-keys regenerate-secret- Regenerate Developer Key Secretcanvas-pp-cli developer-keys update- Update a Developer Key
// Configuration for the login discovery page
canvas-pp-cli discovery-pages show- Get Discovery Pagecanvas-pp-cli discovery-pages token- Generate Discovery Page Preview Tokencanvas-pp-cli discovery-pages upsert- Update Discovery Page
API for accessing and participating in discussion topics in groups and courses.
canvas-pp-cli discussion-topics add-entry- Post an entrycanvas-pp-cli discussion-topics add-entry-2- Post an entrycanvas-pp-cli discussion-topics add-reply- Post a replycanvas-pp-cli discussion-topics add-reply-2- Post a replycanvas-pp-cli discussion-topics create- Create a new discussion topiccanvas-pp-cli discussion-topics create-2- Create a new discussion topiccanvas-pp-cli discussion-topics destroy- Delete a topiccanvas-pp-cli discussion-topics destroy-2- Delete a topiccanvas-pp-cli discussion-topics destroy-3- Delete an entrycanvas-pp-cli discussion-topics destroy-4- Delete an entrycanvas-pp-cli discussion-topics disable-summary- Disable summarycanvas-pp-cli discussion-topics disable-summary-2- Disable summarycanvas-pp-cli discussion-topics duplicate- Duplicate discussion topiccanvas-pp-cli discussion-topics duplicate-2- Duplicate discussion topiccanvas-pp-cli discussion-topics entries- List topic entriescanvas-pp-cli discussion-topics entries-2- List topic entriescanvas-pp-cli discussion-topics entry-list- List entriescanvas-pp-cli discussion-topics entry-list-2- List entriescanvas-pp-cli discussion-topics find-or-create-summary- Find or Create Summarycanvas-pp-cli discussion-topics find-or-create-summary-2- Find or Create Summarycanvas-pp-cli discussion-topics find-summary- Find Last Summarycanvas-pp-cli discussion-topics find-summary-2- Find Last Summarycanvas-pp-cli discussion-topics index- List discussion topicscanvas-pp-cli discussion-topics index-2- List discussion topicscanvas-pp-cli discussion-topics mark-all-read- Mark all entries as readcanvas-pp-cli discussion-topics mark-all-read-2- Mark all entries as readcanvas-pp-cli discussion-topics mark-all-topic-read- Mark all topic as readcanvas-pp-cli discussion-topics mark-all-topic-read-2- Mark all topic as readcanvas-pp-cli discussion-topics mark-all-unread- Mark all entries as unreadcanvas-pp-cli discussion-topics mark-all-unread-2- Mark all entries as unreadcanvas-pp-cli discussion-topics mark-entry-read- Mark entry as readcanvas-pp-cli discussion-topics mark-entry-read-2- Mark entry as readcanvas-pp-cli discussion-topics mark-entry-unread- Mark entry as unreadcanvas-pp-cli discussion-topics mark-entry-unread-2- Mark entry as unreadcanvas-pp-cli discussion-topics mark-topic-read- Mark topic as readcanvas-pp-cli discussion-topics mark-topic-read-2- Mark topic as readcanvas-pp-cli discussion-topics mark-topic-unread- Mark topic as unreadcanvas-pp-cli discussion-topics mark-topic-unread-2- Mark topic as unreadcanvas-pp-cli discussion-topics rate-entry- Rate entrycanvas-pp-cli discussion-topics rate-entry-2- Rate entrycanvas-pp-cli discussion-topics reorder- Reorder pinned topicscanvas-pp-cli discussion-topics reorder-2- Reorder pinned topicscanvas-pp-cli discussion-topics replies- List entry repliescanvas-pp-cli discussion-topics replies-2- List entry repliescanvas-pp-cli discussion-topics show- Get a single topiccanvas-pp-cli discussion-topics show-2- Get a single topiccanvas-pp-cli discussion-topics subscribe-topic- Subscribe to a topiccanvas-pp-cli discussion-topics subscribe-topic-2- Subscribe to a topiccanvas-pp-cli discussion-topics summary-feedback- Summary Feedbackcanvas-pp-cli discussion-topics summary-feedback-2- Summary Feedbackcanvas-pp-cli discussion-topics unsubscribe-topic- Unsubscribe from a topiccanvas-pp-cli discussion-topics unsubscribe-topic-2- Unsubscribe from a topiccanvas-pp-cli discussion-topics update- Update a topiccanvas-pp-cli discussion-topics update-2- Update a topiccanvas-pp-cli discussion-topics update-3- Update an entrycanvas-pp-cli discussion-topics update-4- Update an entrycanvas-pp-cli discussion-topics view- Get the full topiccanvas-pp-cli discussion-topics view-2- Get the full topic
API for viewing and managing enrollment terms. For all actions, the specified account must be a root account. To manage enrollment terms, the caller must have permission to manage the account. To view enrollment terms, the caller must have
canvas-pp-cli enrollment-terms create- Create enrollment termcanvas-pp-cli enrollment-terms destroy- Delete enrollment termcanvas-pp-cli enrollment-terms index- List enrollment termscanvas-pp-cli enrollment-terms show- Retrieve enrollment termcanvas-pp-cli enrollment-terms update- Update enrollment term
API for creating and viewing course enrollments
canvas-pp-cli enrollments accept- Accept Course Invitationcanvas-pp-cli enrollments bulk-enrollment- Enroll multiple users to one or more coursescanvas-pp-cli enrollments bulk-temporary-enrollment-status- Bulk Temporary Enrollment Statuscanvas-pp-cli enrollments create- Enroll a usercanvas-pp-cli enrollments create-2- Enroll a usercanvas-pp-cli enrollments destroy- Conclude, deactivate, or delete an enrollmentcanvas-pp-cli enrollments index- List enrollmentscanvas-pp-cli enrollments index-2- List enrollmentscanvas-pp-cli enrollments index-3- List enrollmentscanvas-pp-cli enrollments last-attended- Add last attended datecanvas-pp-cli enrollments reactivate- Re-activate an enrollmentcanvas-pp-cli enrollments reject- Reject Course Invitationcanvas-pp-cli enrollments show- Enrollment by IDcanvas-pp-cli enrollments show-temporary-enrollment-status- Show Temporary Enrollment recipient and provider status
{
canvas-pp-cli eportfolios delete- Delete an ePortfoliocanvas-pp-cli eportfolios index- Get all ePortfolios for a Usercanvas-pp-cli eportfolios moderate- Moderate an ePortfoliocanvas-pp-cli eportfolios moderate-all- Moderate all ePortfolios for a Usercanvas-pp-cli eportfolios pages- Get ePortfolio Pagescanvas-pp-cli eportfolios restore- Restore a deleted ePortfoliocanvas-pp-cli eportfolios show- Get an ePortfolio
API for exporting courses as an ePub
canvas-pp-cli epub-exports create- Create ePub Exportcanvas-pp-cli epub-exports index- List courses with their latest ePub exportcanvas-pp-cli epub-exports show- Show ePub export
// A collection of information around a specific notification of a problem
canvas-pp-cli error-reports- Create Error Report
API for accessing and configuring external tools on accounts and courses. "External tools" are IMS LTI links: .
canvas-pp-cli external-tools add-top-nav-favorite- Add tool to Top Navigation Favoritescanvas-pp-cli external-tools all-visible-nav-tools- Get visible course navigation toolscanvas-pp-cli external-tools create- Create an external toolcanvas-pp-cli external-tools create-2- Create an external toolcanvas-pp-cli external-tools destroy- Delete an external toolcanvas-pp-cli external-tools destroy-2- Delete an external toolcanvas-pp-cli external-tools generate-sessionless-launch- Get a sessionless launch url for an external tool.canvas-pp-cli external-tools generate-sessionless-launch-2- Get a sessionless launch url for an external tool.canvas-pp-cli external-tools index- List external toolscanvas-pp-cli external-tools index-2- List external toolscanvas-pp-cli external-tools index-3- List external toolscanvas-pp-cli external-tools mark-rce-favorite- Mark tool as RCE Favoritecanvas-pp-cli external-tools remove-top-nav-favorite- Remove tool from Top Navigation Favoritescanvas-pp-cli external-tools show- Get a single external toolcanvas-pp-cli external-tools show-2- Get a single external toolcanvas-pp-cli external-tools unmark-rce-favorite- Unmark tool as RCE Favoritecanvas-pp-cli external-tools update- Edit an external toolcanvas-pp-cli external-tools update-2- Edit an external toolcanvas-pp-cli external-tools visible-course-nav-tools- Get visible course navigation tools for a single course
{
canvas-pp-cli favorites add-favorite-course- Add course to favoritescanvas-pp-cli favorites add-favorite-groups- Add group to favoritescanvas-pp-cli favorites list-favorite-courses- List favorite coursescanvas-pp-cli favorites list-favorite-groups- List favorite groupscanvas-pp-cli favorites remove-favorite-course- Remove course from favoritescanvas-pp-cli favorites remove-favorite-groups- Remove group from favoritescanvas-pp-cli favorites reset-course-favorites- Reset course favoritescanvas-pp-cli favorites reset-groups-favorites- Reset group favorites
Manage optional features in Canvas.
canvas-pp-cli feature-flags delete- Remove feature flagcanvas-pp-cli feature-flags delete-2- Remove feature flagcanvas-pp-cli feature-flags delete-3- Remove feature flagcanvas-pp-cli feature-flags enabled-features- List enabled featurescanvas-pp-cli feature-flags enabled-features-2- List enabled featurescanvas-pp-cli feature-flags enabled-features-3- List enabled featurescanvas-pp-cli feature-flags environment- List environment featurescanvas-pp-cli feature-flags index- List featurescanvas-pp-cli feature-flags index-2- List featurescanvas-pp-cli feature-flags index-3- List featurescanvas-pp-cli feature-flags show- Get feature flagcanvas-pp-cli feature-flags show-2- Get feature flagcanvas-pp-cli feature-flags show-3- Get feature flagcanvas-pp-cli feature-flags update- Set feature flagcanvas-pp-cli feature-flags update-2- Set feature flagcanvas-pp-cli feature-flags update-3- Set feature flag
An API for managing files and folders See the File Upload Documentation for details on the file upload workflow.
canvas-pp-cli files api-destroy- Delete foldercanvas-pp-cli files api-index- List filescanvas-pp-cli files api-index-2- List filescanvas-pp-cli files api-index-3- List filescanvas-pp-cli files api-index-4- List filescanvas-pp-cli files api-index-5- List folderscanvas-pp-cli files api-quota- Get quota informationcanvas-pp-cli files api-quota-2- Get quota informationcanvas-pp-cli files api-quota-3- Get quota informationcanvas-pp-cli files api-show- Get filecanvas-pp-cli files api-show-2- Get filecanvas-pp-cli files api-show-3- Get filecanvas-pp-cli files api-show-4- Get filecanvas-pp-cli files api-show-5- Get filecanvas-pp-cli files api-update- Update filecanvas-pp-cli files copy-file- Copy a filecanvas-pp-cli files copy-folder- Copy a foldercanvas-pp-cli files create- Create foldercanvas-pp-cli files create-2- Create foldercanvas-pp-cli files create-3- Create foldercanvas-pp-cli files create-4- Create foldercanvas-pp-cli files create-5- Create foldercanvas-pp-cli files create-file- Upload a filecanvas-pp-cli files destroy- Delete filecanvas-pp-cli files file-ref- Translate file referencecanvas-pp-cli files icon-metadata- Get icon metadatacanvas-pp-cli files licenses- List licensescanvas-pp-cli files licenses-2- List licensescanvas-pp-cli files licenses-3- List licensescanvas-pp-cli files list-all-folders- List all folderscanvas-pp-cli files list-all-folders-2- List all folderscanvas-pp-cli files list-all-folders-3- List all folderscanvas-pp-cli files media-folder- Get uploaded media folder for usercanvas-pp-cli files media-folder-2- Get uploaded media folder for usercanvas-pp-cli files public-url- Get public inline preview urlcanvas-pp-cli files remove-usage-rights- Remove usage rightscanvas-pp-cli files remove-usage-rights-2- Remove usage rightscanvas-pp-cli files remove-usage-rights-3- Remove usage rightscanvas-pp-cli files reset-verifier- Reset link verifiercanvas-pp-cli files resolve-path- Resolve pathcanvas-pp-cli files resolve-path-2- Resolve pathcanvas-pp-cli files resolve-path-3- Resolve pathcanvas-pp-cli files resolve-path-4- Resolve pathcanvas-pp-cli files resolve-path-5- Resolve pathcanvas-pp-cli files resolve-path-6- Resolve pathcanvas-pp-cli files set-usage-rights- Set usage rightscanvas-pp-cli files set-usage-rights-2- Set usage rightscanvas-pp-cli files set-usage-rights-3- Set usage rightscanvas-pp-cli files show- Get foldercanvas-pp-cli files show-2- Get foldercanvas-pp-cli files show-3- Get foldercanvas-pp-cli files show-4- Get foldercanvas-pp-cli files update- Update folder
Query audit log of grade change events.
canvas-pp-cli grade-change-log for-assignment- Query by assignmentcanvas-pp-cli grade-change-log for-course- Query by coursecanvas-pp-cli grade-change-log for-grader- Query by gradercanvas-pp-cli grade-change-log for-student- Query by studentcanvas-pp-cli grade-change-log query- Advanced query
API for accessing the versioned history of student submissions along with their grade changes, organized by the date of the submission.
canvas-pp-cli gradebook-history day-details- Details for a given date in gradebook history for this coursecanvas-pp-cli gradebook-history days- Days in gradebook history for this coursecanvas-pp-cli gradebook-history feed- List uncollated submission versionscanvas-pp-cli gradebook-history submissions- Lists submissions
Manage grading period sets
canvas-pp-cli grading-period-sets create- Create a grading period setcanvas-pp-cli grading-period-sets destroy- Delete a grading period setcanvas-pp-cli grading-period-sets index- List grading period setscanvas-pp-cli grading-period-sets update- Update a grading period set
Manage grading periods
canvas-pp-cli grading-periods batch-update- Batch update grading periodscanvas-pp-cli grading-periods batch-update-2- Batch update grading periodscanvas-pp-cli grading-periods destroy- Delete a grading periodcanvas-pp-cli grading-periods destroy-2- Delete a grading periodcanvas-pp-cli grading-periods index- List grading periodscanvas-pp-cli grading-periods index-2- List grading periodscanvas-pp-cli grading-periods show- Get a single grading periodcanvas-pp-cli grading-periods update- Update a single grading period
{
canvas-pp-cli grading-standards context-index- List the grading standards available in a context.canvas-pp-cli grading-standards context-index-2- List the grading standards available in a context.canvas-pp-cli grading-standards context-show- Get a single grading standard in a context.canvas-pp-cli grading-standards context-show-2- Get a single grading standard in a context.canvas-pp-cli grading-standards create- Create a new grading standardcanvas-pp-cli grading-standards create-2- Create a new grading standardcanvas-pp-cli grading-standards destroy- Delete a grading standardcanvas-pp-cli grading-standards destroy-2- Delete a grading standardcanvas-pp-cli grading-standards update- Update a grading standardcanvas-pp-cli grading-standards update-2- Update a grading standard
Group Categories allow grouping of groups together in canvas. There are a few different built-in group categories used, or custom ones can be created. The built in group categories are: "communities", "student_organized", and "imported".
canvas-pp-cli group-categories assign-unassigned-members- Assign unassigned memberscanvas-pp-cli group-categories bulk-manage-differentiation-tag- Bulk manage differentiation tagscanvas-pp-cli group-categories create- Create a Group Categorycanvas-pp-cli group-categories create-2- Create a Group Categorycanvas-pp-cli group-categories destroy- Delete a Group Categorycanvas-pp-cli group-categories export- export groups in and users in categorycanvas-pp-cli group-categories export-tags- export tags and users in coursecanvas-pp-cli group-categories groups- List groups in group categorycanvas-pp-cli group-categories import- Import category groupscanvas-pp-cli group-categories import-tags- Import differentiation tagscanvas-pp-cli group-categories index- List group categories for a contextcanvas-pp-cli group-categories index-2- List group categories for a contextcanvas-pp-cli group-categories show- Get a single group categorycanvas-pp-cli group-categories update- Update a Group Categorycanvas-pp-cli group-categories users- List users in group category
Groups serve as the data for a few different ideas in Canvas. The first is that they can be a community in the canvas network. The second is that they can be organized by students in a course, for study or communication (but not grading). T
canvas-pp-cli groups activity-stream- Group activity streamcanvas-pp-cli groups activity-stream-summary- Group activity stream summarycanvas-pp-cli groups bulk-user-tags- Bulk fetch user tags for multiple users in a coursecanvas-pp-cli groups context-index- List the groups available in a context.canvas-pp-cli groups context-index-2- List the groups available in a context.canvas-pp-cli groups create- Create a groupcanvas-pp-cli groups create-2- Create a groupcanvas-pp-cli groups create-3- Create a membershipcanvas-pp-cli groups create-file- Upload a filecanvas-pp-cli groups delete-users- ***canvas-pp-cli groups destroy- Delete a groupcanvas-pp-cli groups destroy-2- Leave a groupcanvas-pp-cli groups destroy-3- Leave a groupcanvas-pp-cli groups index- List your groupscanvas-pp-cli groups index-2- List group membershipscanvas-pp-cli groups invite- Invite others to a groupcanvas-pp-cli groups permissions- Permissionscanvas-pp-cli groups preview-html- Preview processed htmlcanvas-pp-cli groups show- Get a single groupcanvas-pp-cli groups show-2- Get a single group membershipcanvas-pp-cli groups show-3- Get a single group membershipcanvas-pp-cli groups update- Edit a groupcanvas-pp-cli groups update-2- Update a membershipcanvas-pp-cli groups update-3- Update a membershipcanvas-pp-cli groups users- List group's users
// Information about a recently visited item or page in Canvas
canvas-pp-cli history-resource <user_id>- List recent history for a user
Short term JWT tokens that can be used to authenticate with Canvas and other Instructure services. InstAccess tokens expire after one hour. Canvas hands out encrypted tokens that need to be decrypted by the API Gateway before they can be ac
canvas-pp-cli instaccess-tokens- Create InstAccess token
Short term tokens useful for talking to other services in the Canvas Ecosystem. Note: JWTs have no value or use directly against the Canvas API, and expire after one hour
canvas-pp-cli jwts create- Create JWTcanvas-pp-cli jwts refresh- Refresh JWT
Manage a course's late policy.
canvas-pp-cli late-policy create- Create a late policycanvas-pp-cli late-policy show- Get a late policycanvas-pp-cli late-policy update- Patch a late policy
API for accessing date-related attributes on assignments, quizzes, modules, discussions, pages, and files. Note that support for files is not yet available.
canvas-pp-cli learning-object-dates show- Get a learning object's date informationcanvas-pp-cli learning-object-dates show-2- Get a learning object's date informationcanvas-pp-cli learning-object-dates show-3- Get a learning object's date informationcanvas-pp-cli learning-object-dates show-4- Get a learning object's date informationcanvas-pp-cli learning-object-dates show-5- Get a learning object's date informationcanvas-pp-cli learning-object-dates show-6- Get a learning object's date informationcanvas-pp-cli learning-object-dates update- Update a learning object's date informationcanvas-pp-cli learning-object-dates update-2- Update a learning object's date informationcanvas-pp-cli learning-object-dates update-3- Update a learning object's date informationcanvas-pp-cli learning-object-dates update-4- Update a learning object's date informationcanvas-pp-cli learning-object-dates update-5- Update a learning object's date information
Manage live assessment results
canvas-pp-cli liveassessments get-live-assessments- Returns a paginated list of live assessments.canvas-pp-cli liveassessments get-results- Returns a paginated list of live assessment resultscanvas-pp-cli liveassessments post-live-assessments- Creates or finds an existing live assessment with the given key and aligns it with the linked outcomecanvas-pp-cli liveassessments post-results- Creates live assessment results and adds them to a live assessment
API for creating and viewing user logins under an account
canvas-pp-cli logins create- Create a user logincanvas-pp-cli logins destroy- Delete a user logincanvas-pp-cli logins forgot-password- Kickoff password recovery flowcanvas-pp-cli logins index- List user loginscanvas-pp-cli logins index-2- List user loginscanvas-pp-cli logins update- Edit a user login
Configure the availability of an LTI Registration in a specific context. Used by the Canvas Apps page UI.
canvas-pp-cli lti-contextcontrols delete-controls- Deletes a context control. Returns the control that is now deleted.canvas-pp-cli lti-contextcontrols get-controls- List all LTI ContextControls for the given LTI Registration. These controls are partitioned by LTI Deployment, and havecanvas-pp-cli lti-contextcontrols get-controls-2- Display details of the specified LTI ContextControl for the specified LTI registration in this context.canvas-pp-cli lti-contextcontrols post-bulk- Create up to 100 new LTI ContextControls for the specified LTI registration in this context. Control parameters are sentcanvas-pp-cli lti-contextcontrols post-controls- Create a new LTI ContextControl for the specified LTI registration in this context.canvas-pp-cli lti-contextcontrols put-controls- Changes the availability of a context control. This endpoint can only be used to change the availability of a context co
// A bare-bones representation of an LTI tool used by Canvas to launch the tool
canvas-pp-cli lti-launch-definitions get-launch-definitions- List all tools available in this context for the given placements, in the form of Launch Definitions. Used primarily bycanvas-pp-cli lti-launch-definitions get-launch-definitions-2- List all tools available in this context for the given placements, in the form of Launch Definitions. Used primarily by
{% hint style="warning" %}
canvas-pp-cli lti-registrations delete-bind- Deletes the account binding for this registration, effectively removing it from the account.canvas-pp-cli lti-registrations delete-lti-registrations- Remove the specified LTI registrationcanvas-pp-cli lti-registrations get-by-utid- Returns an LTI registration by looking up its unified_tool_id. Searches both manual configurations and IMS registrationscanvas-pp-cli lti-registrations get-context-search- This is a utility endpoint used by the Canvas Apps UI and may not serve general use cases.canvas-pp-cli lti-registrations get-history- Returns the history entries for the specified LTI registration. This endpoint provides comprehensive change tracking forcanvas-pp-cli lti-registrations get-install-status- Returns the local installation status for a Site Admin LTI registration. If the developer key's registration is in Sitecanvas-pp-cli lti-registrations get-latest-update-request- Retrieves the most recent update request for a registration, regardless of its status. Returns 404 if there are no updatcanvas-pp-cli lti-registrations get-lti-registration-by-client-id- Returns details about the specified LTI registration, including the configuration and account binding.canvas-pp-cli lti-registrations get-lti-registrations- Returns all LTI registrations in the specified account. Includes registrations created in this account, those set to 'alcanvas-pp-cli lti-registrations get-lti-registrations-2- Return details about the specified LTI registration, including the configuration and account binding.canvas-pp-cli lti-registrations get-overlay-history- Returns the overlay history items for the specified LTI registration.canvas-pp-cli lti-registrations get-update-requests- Retrieves details about a specific registration update request.canvas-pp-cli lti-registrations post-bind- Enable or disable the specified LTI registration for the specified root account. To enable an inherited registration (egcanvas-pp-cli lti-registrations post-install-from-template- This endpoint installs a local copy of a "template" LTI registration from Site Admin into the specified account. The loccanvas-pp-cli lti-registrations post-lti-registrations- Create a new LTI Registration, as well as an associated Tool Configuration, Developer Key, and Registration Account bindcanvas-pp-cli lti-registrations put-apply- Applies a registration update request to an existing registration, replacing the existing configuration and overlay withcanvas-pp-cli lti-registrations put-lti-registrations- Update the specified LTI registration with the provided parameters. Note that updating the base tool configuration of acanvas-pp-cli lti-registrations put-reset- Reset the specified LTI registration to its default settings in this context. This removes all customizations that were
API that exposes LTI Resource Links for viewing and editing. LTI Resource Links are artifacts created by the LTI 1.3 Deep Linking process, where a user selects a content item that is returned to Canvas for future launches.
canvas-pp-cli lti-resource-links delete-lti-resource-links- Delete the specified resource link. The ID can be in the standard Canvas format ("1"), or in these special formats:canvas-pp-cli lti-resource-links get-lti-resource-links- Returns all Resource Links in the specified course. This includes links that are associated with Assignments, Module Itecanvas-pp-cli lti-resource-links get-lti-resource-links-2- Return details about the specified resource link. The ID can be in the standard Canvas format ("1"), or in these specialcanvas-pp-cli lti-resource-links post-bulk- Create up to 100 new LTI Resource Links in the specified course with the provided parameters.canvas-pp-cli lti-resource-links post-lti-resource-links- Create a new LTI Resource Link in the specified course with the provided parameters.canvas-pp-cli lti-resource-links put-lti-resource-links- Update the specified resource link with the provided parameters.
Closed captions added to a video MediaObject
canvas-pp-cli media-objects index- List media tracks for a Media Object or Attachmentcanvas-pp-cli media-objects index-2- List media tracks for a Media Object or Attachmentcanvas-pp-cli media-objects index-3- List Media Objectscanvas-pp-cli media-objects index-4- List Media Objectscanvas-pp-cli media-objects index-5- List Media Objectscanvas-pp-cli media-objects index-6- List Media Objectscanvas-pp-cli media-objects index-7- List Media Objectscanvas-pp-cli media-objects index-8- List Media Objectscanvas-pp-cli media-objects update- Update Media Trackscanvas-pp-cli media-objects update-2- Update Media Trackscanvas-pp-cli media-objects update-media-object- Update Media Objectcanvas-pp-cli media-objects update-media-object-2- Update Media Object
API for viewing and adding students to the list of people in moderation for an assignment
canvas-pp-cli moderated-grading bulk-select- Bulk select provisional gradescanvas-pp-cli moderated-grading create- Select students for moderationcanvas-pp-cli moderated-grading index- List students selected for moderationcanvas-pp-cli moderated-grading publish- Publish provisional grades for an assignmentcanvas-pp-cli moderated-grading select- Select provisional gradecanvas-pp-cli moderated-grading status- Show provisional grade status for a studentcanvas-pp-cli moderated-grading status-2- Show provisional grade status for a student
Modules are collections of learning materials useful for organizing courses and optionally providing a linear flow through them. Module items can be accessed linearly or sequentially depending on module configuration. Items can be unlocked
canvas-pp-cli modules bulk-update- Update a module's overridescanvas-pp-cli modules create- Create a modulecanvas-pp-cli modules create-2- Create a module itemcanvas-pp-cli modules destroy- Delete modulecanvas-pp-cli modules destroy-2- Delete module itemcanvas-pp-cli modules index- List modulescanvas-pp-cli modules index-2- List module itemscanvas-pp-cli modules index-3- List a module's overridescanvas-pp-cli modules item-sequence- Get module item sequencecanvas-pp-cli modules mark-as-done- Mark module item as done/not donecanvas-pp-cli modules mark-item-read- Mark module item readcanvas-pp-cli modules relock- Re-lock module progressionscanvas-pp-cli modules select-mastery-path- Select a mastery pathcanvas-pp-cli modules show- Show modulecanvas-pp-cli modules show-2- Show module itemcanvas-pp-cli modules update- Update a modulecanvas-pp-cli modules update-2- Update a module item
API for managing notification preferences
canvas-pp-cli notification-preferences category-index- List of preference categoriescanvas-pp-cli notification-preferences index- List preferencescanvas-pp-cli notification-preferences index-2- List preferencescanvas-pp-cli notification-preferences show- Get a preferencecanvas-pp-cli notification-preferences show-2- Get a preferencecanvas-pp-cli notification-preferences update- Update a preferencecanvas-pp-cli notification-preferences update-2- Update a preferencecanvas-pp-cli notification-preferences update-all- Update multiple preferencescanvas-pp-cli notification-preferences update-all-2- Update multiple preferencescanvas-pp-cli notification-preferences update-preferences-by-category- Update preferences by category
API for accessing learning outcome group information.
canvas-pp-cli outcome-groups create- Create a subgroupcanvas-pp-cli outcome-groups create-2- Create a subgroupcanvas-pp-cli outcome-groups create-3- Create a subgroupcanvas-pp-cli outcome-groups destroy- Delete an outcome groupcanvas-pp-cli outcome-groups destroy-2- Delete an outcome groupcanvas-pp-cli outcome-groups destroy-3- Delete an outcome groupcanvas-pp-cli outcome-groups import- Import an outcome groupcanvas-pp-cli outcome-groups import-2- Import an outcome groupcanvas-pp-cli outcome-groups import-3- Import an outcome groupcanvas-pp-cli outcome-groups index- Get all outcome groups for contextcanvas-pp-cli outcome-groups index-2- Get all outcome groups for contextcanvas-pp-cli outcome-groups link- Create/link an outcomecanvas-pp-cli outcome-groups link-2- Create/link an outcomecanvas-pp-cli outcome-groups link-3- Create/link an outcomecanvas-pp-cli outcome-groups link-4- Create/link an outcomecanvas-pp-cli outcome-groups link-5- Create/link an outcomecanvas-pp-cli outcome-groups link-6- Create/link an outcomecanvas-pp-cli outcome-groups link-index- Get all outcome links for contextcanvas-pp-cli outcome-groups link-index-2- Get all outcome links for contextcanvas-pp-cli outcome-groups outcomes- List linked outcomescanvas-pp-cli outcome-groups outcomes-2- List linked outcomescanvas-pp-cli outcome-groups outcomes-3- List linked outcomescanvas-pp-cli outcome-groups redirect- Redirect to root outcome group for contextcanvas-pp-cli outcome-groups redirect-2- Redirect to root outcome group for contextcanvas-pp-cli outcome-groups redirect-3- Redirect to root outcome group for contextcanvas-pp-cli outcome-groups show- Show an outcome groupcanvas-pp-cli outcome-groups show-2- Show an outcome groupcanvas-pp-cli outcome-groups show-3- Show an outcome groupcanvas-pp-cli outcome-groups subgroups- List subgroupscanvas-pp-cli outcome-groups subgroups-2- List subgroupscanvas-pp-cli outcome-groups subgroups-3- List subgroupscanvas-pp-cli outcome-groups unlink- Unlink an outcomecanvas-pp-cli outcome-groups unlink-2- Unlink an outcomecanvas-pp-cli outcome-groups unlink-3- Unlink an outcomecanvas-pp-cli outcome-groups update- Update an outcome groupcanvas-pp-cli outcome-groups update-2- Update an outcome groupcanvas-pp-cli outcome-groups update-3- Update an outcome group
API for importing outcome data
canvas-pp-cli outcome-imports create- Import Outcomescanvas-pp-cli outcome-imports create-2- Import Outcomescanvas-pp-cli outcome-imports created-group-ids- Get IDs of outcome groups created after successful importcanvas-pp-cli outcome-imports created-group-ids-2- Get IDs of outcome groups created after successful importcanvas-pp-cli outcome-imports show- Get Outcome import statuscanvas-pp-cli outcome-imports show-2- Get Outcome import status
API for accessing learning outcome results
canvas-pp-cli outcome-results contributing-scores- Get contributing scorescanvas-pp-cli outcome-results enqueue-outcome-rollup-calculation- Enqueue a delayed Outcome Rollup Calculation Jobcanvas-pp-cli outcome-results index- Get outcome resultscanvas-pp-cli outcome-results mastery-distribution- Get mastery distributioncanvas-pp-cli outcome-results outcome-order- Set outcome ordering for LMGBcanvas-pp-cli outcome-results rollups- Get outcome result rollups
API for accessing learning outcome information.
canvas-pp-cli outcomes outcome-alignments- Get outcome alignments for a student or assignmentcanvas-pp-cli outcomes show- Show an outcomecanvas-pp-cli outcomes update- Update an outcome
Pages are rich content associated with Courses and Groups in Canvas. The Pages API allows you to create, retrieve, update, and delete pages.
canvas-pp-cli pages create- Create pagecanvas-pp-cli pages create-2- Create pagecanvas-pp-cli pages destroy- Delete pagecanvas-pp-cli pages destroy-2- Delete pagecanvas-pp-cli pages duplicate- Duplicate pagecanvas-pp-cli pages index- List pagescanvas-pp-cli pages index-2- List pagescanvas-pp-cli pages revert- Revert to revisioncanvas-pp-cli pages revert-2- Revert to revisioncanvas-pp-cli pages revisions- List revisionscanvas-pp-cli pages revisions-2- List revisionscanvas-pp-cli pages show- Show pagecanvas-pp-cli pages show-2- Show pagecanvas-pp-cli pages show-front-page- Show front pagecanvas-pp-cli pages show-front-page-2- Show front pagecanvas-pp-cli pages show-revision- Show revisioncanvas-pp-cli pages show-revision-2- Show revisioncanvas-pp-cli pages show-revision-3- Show revisioncanvas-pp-cli pages show-revision-4- Show revisioncanvas-pp-cli pages update- Update/create pagecanvas-pp-cli pages update-2- Update/create pagecanvas-pp-cli pages update-front-page- Update/create front pagecanvas-pp-cli pages update-front-page-2- Update/create front page
{
canvas-pp-cli peer-reviews allocate- Allocate Peer Reviewcanvas-pp-cli peer-reviews create- Create Peer Reviewcanvas-pp-cli peer-reviews create-2- Create Peer Reviewcanvas-pp-cli peer-reviews destroy- Delete Peer Reviewcanvas-pp-cli peer-reviews destroy-2- Delete Peer Reviewcanvas-pp-cli peer-reviews index- Get all Peer Reviewscanvas-pp-cli peer-reviews index-2- Get all Peer Reviewscanvas-pp-cli peer-reviews index-3- Get all Peer Reviewscanvas-pp-cli peer-reviews index-4- Get all Peer Reviews
API for listing learning objects to display on the student planner and calendar
canvas-pp-cli planner create- Create a planner notecanvas-pp-cli planner create-2- Create a planner overridecanvas-pp-cli planner destroy- Delete a planner notecanvas-pp-cli planner destroy-2- Delete a planner overridecanvas-pp-cli planner index- List planner itemscanvas-pp-cli planner index-2- List planner itemscanvas-pp-cli planner index-3- List planner notescanvas-pp-cli planner index-4- List planner overridescanvas-pp-cli planner show- Show a planner notecanvas-pp-cli planner show-2- Show a planner overridecanvas-pp-cli planner update- Update a planner notecanvas-pp-cli planner update-2- Update a planner override
Manage poll sessions
canvas-pp-cli poll-sessions delete-poll-sessions- \204 No Content\ response code is returned if the deletion was successful.canvas-pp-cli poll-sessions get-close- /api/v1/polls/{poll_id}/poll_sessions/{id}/closecanvas-pp-cli poll-sessions get-closed- A paginated list of all closed poll sessions available to the current user.canvas-pp-cli poll-sessions get-open- /api/v1/polls/{poll_id}/poll_sessions/{id}/opencanvas-pp-cli poll-sessions get-opened- A paginated list of all opened poll sessions available to the current user.canvas-pp-cli poll-sessions get-poll-sessions- Returns the paginated list of PollSessions in this poll.canvas-pp-cli poll-sessions get-poll-sessions-2- Returns the poll session with the given idcanvas-pp-cli poll-sessions post-poll-sessions- Create a new poll session for this pollcanvas-pp-cli poll-sessions put-poll-sessions- Update an existing poll session for this poll
Manage choices for polls
canvas-pp-cli pollchoices delete-poll-choices- \204 No Content\ response code is returned if the deletion was successful.canvas-pp-cli pollchoices get-poll-choices- Returns the paginated list of PollChoices in this poll.canvas-pp-cli pollchoices get-poll-choices-2- Returns the poll choice with the given idcanvas-pp-cli pollchoices post-poll-choices- Create a new poll choice for this pollcanvas-pp-cli pollchoices put-poll-choices- Update an existing poll choice for this poll
Manage polls
canvas-pp-cli polls delete-polls- \204 No Content\ response code is returned if the deletion was successful.canvas-pp-cli polls get-polls- Returns the paginated list of polls for the current user.canvas-pp-cli polls get-polls-2- Returns the poll with the given idcanvas-pp-cli polls post-polls- Create a new poll for the current usercanvas-pp-cli polls put-polls- Update an existing poll belonging to the current user
Manage submissions for polls
canvas-pp-cli pollsubmissions get-poll-submissions- Returns the poll submission with the given idcanvas-pp-cli pollsubmissions post-poll-submissions- Create a new poll submission for this poll session
API for customizing proficiency ratings
canvas-pp-cli proficiency-ratings create- Create/update proficiency ratingscanvas-pp-cli proficiency-ratings create-2- Create/update proficiency ratingscanvas-pp-cli proficiency-ratings show- Get proficiency ratingscanvas-pp-cli proficiency-ratings show-2- Get proficiency ratings
API for querying the progress of asynchronous API operations.
canvas-pp-cli progress cancel- Cancel progresscanvas-pp-cli progress show- Query progress
// Set of assignment-overridden dates for a quiz.
canvas-pp-cli quiz-assignment-overrides get-assignment-overrides- Retrieve the actual due-at, unlock-at, and available-at dates for quizzes based on the assignment overrides active for tcanvas-pp-cli quiz-assignment-overrides get-assignment-overrides-2- Retrieve the actual due-at, unlock-at, and available-at dates for quizzes based on the assignment overrides active for t
API for setting extensions on student quiz submissions
canvas-pp-cli quiz-extensions <course_id> <quiz_id>- \Responses\
API for accessing quiz IP filters
canvas-pp-cli quiz-ip-filters <course_id> <quiz_id>- Get a list of available IP filters for this Quiz.
API for accessing information on quiz question groups
canvas-pp-cli quiz-question-groups delete-groups- Delete a question groupcanvas-pp-cli quiz-question-groups get-groups- Returns a list of question groups in a quiz.canvas-pp-cli quiz-question-groups get-groups-2- Returns details of the quiz group with the given id.canvas-pp-cli quiz-question-groups post-groups- Create a new question group for this quizcanvas-pp-cli quiz-question-groups post-reorder- Change the order of the quiz questions within the groupcanvas-pp-cli quiz-question-groups put-groups- Update a question group
{
canvas-pp-cli quiz-questions delete-questions- \204 No Content\ response code is returned if the deletion was successful.canvas-pp-cli quiz-questions get-questions- Returns the paginated list of QuizQuestions in this quiz.canvas-pp-cli quiz-questions get-questions-2- Returns the quiz question with the given idcanvas-pp-cli quiz-questions post-questions- Create a new quiz question for this quizcanvas-pp-cli quiz-questions put-questions- Updates an existing quiz question for this quiz
API for accessing and generating statistical reports for a quiz
canvas-pp-cli quiz-reports delete-reports- This API allows you to cancel a previous request you issued for a report to be generated. Or in the case of an already gcanvas-pp-cli quiz-reports get-reports- Returns a list of all available reports.canvas-pp-cli quiz-reports get-reports-2- Returns the data for a single quiz report.canvas-pp-cli quiz-reports post-reports- Create and return a new report for this quiz. If a previously generated report matches the arguments and is still curren
API for accessing quiz submission statistics. The statistics provided by this interface are an aggregate of what is known as Student and Item Analysis for a quiz.
canvas-pp-cli quiz-statistics <course_id> <quiz_id>- This endpoint provides statistics for all quiz versions, or for a specific quiz version, in which case the output is gua
// An event passed from the Quiz Submission take page
canvas-pp-cli quiz-submission-events get-events- Retrieve the set of events captured during a specific submission attempt.canvas-pp-cli quiz-submission-events post-events- Store a set of events which were captured during a quiz taking session.
Quizzes::QuizSubmissionFilesController#create
canvas-pp-cli quiz-submission-files <course_id> <quiz_id>- Associate a new quiz submission file
API for answering and flagging questions in a quiz-taking session.
canvas-pp-cli quiz-submission-questions get-formatted-answer- Matches the intended behavior of the UI when a numerical answer is entered and returns the resulting formatted numbercanvas-pp-cli quiz-submission-questions get-questions- Get a list of all the question records for this quiz submission.canvas-pp-cli quiz-submission-questions post-questions- Provide or update an answer to one or more QuizQuestions.canvas-pp-cli quiz-submission-questions put-flag- Set a flag on a quiz question to indicate that you want to return to it later.canvas-pp-cli quiz-submission-questions put-unflag- Remove the flag that you previously set on a quiz question after you've returned to it.
List of users who have or haven't submitted for a quiz.
canvas-pp-cli quiz-submission-user-list <course_id> <id>- { "body": { "type": "string", "description": "message body of the conversation to be created", "example": "Please take t
API for accessing quiz submissions
canvas-pp-cli quiz-submissions get-submission- Get the submission for this quiz for the current user.canvas-pp-cli quiz-submissions get-submissions- Get a list of all submissions for this quiz. Users who can view or manage grades for a course will have submissions fromcanvas-pp-cli quiz-submissions get-submissions-2- Get a single quiz submission.canvas-pp-cli quiz-submissions get-time- Get the current timing data for the quiz attempt, both the end_at timestamp and the time_left parameter.canvas-pp-cli quiz-submissions post-complete- Complete the quiz submission by marking it as complete and grading it. When the quiz submission has been marked as complcanvas-pp-cli quiz-submissions post-submissions- Start taking a Quiz by creating a QuizSubmission which you can use to answer questions and submit your answers.canvas-pp-cli quiz-submissions put-submissions- Update the amount of points a student has scored for questions they've answered, provide comments for the student about
{
canvas-pp-cli quizzes delete-quizzes- Deletes a quiz and returns the deleted quiz object.canvas-pp-cli quizzes get-quizzes- Returns the paginated list of Quizzes in this course.canvas-pp-cli quizzes get-quizzes-2- Returns the quiz with the given id.canvas-pp-cli quizzes post-quizzes- Create a new quiz for this course.canvas-pp-cli quizzes post-reorder- Change order of the quiz questions or groups within the quizcanvas-pp-cli quizzes post-validate-access-code- Accepts an access code and returns a boolean indicating whether that access code is correctcanvas-pp-cli quizzes put-quizzes- Modify an existing quiz. See the documentation for quiz creation.
API for managing account- and course-level roles, and their associated permissions.
canvas-pp-cli roles activate-role- Activate a rolecanvas-pp-cli roles add-role- Create a new rolecanvas-pp-cli roles api-index- List rolescanvas-pp-cli roles groups- Retrieve permission groupscanvas-pp-cli roles help- Get help text for permissionscanvas-pp-cli roles manageable-permissions- List assignable permissionscanvas-pp-cli roles remove-role- Deactivate a rolecanvas-pp-cli roles show- Get a single rolecanvas-pp-cli roles update- Update a role
API for accessing rubric information.
canvas-pp-cli rubrics create- Create a single rubriccanvas-pp-cli rubrics create-2- Create a single rubric assessmentcanvas-pp-cli rubrics create-3- Create a RubricAssociationcanvas-pp-cli rubrics destroy- Delete a singlecanvas-pp-cli rubrics destroy-2- Delete a single rubric assessmentcanvas-pp-cli rubrics destroy-3- Delete a RubricAssociationcanvas-pp-cli rubrics index- List rubricscanvas-pp-cli rubrics index-2- List rubricscanvas-pp-cli rubrics show- Get a single rubriccanvas-pp-cli rubrics show-2- Get a single rubriccanvas-pp-cli rubrics update- Update a single rubriccanvas-pp-cli rubrics update-2- Update a single rubric assessmentcanvas-pp-cli rubrics update-3- Update a RubricAssociationcanvas-pp-cli rubrics upload- Creates a rubric using a CSV filecanvas-pp-cli rubrics upload-2- Creates a rubric using a CSV filecanvas-pp-cli rubrics upload-status- Get the status of a rubric importcanvas-pp-cli rubrics upload-status-2- Get the status of a rubric importcanvas-pp-cli rubrics upload-template- Templated file for importing a rubriccanvas-pp-cli rubrics used-locations- Get the courses and assignments for a rubriccanvas-pp-cli rubrics used-locations-2- Get the courses and assignments for a rubric
canvas-pp-cli search-resource all-courses- List all coursescanvas-pp-cli search-resource recipients- Find recipientscanvas-pp-cli search-resource recipients-2- Find recipients
API for accessing section information.
canvas-pp-cli sections create- Create course sectioncanvas-pp-cli sections crosslist- Cross-list a Sectioncanvas-pp-cli sections destroy- Delete a sectioncanvas-pp-cli sections index- List course sectionscanvas-pp-cli sections show- Get section informationcanvas-pp-cli sections show-2- Get section informationcanvas-pp-cli sections uncrosslist- De-cross-list a Sectioncanvas-pp-cli sections update- Edit a sectioncanvas-pp-cli sections users- List section's users
ServicesApiController#show_kaltura_config
canvas-pp-cli services show-kaltura-config- Get Kaltura configcanvas-pp-cli services start-kaltura-session- Start Kaltura session
This is how you can share Themes with other people in your account or so you can come back to them later without having to apply them to your account
canvas-pp-cli shared-brand-configs create- Share a BrandConfig (Theme)canvas-pp-cli shared-brand-configs destroy- Un-share a BrandConfig (Theme)canvas-pp-cli shared-brand-configs update- Update a shared theme
{
canvas-pp-cli sis-import-errors index- Get SIS import error listcanvas-pp-cli sis-import-errors index-2- Get SIS import error list
API for importing data from Student Information Systems
canvas-pp-cli sis-imports abort- Abort SIS importcanvas-pp-cli sis-imports abort-all-pending- Abort all pending SIS importscanvas-pp-cli sis-imports create- Import SIS datacanvas-pp-cli sis-imports importing- Get the current importing SIS importcanvas-pp-cli sis-imports index- Get SIS import listcanvas-pp-cli sis-imports restore-states- Restore workflow_states of SIS imported itemscanvas-pp-cli sis-imports show- Get SIS import status
{% hint style="warning" %}
canvas-pp-cli smart-search <course_id>- Search course content
Student-facing AI-powered study tools (Summarize, Quiz me, Flashcards) backed by Cedar. Scoped to a single course; requires a student enrollment.
canvas-pp-cli study-assist <course_id>- Request a study assist response
This API can be used to edit and delete submission comments.
canvas-pp-cli submission-comments create-file- Upload a filecanvas-pp-cli submission-comments destroy- Delete a submission commentcanvas-pp-cli submission-comments update- Edit a submission comment
API for accessing and updating submissions for an assignment. The submission id in these URLs is the id of the student in the course, there is no separate submission id exposed in these APIs.
canvas-pp-cli submissions bulk-update- Grade or comment on multiple submissionscanvas-pp-cli submissions bulk-update-2- Grade or comment on multiple submissionscanvas-pp-cli submissions bulk-update-3- Grade or comment on multiple submissionscanvas-pp-cli submissions bulk-update-4- Grade or comment on multiple submissionscanvas-pp-cli submissions create- Submit an assignmentcanvas-pp-cli submissions create-2- Submit an assignmentcanvas-pp-cli submissions create-file- Upload a filecanvas-pp-cli submissions create-file-2- Upload a filecanvas-pp-cli submissions document-annotations-read-state- Get document annotations read statecanvas-pp-cli submissions document-annotations-read-state-2- Get document annotations read statecanvas-pp-cli submissions for-students- List submissions for multiple assignmentscanvas-pp-cli submissions for-students-2- List submissions for multiple assignmentscanvas-pp-cli submissions gradeable-students- List gradeable studentscanvas-pp-cli submissions index- List assignment submissionscanvas-pp-cli submissions index-2- List assignment submissionscanvas-pp-cli submissions mark-bulk-submissions-as-read- Mark bulk submissions as readcanvas-pp-cli submissions mark-bulk-submissions-as-read-2- Mark bulk submissions as readcanvas-pp-cli submissions mark-document-annotations-read- Mark document annotations as readcanvas-pp-cli submissions mark-document-annotations-read-2- Mark document annotations as readcanvas-pp-cli submissions mark-rubric-assessments-read- Mark rubric assessments as readcanvas-pp-cli submissions mark-rubric-assessments-read-2- Mark rubric assessments as readcanvas-pp-cli submissions mark-rubric-assessments-read-3- Mark rubric assessments as readcanvas-pp-cli submissions mark-rubric-assessments-read-4- Mark rubric assessments as readcanvas-pp-cli submissions mark-submission-item-read- Mark submission item as readcanvas-pp-cli submissions mark-submission-item-read-2- Mark submission item as readcanvas-pp-cli submissions mark-submission-read- Mark submission as readcanvas-pp-cli submissions mark-submission-read-2- Mark submission as readcanvas-pp-cli submissions mark-submission-unread- Mark submission as unreadcanvas-pp-cli submissions mark-submission-unread-2- Mark submission as unreadcanvas-pp-cli submissions multiple-gradeable-students- List multiple assignments gradeable studentscanvas-pp-cli submissions rubric-assessments-read-state- Get rubric assessments read statecanvas-pp-cli submissions rubric-assessments-read-state-2- Get rubric assessments read statecanvas-pp-cli submissions rubric-assessments-read-state-3- Get rubric assessments read statecanvas-pp-cli submissions rubric-assessments-read-state-4- Get rubric assessments read statecanvas-pp-cli submissions show- Get a single submissioncanvas-pp-cli submissions show-2- Get a single submissioncanvas-pp-cli submissions show-anonymous- Get a single submission by anonymous idcanvas-pp-cli submissions show-anonymous-2- Get a single submission by anonymous idcanvas-pp-cli submissions submission-summary- Submission Summarycanvas-pp-cli submissions submission-summary-2- Submission Summarycanvas-pp-cli submissions submissions-clear-unread- Clear unread status for all submissions.canvas-pp-cli submissions submissions-clear-unread-2- Clear unread status for all submissions.canvas-pp-cli submissions update- Grade or comment on a submissioncanvas-pp-cli submissions update-2- Grade or comment on a submissioncanvas-pp-cli submissions update-anonymous- Grade or comment on a submission by anonymous idcanvas-pp-cli submissions update-anonymous-2- Grade or comment on a submission by anonymous id
{
canvas-pp-cli tabs index- List available tabs for a course or groupcanvas-pp-cli tabs index-2- List available tabs for a course or groupcanvas-pp-cli tabs index-3- List available tabs for a course or groupcanvas-pp-cli tabs index-4- List available tabs for a course or groupcanvas-pp-cli tabs update- Update a tab for a course
// A pairing unique to that enrollment period given to a recipient of that
canvas-pp-cli temporary-enrollment-pairings create- Create Temporary Enrollment Pairingcanvas-pp-cli temporary-enrollment-pairings destroy- Delete Temporary Enrollment Pairingcanvas-pp-cli temporary-enrollment-pairings index- List temporary enrollment pairingscanvas-pp-cli temporary-enrollment-pairings new- New TemporaryEnrollmentPairingcanvas-pp-cli temporary-enrollment-pairings show- Get a single temporary enrollment pairing
API for managing linked observers and observees
canvas-pp-cli user-observees create- Add an observee with credentialscanvas-pp-cli user-observees create-2- Create observer pairing codecanvas-pp-cli user-observees destroy- Remove an observeecanvas-pp-cli user-observees index- List linked observeescanvas-pp-cli user-observees observers- List linked observerscanvas-pp-cli user-observees show- Show an observeecanvas-pp-cli user-observees show-observer- Show an observercanvas-pp-cli user-observees update- Add an observee
API for accessing information on the current and other users.
canvas-pp-cli users activity-stream- List the activity streamcanvas-pp-cli users activity-stream-2- List the activity streamcanvas-pp-cli users activity-stream-summary- Activity stream summarycanvas-pp-cli users api-index- List users in accountcanvas-pp-cli users api-show- Show user detailscanvas-pp-cli users batch-query- BETA - Initiate batch page views querycanvas-pp-cli users batch-query-results- BETA - Get batch query resultscanvas-pp-cli users clear- Clear course nicknamescanvas-pp-cli users create- Create a usercanvas-pp-cli users create-file- Upload a filecanvas-pp-cli users create-self-registered-user- [DEPRECATED] Self register a usercanvas-pp-cli users delete- Remove course nicknamecanvas-pp-cli users delete-data- Delete custom datacanvas-pp-cli users expire-mobile-sessions- Log users out of all mobile appscanvas-pp-cli users expire-mobile-sessions-2- Log users out of all mobile appscanvas-pp-cli users get-custom-color- Get custom colorcanvas-pp-cli users get-custom-colors- Get custom colorscanvas-pp-cli users get-dashboard-positions- Get dashboard positionscanvas-pp-cli users get-data- Load custom datacanvas-pp-cli users ignore-all-stream-items- Hide all stream itemscanvas-pp-cli users ignore-stream-item- Hide a stream itemcanvas-pp-cli users index- List user page viewscanvas-pp-cli users index-2- List course nicknamescanvas-pp-cli users merge-into- Merge user into another usercanvas-pp-cli users merge-into-2- Merge user into another usercanvas-pp-cli users missing-submissions- List Missing Submissionscanvas-pp-cli users pandata-events-token- Get a Pandata Events jwt token and its expiration datecanvas-pp-cli users poll-batch-query- BETA - Poll batch query statuscanvas-pp-cli users poll-query- BETA - Poll query statuscanvas-pp-cli users profile-pics- List avatar optionscanvas-pp-cli users query- BETA - Initiate page views querycanvas-pp-cli users query-results- BETA - Get query resultscanvas-pp-cli users set-custom-color- Update custom colorcanvas-pp-cli users set-dashboard-positions- Update dashboard positionscanvas-pp-cli users set-data- Store custom datacanvas-pp-cli users set-files-ui-version-preference- Update files UI version preferencecanvas-pp-cli users set-text-editor-preference- Update text editor preferencecanvas-pp-cli users settings- Update user settings.canvas-pp-cli users settings-2- Update user settings.canvas-pp-cli users settings-3- Get user profilecanvas-pp-cli users show- Get course nicknamecanvas-pp-cli users split- Split merged users into separate userscanvas-pp-cli users terminate-sessions- Terminate all user sessionscanvas-pp-cli users todo-item-count- List counts for todo itemscanvas-pp-cli users todo-items- List the TODO itemscanvas-pp-cli users upcoming-events- List upcoming assignments, calendar eventscanvas-pp-cli users update- Edit a usercanvas-pp-cli users update-2- Set course nicknamecanvas-pp-cli users user-graded-submissions- Get a users most recently graded submissions
{
canvas-pp-cli what-if-grades reset-for-student-course- Reset the what-if scores for the current user for an entire course and recalculate gradescanvas-pp-cli what-if-grades update- Update a submission's what-if score and calculate grades
# Human-readable table (default in terminal, JSON when piped)
canvas-pp-cli account-domain-lookups
# JSON for scripting and agents
canvas-pp-cli account-domain-lookups --json
# Filter to specific fields
canvas-pp-cli account-domain-lookups --json --select id,name,status
# Dry run — show the request without sending
canvas-pp-cli account-domain-lookups --dry-run
# Agent mode — JSON + compact + no prompts in one flag
canvas-pp-cli account-domain-lookups --agentThis CLI is designed for AI agent consumption:
- Non-interactive - never prompts, every input is a flag
- Pipeable -
--jsonoutput to stdout, errors to stderr - Filterable -
--select id,namereturns only fields you need - Previewable -
--dry-runshows the request without sending - Explicit retries - add
--idempotentto create retries and--ignore-missingto delete retries when a no-op success is acceptable - Confirmable -
--yesfor explicit confirmation of destructive actions - Piped input - write commands can accept structured input when their help lists
--stdin - Offline-friendly - sync/search commands can use the local SQLite store when available
- Agent-safe by default - no colors or formatting unless
--human-friendlyis set
Exit codes: 0 success, 2 usage error, 3 not found, 4 auth error, 5 API error, 7 rate limited, 10 config error.
canvas-pp-cli doctorVerifies configuration, credentials, and connectivity to the API.
Run canvas-pp-cli doctor to see the resolved config, data, state, and cache directories. The platform-default config path is ~/.config/canvas-pp-cli/config.toml; --home, CANVAS_HOME, and per-kind env vars can relocate it.
Static request headers can be configured under headers; per-command header overrides take precedence.
Environment variables:
| Name | Kind | Required | Description |
|---|---|---|---|
CANVAS_API_TOKEN |
per_call | Yes | Set to your API credential. |
CANVAS_ACCESS_TOKEN |
per_call | Yes | Set to your API credential. |
If you use agentcookie to sync secrets across machines, this CLI auto-adopts agentcookie-managed credentials with no extra setup. When the daemon writes to this CLI's config, canvas-pp-cli doctor reports agentcookie: detected and auth-status labels the source as agentcookie. Skip this section if you don't use agentcookie - the CLI works the same as any other.
Authentication errors (exit code 4)
- Run
canvas-pp-cli doctorto check credentials - Verify the environment variable is set:
echo $CANVAS_API_TOKENNot found errors (exit code 3) - Check the resource ID is correct
- Run the
listcommand to see available items
- 401 Unauthorized on every call — Set CANVAS_API_TOKEN to a valid access token and confirm CANVAS_BASE_URL points at your institution's Canvas host.
- Wrong instance / 404 on valid IDs — Canvas is per-institution; set CANVAS_BASE_URL to your host (not canvas.instructure.com) so paths resolve against the right tenant.
- 403 / rate-limit on large syncs — Canvas meters by request cost; lower throughput with --rate-limit 5 or sync fewer resources at a time.
- roster / at-risk return empty — Run 'canvas-pp-cli sync --resources courses,enrollments,users,submissions' first to populate the local mirror.
This CLI was built by studying these projects and resources:
- ucfopen/canvasapi — Python (656 stars)
- gqmaguirejr/Canvas-tools — Python (100 stars)
- DMontgomery40/mcp-canvas-lms — TypeScript (99 stars)
- dbosk/canvaslms — Python (80 stars)
- vishalsachdev/canvas-pp-mcp — Python (80 stars)
- KTH/canvas-api — TypeScript (40 stars)
- mbund/canvas-pp-cli — Rust (30 stars)
- instructure/pandarus — Ruby (30 stars)
Generated by CLI Printing Press