Canvas LMS logo

Canvas LMS

Canvas is the open, AGPLv3-licensed learning management system created and maintained by Instructure, Inc. and used by more than 30 million students, teachers, and administrators across higher education, K-12, business, and government. Canvas exposes a deep REST API (190+ resource groups covering Accounts, Courses, Enrollments, Assignments, Submissions, Grades, Outcomes, Quizzes, Rubrics, Modules, Pages, Discussions, Files, Conversations, Calendar Events, SIS Import, Authentication Providers, Developer Keys, External Tools, AI Conversations, AI Experiences, Analytics, Audit Logs, and more), a GraphQL API at /api/graphql, IMS LTI 1.3 / LTI Advantage services (Names and Role Provisioning, Line Items, Score, Result, Deep Linking), a Platform Notification Service for server-to-server webhook delivery, and the Data Access Platform (DAP / Canvas Data 2) for warehouse-scale event and snapshot data export. Canvas is the same software that powers canvas.instructure.com (Free for Teacher), Canvas Cloud for institutions, and self-hosted deployments.

6 APIs 2 Capabilities 20 Features
Learning ManagementEducationEdTechLMSLTIHigher EducationK-12Open SourceAGPLCanvas

Canvas LMS publishes 1 API on the APIs.io network: Canvas REST API. Tagged areas include Learning Management, Education, EdTech, LMS, and LTI.

The Canvas LMS catalog on APIs.io includes 2 machine-runnable capabilities and 1 JSON-LD context.

Canvas LMS’s developer surface includes developer portal, signup flow, documentation, changelog, authentication, engineering blog, getting-started guide, and 52 more developer resources.

APIs

Canvas REST API

The canonical Canvas REST API at /api/v1. 190+ controller-driven resource groups covering Accounts, Account Calendars, Account Notifications, Account Reports, Admins, Announceme...

Canvas GraphQL API

GraphQL endpoint exposing the Canvas object graph (courses, users, enrollments, assignments, submissions, modules, discussion topics, outcomes, account hierarchies, etc.). Permi...

Canvas LTI Advantage Services

