Canvas LMS website screenshot

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.

Canvas LMS publishes 11 APIs on the APIs.io network, including Canvas Live Events, Accounts API, Assignments API, and 8 more. Tagged areas include Learning Management, Education, EdTech, LMS, and LTI.

The Canvas LMS catalog on APIs.io includes 1 JSON-LD context and 1 Spectral governance ruleset.

Canvas LMS’s developer surface includes authentication, sandbox, changelog, CLI, developer portal, signup flow, documentation, and 92 more developer resources.

71.7/100 exemplar ▬ flat Agent 50/100 agent ready Full breakdown ↓
scored 2026-07-28 · rubric v0.6
AccessFreeSelf serve⚡ Free to try
16 APIs 1 MCP Servers 20 Features
Learning ManagementEducationEdTechLMSLTIHigher EducationK-12Open SourceAGPLCanvas

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-28 · rubric v0.6
Composite quality — 71.7/100 · exemplar
Contract Quality 19.4 / 25
Developer Ergonomics 15.2 / 20
Commercial Clarity 12.1 / 20
Operational Transparency 8.9 / 13
Governance 8.4 / 12
Discoverability 7.8 / 10
Agent readiness — 50/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
MCP Server 12 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 7 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 6 / 6
Agent Skills 0 / 5
Well-Known Catalog 4 / 4
Consent & Bot Identity 3 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/canvas-lms: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 16

Individual APIs this provider publishes, each with its own machine-readable definition.

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 Live Events

