Canvas Peer Reviews API

The Peer Reviews API from Canvas — 5 operation(s) for peer reviews.

Operations 9

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v1/courses/{course_id}/assignments/{assignment_id}/peer_reviews List peer reviews for a course assignment · Get all Peer Reviews #
Ask an LLM
“Who is reviewing whom on an assignment in my Canvas course?”
“Can I include the reviewer's comments when listing an assignment's peer reviews?”
Tell an agent
List all peer reviews for assignment {assignment_id} in course {course_id}.
Show course {course_id} assignment {assignment_id} peer reviews including {include}.
GET /v1/sections/{section_id}/assignments/{assignment_id}/peer_reviews List peer reviews for an assignment in a section · Get all Peer Reviews #
Ask an LLM
“Can I see peer review pairings for just one section of my class?”
“Which section students have been assigned to review each other's work?”
Tell an agent
List peer reviews for assignment {assignment_id} in section {section_id}.
Show the section {section_id} reviewer pairings on assignment {assignment_id}.
GET /v1/courses/{course_id}/assignments/{assignment_id}/submissions/{submission_id}/peer_reviews List peer reviews of one submission in a course · Get all Peer Reviews #
Ask an LLM
“Who has been assigned to review a particular student's submission?”
“Can I see the peer reviews attached to one course submission?”
Tell an agent
List peer reviews of submission {submission_id} for assignment {assignment_id} in course {course_id}.
Show reviewers on course {course_id} submission {submission_id} of {assignment_id}.
POST /v1/courses/{course_id}/assignments/{assignment_id}/submissions/{submission_id}/peer_reviews Assign a peer reviewer to a course submission · Create Peer Review #
Ask an LLM
“Can I manually assign a classmate to peer review a specific submission?”
“What do I need to add a reviewer to a course submission?”
Tell an agent
Assign user {user_id} to review submission {submission_id} on assignment {assignment_id} in course {course_id}.
Add reviewer {user_id} to course {course_id} submission {submission_id} for {assignment_id}.
DELETE /v1/courses/{course_id}/assignments/{assignment_id}/submissions/{submission_id}/peer_reviews Remove a peer reviewer from a course submission · Delete Peer Review #
Ask an LLM
“Can I take a reviewer off a student's submission in my course?”
“How do I undo a peer review assignment made by mistake?”
Tell an agent destructive · confirm first
Remove reviewer {user_id} from submission {submission_id} on assignment {assignment_id} in course {course_id}.
Delete the course {course_id} peer review by {user_id} of submission {submission_id} for {assignment_id}.
GET /v1/sections/{section_id}/assignments/{assignment_id}/submissions/{submission_id}/peer_reviews List peer reviews of one submission in a section · Get all Peer Reviews #
Ask an LLM
“Within a section, who is reviewing a given student's submission?”
“Can I list section-scoped peer reviews for one submission?”
Tell an agent
List section {section_id} peer reviews of submission {submission_id} on assignment {assignment_id}.
Show reviewers for submission {submission_id} of {assignment_id} within section {section_id}.
POST /v1/sections/{section_id}/assignments/{assignment_id}/submissions/{submission_id}/peer_reviews Assign a peer reviewer to a submission in a section · Create Peer Review #
Ask an LLM
“Can I pair reviewers through a section rather than the whole course?”
“Is adding a peer reviewer by section supported?”
Tell an agent
In section {section_id}, assign {user_id} to review submission {submission_id} for assignment {assignment_id}.
Add section {section_id} reviewer {user_id} on submission {submission_id} of {assignment_id}.
DELETE /v1/sections/{section_id}/assignments/{assignment_id}/submissions/{submission_id}/peer_reviews Remove a peer reviewer from a submission in a section · Delete Peer Review #
Ask an LLM
“Can I unassign a reviewer through the section endpoint?”
“How is a section peer review deleted?”
Tell an agent destructive · confirm first
In section {section_id}, remove {user_id} as reviewer of submission {submission_id} for assignment {assignment_id}.
Delete section {section_id} peer review by {user_id} on submission {submission_id} of {assignment_id}.
POST /v1/courses/{course_id}/assignments/{assignment_id}/allocate Get a submission allocated to me to peer review · Allocate Peer Review #
Ask an LLM
“Can I ask Canvas to give me the next submission to peer review?”
“As a student, how do I get assigned something to review on an assignment?”
Tell an agent
Allocate me a submission to review for assignment {assignment_id} in course {course_id}.
Give me my next peer review on course {course_id} assignment {assignment_id}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/canvas:canvas-peer-reviews-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

canvas-peer-reviews-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canvas LMS REST Peer Reviews API
  version: v1
  summary: The complete Canvas LMS REST API, converted from the Swagger 1.2 documents Instructure publishes under https://canvas.instructure.com/doc/api/.
  description: The Canvas LMS REST API covers courses, assignments, quizzes, grades, users, enrollments, accounts, files, modules, rubrics, submissions, SIS imports, LTI, analytics and account administration.
  contact:
    name: Instructure Canvas
    url: https://canvas.instructure.com/doc/api/
  license:
    name: AGPL-3.0
    url: https://github.com/instructure/canvas-lms/blob/master/LICENSE
servers:
- url: https://canvas.instructure.com/api
  description: Instructure-hosted Canvas (canvas.instructure.com)
- url: https://{canvas_host}/api
  description: Any Canvas instance; Canvas is multi-tenant and self-hostable, so the host is the institution's Canvas domain.
  variables:
    canvas_host:
      default: canvas.instructure.com
      description: Your institution's Canvas hostname, e.g. school.instructure.com