1EdTech (IMS Global) LTI 1.3 / LTI Advantage implementation. Includes Deep Linking 2.0, Names and Role Provisioning Services (NRPS), Assignment and Grade Services (Line Items, S...

Canvas Platform Notification Service

Platform Notification Service (PNS) enables server-to-server communication by allowing Canvas to send Notices (webhook deliveries) to LTI tools outside the scope of an active us...

Canvas Data Access Platform

Data Access Platform (DAP) is the warehouse-scale data export API for Canvas Data 2 — the successor to Canvas Data 1 / Canvas Data CLI. DAP exposes Canvas tables and Caliper-der...

Canvas SIS Import API

The SIS Import API ingests Canvas's canonical SIS CSV format (and ZIP archives of those CSVs) to provision accounts, terms, courses, sections, users, enrollments, groups, group ...

Capabilities

Canvas REST API — Assignments

Canvas REST API — Assignments business surface. Lead operation: List Assignments in a Course. Self-contained Naftiko capability covering one Canvas business surface.

Run with Naftiko

Canvas REST API — Courses

Canvas REST API — Courses business surface. Lead operation: List Courses for the Current User. Self-contained Naftiko capability covering one Canvas business surface.

Run with Naftiko

Features

Open-source AGPLv3 LMS by Instructure with 6,600+ GitHub stars and 30M+ users worldwide
REST API with 190+ resource groups covering the full LMS surface — courses, users, enrollments, assignments, submissions, grades, outcomes, quizzes, modules, pages, discussions, files, conversations, calendar events, audit logs, AI conversations, AI experiences, and more
GraphQL API at /api/graphql with hosted GraphiQL explorer at /graphiql
OAuth2 (RFC 6749) authentication with developer-key-issued client credentials, manual personal access tokens for testing, and the as_user_id masquerading parameter for admin act-as flows
Full IMS LTI 1.3 / LTI Advantage implementation — Deep Linking 2.0, Names and Role Provisioning, Assignment & Grade Services (Line Items, Score, Result), Dynamic Registration, JWK key exchange
Platform Notification Service (PNS) for server-to-server webhook delivery to LTI tools
Plagiarism Detection Platform with webhook subscriptions, originality reports, and plagiarism-platform users/assignments
SIS Import API with the canonical Canvas SIS CSV format covering accounts, terms, courses, sections, users, enrollments, groups, group memberships, cross-listings, logins, admins
Data Access Platform (DAP / Canvas Data 2) for warehouse-scale snapshot + incremental table and event exports via the api-gateway.instructure.com/dap endpoint
Built-in OpenAPI 3.0 generator via the `rake doc:openapi` task using swagger_yard
Pagination using RFC 5988 Link headers; per_page query parameter; supports `last`, `next`, `prev`, and `first` link rels
Per-user-per-host throttling with X-Request-Cost and X-Rate-Limit-Remaining response headers
Compound documents and includes[] query parameter for relationship hydration
File Upload API with multipart POST-then-PUT flow for direct-to-S3 uploads
Audit log APIs for Authentications, Course changes, and Grade Changes
Canvas Studio (video), Canvas Catalog (course discovery + commerce), Canvas Credentials (digital credentials via Parchment), and Canvas Career Experiences
Cross-platform mobile apps for Students, Teachers, Parents (canvas-ios + canvas-android repos)
Common Cartridge import/export, QTI 1.x/2.x quiz interchange, Moodle migration
Self-hosted via Docker (canvas-self-hosted) or hosted as Canvas Cloud (Canvas Free for Teacher, Canvas LMS for institutions)
Owned by Instructure, Inc. (KKR portfolio company since 2024); Steve Daly, CEO

Semantic Vocabularies

Canvas Lms Context

34 classes · 16 properties

JSON-LD

Resources

🌐
Portal
Portal
🌐
Portal
Portal
📝
SignUp
SignUp
🔗
Documentation
Documentation
🔗
Documentation
Documentation
📄
ChangeLog
ChangeLog
🔗
Documentation
Documentation
🔑
Authentication
Authentication
🔗
RateLimits
RateLimits
🔗
Pagination
Pagination
🔗
Documentation
Documentation
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
📜
PrivacyPolicy
PrivacyPolicy
🟢
StatusPage
StatusPage
🔗
Forum
Forum
🔗
Forum
Forum
📰
Blog
Blog
🌐
Portal
Portal
🌐
Portal
Portal
🌐
Portal
Portal
👥
GitHubOrganization
GitHubOrganization
💻
SourceCode
SourceCode
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🚀
GettingStarted
GettingStarted
🔧
Tool
Tool
💻
SourceCode
SourceCode
💻
SourceCode
SourceCode
📦
SDK
SDK
📦
SDK
SDK
📦
SDK
SDK
📦
SDK
SDK
🔧
Tool
Tool
🔧
Tool
Tool
💻
CodeExamples
CodeExamples
💻
SourceCode
SourceCode
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
📦
SDK
SDK
📦
SDK
SDK
🔧
Tool
Tool
🔧
Tool
Tool
🔧
Tool
Tool
🔧
Tool
Tool
🔧
Tool
Tool
🔧
Tool
Tool
💻
CodeExamples
CodeExamples
🔧
Tool
Tool
🔗
Marketplace
Marketplace
🔗
Marketplace
Marketplace
🌐
Portal
Portal
🌐
Portal
Portal
🌐
Portal
Portal
🌐
Portal
Portal
🔗
Plans
Plans
🔗
RateLimits
RateLimits

Sources

Raw ↑
aid: canvas-lms
url: https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/apis.yml
name: Canvas LMS
tags:
- Learning Management
- Education
- EdTech
- LMS
- LTI
- Higher Education
- K-12
- Open Source
- AGPL
- Canvas
kind: contract
image: https://kinlane-productions2.s3.amazonaws.com/apis-json/apis-json-logo.jpg
access: 3rd-Party
description: Canvas is the open, AGPLv3-licensed learning management system created and maintained by
  Instructure, Inc. and used by more than 30 million students, teachers, and administrators across higher
  education, K-12, business, and government. Canvas exposes a deep REST API (190+ resource groups covering
  Accounts, Courses, Enrollments, Assignments, Submissions, Grades, Outcomes, Quizzes, Rubrics, Modules,
  Pages, Discussions, Files, Conversations, Calendar Events, SIS Import, Authentication Providers,
  Developer Keys, External Tools, AI Conversations, AI Experiences, Analytics, Audit Logs, and more), a
  GraphQL API at /api/graphql, IMS LTI 1.3 / LTI Advantage services (Names and Role Provisioning, Line
  Items, Score, Result, Deep Linking), a Platform Notification Service for server-to-server webhook
  delivery, and the Data Access Platform (DAP / Canvas Data 2) for warehouse-scale event and snapshot
  data export. Canvas is the same software that powers canvas.instructure.com (Free for Teacher), Canvas
  Cloud for institutions, and self-hosted deployments.
apis:
- aid: canvas-lms:canvas-rest-api
  name: Canvas REST API
  tags:
  - REST
  - Courses
  - Users
  - Assignments
  - Grades
  - Enrollments
  - LMS
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  properties:
  - url: https://canvas.instructure.com/doc/api/
    type: Documentation
  - url: https://canvas.instructure.com/doc/api/all_resources.html
    type: Documentation
    name: All Resources Reference
  - url: openapi/canvas-lms-rest-api-openapi.yml
    type: OpenAPI
  - url: json-schema/canvas-lms-course-schema.json
    type: JSONSchema
  - url: json-schema/canvas-lms-assignment-schema.json
    type: JSONSchema
  - url: json-ld/canvas-lms-context.jsonld
    type: JSONLD
  - url: capabilities/rest-api-courses.yaml
    type: NaftikoCapability
  - url: capabilities/rest-api-assignments.yaml
    type: NaftikoCapability
  - url: https://canvas.instructure.com/doc/api/file.oauth.html
    type: Authentication
    name: OAuth2 Overview
  - url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
    type: Authentication
    name: OAuth2 Endpoints
  - url: https://canvas.instructure.com/doc/api/file.developer_keys.html
    type: Authentication
    name: Developer Keys
  - url: https://canvas.instructure.com/doc/api/file.pagination.html
    type: Pagination
  - url: https://canvas.instructure.com/doc/api/file.throttling.html
    type: RateLimits
  - url: https://canvas.instructure.com/doc/api/file.file_uploads.html
    type: Documentation
    name: File Uploads
  - url: https://canvas.instructure.com/doc/api/file.masquerading.html
    type: Documentation
    name: Masquerading (Act-As)
  - url: https://canvas.instructure.com/doc/api/file.changelog.html
    type: ChangeLog
  description: The canonical Canvas REST API at /api/v1. 190+ controller-driven resource groups covering
    Accounts, Account Calendars, Account Notifications, Account Reports, Admins, Announcements,
    Appointment Groups, Assignments, Assignment Groups, Assignment Extensions, Authentication Providers,
    Audit Logs (Authentications, Course, Grade Change), Blueprint Courses, Bookmarks, Brand Configs,
    Calendar Events, Collaborations, Communication Channels, Conferences, Content Exports, Content
    Migrations, Content Shares, Conversations, Courses, Course Pace, Course Reports, Custom Gradebook
    Columns, Developer Keys, Discussion Topics, Enrollments, Enrollment Terms, ePortfolios, ePub Exports,
    External Tools, Favorites, Feature Flags, Files, Folders, Gradebook History, Grading Periods,
    Grading Standards, Group Categories, Groups, JWTs, Late Policy, Live Assessments, Logins, Media
    Objects, Modules, New Quizzes, Notification Preferences, Outcomes, Outcome Groups, Outcome Imports,
    Outcome Results, Pages, Peer Reviews, Planner, Polls, Progress, Quizzes, Quiz Submissions, Roles,
    Rubrics, Sections, SIS Imports, Sub-Accounts, Submissions, Submission Comments, Tabs, User
    Observees, Users, AI Conversations, AI Experiences, and more. Authentication via OAuth2 (RFC 6749)
    with developer-key-issued client credentials; supports manual access tokens for testing and
    masquerading via the as_user_id parameter.
- aid: canvas-lms:canvas-graphql-api
  name: Canvas GraphQL API
  tags:
  - GraphQL
  - Query
  - LMS
  humanURL: https://canvas.instructure.com/doc/api/file.graphql.html
  baseURL: https://<canvas-install-url>/api/graphql
  properties:
  - url: https://canvas.instructure.com/doc/api/file.graphql.html
    type: Documentation
  - url: https://<canvas-install-url>/graphiql
    type: Sandbox
    name: GraphiQL Explorer
  - url: https://canvas.instructure.com/doc/api/file.oauth.html
    type: Authentication
  description: GraphQL endpoint exposing the Canvas object graph (courses, users, enrollments,
    assignments, submissions, modules, discussion topics, outcomes, account hierarchies, etc.).
    Permissions mirror the REST API. Includes a hosted GraphiQL explorer at /graphiql for query
    development. Authentication uses the same OAuth2 bearer tokens as the REST API.
- aid: canvas-lms:canvas-lti-advantage
  name: Canvas LTI Advantage Services
  tags:
  - LTI
  - LTI Advantage
  - IMS Global
  - 1EdTech
  - Interoperability
  - Standards
  humanURL: https://canvas.instructure.com/doc/api/file.tools_intro.html
  properties:
  - url: https://canvas.instructure.com/doc/api/file.tools_intro.html
    type: Documentation
    name: Introduction to LTI in Canvas
  - url: https://canvas.instructure.com/doc/api/file.lti_launch_overview.html
    type: Documentation
    name: LTI Launch Overview
  - url: https://canvas.instructure.com/doc/api/file.lti_dev_key_config.html
    type: Documentation
    name: Configuring LTI 1.3 Developer Keys
  - url: https://canvas.instructure.com/doc/api/file.content_item.html
    type: Documentation
    name: Deep Linking (Content Item)
  - url: https://canvas.instructure.com/doc/api/file.assignment_tools.html
    type: Documentation
    name: Assignment and Grade Services
  - url: https://canvas.instructure.com/doc/api/names_and_role.html
    type: Documentation
    name: Names and Role Provisioning
  - url: https://canvas.instructure.com/doc/api/line_items.html
    type: Documentation
    name: Line Items
  - url: https://canvas.instructure.com/doc/api/score.html
    type: Documentation
    name: Score
  - url: https://canvas.instructure.com/doc/api/result.html
    type: Documentation
    name: Result
  - url: https://canvas.instructure.com/doc/api/public_jwk.html
    type: Documentation
    name: Public JWK
  - url: https://canvas.instructure.com/doc/api/lti_registrations.html
    type: Documentation
    name: LTI Registrations
  description: 1EdTech (IMS Global) LTI 1.3 / LTI Advantage implementation. Includes Deep Linking 2.0,
    Names and Role Provisioning Services (NRPS), Assignment and Grade Services (Line Items, Score,
    Result), Dynamic Registration, Platform Notification Service, and JWK-based key exchange.
    Authentication uses JWT client assertions per the IMS Security Framework.
- aid: canvas-lms:canvas-platform-notification-service
  name: Canvas Platform Notification Service
  tags:
  - Webhooks
  - Notifications
  - Events
  - LTI
  - Server to Server
  humanURL: https://canvas.instructure.com/doc/api/file.pns.html
  properties:
  - url: https://canvas.instructure.com/doc/api/file.pns.html
    type: Documentation
  - url: https://canvas.instructure.com/doc/api/notice_handlers.html
    type: Documentation
    name: Notice Handlers
  - url: https://canvas.instructure.com/doc/api/webhooks_subscriptions_for_plagiarism_platform.html
    type: Documentation
    name: Plagiarism Platform Webhook Subscriptions
  description: Platform Notification Service (PNS) enables server-to-server communication by allowing
    Canvas to send Notices (webhook deliveries) to LTI tools outside the scope of an active user
    session. Tools register notice handlers for specific event types and receive signed deliveries
    that integrate with the IMS LTI 1.3 security model.
- aid: canvas-lms:canvas-data-access-platform
  name: Canvas Data Access Platform
  tags:
  - Canvas Data
  - DAP
  - Data Warehouse
  - Analytics
  - Snapshots
  - Events
  humanURL: https://data-access-platform-api.s3.amazonaws.com/index.html
  baseURL: https://api-gateway.instructure.com/dap
  properties:
  - url: https://data-access-platform-api.s3.amazonaws.com/index.html
    type: Documentation
    name: DAP Query API Reference
  - url: https://github.com/instructure/dap-client-py
    type: SDK
    name: DAP Client (Python)
  - url: https://github.com/instructure/canvas-data-loader
    type: Tool
    name: Canvas Data Loader (Rust)
  - url: https://github.com/instructure/canvas-hosted-data-examples
    type: CodeExamples
  description: Data Access Platform (DAP) is the warehouse-scale data export API for Canvas Data 2 — the
    successor to Canvas Data 1 / Canvas Data CLI. DAP exposes Canvas tables and Caliper-derived event
    streams as snapshot and incremental queries against the canvas and catalog namespaces, intended for
    bulk download into a customer's data lake or warehouse.
- aid: canvas-lms:canvas-sis-import-api
  name: Canvas SIS Import API
  tags:
  - SIS
  - Student Information System
  - Provisioning
  - Bulk Import
  - CSV
  humanURL: https://canvas.instructure.com/doc/api/sis_imports.html
  properties:
  - url: https://canvas.instructure.com/doc/api/sis_imports.html
    type: Documentation
    name: SIS Imports
  - url: https://canvas.instructure.com/doc/api/sis_import_errors.html
    type: Documentation
    name: SIS Import Errors
  - url: https://canvas.instructure.com/doc/api/file.sis_csv.html
    type: Documentation
    name: SIS CSV Format
  - url: https://canvas.instructure.com/doc/api/file.object_ids.html
    type: Documentation
    name: SIS IDs
  - url: https://canvas.instructure.com/doc/api/sis_integration.html
    type: Documentation
    name: SIS Integration
  description: The SIS Import API ingests Canvas's canonical SIS CSV format (and ZIP archives of those
    CSVs) to provision accounts, terms, courses, sections, users, enrollments, groups, group
    memberships, cross-listings, user observers, logins, admins, change-sis-id mappings, and admin
    differentiation tags. Supports diffing imports against the previous import, batch mode, and
    asynchronous progress polling.
