Canvas LMS · Arazzo Workflow

Canvas LMS Enroll Teacher Then Author Assignment

Version 1.0.0

Enroll a teacher in a course, then create the course's first assignment.

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

Provider

canvas-lms

Workflows

enroll-teacher-then-author-assignment
Add a teacher to a course and create its first assignment.
Creates a TeacherEnrollment for the supplied user, confirms it, and creates an assignment in the course.
3 steps inputs: assignmentName, courseId, pointsPossible, teacherUserId outputs: assignmentId, enrollmentId
1
enrollTeacher
Enroll the supplied user as a teacher in the course with an active state.
2
confirmTeacher
List the course teachers to confirm the new teacher enrollment is present.
3
authorAssignment
Create the course's first assignment so the teacher has content to manage.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Canvas LMS Enroll Teacher Then Author Assignment
  summary: Enroll a teacher in a course, then create the course's first assignment.
  description: >-
    A course-staffing flow for Canvas. The workflow enrolls a user as a teacher
    in a course, confirms the enrollment is active, and then authors a first
    assignment in that course so the new teacher has content to work with. 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-4720.10
  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-4720.10
      capability_name: Enrolment & Registration
      spec: canvas-lms-enrollments-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: assignmentsApi
  url: ../openapi/canvas-lms-assignments-api-openapi.yml
  type: openapi
- name: coursesApi
  url: ../openapi/canvas-lms-courses-api-openapi.yml
  type: openapi
- name: enrollmentsApi
  url: ../openapi/canvas-lms-enrollments-api-openapi.yml
  type: openapi
workflows:
- workflowId: enroll-teacher-then-author-assignment
  summary: Add a teacher to a course and create its first assignment.
  description: >-
    Creates a TeacherEnrollment for the supplied user, confirms it, and creates
    an assignment in the course.
  inputs:
    type: object
    required:
    - courseId
    - teacherUserId
    - assignmentName
    - pointsPossible
    properties:
      courseId:
        type: string
        description: The Canvas course id.
      teacherUserId:
        type: string
        description: The Canvas user id to enroll as a teacher.
      assignmentName:
        type: string
        description: The name of the assignment to create.
      pointsPossible:
        type: number
        description: The maximum points for the assignment.
  steps:
  - stepId: enrollTeacher
    description: >-
      Enroll the supplied user as a teacher in the course with an active state.
    operationId: enrollUser
    parameters:
    - name: course_id
      in: path
      value: $inputs.courseId
    requestBody:
      contentType: application/json
      payload:
        enrollment:
          user_id: $inputs.teacherUserId
          type: TeacherEnrollment
          enrollment_state: active
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      enrollmentId: $response.body#/id
      enrollmentType: $response.body#/type
  - stepId: confirmTeacher
    description: >-
      List the course teachers to confirm the new teacher enrollment is present.
    operationId: listCourseUsers
    parameters:
    - name: course_id
      in: path
      value: $inputs.courseId
    - name: enrollment_type[]
      in: query
      value:
      - teacher
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstTeacherId: $response.body#/0/id
  - stepId: authorAssignment
    description: >-
      Create the course's first assignment so the teacher has content to manage.
    operationId: createAssignment
    parameters:
    - name: course_id
      in: path
      value: $inputs.courseId
    requestBody:
      contentType: application/json
      payload:
        assignment:
          name: $inputs.assignmentName
          points_possible: $inputs.pointsPossible
          submission_types:
          - online_text_entry
          published: false
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      assignmentId: $response.body#/id
  outputs:
    enrollmentId: $steps.enrollTeacher.outputs.enrollmentId
    assignmentId: $steps.authorAssignment.outputs.assignmentId

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-enroll-teacher-then-author-assignment-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.