Instructure website screenshot

Instructure

Instructure is an EdTech company best known for Canvas LMS, a widely adopted learning management system used by thousands of educational institutions and organizations worldwide. The platform provides a comprehensive REST API and GraphQL API enabling developers to programmatically access and manage courses, enrollments, assignments, grades, discussions, and institutional data. Instructure also offers the Data Access Platform (DAP) for bulk data queries, New Quizzes API, Canvas Studio API, and support for LTI 1.3 integrations. Authentication is handled via OAuth2 with per-token dynamic rate limiting, and all API responses are returned in JSON over HTTPS.

Instructure publishes 12 APIs on the APIs.io network, including ExternalTool API, Lti::AccountExternalTool API, Lti::AccountLookup API, and 9 more. Tagged areas include EdTech, Education, LMS, Canvas, and Courses.

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

Instructure’s developer surface includes authentication, documentation, engineering blog, pricing, and 15 more developer resources.

49.3/100 developing ▬ flat Agent 37/100 agent ready Full breakdown ↓
scored 2026-07-28 · rubric v0.6
AccessPaidSelf serve
15 APIs
EdTechEducationLMSCanvasCoursesEnrollmentsAssignmentsGradesDiscussionsGraphQLLTILearning Management

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-28 · rubric v0.6
Composite quality — 49.3/100 · developing
Contract Quality 14.9 / 25
Developer Ergonomics 4.3 / 20
Commercial Clarity 11.6 / 20
Operational Transparency 2.7 / 13
Governance 8.3 / 12
Discoverability 7.4 / 10
Agent readiness — 37/100 · agent ready
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 7 / 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/instructure: 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 15

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

Canvas GraphQL API

The Canvas GraphQL API provides a flexible query interface for Canvas LMS data, allowing developers to request exactly the fields they need and reduce over-fetching. It follows ...

Data Access Platform (DAP) API

The Instructure Data Access Platform API provides bulk data query capabilities for Canvas data, enabling institutions and developers to access large datasets for analytics, repo...

Canvas Studio API

The Canvas Studio API provides programmatic access to Canvas Studio, Instructure's video and media platform, enabling account administrators and developers to manage media asset...

Instructure ExternalTool API

The ExternalTool API from Instructure — 1 operation(s) for externaltool.

Instructure Lti::AccountExternalTool API

The Lti::AccountExternalTool API from Instructure — 2 operation(s) for lti::accountexternaltool.

Instructure Lti::AccountLookup API

The Lti::AccountLookup API from Instructure — 1 operation(s) for lti::accountlookup.

Instructure Lti::DataService API

The Lti::DataService API from Instructure — 2 operation(s) for lti::dataservice.

Instructure Lti::IMS::Authentication API

The Lti::IMS::Authentication API from Instructure — 1 operation(s) for lti::ims::authentication.

Instructure Lti::IMS::DynamicRegistration API

The Lti::IMS::DynamicRegistration API from Instructure — 3 operation(s) for lti::ims::dynamicregistration.

Instructure Lti::IMS::LineItem API

The Lti::IMS::LineItem API from Instructure — 2 operation(s) for lti::ims::lineitem.

Instructure Lti::IMS::NamesAndRole API

The Lti::IMS::NamesAndRole API from Instructure — 2 operation(s) for lti::ims::namesandrole.

Instructure Lti::IMS::Result API

The Lti::IMS::Result API from Instructure — 2 operation(s) for lti::ims::result.

Instructure Lti::MembershipService API

The Lti::MembershipService API from Instructure — 1 operation(s) for lti::membershipservice.

Instructure Lti::ToolConfigurationsApi API

The Lti::ToolConfigurationsApi API from Instructure — 3 operation(s) for lti::toolconfigurationsapi.

Instructure Security API

The Security API from Instructure — 2 operation(s) for security.

Scroll for all 15

GraphQL 1

GraphQL schemas published by this provider.

Instructure Canvas GraphQL API

The Canvas LMS GraphQL API provides a flexible query interface for Canvas LMS data, allowing developers to request exactly the fields they need and reduce over-fetching. It foll...

GRAPHQL

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Instructure Rate Limits

0 limits

RATE LIMITS

FinOps 1

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

Semantic Vocabularies 1

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

Instructure Context

63 classes · 22 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

Instructure API Rules

5 rules · 3 warnings 2 info

SPECTRAL

JSON Schema 9

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

Lti Accountexternaltool Get Response

52 properties

JSON SCHEMA