common:
- url: https://www.instructure.com
  name: Instructure
  type: Portal
- url: https://www.instructure.com/canvas
  name: Canvas LMS Product Page
  type: Portal
- url: https://canvas.instructure.com/
  name: Free for Teacher
  type: SignUp
- url: https://canvas.instructure.com/doc/api/
  name: Canvas REST API Documentation
  type: Documentation
- url: https://canvas.instructure.com/doc/api/all_resources.html
  name: All Resources Reference
  type: Documentation
- url: https://canvas.instructure.com/doc/api/file.changelog.html
  name: Canvas API Change Log
  type: ChangeLog
- url: https://canvas.instructure.com/doc/api/file.graphql.html
  name: Canvas GraphQL
  type: Documentation
- url: https://canvas.instructure.com/doc/api/file.oauth.html
  name: OAuth2 Overview
  type: Authentication
- url: https://canvas.instructure.com/doc/api/file.throttling.html
  name: API Throttling
  type: RateLimits
- url: https://canvas.instructure.com/doc/api/file.pagination.html
  name: Pagination
  type: Pagination
- url: https://canvas.instructure.com/doc/api/file.tools_intro.html
  name: LTI Tools Introduction
  type: Documentation
- url: https://www.instructure.com/policies/api-policy
  name: Canvas API Policy
  type: TermsOfService
