Canvas LMS
by Instructure
The dominant higher-ed LMS. Extensive REST API, OAuth2, LTI 1.3 as the primary integration mechanism, and Live Events for streaming webhooks.
Direct integrations
Native integrations you connect from inside the LMS — typically an OAuth "Connect" flow, with no external middleware.
Supported — Canvas integrates primarily through LTI 1.3 / LTI Advantage tools (hundreds available via the Instructure/EduAppCenter catalog), plus first-party connectors.
| Integration | Category | Type | Notes |
|---|---|---|---|
| LTI 1.3 / LTI Advantage | Interoperability | lti |
Primary integration standard; launch external tools with deep linking, grade passback (AGS), and roster sync (NRPS). |
| Google Assignments / Drive | Productivity | lti |
Google Workspace integration via LTI. |
| Microsoft Teams / OneDrive | Productivity | lti |
Microsoft integration via LTI. |
| Zoom | Video conferencing | lti |
Schedule and join Zoom meetings from a course. |
| Turnitin | Plagiarism | lti |
Plagiarism detection via the plagiarism platform. |
| SAML 2.0 / OAuth SSO | Identity | saml |
Single sign-on via SAML and other auth providers. |
Middleware support
Third-party automation platforms (iPaaS) that connect this LMS to thousands of other apps without code.
Supported — No first-party iPaaS app; integrations run via LTI or the REST API. Community/third-party connectors exist for Zapier and Make.
| Platform | Supported | Details |
|---|---|---|
| Zapier | Yes | Third-party Canvas LMS Zapier app (limited triggers/actions). |
| Make | Yes | Via HTTP modules against the REST API. |
| Pabbly Connect | Yes | Via HTTP/webhook against the REST API. |
| n8n | Yes | Via the HTTP Request node against the REST API. |
| Microsoft Power Automate | No | |
| Workato | No | |
| Tray.io | No |
API
Programmatic access to the LMS. Endpoints below are a documented subset — always check the vendor's official reference for the complete, current list.
Supported — Large, well-documented REST API. There is also a GraphQL API at /api/graphql. Paths below are a representative subset.
| Type | REST |
|---|---|
| Version | v1 |
| Authentication | OAuth 2.0 (RFC-6749); access token via the Authorization: Bearer header |
| Base URL | https://<your-canvas-host>/api/v1 |
| Format | JSON |
| Rate limit | Token-bucket throttling; HTTP 403 with X-Rate-Limit-Remaining headers. |
| Docs | https://canvas.instructure.com/doc/api/ |
Endpoints
Courses
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/courses |
List your courses |
| GET | /api/v1/courses/{id} |
Get a single course |
| POST | /api/v1/accounts/{account_id}/courses |
Create a course |
Users
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/users/{id} |
Get user details |
| POST | /api/v1/accounts/{account_id}/users |
Create a user |
| GET | /api/v1/courses/{course_id}/users |
List users in a course |
Enrollments
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/courses/{course_id}/enrollments |
List enrollments in a course |
| POST | /api/v1/courses/{course_id}/enrollments |
Enroll a user |
| DELETE | /api/v1/courses/{course_id}/enrollments/{id} |
Conclude/delete an enrollment |
Assignments
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/courses/{course_id}/assignments |
List assignments |
| POST | /api/v1/courses/{course_id}/assignments |
Create an assignment |
Submissions
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions |
List submissions |
| PUT | /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id} |
Grade/comment on a submission |
Modules
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/courses/{course_id}/modules |
List modules |
Accounts
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/accounts/{id} |
Get account details |
Webhooks
Outbound HTTP callbacks the LMS sends to your endpoint when events occur, with their supported event types and security model.
Supported — Canvas streams 'Live Events' via the Data Services platform. Customers subscribe to specific events and receive them over an HTTPS webhook or an AWS SQS queue. Separate LTI mechanisms exist: the Platform Notification Service (PNS) and plagiarism-platform webhook subscriptions (JWT-secured).
Docs: https://canvas.instructure.com/doc/api/file.data_service_introduction.html
Security: HTTPS endpoint HMAC-signed payloads (Live Events) JWT access tokens (LTI PNS / plagiarism subscriptions)
| Event | Description |
|---|---|
course_created / course_updated | A course was created or updated |
enrollment_created / enrollment_updated | An enrollment changed |
user_created / user_updated | A user record changed |
assignment_created / assignment_updated | An assignment changed |
submission_created / submission_updated | A submission was created or updated |
grade_change | A grade was changed |
logged_in / logged_out | Authentication events |
discussion_topic_created | A discussion topic was created |