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

Student submissions, grades, and submission comments

Canvas LMS Submissions 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 Submissions. 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 3 operations across 2 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.

3 operations 2 paths 3 schemas 2 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 Submissions 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 3

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

Submissions 3

Student submissions, grades, and submission comments

GET
/courses/{course_id}/assignments/{assignment_id}/submissions
List Submissions for an Assignment
listSubmissions 4 params → 200
GET
/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}
Get a Single Submission
getSubmission 3 params → 200
PUT
/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}
Grade or Comment on a Submission
gradeSubmission 3 params body → 200

Schemas 3

The contract defines 3 schemas that model the data the API accepts and returns. The most detailed are Submission (28 properties), File (21 properties), SubmissionComment (8 properties). Each schema is shown below with its type and property counts.

Submission
object
28 properties
File
object
21 properties
SubmissionComment
object
8 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

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