- url: https://www.instructure.com/policies
  name: Instructure Legal & Privacy
  type: PrivacyPolicy
- url: https://www.instructure.com/policies/product-privacy-notice
  name: Product Privacy Notice
  type: PrivacyPolicy
- url: https://status.instructure.com/
  name: Instructure Status
  type: StatusPage
- url: https://community.canvaslms.com/
  name: Canvas Community
  type: Forum
- url: https://community.canvaslms.com/t5/Canvas-Developers-Group/gh-p/canvas-developers
  name: Canvas Developers Group
  type: Forum
- url: https://www.instructure.com/blog
  name: Instructure Blog
  type: Blog
- url: https://www.instructure.com/canvas/canvas-credentials
  name: Canvas Credentials
  type: Portal
- url: https://www.instructure.com/canvas/canvas-studio
  name: Canvas Studio
  type: Portal
- url: https://www.instructure.com/canvas/canvas-catalog
  name: Canvas Catalog
  type: Portal
- url: https://github.com/instructure
  name: Instructure on GitHub
  type: GitHubOrganization
- url: https://github.com/instructure/canvas-lms
  name: Canvas LMS Source
  type: SourceCode
- url: https://github.com/instructure/canvas-lms/wiki
  name: Canvas LMS Wiki
  type: Documentation
