How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Canvas Assignments API

The Assignments API from Canvas — 12 operation(s) for assignments.

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

Tagged areas include Assignments. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, a GitHub repository, an API reference, and rate-limit docs.

This API exposes 20 operations across 12 paths, and defines 7 schemas. It is described by OpenAPI 3.2.0, at version v1.

Requests are made against 2 base URLs: https://canvas.instructure.com/api, https://{canvas_host}/api.

20 operations 12 paths 7 schemas 2 DELETE10 GET4 POST4 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
v1
Base URL
https://canvas.instructure.com/api/v1
Authentication
HTTP Bearer, OAuth 2.0
License
Resource Areas
1

Authentication & Security 2

Canvas Assignments API declares 2 security schemes for authenticating requests. It accepts HTTP bearer tokens (bearerAuth). It supports OAuth 2.0 (oauth2) using the authorizationCode flow. By default, every request must be authenticated.

  • bearerAuth — Canvas OAuth2 access token sent as "Authorization: Bearer ". See https://canvas.instructure.com/doc/api/file.oauth.html
  • oauth2 — Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauthendpoints.html

Paths & Operations 20

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

Assignments 20
DELETE
/v1/courses/{course_id}/assignments/{id}
Delete an assignment
delete_assignment 2 params → 200
GET
/v1/courses/{course_id}/assignments/{id}
Get a single assignment
get_single_assignment 6 params → 200
PUT
/v1/courses/{course_id}/assignments/{id}
Edit an assignment
edit_assignment 2 params body → 200
GET
/v1/courses/{course_id}/assignments
List assignments
list_assignments_assignments 10 params → 200
POST
/v1/courses/{course_id}/assignments
Create an assignment
create_assignment 1 param body → 200
GET
/v1/courses/{course_id}/assignment_groups/{assignment_group_id}/assignments
List assignments
list_assignments_assignment_groups 11 params → 200
GET
/v1/users/{user_id}/courses/{course_id}/assignments
List assignments for user
list_assignments_for_user 2 params → 200
POST
/v1/courses/{course_id}/assignments/{assignment_id}/duplicate
Duplicate assignment
duplicate_assignment 2 params body → 200
GET
/v1/courses/{course_id}/assignments/{assignment_id}/users/{user_id}/group_members
List group members for a student on an assignment
list_group_members_for_student_on_assignment 3 params → 200
PUT
/v1/courses/{course_id}/assignments/bulk_update
Bulk update assignment dates
bulk_update_assignment_dates 1 param → 200
GET
/v1/courses/{course_id}/assignments/{assignment_id}/overrides
List assignment overrides
list_assignment_overrides 2 params → 200
POST
/v1/courses/{course_id}/assignments/{assignment_id}/overrides
Create an assignment override
create_assignment_override 2 params body → 200
GET
/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}
Get a single assignment override
get_single_assignment_override 3 params → 200
PUT
/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}
Update an assignment override
update_assignment_override 3 params body → 200
DELETE
/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}
Delete an assignment override
delete_assignment_override 3 params → 200
GET
/v1/groups/{group_id}/assignments/{assignment_id}/override
Redirect to the assignment override for a group
redirect_to_assignment_override_for_group 2 params → 200
GET
/v1/sections/{course_section_id}/assignments/{assignment_id}/override
Redirect to the assignment override for a section
redirect_to_assignment_override_for_section 2 params → 200
GET
/v1/courses/{course_id}/assignments/overrides
Batch retrieve overrides in a course
batch_retrieve_overrides_in_course 3 params → 200
POST
/v1/courses/{course_id}/assignments/overrides
Batch create overrides in a course
batch_create_overrides_in_course 1 param body → 200
PUT
/v1/courses/{course_id}/assignments/overrides
Batch update overrides in a course
batch_update_overrides_in_course 1 param body → 200

Schemas 7

The contract defines 7 schemas that model the data the API accepts and returns. The most detailed are Assignment (89 properties), AssignmentOverride (16 properties), RubricCriteria (9 properties), AssignmentDate (6 properties). Each schema is shown below with its type and property counts.

Assignment
object
89 properties
AssignmentDate
object
Object representing a due date for an assignment or quiz. If the due date came from an assignment override, it will have an 'id' field.
6 properties
NeedsGradingCount
object
Used by Assignment model
2 properties
AssignmentOverride
object
16 properties
RubricCriteria
object
9 properties
BasicUser
object
2 properties
RubricRating__assignments
object
4 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

canvas-assignments-api-openapi.yml Raw ↑

Other APIs Canvas publishes across the network.

Canvas LMS GraphQL API
Canvas LTI Integrations
Canvas Courses API
Canvas Access Tokens API
Canvas Accessibility Course Scans API
Canvas Accessibility Course Statistics API
Canvas Account Calendars API
Canvas Account Domain Lookups API
Canvas Account Notifications API
Canvas Account Reports API
Canvas Accounts API
Canvas Accounts (Lti) API
Where this information came from

This is an independent, third-party profile of Canvas Assignments API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.