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

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.