Canvas Originality Reports API

The Originality Reports API from Canvas — 3 operation(s) for originality reports.

Operations 5

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

POST /lti/assignments/{assignment_id}/submissions/{submission_id}/originality_report Create an originality report for a submission · Create an Originality Report #
Ask an LLM
“How does a plagiarism tool post an originality score back on a student's submission?”
“Can an originality report link out to the full report on the tool's site?”
Tell an agent
Create an originality report with score {originality_score} for submission {submission_id} on assignment {assignment_id}.
Post a {originality_score} originality score for file {file_id} in submission {submission_id} of assignment {assignment_id}, linking {originality_report_url}.
PUT /lti/assignments/{assignment_id}/submissions/{submission_id}/originality_report/{id} Update a submission's originality report · Edit an Originality Report #
Ask an LLM
“How do I change the score on an originality report once scanning finishes?”
“Can I move an originality report from pending to scored on a submission?”
Tell an agent
Update originality report {id} on submission {submission_id} of assignment {assignment_id} to score {originality_score}.
Set the state of report {id} for assignment {assignment_id} submission {submission_id} to {workflow_state}.
GET /lti/assignments/{assignment_id}/submissions/{submission_id}/originality_report/{id} Get an originality report for a submission · Show an Originality Report #
Ask an LLM
“What originality score did a submission get?”
“Can I fetch an originality report by its id under a submission?”
Tell an agent
Show originality report {id} for submission {submission_id} on assignment {assignment_id}.
Get the similarity score in report {id} attached to assignment {assignment_id} submission {submission_id}.
PUT /lti/assignments/{assignment_id}/files/{file_id}/originality_report Update the originality report for a file · Edit an Originality Report #
Ask an LLM
“Can I update an originality report addressed by its file id?”
“How do I attach an error message to a file's originality report?”
Tell an agent
Update the originality report for file {file_id} on assignment {assignment_id} to score {originality_score}.
Record error {error_message} on file {file_id}'s report for assignment {assignment_id}.
GET /lti/assignments/{assignment_id}/files/{file_id}/originality_report Get the originality report for an attached file · Show an Originality Report #
Ask an LLM
“What's the originality report for one specific uploaded file?”
“Can I look up an originality report by file instead of by submission?”
Tell an agent
Show the originality report for file {file_id} on assignment {assignment_id}.
Get the similarity result attached to file {file_id} for 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-originality-reports-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-originality-reports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canvas LMS REST Originality Reports 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: Originality Reports
  x-resource: originality_reports
  externalDocs:
    url: https://canvas.instructure.com/doc/api/originality_reports.html
