# Canvas Submissions API

**Canonical:** https://apis.io/apis/canvas/canvas-submissions-api/  
**Provider:** Canvas — https://apis.io/providers/canvas/  
**Base URL:** https://canvas.instructure.com/api/v1  
**Documentation:** https://canvas.instructure.com/doc/api/

Canvas Submissions API is one of 145 APIs that [Canvas](https://apis.io/providers/canvas/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. Tagged areas include Submissions. 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.

The Submissions API from Canvas — 32 operation(s) for submissions.

## Operations (46)

| Method | Path | Summary |
|---|---|---|
| POST | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions` | Submit an assignment |
| GET | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions` | List assignment submissions |
| POST | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions` | Submit an assignment |
| GET | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions` | List assignment submissions |
| GET | `/v1/courses/{course_id}/students/submissions` | List submissions for multiple assignments |
| GET | `/v1/sections/{section_id}/students/submissions` | List submissions for multiple assignments |
| GET | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}` | Get a single submission |
| PUT | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}` | Grade or comment on a submission |
| GET | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}` | Get a single submission |
| PUT | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}` | Grade or comment on a submission |
| GET | `/v1/courses/{course_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}` | Get a single submission by anonymous id |
| PUT | `/v1/courses/{course_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}` | Grade or comment on a submission by anonymous id |
| GET | `/v1/sections/{section_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}` | Get a single submission by anonymous id |
| PUT | `/v1/sections/{section_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}` | Grade or comment on a submission by anonymous id |
| POST | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/files` | Upload a file |
| POST | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/files` | Upload a file |
| GET | `/v1/courses/{course_id}/assignments/{assignment_id}/gradeable_students` | List gradeable students |
| GET | `/v1/courses/{course_id}/assignments/gradeable_students` | List multiple assignments gradeable students |
| POST | `/v1/courses/{course_id}/submissions/update_grades` | Grade or comment on multiple submissions |
| POST | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/update_grades` | Grade or comment on multiple submissions |
| POST | `/v1/sections/{section_id}/submissions/update_grades` | Grade or comment on multiple submissions |
| POST | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/update_grades` | Grade or comment on multiple submissions |
| PUT | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/read` | Mark submission as read |
| DELETE | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/read` | Mark submission as unread |
| PUT | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/read` | Mark submission as read |
| DELETE | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/read` | Mark submission as unread |
| PUT | `/v1/courses/{course_id}/submissions/bulk_mark_read` | Mark bulk submissions as read |
| PUT | `/v1/sections/{section_id}/submissions/bulk_mark_read` | Mark bulk submissions as read |
| PUT | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/read/{item}` | Mark submission item as read |
| PUT | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/read/{item}` | Mark submission item as read |
| PUT | `/v1/courses/{course_id}/submissions/{user_id}/clear_unread` | Clear unread status for all submissions |
| PUT | `/v1/sections/{section_id}/submissions/{user_id}/clear_unread` | Clear unread status for all submissions |
| GET | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_comments/read` | Get rubric assessments read state |
| PUT | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_comments/read` | Mark rubric assessments as read |
| GET | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_assessments/read` | Get rubric assessments read state |
| PUT | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_assessments/read` | Mark rubric assessments as read |
| GET | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_comments/read` | Get rubric assessments read state |
| PUT | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_comments/read` | Mark rubric assessments as read |
| GET | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_assessments/read` | Get rubric assessments read state |
| PUT | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_assessments/read` | Mark rubric assessments as read |
| GET | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/document_annotations/read` | Get document annotations read state |
| PUT | `/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/document_annotations/read` | Mark document annotations as read |
| GET | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/document_annotations/read` | Get document annotations read state |
| PUT | `/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/document_annotations/read` | Mark document annotations as read |
| GET | `/v1/courses/{course_id}/assignments/{assignment_id}/submission_summary` | Submission Summary |
| GET | `/v1/sections/{section_id}/assignments/{assignment_id}/submission_summary` | Submission Summary |

## Machine-readable artifacts (11)

- **OpenAPI** — https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/openapi/canvas-submissions-api-openapi.yml
- **Documentation** — https://canvas.instructure.com/doc/api/
- **Authentication** — https://canvas.instructure.com/doc/api/file.oauth.html
- **Pagination** — https://canvas.instructure.com/doc/api/file.pagination.html
- **GitHubRepository** — https://github.com/instructure/canvas-lms
- **APIReference** — https://canvas.instructure.com/doc/api/
- **Swagger** — https://canvas.instructure.com/doc/api/api-docs.json
- **RateLimits** — https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/rate-limits/canvas-rate-limits.yml
- **OAuthScopes** — https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/scopes/canvas-scopes.yml
- **ErrorCatalog** — https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/errors/canvas-problem-types.yml
- **DataModel** — https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/data-model/canvas-data-model.yml

## Other Canvas APIs (12)

- [Canvas LMS GraphQL API](https://apis.io/apis/canvas/canvas-lms-graphql-api/)
- [Canvas LTI Integrations](https://apis.io/apis/canvas/canvas-lti-integrations/)
- [Canvas Courses API](https://apis.io/apis/canvas/canvas-courses-api/)
- [Canvas Access Tokens API](https://apis.io/apis/canvas/canvas-access-tokens-api/)
- [Canvas Accessibility Course Scans API](https://apis.io/apis/canvas/canvas-accessibility-course-scans-api/)
- [Canvas Accessibility Course Statistics API](https://apis.io/apis/canvas/canvas-accessibility-course-statistics-api/)
- [Canvas Account Calendars API](https://apis.io/apis/canvas/canvas-account-calendars-api/)
- [Canvas Account Domain Lookups API](https://apis.io/apis/canvas/canvas-account-domain-lookups-api/)
- [Canvas Account Notifications API](https://apis.io/apis/canvas/canvas-account-notifications-api/)
- [Canvas Account Reports API](https://apis.io/apis/canvas/canvas-account-reports-api/)
- [Canvas Accounts API](https://apis.io/apis/canvas/canvas-accounts-api/)
- [Canvas Accounts (Lti) API](https://apis.io/apis/canvas/canvas-accounts-lti-api/)

## Tags

Submissions

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/canvas/canvas-submissions-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/canvas/.
