Canvas LMS · Arazzo Workflow

Canvas LMS Grade One of Many Submissions

Version 1.0.0

List an assignment's submissions, then post a grade to the first one returned.

1 workflow 1 source API 1 provider
View Spec View on GitHub Learning ManagementEducationEdTechLMSLTIHigher EducationK-12Open-SourceAGPLCanvasArazzoWorkflows

Provider

canvas-lms

Workflows

grade-first-submission
Retrieve an assignment's submissions and grade the first one.
Lists the submissions for an assignment, reads the first submission's user id, and posts a grade plus optional comment to that user's submission.
2 steps inputs: assignmentId, courseId, postedGrade, textComment outputs: grade, userId
1
listSubmissions
List the submissions for the assignment, including submission comments.
2
gradeFirstSubmission
Post the supplied grade and optional comment to the first submission's user.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Canvas LMS Grade One of Many Submissions
  summary: List an assignment's submissions, then post a grade to the first one returned.
  description: >-
    A grading flow for Canvas. The workflow lists the submissions for an
    assignment, takes the first submission's user id, and posts a grade and
    comment to that submission. It models the inner loop of bulk grading, where a
    grader walks the submission list and marks each one in turn. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-4740.30
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-4740.30
      capability_name: Marking & Grading Operations
      spec: canvas-lms-submissions-api-openapi.yml
      confidence: 0.85
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: submissionsApi
  url: ../openapi/canvas-lms-submissions-api-openapi.yml
  type: openapi
workflows:
- workflowId: grade-first-submission
  summary: Retrieve an assignment's submissions and grade the first one.
  description: >-
    Lists the submissions for an assignment, reads the first submission's user
    id, and posts a grade plus optional comment to that user's submission.
  inputs:
    type: object
    required:
    - courseId
    - assignmentId
    - postedGrade
    properties:
      courseId:
        type: string
        description: The Canvas course id.
      assignmentId:
        type: string
        description: The Canvas assignment id whose submissions are graded.
      postedGrade:
        type: string
        description: The grade to post to the first submission.
      textComment:
        type: string
        description: Optional feedback comment to attach.
  steps:
  - stepId: listSubmissions
    description: >-
      List the submissions for the assignment, including submission comments.
    operationId: listSubmissions
    parameters:
    - name: course_id
      in: path
      value: $inputs.courseId
    - name: assignment_id
      in: path
      value: $inputs.assignmentId
    - name: include[]
      in: query
      value:
      - submission_comments
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstUserId: $response.body#/0/user_id
  - stepId: gradeFirstSubmission
    description: >-
      Post the supplied grade and optional comment to the first submission's
      user.
    operationId: gradeSubmission
    parameters:
    - name: course_id
      in: path
      value: $inputs.courseId
    - name: assignment_id
      in: path
      value: $inputs.assignmentId
    - name: user_id
      in: path
      value: $steps.listSubmissions.outputs.firstUserId
    requestBody:
      contentType: application/json
      payload:
        submission:
          posted_grade: $inputs.postedGrade
        comment:
          text_comment: $inputs.textComment
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      grade: $response.body#/grade
      score: $response.body#/score
      userId: $response.body#/user_id
  outputs:
    userId: $steps.gradeFirstSubmission.outputs.userId
    grade: $steps.gradeFirstSubmission.outputs.grade

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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 workflow
curl "https://apis.io/api/v1/arazzo/canvas-lms-grade-all-submissions-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?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.