Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Canvas LMS Courses API

The Canvas Course resource and its lifecycle

Canvas LMS Courses API is one of 16 APIs that Canvas LMS publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 2 JSON Schema definitions.

Tagged areas include Courses. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, a JSON-LD context, authentication docs, rate-limit docs, a changelog, and 2 JSON Schemas.

This API exposes 6 operations across 4 paths, and defines 3 schemas. It is described by OpenAPI 3.1.0, at version 1.0.

Requests are made against a single base URL, https://{canvas_host}/api/v1.

6 operations 4 paths 3 schemas 1 DELETE4 GET1 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
1.0
Base URL
https:///api/v1
Authentication
OAuth 2.0, HTTP Bearer
License
AGPL-3.0
Resource Areas
1

Authentication & Security 2

Canvas LMS Courses API declares 2 security schemes for authenticating requests. It supports OAuth 2.0 (OAuth2) using the authorizationCode flow, exposing 3 scopes. It accepts HTTP bearer tokens (BearerAuth). By default, every request must be authenticated.

  • OAuth2 — Canvas OAuth2 (RFC 6749) authorization code grant. Register a Developer Key in the target Canvas account to obtain a clientid and clientsecret.
  • BearerAuth — A Canvas access token. For testing only — production apps MUST use the OAuth2 flow per the Canvas API Policy.

Paths & Operations 6

Across 4 paths, the API surfaces 6 operations — 1 DELETE, 4 GET, 1 PUT. Each is listed below with its method, path, parameters, and response codes.

Courses 6

The Canvas Course resource and its lifecycle

GET
/accounts/{account_id}/courses
List Active Courses in an Account
listCoursesInAccount 7 params → 200
GET
/courses
List Courses for the Current User
listCourses 5 params → 200
GET
/courses/{course_id}
Get a Single Course
getCourse 2 params → 200
PUT
/courses/{course_id}
Update a Course
updateCourse 1 param body → 200
DELETE
/courses/{course_id}
Conclude or Delete a Course
deleteCourse 2 params → 200
GET
/courses/{course_id}/users
List Users in a Course
listCourseUsers 6 params → 200

Schemas 3

The contract defines 3 schemas that model the data the API accepts and returns. The most detailed are Course (42 properties), Enrollment (26 properties), User (17 properties). Each schema is shown below with its type and property counts.

User
object
17 properties
Course
object
42 properties
Enrollment
object
26 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

canvas-lms-courses-api-openapi.yml Raw ↑

Other APIs Canvas LMS publishes across the network.

Canvas GraphQL API
Canvas LTI Advantage Services
Canvas Platform Notification Service
Canvas Live Events
Canvas Data Access Platform
Canvas SIS Import API
Canvas LMS Accounts API
Canvas LMS Assignments API
Canvas LMS Discussions API
Canvas LMS Enrollments API
Canvas LMS Files API
Canvas LMS Modules API