security:
- bearerAuth: []
- oauth2: []
tags:
- name: Peer Reviews
  x-resource: peer_reviews
  externalDocs:
    url: https://canvas.instructure.com/doc/api/peer_reviews.html
paths:
  /v1/courses/{course_id}/assignments/{assignment_id}/peer_reviews:
    get:
      tags:
      - Peer Reviews
      operationId: get_all_peer_reviews_courses_peer_reviews
      summary: Get all Peer Reviews
      description: Get a list of all Peer Reviews for this assignment
      parameters:
      - name: course_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: include
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - submission_comments
            - user
        required: false
        description: Associations to include with the peer review.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
  /v1/sections/{section_id}/assignments/{assignment_id}/peer_reviews:
    get:
      tags:
      - Peer Reviews
      operationId: get_all_peer_reviews_sections_peer_reviews
      summary: Get all Peer Reviews
      description: Get a list of all Peer Reviews for this assignment
      parameters:
      - name: section_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: include
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - submission_comments
            - user
        required: false
        description: Associations to include with the peer review.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
  /v1/courses/{course_id}/assignments/{assignment_id}/submissions/{submission_id}/peer_reviews:
    get:
      tags:
      - Peer Reviews
      operationId: get_all_peer_reviews_courses_submissions
      summary: Get all Peer Reviews
      description: Get a list of all Peer Reviews for this assignment
      parameters:
      - name: course_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: submission_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: include
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - submission_comments
            - user
        required: false
        description: Associations to include with the peer review.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
    post:
      tags:
      - Peer Reviews
      operationId: create_peer_review_courses
      summary: Create Peer Review
      description: Create a peer review for the assignment
      parameters:
      - name: course_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: submission_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  format: int64
                  description: user_id to assign as reviewer on this assignment
              required:
              - user_id
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  format: int64
                  description: user_id to assign as reviewer on this assignment
              required:
              - user_id
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
    delete:
      tags:
      - Peer Reviews
      operationId: delete_peer_review_courses
      summary: Delete Peer Review
      description: Delete a peer review for the assignment
      parameters:
      - name: course_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: submission_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: user_id
        in: query
        schema:
          type: integer
          format: int64
        required: true
        description: user_id to delete as reviewer on this assignment
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
  /v1/sections/{section_id}/assignments/{assignment_id}/submissions/{submission_id}/peer_reviews:
    get:
      tags:
      - Peer Reviews
      operationId: get_all_peer_reviews_sections_submissions
      summary: Get all Peer Reviews
      description: Get a list of all Peer Reviews for this assignment
      parameters:
      - name: section_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: submission_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: include
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - submission_comments
            - user
        required: false
        description: Associations to include with the peer review.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
    post:
      tags:
      - Peer Reviews
      operationId: create_peer_review_sections
      summary: Create Peer Review
      description: Create a peer review for the assignment
      parameters:
      - name: section_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: submission_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  format: int64
                  description: user_id to assign as reviewer on this assignment
              required:
              - user_id
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  format: int64
                  description: user_id to assign as reviewer on this assignment
              required:
              - user_id
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
    delete:
      tags:
      - Peer Reviews
      operationId: delete_peer_review_sections
      summary: Delete Peer Review
      description: Delete a peer review for the assignment
      parameters:
      - name: section_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: submission_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: user_id
        in: query
        schema:
          type: integer
          format: int64
        required: true
        description: user_id to delete as reviewer on this assignment
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
  /v1/courses/{course_id}/assignments/{assignment_id}/allocate:
    post:
      tags:
      - Peer Reviews
      operationId: allocate_peer_review
      summary: Allocate Peer Review
      description: Allocates a submission for the current user to peer review
      parameters:
      - name: course_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeerReview'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/peer_reviews.html
components:
  schemas:
    PeerReview:
      type: object
      properties:
        assessor_id:
          type: integer
          example: 23
          description: The assessors user id
        asset_id:
          type: integer
          example: 13
          description: The id for the asset associated with this Peer Review
        asset_type:
          type: string
          example: Submission
          description: The type of the asset
        id:
          type: integer
          example: 1
          description: The id of the Peer Review
        user_id:
          type: integer
          example: 7
          description: The user id for the owner of the asset
        workflow_state:
          type: string
          example: assigned
          description: The state of the Peer Review, either 'assigned' or 'completed'
        user:
          type: string
          example: User
          description: the User object for the owner of the asset if the user include parameter is provided (see user API) (optional)
        assessor:
          type: string
          example: User
          description: The User object for the assessor if the user include parameter is provided (see user API) (optional)
        submission_comments:
          type: string
          example: SubmissionComment
          description: The submission comments associated with this Peer Review if the submission_comment include parameter is provided (see submissions API) (optional)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Canvas OAuth2 access token sent as "Authorization: Bearer <token>". See https://canvas.instructure.com/doc/api/file.oauth.html'
    oauth2:
      type: oauth2
      description: Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
      flows:
        authorizationCode:
          authorizationUrl: https://canvas.instructure.com/login/oauth2/auth
          tokenUrl: https://canvas.instructure.com/login/oauth2/token
          refreshUrl: https://canvas.instructure.com/login/oauth2/token
          scopes: {}
externalDocs:
  description: Canvas LMS REST API Documentation
  url: https://canvas.instructure.com/doc/api/
x-generated-from: https://canvas.instructure.com/doc/api/api-docs.json
x-provenance:
  method: derived
  derived_by: API Evangelist enrichment pipeline (Swagger 1.2 -> OpenAPI 3.1 conversion)
  source: openapi/_original/swagger-1.2/*.json (144 verbatim first-party Swagger 1.2 documents)
  source_url: https://canvas.instructure.com/doc/api/api-docs.json
  fetched: '2026-09-05'
  http_status: 200