Canvas Live Events stream lifecycle events emitted by Canvas (course, enrollment, assignment, submission, grade change, discussion, module, outcome, file/attachment, SIS batch, ...

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 ...

Canvas LMS Accounts API

Root and sub-accounts that own the Canvas tenancy hierarchy

Canvas LMS Assignments API

Assignments, due dates, submission types, and grading

Canvas LMS Courses API

The Canvas Course resource and its lifecycle

Canvas LMS Discussions API

Discussion topics and entries

Canvas LMS Enrollments API

Student, teacher, TA, observer, and designer enrollments within a course or section

Canvas LMS Files API

Course/user/group files and folders

Canvas LMS Modules API

Course modules and module items

Canvas LMS Outcomes API

Learning outcomes and outcome results

Canvas LMS Submissions API

Student submissions, grades, and submission comments

Canvas LMS Users API

User accounts, profiles, and per-user resources

Scroll for all 16

Postman Collections 1

Ready-to-run Postman collections for exercising this provider's APIs.

Open Collections 2

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

Canvas LMS Live Events

OPEN COLLECTION

Canvas LMS REST API

OPEN COLLECTION

Arazzo Workflows 18

Multi-step API workflows described with the Arazzo specification.

Canvas LMS Audit Account Course and Conclude It

List courses in an account, read one course's detail, then conclude it.

ARAZZO

Canvas LMS Grade a Discussion-backed Assignment

Locate a discussion topic's graded assignment, then grade a student's discussion submission.

ARAZZO

Canvas LMS Conclude Course After Grade Check

List a course's enrollments with grades, then conclude the course.

ARAZZO

Canvas LMS Copy Assignment to Another Course

Read an assignment from a source course and recreate it in a target course.

ARAZZO

Canvas LMS Create Assignment and Confirm

Verify a course exists, create an assignment in it, then fetch the assignment back.

ARAZZO

Canvas LMS Create Assignment and Grade Submission

Create an assignment, find a student's submission, and post a grade plus comment.

ARAZZO

Canvas LMS Configure Course Then Author Assignment

Update a course's settings, then create its first assignment, and read it back.

ARAZZO

Canvas LMS Enroll Teacher Then Author Assignment

Enroll a teacher in a course, then create the course's first assignment.

ARAZZO

Canvas LMS Enroll User and Confirm

Enroll a user in a course and confirm the enrollment appears in the course roster.

ARAZZO

Canvas LMS Excuse or Grade a Submission

Read a submission and branch — excuse it when not submitted, otherwise post a grade.

ARAZZO

Canvas LMS Find or Create Assignment

Search a course for an assignment by name and create it only when it is missing.

ARAZZO

Canvas LMS Grade One of Many Submissions

List an assignment's submissions, then post a grade to the first one returned.

ARAZZO

Canvas LMS Grade an Assignment From a Module

List a course's modules with items, then grade a student on a module assignment.

ARAZZO

Canvas LMS Onboard Student to Course

Validate a user, enroll them as a student, and confirm course membership.

ARAZZO

Canvas LMS Publish Assignment and List Submissions

Publish a draft assignment, then list every submission for it.

ARAZZO

Canvas LMS Grade a Student by Section Enrollment

Find a student via course section enrollments, then grade their assignment.

ARAZZO

Canvas LMS Author in the Current User's First Course

Identify the authenticated teacher, pick their first taught course, and author an assignment.

ARAZZO

Canvas LMS Extend Due Date Then Grade Late Submission

Push an assignment's due date out, then grade a student's late submission.

ARAZZO

Scroll for all 18

MCP Servers 1

Model Context Protocol servers that expose these APIs to AI agents.

canvas-lms-mcp.yml

MCP SERVER

GraphQL 1

GraphQL schemas published by this provider.

Canvas LMS GraphQL API

Canvas exposes a GraphQL endpoint at `/api/graphql` that provides access to the Canvas object graph. The API supports queries and mutations for courses, users, enrollments, assi...

GRAPHQL

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Canvas Lms Rate Limits

3 limits

RATE LIMITS

Features 20

Notable capabilities this provider offers.

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

Scroll for all 20

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Canvas Lms Context

34 classes · 16 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

Canvas LMS API Rules

5 rules · 4 warnings 1 info

SPECTRAL

JSON Schema 2

Standalone JSON Schema definitions for this provider's data models.

Canvas LMS Assignment

42 properties

JSON SCHEMA

Canvas LMS Course

39 properties

JSON SCHEMA

Security Posture 4

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Canvas Lms Authentication

http/oauth2 · 2 schemes

SECURITY

Canvas Lms Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Canvas Lms Vulnerability Disclosure

security.txt · contact published

SECURITY

Canvas Lms Trust Center

SOC 2, ISO 27001, ISO 27017, ISO 27018, PCI DSS, HIPAA, FedRAMP, GDPR, CSA STAR

SECURITY

Scopes 1

OAuth scopes governing access to this provider's APIs.

Canvas Lms Scopes

3 scopes · authorizationCode

3 scopes

SCOPES

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Canvas Lms Agentic Access

25 operations · 7 acting

25 operations · 7 acting

AGENTIC

Resources

Get Started 13

Portal, sign-up, and the first successful call

Scroll for all 13

Documentation 5

Reference material describing how the API behaves

Agent Surfaces 4

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 25

Pagination, idempotency, versioning, errors, and events

Scroll for all 25

Build 30

SDKs, sample code, and the tooling you integrate with

Scroll for all 30

Access & Security 7

Authentication, authorization, and security posture

Scroll for all 7

Operate 7

Status, limits, changes, and where to get help

Scroll for all 7

Commercial 4

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 3

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml 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
accessModel:
  pricing: free
  onboarding: self-serve
  trial: false
  try_now: true
  public: false
  label: Free · Self-serve signup
  confidence: high
  source:
  - plans
  - authentication
  generated: '2026-07-22'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/canvas-lms.png
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-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
  - url: graphql/canvas-lms-graphql.md
    type: GraphQL
  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-live-events
  name: Canvas Live Events
  tags:
  - Live Events
  - Webhooks
  - Events
  - Streaming
  - AsyncAPI
  - SQS
  - HTTPS
  - JWT
  - Caliper
  - Analytics
  humanURL: https://canvas.instructure.com/doc/api/file.live_events.html
  properties:
  - url: https://canvas.instructure.com/doc/api/file.live_events.html
    type: Documentation
    name: Live Events Overview
  - url: https://github.com/instructure/canvas-lms/tree/master/doc/api/data_services
    type: Documentation
    name: Canvas Data Services Event Schemas (Source)
  - url: https://github.com/instructure/canvas-lms/tree/master/doc/api/data_services/json/canvas/event-types
    type: Documentation
    name: Canvas Event-Type JSON Descriptors
  - url: https://github.com/instructure/canvas-lms/tree/master/doc/api/data_services/json/caliper
    type: Documentation
    name: Caliper Event-Type JSON Descriptors
  - url: https://community.canvaslms.com/t5/Admin-Guide/How-do-I-subscribe-to-Live-Events-using-Canvas-Data-Services/ta-p/227
    type: Documentation
    name: How do I subscribe to Live Events using Canvas Data Services
  - url: https://community.canvaslms.com/t5/Admin-Guide/How-do-I-configure-and-test-Canvas-Live-Events-using-HTTPS/ta-p/151
    type: Documentation
    name: Configure and Test Live Events using HTTPS
  - url: https://community.canvaslms.com/t5/Admin-Guide/How-do-I-create-an-SQS-queue-in-Amazon-Web-Services-to-receive/ta-p/170
    type: Documentation
    name: Create an SQS Queue to Receive Live Events
  - url: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
    type: Authentication
    name: Live Events JWKS (Signed HTTPS Webhook Verification)
  - url: openapi/canvas-lms-live-events-asyncapi.yml
    type: AsyncAPI
  description: Canvas Live Events stream lifecycle events emitted by Canvas (course, enrollment, assignment, submission, grade
    change, discussion, module, outcome, file/attachment, SIS batch, conversation, quiz, wiki page, LTI resource link, login,
    asset access, and more) to subscribed destinations. Customers subscribe via Canvas Data Services and choose a delivery
    method — AWS SQS (standard queue named beginning with `canvas-live-events`, granted to Canvas AWS account 636161780776,
    optional IAM key/secret/region) or an HTTPS webhook (POSTs the event JSON, or a signed JWT whose signing keys rotate monthly
    and are advertised at the Canvas JWKS endpoint). Two payload formats are supported — Canvas JSON and Caliper IMS. Failed
    HTTPS deliveries are retried up to three times with exponential backoff over ~10–20 minutes; sustained failure deactivates
    the subscription. Live Events are designed for analytics and data collection workflows, not for use cases requiring strictly
    up-to-date data.
- 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: SDKs
    name: DAP Client (Python)
  - url: https://github.com/instructure/canvas-data-loader
    type: Tools
    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.
- aid: canvas-lms:canvas-lms-accounts-api
  name: Canvas LMS Accounts API
  description: Root and sub-accounts that own the Canvas tenancy hierarchy
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Accounts
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-accounts-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-assignments-api
  name: Canvas LMS Assignments API
  description: Assignments, due dates, submission types, and grading
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Assignments
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-assignments-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-courses-api
  name: Canvas LMS Courses API
  description: The Canvas Course resource and its lifecycle
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Courses
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-courses-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-discussions-api
  name: Canvas LMS Discussions API
  description: Discussion topics and entries
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Discussions
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-discussions-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-enrollments-api
  name: Canvas LMS Enrollments API
  description: Student, teacher, TA, observer, and designer enrollments within a course or section
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Enrollments
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-enrollments-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-files-api
  name: Canvas LMS Files API
  description: Course/user/group files and folders
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Files
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-files-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-modules-api
  name: Canvas LMS Modules API
  description: Course modules and module items
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Modules
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-modules-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-outcomes-api
  name: Canvas LMS Outcomes API
  description: Learning outcomes and outcome results
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Outcomes
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-outcomes-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-submissions-api
  name: Canvas LMS Submissions API
  description: Student submissions, grades, and submission comments
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Submissions
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-submissions-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
- aid: canvas-lms:canvas-lms-users-api
  name: Canvas LMS Users API
  description: User accounts, profiles, and per-user resources
  humanURL: https://canvas.instructure.com/doc/api/
  baseURL: https://<canvas-install-url>/api/v1
  tags:
  - Users
  properties:
  - type: OpenAPI
    url: openapi/canvas-lms-users-api-openapi.yml
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/all_resources.html
  - type: JSONSchema
    url: json-schema/canvas-lms-course-schema.json
  - type: JSONSchema
    url: json-schema/canvas-lms-assignment-schema.json
  - type: JSONLD
    url: json-ld/canvas-lms-context.jsonld
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.developer_keys.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: RateLimits
    url: https://canvas.instructure.com/doc/api/file.throttling.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.file_uploads.html
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.masquerading.html
  - type: ChangeLog
    url: https://canvas.instructure.com/doc/api/file.changelog.html
common:
- type: AgenticAccess
  url: agentic-access/canvas-lms-agentic-access.yml
- type: TrustCenter
  url: security/canvas-lms-trust-center.yml
- type: VulnerabilityDisclosure
  url: security/canvas-lms-vulnerability-disclosure.yml
- type: DomainSecurity
  url: security/canvas-lms-domain-security.yml
- type: Authentication
  url: authentication/canvas-lms-authentication.yml
- type: OAuthScopes
  url: scopes/canvas-lms-scopes.yml
- type: Packages
  url: packages/canvas-lms-packages.yml
- type: WellKnown
  url: well-known/canvas-lms-well-known.yml
- type: SecurityTxt
  url: well-known/canvas-lms-security.txt
- type: MCPServer
  url: mcp/canvas-lms-mcp.yml
- type: LLMsTxt
  url: llms/canvas-lms-llms.txt
- type: Overlay
  url: overlays/canvas-lms-rest-api-overlay.yaml
- type: Conformance
  url: conformance/canvas-lms-conformance.yml
- type: ErrorCatalog
  url: errors/canvas-lms-problem-types.yml
- type: Lifecycle
  url: lifecycle/canvas-lms-lifecycle.yml
- type: Sandbox
  url: sandbox/canvas-lms-sandbox.yml
- type: Conventions
  url: conventions/canvas-lms-conventions.yml
- type: ChangeLog
  url: changelog/canvas-lms-changelog.yml
- type: CLI
  url: cli/canvas-lms-cli.yml
- type: Components
  url: components/canvas-lms-components.yml
- type: DataModel
  url: data-model/canvas-lms-data-model.yml
- type: PostmanWorkspace
  url: https://www.postman.com/kinlaneapi/canvas-lms/overview
- type: Arazzo
  url: arazzo/canvas-lms-account-course-audit-and-conclude-workflow.yml
  name: Canvas LMS Audit Account Course and Conclude It
- type: Arazzo
  url: arazzo/canvas-lms-assign-and-grade-discussion-workflow.yml
  name: Canvas LMS Grade a Discussion-backed Assignment
- type: Arazzo
  url: arazzo/canvas-lms-conclude-course-with-grade-check-workflow.yml
  name: Canvas LMS Conclude Course After Grade Check
- type: Arazzo
  url: arazzo/canvas-lms-copy-assignment-to-course-workflow.yml
  name: Canvas LMS Copy Assignment to Another Course
- type: Arazzo
  url: arazzo/canvas-lms-create-assignment-and-confirm-workflow.yml
  name: Canvas LMS Create Assignment and Confirm
- type: Arazzo
  url: arazzo/canvas-lms-create-assignment-and-grade-submission-workflow.yml
  name: Canvas LMS Create Assignment and Grade Submission
- type: Arazzo
  url: arazzo/canvas-lms-create-course-shell-then-author-assignment-workflow.yml
  name: Canvas LMS Configure Course Then Author Assignment
- type: Arazzo
  url: arazzo/canvas-lms-enroll-teacher-then-author-assignment-workflow.yml
  name: Canvas LMS Enroll Teacher Then Author Assignment
- type: Arazzo
  url: arazzo/canvas-lms-enroll-user-and-confirm-workflow.yml
  name: Canvas LMS Enroll User and Confirm
- type: Arazzo
  url: arazzo/canvas-lms-excuse-or-grade-submission-workflow.yml
  name: Canvas LMS Excuse or Grade a Submission
- type: Arazzo
  url: arazzo/canvas-lms-find-or-create-assignment-workflow.yml
  name: Canvas LMS Find or Create Assignment
- type: Arazzo
  url: arazzo/canvas-lms-grade-all-submissions-workflow.yml
  name: Canvas LMS Grade One of Many Submissions
- type: Arazzo
  url: arazzo/canvas-lms-list-modules-and-grade-module-assignment-workflow.yml
  name: Canvas LMS Grade an Assignment From a Module
- type: Arazzo
  url: arazzo/canvas-lms-onboard-student-to-course-workflow.yml
  name: Canvas LMS Onboard Student to Course
- type: Arazzo
  url: arazzo/canvas-lms-publish-assignment-and-list-submissions-workflow.yml
  name: Canvas LMS Publish Assignment and List Submissions
- type: Arazzo
  url: arazzo/canvas-lms-section-roster-and-grade-workflow.yml
  name: Canvas LMS Grade a Student by Section Enrollment
- type: Arazzo
  url: arazzo/canvas-lms-self-courses-and-create-assignment-workflow.yml
  name: Canvas LMS Author in the Current User's First Course
- type: Arazzo
  url: arazzo/canvas-lms-update-assignment-due-date-and-grade-workflow.yml
  name: Canvas LMS Extend Due Date Then Grade Late Submission
- 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: Forums
- url: https://community.canvaslms.com/t5/Canvas-Developers-Group/gh-p/canvas-developers
  name: Canvas Developers Group
  type: Forums
- 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: Tools
- 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: SDKs
- url: https://github.com/instructure/pandarus
  name: Pandarus (Ruby Canvas Client)
  type: SDKs
- url: https://github.com/instructure/canvas_oauth_engine
  name: Canvas OAuth Engine (Rails)
  type: SDKs
- url: https://github.com/instructure/dap-client-py
  name: DAP Client (Python)
  type: SDKs
- url: https://github.com/instructure/canvas-data-loader
  name: Canvas Data Loader (Rust)
  type: Tools
- url: https://github.com/instructure/canvas-data-cli
  name: Canvas Data CLI 

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/apis.yml