Lti Accountlookup Get Response

7 properties

JSON SCHEMA

Lti Ims Lineitem Get Response

6 properties

JSON SCHEMA

Lti Ims Namesandrole Get Response

3 properties

JSON SCHEMA

Lti Ims Result Get Response

5 properties

JSON SCHEMA

Lti Membershipservice Get Response

6 properties

JSON SCHEMA

Security Get Response

14 properties

JSON SCHEMA

Scroll for all 9

Examples 12

Example request and response payloads for these APIs.

Scroll for all 12

Security Posture 4

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

Instructure Authentication

http/oauth2 · 2 schemes

SECURITY

Instructure Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Instructure Vulnerability Disclosure

security.txt · contact published

SECURITY

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

Instructure Scopes

17 scopes · authorizationCode

17 scopes

SCOPES

Agentic Access 1

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

Instructure Agentic Access

23 operations · 5 acting

23 operations · 5 acting

AGENTIC

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 2

Pagination, idempotency, versioning, errors, and events

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 5

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 3

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: instructure
name: Instructure
description: Instructure is an EdTech company best known for Canvas LMS, a widely adopted learning management system used
  by thousands of educational institutions and organizations worldwide. The platform provides a comprehensive REST API and
  GraphQL API enabling developers to programmatically access and manage courses, enrollments, assignments, grades, discussions,
  and institutional data. Instructure also offers the Data Access Platform (DAP) for bulk data queries, New Quizzes API, Canvas
  Studio API, and support for LTI 1.3 integrations. Authentication is handled via OAuth2 with per-token dynamic rate limiting,
  and all API responses are returned in JSON over HTTPS.
type: Index
accessModel:
  pricing: paid
  onboarding: self-serve
  trial: false
  try_now: false
  public: false
  label: Paid · 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/instructure.png
url: https://raw.githubusercontent.com/api-evangelist/instructure/refs/heads/main/apis.yml
created: '2026-06-13'
modified: '2026-06-13'
specificationVersion: '0.19'
tags:
- EdTech
- Education
- LMS
- Canvas
- Courses
- Enrollments
- Assignments
- Grades
- Discussions
- GraphQL
- LTI
- Learning Management
apis:
- aid: instructure:canvas-graphql-api
  name: Canvas GraphQL API
  description: The Canvas GraphQL API provides a flexible query interface for Canvas LMS data, allowing developers to request
    exactly the fields they need and reduce over-fetching. It follows the Relay Object Identification spec and includes an
    interactive GraphiQL browser accessible by appending /graphiql to the Canvas production URL.
  humanURL: https://developerdocs.instructure.com/services/canvas/basics/file.graphql
  baseURL: https://{canvas_domain}/api/graphql
  tags:
  - GraphQL
  - Courses
  - Users
  - Assignments
  - Grades
  properties:
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas/basics/file.graphql
  - url: graphql/instructure-schema.graphql
    type: GraphQLSchema
  - url: graphql/instructure-graphql.md
    type: GraphQL
- aid: instructure:data-access-platform-api
  name: Data Access Platform (DAP) API
  description: The Instructure Data Access Platform API provides bulk data query capabilities for Canvas data, enabling institutions
    and developers to access large datasets for analytics, reporting, and data warehousing. It includes table listing, schema
    inspection, and data query endpoints with distinct rate limits per operation type.
  humanURL: https://developerdocs.instructure.com/services/dap
  baseURL: https://api-gateway.instructure.com/dap
  tags:
  - Data
  - Analytics
  - Bulk Data
  - Reporting
  properties:
  - type: Documentation
    url: https://developerdocs.instructure.com/services/dap
  - type: RateLimits
    url: https://developerdocs.instructure.com/services/dap/limits-policies
  contact:
  - FN: DAP Support
    email: canvasdatahelp@instructure.com
- aid: instructure:canvas-studio-api
  name: Canvas Studio API
  description: The Canvas Studio API provides programmatic access to Canvas Studio, Instructure's video and media platform,
    enabling account administrators and developers to manage media assets, captions, analytics, and user data within the Studio
    product.
  humanURL: https://github.com/instructure/canvas-studio-api-examples
  baseURL: https://{studio_domain}/api
  tags:
  - Studio
  - Video
  - Media
  - Education
  properties:
  - type: Documentation
    url: https://github.com/instructure/canvas-studio-api-examples