- url: https://github.com/instructure/canvas-lms/wiki/Quick-Start
  name: Quick Start
  type: GettingStarted
- url: https://github.com/instructure/canvas-lms/wiki/Production-Start
  name: Production Start
  type: GettingStarted
- url: https://github.com/instructure/canvas-self-hosted
  name: Canvas Self-Hosted Docker Configuration
  type: Tool
- url: https://github.com/instructure/canvas-ios
  name: Canvas iOS Apps
  type: SourceCode
- url: https://github.com/instructure/canvas-android
  name: Canvas Android Apps
  type: SourceCode
- url: https://github.com/instructure/CanvasAPI
  name: Canvas API for Android
  type: SDK
- url: https://github.com/instructure/pandarus
  name: Pandarus (Ruby Canvas Client)
  type: SDK
- url: https://github.com/instructure/canvas_oauth_engine
  name: Canvas OAuth Engine (Rails)
  type: SDK
- url: https://github.com/instructure/dap-client-py
  name: DAP Client (Python)
  type: SDK
- url: https://github.com/instructure/canvas-data-loader
  name: Canvas Data Loader (Rust)
  type: Tool
- url: https://github.com/instructure/canvas-data-cli
  name: Canvas Data CLI (legacy Canvas Data 1)
  type: Tool
