Canvas GraphQL API

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.

Documentation

Other Resources

🔗
Sandbox
https:///graphiql
🔗
GraphQL
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/graphql/canvas-lms-graphql.md
🔗
APIsJSON
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/apis.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-account-course-audit-and-conclude-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-assign-and-grade-discussion-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-conclude-course-with-grade-check-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-copy-assignment-to-course-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-create-assignment-and-confirm-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-create-assignment-and-grade-submission-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-create-course-shell-then-author-assignment-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-enroll-teacher-then-author-assignment-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-enroll-user-and-confirm-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-excuse-or-grade-submission-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-find-or-create-assignment-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-grade-all-submissions-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-list-modules-and-grade-module-assignment-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-onboard-student-to-course-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-publish-assignment-and-list-submissions-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-section-roster-and-grade-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-self-courses-and-create-assignment-workflow.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/canvas-lms/refs/heads/main/arazzo/canvas-lms-update-assignment-due-date-and-grade-workflow.yml

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/canvas-graphql-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

API entry from apis.yml

apis.yml Raw ↑
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.