paths:
  /lti/assignments/{assignment_id}/submissions/{submission_id}/originality_report:
    post:
      tags:
      - Originality Reports
      operationId: create_originality_report
      summary: Create an Originality Report
      description: Create a new OriginalityReport for the specified file
      parameters:
      - 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:
                originality_report[file_id]:
                  type: integer
                  format: int64
                  description: 'The id of the file being given an originality score. Required

                    if creating a report associated with a file.'
                originality_report[originality_score]:
                  type: number
                  description: 'A number between 0 and 100 representing the measure of the

                    specified file''s originality.'
                originality_report[originality_report_url]:
                  type: string
                  description: 'The URL where the originality report for the specified

                    file may be found.'
                originality_report[originality_report_file_id]:
                  type: integer
                  format: int64
                  description: 'The ID of the file within Canvas that contains the originality

                    report for the submitted file provided in the request URL.'
                originality_report[tool_setting][resource_type_code]:
                  type: string
                  description: 'The resource type code of the resource handler Canvas should use for the

                    LTI launch for viewing originality reports. If set Canvas will launch

                    to the message with type ''basic-lti-launch-request'' in the specified

                    resource handler rather than using the originality_report_url.'
                originality_report[tool_setting][resource_url]:
                  type: string
                  description: 'The URL Canvas should launch to when showing an LTI originality report.

                    Note that this value is inferred from the specified resource handler''s

                    message "path" value (See `resource_type_code`) unless

                    it is specified. If this parameter is used a `resource_type_code`

                    must also be specified.'
                originality_report[workflow_state]:
                  type: string
                  description: 'May be set to "pending", "error", or "scored". If an originality score

                    is provided a workflow state of "scored" will be inferred.'
                originality_report[error_message]:
                  type: string
                  description: 'A message describing the error. If set, the "workflow_state"

                    will be set to "error."'
                originality_report[attempt]:
                  type: integer
                  format: int64
                  description: 'If no `file_id` is given, and no file is required for the assignment

                    (that is, the assignment allows an online text entry), this parameter

                    may be given to clarify which attempt number the report is for (in the

                    case of resubmissions). If this field is omitted and no `file_id` is

                    given, the report will be created (or updated, if it exists) for the

                    first submission attempt with no associated file.'
              required:
              - originality_report[originality_score]
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                originality_report[file_id]:
                  type: integer
                  format: int64
                  description: 'The id of the file being given an originality score. Required

                    if creating a report associated with a file.'
                originality_report[originality_score]:
                  type: number
                  description: 'A number between 0 and 100 representing the measure of the

                    specified file''s originality.'
                originality_report[originality_report_url]:
                  type: string
                  description: 'The URL where the originality report for the specified

                    file may be found.'
                originality_report[originality_report_file_id]:
                  type: integer
                  format: int64
                  description: 'The ID of the file within Canvas that contains the originality

                    report for the submitted file provided in the request URL.'
                originality_report[tool_setting][resource_type_code]:
                  type: string
                  description: 'The resource type code of the resource handler Canvas should use for the

                    LTI launch for viewing originality reports. If set Canvas will launch

                    to the message with type ''basic-lti-launch-request'' in the specified

                    resource handler rather than using the originality_report_url.'
                originality_report[tool_setting][resource_url]:
                  type: string
                  description: 'The URL Canvas should launch to when showing an LTI originality report.

                    Note that this value is inferred from the specified resource handler''s

                    message "path" value (See `resource_type_code`) unless

                    it is specified. If this parameter is used a `resource_type_code`

                    must also be specified.'
                originality_report[workflow_state]:
                  type: string
                  description: 'May be set to "pending", "error", or "scored". If an originality score

                    is provided a workflow state of "scored" will be inferred.'
                originality_report[error_message]:
                  type: string
                  description: 'A message describing the error. If set, the "workflow_state"

                    will be set to "error."'
                originality_report[attempt]:
                  type: integer
                  format: int64
                  description: 'If no `file_id` is given, and no file is required for the assignment

                    (that is, the assignment allows an online text entry), this parameter

                    may be given to clarify which attempt number the report is for (in the

                    case of resubmissions). If this field is omitted and no `file_id` is

                    given, the report will be created (or updated, if it exists) for the

                    first submission attempt with no associated file.'
              required:
              - originality_report[originality_score]
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OriginalityReport'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/originality_reports.html
  /lti/assignments/{assignment_id}/submissions/{submission_id}/originality_report/{id}:
    put:
      tags:
      - Originality Reports
      operationId: edit_originality_report_submissions
      summary: Edit an Originality Report
      description: 'Modify an existing originality report. An alternative to this endpoint is

        to POST the same parameters listed below to the CREATE endpoint.'
      parameters:
      - 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: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                originality_report[originality_score]:
                  type: number
                  description: 'A number between 0 and 100 representing the measure of the

                    specified file''s originality.'
                originality_report[originality_report_url]:
                  type: string
                  description: 'The URL where the originality report for the specified

                    file may be found.'
                originality_report[originality_report_file_id]:
                  type: integer
                  format: int64
                  description: 'The ID of the file within Canvas that contains the originality

                    report for the submitted file provided in the request URL.'
                originality_report[tool_setting][resource_type_code]:
                  type: string
                  description: 'The resource type code of the resource handler Canvas should use for the

                    LTI launch for viewing originality reports. If set Canvas will launch

                    to the message with type ''basic-lti-launch-request'' in the specified

                    resource handler rather than using the originality_report_url.'
                originality_report[tool_setting][resource_url]:
                  type: string
                  description: 'The URL Canvas should launch to when showing an LTI originality report.

                    Note that this value is inferred from the specified resource handler''s

                    message "path" value (See `resource_type_code`) unless

                    it is specified. If this parameter is used a `resource_type_code`

                    must also be specified.'
                originality_report[workflow_state]:
                  type: string
                  description: 'May be set to "pending", "error", or "scored". If an originality score

                    is provided a workflow state of "scored" will be inferred.'
                originality_report[error_message]:
                  type: string
                  description: 'A message describing the error. If set, the "workflow_state"

                    will be set to "error."'
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                originality_report[originality_score]:
                  type: number
                  description: 'A number between 0 and 100 representing the measure of the

                    specified file''s originality.'
                originality_report[originality_report_url]:
                  type: string
                  description: 'The URL where the originality report for the specified

                    file may be found.'
                originality_report[originality_report_file_id]:
                  type: integer
                  format: int64
                  description: 'The ID of the file within Canvas that contains the originality

                    report for the submitted file provided in the request URL.'
                originality_report[tool_setting][resource_type_code]:
                  type: string
                  description: 'The resource type code of the resource handler Canvas should use for the

                    LTI launch for viewing originality reports. If set Canvas will launch

                    to the message with type ''basic-lti-launch-request'' in the specified

                    resource handler rather than using the originality_report_url.'
                originality_report[tool_setting][resource_url]:
                  type: string
                  description: 'The URL Canvas should launch to when showing an LTI originality report.

                    Note that this value is inferred from the specified resource handler''s

                    message "path" value (See `resource_type_code`) unless

                    it is specified. If this parameter is used a `resource_type_code`

                    must also be specified.'
                originality_report[workflow_state]:
                  type: string
                  description: 'May be set to "pending", "error", or "scored". If an originality score

                    is provided a workflow state of "scored" will be inferred.'
                originality_report[error_message]:
                  type: string
                  description: 'A message describing the error. If set, the "workflow_state"

                    will be set to "error."'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OriginalityReport'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/originality_reports.html
    get:
      tags:
      - Originality Reports
      operationId: show_originality_report_submissions
      summary: Show an Originality Report
      description: Get a single originality report
      parameters:
      - 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: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OriginalityReport'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/originality_reports.html
  /lti/assignments/{assignment_id}/files/{file_id}/originality_report:
    put:
      tags:
      - Originality Reports
      operationId: edit_originality_report_files
      summary: Edit an Originality Report
      description: 'Modify an existing originality report. An alternative to this endpoint is

        to POST the same parameters listed below to the CREATE endpoint.'
      parameters:
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: file_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                originality_report[originality_score]:
                  type: number
                  description: 'A number between 0 and 100 representing the measure of the

                    specified file''s originality.'
                originality_report[originality_report_url]:
                  type: string
                  description: 'The URL where the originality report for the specified

                    file may be found.'
                originality_report[originality_report_file_id]:
                  type: integer
                  format: int64
                  description: 'The ID of the file within Canvas that contains the originality

                    report for the submitted file provided in the request URL.'
                originality_report[tool_setting][resource_type_code]:
                  type: string
                  description: 'The resource type code of the resource handler Canvas should use for the

                    LTI launch for viewing originality reports. If set Canvas will launch

                    to the message with type ''basic-lti-launch-request'' in the specified

                    resource handler rather than using the originality_report_url.'
                originality_report[tool_setting][resource_url]:
                  type: string
                  description: 'The URL Canvas should launch to when showing an LTI originality report.

                    Note that this value is inferred from the specified resource handler''s

                    message "path" value (See `resource_type_code`) unless

                    it is specified. If this parameter is used a `resource_type_code`

                    must also be specified.'
                originality_report[workflow_state]:
                  type: string
                  description: 'May be set to "pending", "error", or "scored". If an originality score

                    is provided a workflow state of "scored" will be inferred.'
                originality_report[error_message]:
                  type: string
                  description: 'A message describing the error. If set, the "workflow_state"

                    will be set to "error."'
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                originality_report[originality_score]:
                  type: number
                  description: 'A number between 0 and 100 representing the measure of the

                    specified file''s originality.'
                originality_report[originality_report_url]:
                  type: string
                  description: 'The URL where the originality report for the specified

                    file may be found.'
                originality_report[originality_report_file_id]:
                  type: integer
                  format: int64
                  description: 'The ID of the file within Canvas that contains the originality

                    report for the submitted file provided in the request URL.'
                originality_report[tool_setting][resource_type_code]:
                  type: string
                  description: 'The resource type code of the resource handler Canvas should use for the

                    LTI launch for viewing originality reports. If set Canvas will launch

                    to the message with type ''basic-lti-launch-request'' in the specified

                    resource handler rather than using the originality_report_url.'
                originality_report[tool_setting][resource_url]:
                  type: string
                  description: 'The URL Canvas should launch to when showing an LTI originality report.

                    Note that this value is inferred from the specified resource handler''s

                    message "path" value (See `resource_type_code`) unless

                    it is specified. If this parameter is used a `resource_type_code`

                    must also be specified.'
                originality_report[workflow_state]:
                  type: string
                  description: 'May be set to "pending", "error", or "scored". If an originality score

                    is provided a workflow state of "scored" will be inferred.'
                originality_report[error_message]:
                  type: string
                  description: 'A message describing the error. If set, the "workflow_state"

                    will be set to "error."'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OriginalityReport'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/originality_reports.html
    get:
      tags:
      - Originality Reports
      operationId: show_originality_report_files
      summary: Show an Originality Report
      description: Get a single originality report
      parameters:
      - name: assignment_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: file_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OriginalityReport'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/originality_reports.html
components:
  schemas:
    OriginalityReport:
      type: object
      properties:
        id:
          type: integer
          example: '4'
          description: The id of the OriginalityReport
        file_id:
          type: integer
          example: '8'
          description: The id of the file receiving the originality score
        originality_score:
          type: number
          example: '0.16'
          description: A number between 0 and 100 representing the originality score
        originality_report_file_id:
          type: integer
          example: '23'
          description: The ID of the file within Canvas containing the originality report document (if provided)
        originality_report_url:
          type: string
          example: http://www.example.com/report
          description: A non-LTI launch URL where the originality score of the file may be found.
        tool_setting:
          type: string
          description: A ToolSetting object containing optional 'resource_type_code' and 'resource_url'
        error_report:
          type: string
          description: A message describing the error. If set, the workflow_state will become 'error.'
        submission_time:
          type: string
          format: date-time
          description: The submitted_at date time of the submission.
        root_account_id:
          type: integer
          example: '1'
          description: The id of the root Account associated with the OriginalityReport
  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