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 Assignments API

Assignments, due dates, submission types, and grading

Canvas LMS Assignments 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 Assignments. 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 5 operations across 2 paths, and defines 1 schema. 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.

5 operations 2 paths 1 schemas 1 DELETE2 GET1 POST1 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 Assignments 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 5

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

Assignments 5

Assignments, due dates, submission types, and grading

GET
/courses/{course_id}/assignments
List Assignments in a Course
listAssignments 6 params → 200
POST
/courses/{course_id}/assignments
Create an Assignment
createAssignment 1 param body → 201
GET
/courses/{course_id}/assignments/{assignment_id}
Get a Single Assignment
getAssignment 2 params → 200
PUT
/courses/{course_id}/assignments/{assignment_id}
Edit an Assignment
updateAssignment 2 params body → 200
DELETE
/courses/{course_id}/assignments/{assignment_id}
Delete an Assignment
deleteAssignment 2 params → 200

Schemas 1

The contract defines 1 schema that model the data the API accepts and returns. The most detailed is Assignment (48 properties). Each schema is shown below with its type and property counts.

Assignment
object
48 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

canvas-lms-assignments-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 Courses API
Canvas LMS Discussions API
Canvas LMS Enrollments API
Canvas LMS Files API
Canvas LMS Modules API