Canvas · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canvas LMS REST Sis Imports API
8 actions
8 updates
phrasing
extends
openapi/canvas-sis-imports-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Canvas's API. It is a proposal applied on top of the contract, not a document Canvas publishes.
What the actions change
x-apievangelist-phrasing
Targets 8
$.info
$.paths['/v1/accounts/{account_id}/sis_imports'].get
$.paths['/v1/accounts/{account_id}/sis_imports'].post
$.paths['/v1/accounts/{account_id}/sis_imports/importing'].get
$.paths['/v1/accounts/{account_id}/sis_imports/{id}'].get
$.paths['/v1/accounts/{account_id}/sis_imports/{id}/restore_states'].put
$.paths['/v1/accounts/{account_id}/sis_imports/{id}/abort'].put
$.paths['/v1/accounts/{account_id}/sis_imports/abort_all_pending'].put
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Canvas LMS REST Sis Imports API
version: 1.0.0
extends: openapi/canvas-sis-imports-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 7
- target: $.paths['/v1/accounts/{account_id}/sis_imports'].get
update:
x-apievangelist-phrasing:
intent: List SIS imports for an account
effect: read
questions:
- Which SIS imports have run on my root account?
- Can I see only SIS imports created in a date range?
- How do I find SIS imports that failed?
instructions:
- text: List SIS imports for account {account_id}.
slots:
account_id: path.account_id
- text: Show SIS imports in account {account_id} created since {created_since}.
slots:
account_id: path.account_id
created_since: query.created_since
- text: List account {account_id} SIS imports in state {workflow_state}.
slots:
account_id: path.account_id
workflow_state: query.workflow_state
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sis_imports'].post
update:
x-apievangelist-phrasing:
intent: Import SIS data into Canvas
effect: write
questions:
- How do I upload a SIS CSV file to sync users and enrollments?
- Can I run a SIS import in batch mode for one term?
- Is there a threshold to stop an import that would delete too many records?
instructions:
- text: Import SIS file {attachment} into account {account_id}.
slots:
attachment: requestBody.attachment
account_id: path.account_id
- text: Run a batch-mode SIS import of {attachment} into account {account_id} for term {batch_mode_term_id}.
slots:
attachment: requestBody.attachment
account_id: path.account_id
batch_mode_term_id: requestBody.batch_mode_term_id
- text: Import {attachment} into account {account_id} with a change threshold of {change_threshold}.
slots:
attachment: requestBody.attachment
account_id: path.account_id
change_threshold: requestBody.change_threshold
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sis_imports/importing'].get
update:
x-apievangelist-phrasing:
intent: Show SIS imports currently running
effect: read
questions:
- Is a SIS import running on my account right now?
- Which SIS imports are still processing?
instructions:
- text: Show the SIS imports currently processing in account {account_id}.
slots:
account_id: path.account_id
- text: Check whether account {account_id} has an import in progress.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sis_imports/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a SIS import's status
effect: read
questions:
- Did my SIS import finish, and were there errors?
- What's the progress of a particular SIS import?
instructions:
- text: Get the status of SIS import {id} in account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Show progress and errors for SIS import {id} on account {account_id}.
slots:
id: path.id
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sis_imports/{id}/restore_states'].put
update:
x-apievangelist-phrasing:
intent: Roll back states changed by a SIS import
effect: write
questions:
- Can I undo the deletions a bad SIS import made?
- Is it possible to restore only the enrollments a SIS import concluded?
instructions:
- text: Restore the workflow states changed by SIS import {id} in account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Undelete only the items removed by SIS import {id} in account {account_id}, undelete only {undelete_only}.
slots:
id: path.id
account_id: path.account_id
undelete_only: requestBody.undelete_only
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sis_imports/{id}/abort'].put
update:
x-apievangelist-phrasing:
intent: Abort a SIS import
effect: destructive
questions:
- How do I stop a SIS import that's still running?
- How long before the next import starts after I abort one?
instructions:
- text: Abort SIS import {id} in account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Cancel the unfinished SIS import {id} on account {account_id}.
slots:
id: path.id
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/sis_imports/abort_all_pending'].put
update:
x-apievangelist-phrasing:
intent: Abort all pending SIS imports
effect: destructive
questions:
- Can I cancel every queued SIS import at once?
- What's the way to clear the SIS import backlog?
instructions:
- text: Abort all pending SIS imports in account {account_id}.
slots:
account_id: path.account_id
- text: Cancel every queued SIS import on account {account_id}.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/canvas-sis-imports-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.