Canvas website screenshot

Canvas

Canvas is Instructure's open-source learning management system (LMS) used by K-12, higher education, and corporate training organizations to deliver courses, assessments, and learner communication. Canvas exposes a comprehensive REST API and a GraphQL endpoint for reading and modifying courses, assignments, quizzes, grades, users, enrollments, content, and account administration, and it integrates with external tools through LTI, Caliper, and live event streams.

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

Canvas’ developer surface includes authentication, documentation, engineering blog, and 12 more developer resources.

44.7/100 developing ▬ flat Agent 31/100 agent aware Full breakdown ↓
scored 2026-07-28 · rubric v0.6
AccessFreemiumSelf serve⚡ Free to try
4 APIs
EducationEdTechGraphQLLearning Management SystemLMSLTIOpen SourceREST

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-28 · rubric v0.6
Composite quality — 44.7/100 · developing
Contract Quality 12.5 / 25
Developer Ergonomics 5.2 / 20
Commercial Clarity 13.7 / 20
Operational Transparency 6.8 / 13
Governance 0.0 / 12
Discoverability 6.5 / 10
Agent readiness — 31/100 · agent aware
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 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: 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 4

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

Canvas LMS REST API

The Canvas LMS REST API provides programmatic access to courses, assignments, quizzes, grades, users, enrollments, accounts, discussions, files, modules, rubrics, submissions, S...

Canvas LMS GraphQL API

The Canvas LMS GraphQL API is an alternative to the REST API that lets clients request exactly the fields they need across Canvas resources in a single request. It is well suite...

Canvas LTI Integrations

Canvas supports Learning Tools Interoperability (LTI 1.1 and LTI 1.3 / Advantage) for embedding external tools, assignments, and content into courses with deep linking, grade pa...

Canvas Courses API

The Courses API from Canvas — 25 operation(s) for courses.

Open Collections 1

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

GraphQL 1

GraphQL schemas published by this provider.

Canvas GraphQL API

The Canvas LMS GraphQL API is an alternative to the REST API that lets clients request exactly the fields they need across Canvas resources in a single request. It is well suite...

GRAPHQL

Pricing Plans 1

Published pricing tiers and plan structures.

Canvas Plans Pricing

3 plans

PLANS

Rate Limits 1

Documented rate limits and quota policies.

Canvas Rate Limits

5 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Security Posture 4

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

Canvas Authentication

http · 1 scheme

SECURITY

Canvas Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Canvas Vulnerability Disclosure

security.txt · contact published

SECURITY

Canvas Trust Center

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

SECURITY

Agentic Access 1

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

Canvas Agentic Access

30 operations · 9 acting · 1 human-in-the-loop

30 operations · 9 acting

AGENTIC

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Build 2

SDKs, sample code, and the tooling you integrate with

Access & Security 4

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
aid: canvas
url: https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/apis.yml
name: Canvas
description: Canvas is Instructure's open-source learning management system (LMS) used by K-12, higher education, and corporate
  training organizations to deliver courses, assessments, and learner communication. Canvas exposes a comprehensive REST API
  and a GraphQL endpoint for reading and modifying courses, assignments, quizzes, grades, users, enrollments, content, and
  account administration, and it integrates with external tools through LTI, Caliper, and live event streams.
type: Index
kind: company
accessModel:
  pricing: freemium
  onboarding: self-serve
  trial: false
  try_now: true
  public: false
  label: Freemium · Self-serve signup
  confidence: high
  source:
  - plans
  - authentication
  generated: '2026-07-22'
  method: derived