- url: https://github.com/instructure/canvas-studio-api-examples
  name: Canvas Studio API Examples
  type: CodeExamples
- url: https://github.com/instructure/canvas-rce-api
  name: Canvas Rich Content Editor API
  type: SourceCode
- url: https://github.com/instructure/canvas-hosted-data-examples
  name: Canvas Hosted Data Examples
  type: CodeExamples
- url: https://github.com/instructure/lti_example
  name: LTI Example
  type: CodeExamples
- url: https://github.com/instructure/lti1_tool_provider_example
  name: LTI 1.0 Tool Provider Example
  type: CodeExamples
- url: https://github.com/instructure/lti_tool_provider_example
  name: LTI Tool Provider Example
  type: CodeExamples
- url: https://github.com/instructure/ims-lti
  name: IMS-LTI Ruby Library
  type: SDK
- url: https://github.com/instructure/basiclti-util-java
  name: Basic LTI Util (Java)
  type: SDK
- url: https://github.com/instructure/qti
  name: QTI Library
  type: Tool
- url: https://github.com/instructure/QTIMigrationTool
  name: QTI Migration Tool
  type: Tool
- url: https://github.com/instructure/moodle2cc
  name: Moodle to Common Cartridge Converter
  type: Tool
- url: https://github.com/instructure/common-cartridge-viewer
  name: Common Cartridge Viewer
  type: Tool
- url: https://github.com/instructure/analytics
  name: Canvas Analytics Plugin
  type: Tool
- url: https://github.com/instructure/instructure-ui
  name: Instructure UI Component Library
  type: Tool
- url: https://github.com/instructure/canvas-alexa-lambda
  name: Canvas Alexa Lambda
  type: CodeExamples
- url: https://github.com/instructure/canvas_connect
  name: Adobe Connect Plugin for Canvas
  type: Tool
- url: https://www.instructure.com/canvas/partners
  name: Canvas Partners & Integrations
  type: Marketplace