- aid: instructure:instructure-externaltool-api
  name: Instructure ExternalTool API
  description: The ExternalTool API from Instructure — 1 operation(s) for externaltool.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - ExternalTool
  properties:
  - type: OpenAPI
    url: openapi/instructure-externaltool-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-accountexternaltool-api
  name: Instructure Lti::AccountExternalTool API
  description: The Lti::AccountExternalTool API from Instructure — 2 operation(s) for lti::accountexternaltool.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::AccountExternalTool
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-accountexternaltool-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-accountlookup-api
  name: Instructure Lti::AccountLookup API
  description: The Lti::AccountLookup API from Instructure — 1 operation(s) for lti::accountlookup.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::AccountLookup
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-accountlookup-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-dataservice-api
  name: Instructure Lti::DataService API
  description: The Lti::DataService API from Instructure — 2 operation(s) for lti::dataservice.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::DataService
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-dataservice-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-ims-authentication-api
  name: Instructure Lti::IMS::Authentication API
  description: The Lti::IMS::Authentication API from Instructure — 1 operation(s) for lti::ims::authentication.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::IMS::Authentication
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-ims-authentication-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-ims-dynamicregistration-api
  name: Instructure Lti::IMS::DynamicRegistration API
  description: The Lti::IMS::DynamicRegistration API from Instructure — 3 operation(s) for lti::ims::dynamicregistration.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::IMS::DynamicRegistration
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-ims-dynamicregistration-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-ims-lineitem-api
  name: Instructure Lti::IMS::LineItem API
  description: The Lti::IMS::LineItem API from Instructure — 2 operation(s) for lti::ims::lineitem.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::IMS::LineItem
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-ims-lineitem-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-ims-namesandrole-api
  name: Instructure Lti::IMS::NamesAndRole API
  description: The Lti::IMS::NamesAndRole API from Instructure — 2 operation(s) for lti::ims::namesandrole.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::IMS::NamesAndRole
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-ims-namesandrole-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-ims-result-api
  name: Instructure Lti::IMS::Result API
  description: The Lti::IMS::Result API from Instructure — 2 operation(s) for lti::ims::result.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::IMS::Result
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-ims-result-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-membershipservice-api
  name: Instructure Lti::MembershipService API
  description: The Lti::MembershipService API from Instructure — 1 operation(s) for lti::membershipservice.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::MembershipService
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-membershipservice-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-lti-toolconfigurationsapi-api
  name: Instructure Lti::ToolConfigurationsApi API
  description: The Lti::ToolConfigurationsApi API from Instructure — 3 operation(s) for lti::toolconfigurationsapi.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Lti::ToolConfigurationsApi
  properties:
  - type: OpenAPI
    url: openapi/instructure-lti-toolconfigurationsapi-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
- aid: instructure:instructure-security-api
  name: Instructure Security API
  description: The Security API from Instructure — 2 operation(s) for security.
  humanURL: https://developerdocs.instructure.com/services/canvas
  baseURL: https://{canvas_domain}/api/v1
  tags:
  - Security
  properties:
  - type: OpenAPI
    url: openapi/instructure-security-api-openapi.yml
  - type: Documentation
    url: https://developerdocs.instructure.com/services/canvas
  - type: Documentation
    url: https://developerdocs.instructure.com/
common:
- type: AgenticAccess
  url: agentic-access/instructure-agentic-access.yml
- type: TrustCenter
  url: security/instructure-trust-center.yml
- type: VulnerabilityDisclosure
  url: security/instructure-vulnerability-disclosure.yml
- type: DomainSecurity
  url: security/instructure-domain-security.yml
- type: Authentication
  url: authentication/instructure-authentication.yml
- type: OAuthScopes
  url: scopes/instructure-scopes.yml
- type: Website
  url: https://www.instructure.com
- type: Documentation
  url: https://developerdocs.instructure.com/
- type: GitHubOrg
  url: https://github.com/instructure
- type: LinkedIn
  url: https://www.linkedin.com/company/instructure
- type: Blog
  url: https://www.instructure.com/resources/blog
- type: Pricing
  url: https://www.instructure.com/canvas/pricing
- type: StatusPage
  url: https://status.instructure.com/
- type: X
  url: https://x.com/instructure
- type: Plans
  url: plans/instructure-plans-pricing.yml
- type: RateLimits
  url: rate-limits/instructure-rate-limits.yml
- type: FinOps
  url: finops/instructure-finops.yml
- type: Vocabulary
  url: vocabulary/instructure-vocabulary.yml
- type: JSONLDContext
  url: json-ld/instructure-context.jsonld
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com