position: Consumer
access: 3rd-Party
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/canvas.png
tags:
- Education
- EdTech
- GraphQL
- Learning Management System
- LMS
- LTI
- Open Source
- REST
created: '2025-01-14'
modified: '2026-04-23'
specificationVersion: '0.19'
apis:
- aid: canvas:canvas-lms-rest-api
  name: Canvas LMS REST API
  description: The Canvas LMS REST API provides programmatic access to courses, assignments, quizzes, grades, users, enrollments,
    accounts, discussions, files, modules, rubrics, submissions, SIS imports, and account administration. It uses OAuth 2.0
    access tokens and returns JSON with ISO 8601 timestamps, supporting pagination, request throttling, masquerading, and
    compound documents.
  humanURL: https://canvas.instructure.com/doc/api/
  tags:
  - Education
  - LMS
  - REST
  properties:
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/
  - type: Authentication
    url: https://canvas.instructure.com/doc/api/file.oauth.html
  - type: Pagination
    url: https://canvas.instructure.com/doc/api/file.pagination.html
  - type: GitHubRepository
    url: https://github.com/instructure/canvas-lms
  x-features:
  - OAuth 2.0 authentication with access tokens
  - JSON responses with ISO 8601 timestamps
  - 64-bit integer IDs and string ID support
  - Form-encoded and JSON request bodies
  - Pagination for large result sets
  - Request throttling and quota controls
  - Masquerading for acting on behalf of users
  - Compound documents for linked resources
  - File upload workflows
  - SIS imports and roster sync
  - Live event streams via Canvas Data services
  - Caliper event format compatibility
  - xAPI statement support
  x-use-cases:
  - Building custom student dashboards or mobile apps
  - Automating course provisioning and enrollment via SIS imports
  - Syncing grades and assignments to external gradebooks
  - Analytics and learning-event data pipelines
  - Integrating third-party tools through LTI
  - Bulk content migration between courses or institutions
  - Institutional reporting and audit-log extraction
- aid: canvas:canvas-lms-graphql-api
  name: Canvas LMS GraphQL API
  description: The Canvas LMS GraphQL API is an alternative to the REST API that lets clients request exactly the fields they
    need across Canvas resources in a single request. It is well suited for dashboards and aggregated views that otherwise
    require many REST round-trips.
  humanURL: https://canvas.instructure.com/doc/api/file.graphql.html
  tags:
  - Education
  - GraphQL
  - LMS
  properties:
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.graphql.html
  - url: graphql/canvas-graphql.md
    type: GraphQL
  x-features:
  - Typed GraphQL schema over Canvas resources
  - Single-request fetches across courses, users, and assignments
  - Reduced over-fetching for dashboards
  - OAuth 2.0 bearer-token authentication
  x-use-cases:
  - Building performant student or instructor dashboards
  - Aggregating course, assignment, and grade data in one request
  - Mobile apps with limited bandwidth
- aid: canvas:canvas-lti-integrations
  name: Canvas LTI Integrations
  description: Canvas supports Learning Tools Interoperability (LTI 1.1 and LTI 1.3 / Advantage) for embedding external tools,
    assignments, and content into courses with deep linking, grade passback, and names-and-roles service.
  humanURL: https://canvas.instructure.com/doc/api/file.tools_intro.html
  tags:
  - Education
  - LMS
  - LTI
  properties:
  - type: Documentation
    url: https://canvas.instructure.com/doc/api/file.tools_intro.html
  x-features:
  - LTI 1.1 and LTI 1.3 / Advantage support
  - Deep linking for tool placements
  - Assignment and Grade Services (AGS) for grade passback
  - Names and Roles Provisioning Service (NRPS)
  - Configurable tool placements across Canvas UI
  x-use-cases:
  - Embedding third-party learning tools in Canvas courses
  - Passing grades from external graders back to Canvas
  - Provisioning course rosters into external tools
- aid: canvas:canvas-courses-api
  name: Canvas Courses API
  description: The Courses API from Canvas — 25 operation(s) for courses.
  humanURL: https://canvas.instructure.com/doc/api/
  tags:
  - Courses
  properties:
  - type: OpenAPI
    url: openapi/canvas-courses-api-openapi.yml
common:
- type: AgenticAccess
  url: agentic-access/canvas-agentic-access.yml
- type: TrustCenter
  url: security/canvas-trust-center.yml
- type: VulnerabilityDisclosure
  url: security/canvas-vulnerability-disclosure.yml
- type: DomainSecurity
  url: security/canvas-domain-security.yml
- type: Authentication
  url: authentication/canvas-authentication.yml
- type: LinkedIn
  url: https://www.linkedin.com/showcase/canvaslms
- type: Website
  url: https://www.instructure.com/canvas
- type: Documentation
  url: https://canvas.instructure.com/doc/api/
- type: GitHubOrganization
  url: https://github.com/instructure
- type: GitHubRepository
  url: https://github.com/instructure/canvas-lms
- type: StatusPage
  url: https://status.instructure.com/
- type: Community
  url: https://community.canvaslms.com/
- type: PrivacyPolicy
  url: https://www.instructure.com/policies/privacy
- type: TermsOfService
  url: https://www.instructure.com/policies/product-acceptable-use
- type: Integrations
  url: https://www.instructure.com/partners
- url: https://www.instructure.com/resources/blog
  type: Blog
integrations:
- name: Become a partner
- name: Scale with us
- name: Expand your reach
- name: Make an impact
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com