- url: https://www.eduappcenter.com/
  name: Edu App Center (LTI Tool Catalog)
  type: Marketplace
- url: https://www.instructure.com/canvas/higher-education
  name: Canvas for Higher Education
  type: Portal
- url: https://www.instructure.com/canvas/k-12
  name: Canvas for K-12
  type: Portal
- url: https://www.instructure.com/canvas/business
  name: Canvas for Business
  type: Portal
- url: https://www.instructure.com/canvas/government
  name: Canvas for Government
  type: Portal
- url: plans/canvas-lms-plans-pricing.yml
  type: Plans
- url: rate-limits/canvas-lms-rate-limits.yml
  type: RateLimits
- type: Features
  data:
  - Open-source AGPLv3 LMS by Instructure with 6,600+ GitHub stars and 30M+ users worldwide
  - REST API with 190+ resource groups covering the full LMS surface — courses, users, enrollments,
    assignments, submissions, grades, outcomes, quizzes, modules, pages, discussions, files,
    conversations, calendar events, audit logs, AI conversations, AI experiences, and more
  - GraphQL API at /api/graphql with hosted GraphiQL explorer at /graphiql
  - OAuth2 (RFC 6749) authentication with developer-key-issued client credentials, manual personal
    access tokens for testing, and the as_user_id masquerading parameter for admin act-as flows
  - Full IMS LTI 1.3 / LTI Advantage implementation — Deep Linking 2.0, Names and Role Provisioning,
    Assignment & Grade Services (Line Items, Score, Result), Dynamic Registration, JWK key exchange
  - Platform Notification Service (PNS) for server-to-server webhook delivery to LTI tools
  - Plagiarism Detection Platform with webhook subscriptions, originality reports, and
    plagiarism-platform users/assignments
  - SIS Import API with the canonical Canvas SIS CSV format covering accounts, terms, courses,
    sections, users, enrollments, groups, group memberships, cross-listings, logins, admins
  - Data Access Platform (DAP / Canvas Data 2) for warehouse-scale snapshot + incremental table and
    event exports via the api-gateway.instructure.com/dap endpoint
  - Built-in OpenAPI 3.0 generator via the `rake doc:openapi` task using swagger_yard
  - Pagination using RFC 5988 Link headers; per_page query parameter; supports `last`, `next`,
    `prev`, and `first` link rels
  - Per-user-per-host throttling with X-Request-Cost and X-Rate-Limit-Remaining response headers
  - Compound documents and includes[] query parameter for relationship hydration
  - File Upload API with multipart POST-then-PUT flow for direct-to-S3 uploads
  - Audit log APIs for Authentications, Course changes, and Grade Changes
  - Canvas Studio (video), Canvas Catalog (course discovery + commerce), Canvas Credentials
    (digital credentials via Parchment), and Canvas Career Experiences
  - Cross-platform mobile apps for Students, Teachers, Parents (canvas-ios + canvas-android repos)
  - Common Cartridge import/export, QTI 1.x/2.x quiz interchange, Moodle migration
  - Self-hosted via Docker (canvas-self-hosted) or hosted as Canvas Cloud (Canvas Free for
    Teacher, Canvas LMS for institutions)
  - Owned by Instructure, Inc. (KKR portfolio company since 2024); Steve Daly, CEO
  sources:
  - https://github.com/instructure/canvas-lms
  - https://canvas.instructure.com/doc/api/
  - https://canvas.instructure.com/doc/api/all_resources.html
  - https://canvas.instructure.com/doc/api/file.oauth.html
  - https://canvas.instructure.com/doc/api/file.graphql.html
  - https://canvas.instructure.com/doc/api/file.tools_intro.html
  - https://canvas.instructure.com/doc/api/file.pns.html
  - https://www.instructure.com/canvas
  - https://www.instructure.com/about-us
  updated: '2026-05-25'
created: '2026-05-25T00:00:00.000Z'
modified: '2026-05-25'
position: Consuming
maintainers:
- FN: Kin Lane
  email: [email protected]
  X: apievangelist
  url: https://apievangelist.com
specificationVersion: '0.16'