Teacher Portfolio

Get one teacher portfolio by UUID

get
Path parameters
uuidstringRequired

Teacher Portfolio UUID

Responses
200

Teacher Portfolio retrieved successfully

application/json
get
GET /v1/teacher-portfolios/{uuid} HTTP/1.1
Host: 
Accept: */*
200

Teacher Portfolio retrieved successfully

{
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "userId": "123e4567-e89b-12d3-a456-426614174000",
  "title": "text",
  "description": "text",
  "coverImageUrl": "text",
  "courseIds": [
    1
  ],
  "skills": [
    {
      "name": "text",
      "status": "not_completed",
      "mentionCount": 1
    }
  ],
  "sections": {
    "defaultSection": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "requirements": [
        {
          "uuid": "123e4567-e89b-12d3-a456-426614174000",
          "userId": "123e4567-e89b-12d3-a456-426614174000",
          "title": "text",
          "description": "text",
          "reflectionQuestions": [
            "text"
          ],
          "order": 1,
          "createdAt": "2025-10-13T20:19:40.711Z",
          "updatedAt": "2025-10-13T20:19:40.711Z",
          "skills": [
            {
              "name": "text",
              "status": "not_completed",
              "mentionCount": 1
            }
          ],
          "type": "project",
          "canvasAssignmentId": 1,
          "courseId": 1,
          "courseName": "text",
          "gradingType": "text",
          "htmlUrl": "text",
          "pointsPossible": 1,
          "submissionTypes": [
            "text"
          ]
        }
      ],
      "order": 1
    },
    "userSections": [
      {
        "uuid": "123e4567-e89b-12d3-a456-426614174000",
        "title": "text",
        "requirements": [
          {
            "uuid": "123e4567-e89b-12d3-a456-426614174000",
            "userId": "123e4567-e89b-12d3-a456-426614174000",
            "title": "text",
            "description": "text",
            "reflectionQuestions": [
              "text"
            ],
            "order": 1,
            "createdAt": "2025-10-13T20:19:40.711Z",
            "updatedAt": "2025-10-13T20:19:40.711Z",
            "skills": [
              {
                "name": "text",
                "status": "not_completed",
                "mentionCount": 1
              }
            ],
            "type": "project",
            "canvasAssignmentId": 1,
            "courseId": 1,
            "courseName": "text",
            "gradingType": "text",
            "htmlUrl": "text",
            "pointsPossible": 1,
            "submissionTypes": [
              "text"
            ]
          }
        ],
        "order": 1
      }
    ]
  },
  "teacherPortfolioState": "draft"
}

Partially update a teacher portfolio

patch
Path parameters
uuidstringRequired

Teacher Portfolio UUID

Body
titlestringOptional
descriptionstringOptional
coverImageUrlstringOptional
courseIdsnumber[]Optional
teacherPortfolioStatestring · enumOptionalPossible values:
Responses
200

The teacher portfolio has been successfully updated.

application/json
patch
PATCH /v1/teacher-portfolios/{uuid} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 1077

{
  "title": "text",
  "description": "text",
  "coverImageUrl": "text",
  "courseIds": [
    1
  ],
  "teacherPortfolioState": "draft",
  "sections": {
    "defaultSection": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "requirements": [
        {
          "uuid": "text",
          "userId": "text",
          "title": "text",
          "description": "text",
          "reflectionQuestions": [
            "text"
          ],
          "order": 1,
          "createdAt": "2025-10-13T20:19:40.711Z",
          "updatedAt": "2025-10-13T20:19:40.711Z",
          "skills": [
            {
              "name": "text"
            }
          ],
          "type": "project",
          "canvasAssignmentId": 1,
          "courseId": 1,
          "courseName": "text",
          "gradingType": "text",
          "htmlUrl": "text",
          "pointsPossible": 1,
          "submissionTypes": [
            "text"
          ]
        }
      ],
      "order": 1
    },
    "userSections": [
      {
        "uuid": "123e4567-e89b-12d3-a456-426614174000",
        "title": "text",
        "requirements": [
          {
            "uuid": "text",
            "userId": "text",
            "title": "text",
            "description": "text",
            "reflectionQuestions": [
              "text"
            ],
            "order": 1,
            "createdAt": "2025-10-13T20:19:40.711Z",
            "updatedAt": "2025-10-13T20:19:40.711Z",
            "skills": [
              {
                "name": "text"
              }
            ],
            "type": "project",
            "canvasAssignmentId": 1,
            "courseId": 1,
            "courseName": "text",
            "gradingType": "text",
            "htmlUrl": "text",
            "pointsPossible": 1,
            "submissionTypes": [
              "text"
            ]
          }
        ],
        "order": 1
      }
    ]
  }
}
{
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "userId": "123e4567-e89b-12d3-a456-426614174000",
  "title": "text",
  "description": "text",
  "coverImageUrl": "text",
  "courseIds": [
    1
  ],
  "skills": [
    {
      "name": "text",
      "status": "not_completed",
      "mentionCount": 1
    }
  ],
  "sections": {
    "defaultSection": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "requirements": [
        {
          "uuid": "123e4567-e89b-12d3-a456-426614174000",
          "userId": "123e4567-e89b-12d3-a456-426614174000",
          "title": "text",
          "description": "text",
          "reflectionQuestions": [
            "text"
          ],
          "order": 1,
          "createdAt": "2025-10-13T20:19:40.711Z",
          "updatedAt": "2025-10-13T20:19:40.711Z",
          "skills": [
            {
              "name": "text",
              "status": "not_completed",
              "mentionCount": 1
            }
          ],
          "type": "project",
          "canvasAssignmentId": 1,
          "courseId": 1,
          "courseName": "text",
          "gradingType": "text",
          "htmlUrl": "text",
          "pointsPossible": 1,
          "submissionTypes": [
            "text"
          ]
        }
      ],
      "order": 1
    },
    "userSections": [
      {
        "uuid": "123e4567-e89b-12d3-a456-426614174000",
        "title": "text",
        "requirements": [
          {
            "uuid": "123e4567-e89b-12d3-a456-426614174000",
            "userId": "123e4567-e89b-12d3-a456-426614174000",
            "title": "text",
            "description": "text",
            "reflectionQuestions": [
              "text"
            ],
            "order": 1,
            "createdAt": "2025-10-13T20:19:40.711Z",
            "updatedAt": "2025-10-13T20:19:40.711Z",
            "skills": [
              {
                "name": "text",
                "status": "not_completed",
                "mentionCount": 1
              }
            ],
            "type": "project",
            "canvasAssignmentId": 1,
            "courseId": 1,
            "courseName": "text",
            "gradingType": "text",
            "htmlUrl": "text",
            "pointsPossible": 1,
            "submissionTypes": [
              "text"
            ]
          }
        ],
        "order": 1
      }
    ]
  },
  "teacherPortfolioState": "draft"
}

Delete a teacher portfolio

delete
Path parameters
uuidstringRequired

Teacher Portfolio UUID

Responses
200

The teacher portfolio has been successfully deleted.

No content

delete
DELETE /v1/teacher-portfolios/{uuid} HTTP/1.1
Host: 
Accept: */*

No content

Get all teacher portfolios

get
Query parameters
pagenumber · min: 1Optional

Page number (must be greater than 0)

Default: 1
pageSizenumber · min: 1 · max: 100Optional

Number of items per page (must be between 1 and 100)

Default: 20
Responses
200

The teacher portfolios are successfully retrieved.

application/json
get
GET /v1/teacher-portfolios HTTP/1.1
Host: 
Accept: */*
[
  {
    "itemType": "student_portfolio",
    "teacherPortfolio": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "teacherPortfolioState": "draft",
      "attachedCoursesCounter": 1,
      "learnerCounter": 1,
      "learnerGroupCounter": 1,
      "startedCounter": 1,
      "completedCounter": 1,
      "pendingReviewCounter": 1,
      "createdAt": "2025-10-13T20:19:40.711Z",
      "updatedAt": "2025-10-13T20:19:40.711Z",
      "coverImageUrl": "text"
    },
    "studentPortfolio": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "status": "not_started",
      "coverImageUrl": "text",
      "numberOfTotalRequirements": 1,
      "numberOfFailedEvidences": 1,
      "numberOfPendingEvidences": 1,
      "numberOfSubmittedEvidences": 1,
      "numberOfUnSubmittedEvidences": 1,
      "numberOfCompletedEvidences": 1,
      "createdAt": "2025-10-13T20:19:40.711Z",
      "updatedAt": "2025-10-13T20:19:40.711Z"
    },
    "showcasePortfolio": {
      "uuid": "text",
      "title": "text",
      "coverImageUrl": "text",
      "status": "DRAFT",
      "numberOfEvidences": 1,
      "createdAt": "2025-10-13T20:19:40.711Z",
      "updatedAt": "2025-10-13T20:19:40.711Z"
    }
  }
]

Create a new teacher portfolio

post
Body
titlestringOptional

The title of the teacher portfolio

descriptionstringOptional

The description of the teacher portfolio

coverImageUrlstringOptional
courseIdsnumber[]Required

Array of course IDs associated with the teacher portfolio

teacherPortfolioStatestring · enumOptional

The state of the teacher portfolio

Possible values:
Responses
201

The teacher portfolio has been successfully created.

application/json
post
POST /v1/teacher-portfolios HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 1205

{
  "title": "text",
  "description": "text",
  "coverImageUrl": "text",
  "courseIds": [
    1
  ],
  "teacherPortfolioState": "draft",
  "sections": {
    "defaultSection": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "requirements": [
        {
          "uuid": "123e4567-e89b-12d3-a456-426614174000",
          "userId": "123e4567-e89b-12d3-a456-426614174000",
          "title": "text",
          "description": "text",
          "reflectionQuestions": [
            "text"
          ],
          "order": 1,
          "createdAt": "2025-10-13T20:19:40.711Z",
          "updatedAt": "2025-10-13T20:19:40.711Z",
          "skills": [
            {
              "name": "text"
            }
          ],
          "type": "project",
          "canvasAssignmentId": 1,
          "courseId": 1,
          "courseName": "text",
          "gradingType": "text",
          "htmlUrl": "text",
          "pointsPossible": 1,
          "submissionTypes": [
            "text"
          ]
        }
      ],
      "order": 1
    },
    "userSections": [
      {
        "uuid": "123e4567-e89b-12d3-a456-426614174000",
        "title": "text",
        "requirements": [
          {
            "uuid": "123e4567-e89b-12d3-a456-426614174000",
            "userId": "123e4567-e89b-12d3-a456-426614174000",
            "title": "text",
            "description": "text",
            "reflectionQuestions": [
              "text"
            ],
            "order": 1,
            "createdAt": "2025-10-13T20:19:40.711Z",
            "updatedAt": "2025-10-13T20:19:40.711Z",
            "skills": [
              {
                "name": "text"
              }
            ],
            "type": "project",
            "canvasAssignmentId": 1,
            "courseId": 1,
            "courseName": "text",
            "gradingType": "text",
            "htmlUrl": "text",
            "pointsPossible": 1,
            "submissionTypes": [
              "text"
            ]
          }
        ],
        "order": 1
      }
    ]
  }
}
{
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "userId": "123e4567-e89b-12d3-a456-426614174000",
  "title": "text",
  "description": "text",
  "coverImageUrl": "text",
  "courseIds": [
    1
  ],
  "skills": [
    {
      "name": "text",
      "status": "not_completed",
      "mentionCount": 1
    }
  ],
  "sections": {
    "defaultSection": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "requirements": [
        {
          "uuid": "123e4567-e89b-12d3-a456-426614174000",
          "userId": "123e4567-e89b-12d3-a456-426614174000",
          "title": "text",
          "description": "text",
          "reflectionQuestions": [
            "text"
          ],
          "order": 1,
          "createdAt": "2025-10-13T20:19:40.711Z",
          "updatedAt": "2025-10-13T20:19:40.711Z",
          "skills": [
            {
              "name": "text",
              "status": "not_completed",
              "mentionCount": 1
            }
          ],
          "type": "project",
          "canvasAssignmentId": 1,
          "courseId": 1,
          "courseName": "text",
          "gradingType": "text",
          "htmlUrl": "text",
          "pointsPossible": 1,
          "submissionTypes": [
            "text"
          ]
        }
      ],
      "order": 1
    },
    "userSections": [
      {
        "uuid": "123e4567-e89b-12d3-a456-426614174000",
        "title": "text",
        "requirements": [
          {
            "uuid": "123e4567-e89b-12d3-a456-426614174000",
            "userId": "123e4567-e89b-12d3-a456-426614174000",
            "title": "text",
            "description": "text",
            "reflectionQuestions": [
              "text"
            ],
            "order": 1,
            "createdAt": "2025-10-13T20:19:40.711Z",
            "updatedAt": "2025-10-13T20:19:40.711Z",
            "skills": [
              {
                "name": "text",
                "status": "not_completed",
                "mentionCount": 1
              }
            ],
            "type": "project",
            "canvasAssignmentId": 1,
            "courseId": 1,
            "courseName": "text",
            "gradingType": "text",
            "htmlUrl": "text",
            "pointsPossible": 1,
            "submissionTypes": [
              "text"
            ]
          }
        ],
        "order": 1
      }
    ]
  },
  "teacherPortfolioState": "draft"
}

Get courses linked to Teacher Portfolio

get
Authorizations
Path parameters
uuidstringRequired

Teacher Portfolio UUID

Query parameters
pagenumber · min: 1Optional

Page number (must be greater than 0)

Default: 1
pageSizenumber · min: 1 · max: 100Optional

Number of items per page (must be between 1 and 100)

Default: 20
Responses
200

The courses are successfully retrieved.

application/json
get
GET /v1/teacher-portfolios/{uuid}/courses HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": 1,
    "courseCode": "text",
    "name": "text",
    "assignmentCount": 1,
    "membersCount": 1,
    "learnerGroupCount": 1,
    "termName": "text",
    "url": "text"
  }
]

Update courses linked to portfolio

patch
Authorizations
Path parameters
uuidstringRequired

Teacher Portfolio UUID

Query parameters
pagenumber · min: 1Optional

Page number (must be greater than 0)

Default: 1
pageSizenumber · min: 1 · max: 100Optional

Number of items per page (must be between 1 and 100)

Default: 20
Body
titlestringOptional
descriptionstringOptional
coverImageUrlstringOptional
courseIdsnumber[]Optional
teacherPortfolioStatestring · enumOptionalPossible values:
Responses
200

The courses are successfully updated.

application/json
patch
PATCH /v1/teacher-portfolios/{uuid}/courses HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1077

{
  "title": "text",
  "description": "text",
  "coverImageUrl": "text",
  "courseIds": [
    1
  ],
  "teacherPortfolioState": "draft",
  "sections": {
    "defaultSection": {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "requirements": [
        {
          "uuid": "text",
          "userId": "text",
          "title": "text",
          "description": "text",
          "reflectionQuestions": [
            "text"
          ],
          "order": 1,
          "createdAt": "2025-10-13T20:19:40.711Z",
          "updatedAt": "2025-10-13T20:19:40.711Z",
          "skills": [
            {
              "name": "text"
            }
          ],
          "type": "project",
          "canvasAssignmentId": 1,
          "courseId": 1,
          "courseName": "text",
          "gradingType": "text",
          "htmlUrl": "text",
          "pointsPossible": 1,
          "submissionTypes": [
            "text"
          ]
        }
      ],
      "order": 1
    },
    "userSections": [
      {
        "uuid": "123e4567-e89b-12d3-a456-426614174000",
        "title": "text",
        "requirements": [
          {
            "uuid": "text",
            "userId": "text",
            "title": "text",
            "description": "text",
            "reflectionQuestions": [
              "text"
            ],
            "order": 1,
            "createdAt": "2025-10-13T20:19:40.711Z",
            "updatedAt": "2025-10-13T20:19:40.711Z",
            "skills": [
              {
                "name": "text"
              }
            ],
            "type": "project",
            "canvasAssignmentId": 1,
            "courseId": 1,
            "courseName": "text",
            "gradingType": "text",
            "htmlUrl": "text",
            "pointsPossible": 1,
            "submissionTypes": [
              "text"
            ]
          }
        ],
        "order": 1
      }
    ]
  }
}
[
  {
    "id": 1,
    "courseCode": "text",
    "name": "text",
    "assignmentCount": 1,
    "membersCount": 1,
    "learnerGroupCount": 1,
    "termName": "text",
    "url": "text"
  }
]

Get dashboard for a teacher portfolio with optional filters

get
Path parameters
uuidstringRequired

Teacher Portfolio UUID

Query parameters
pagenumber · min: 1Optional

Page number (must be greater than 0)

Default: 1
pageSizenumber · min: 1 · max: 100Optional

Number of items per page (must be between 1 and 100)

Default: 20
sortBystringOptional

Sort by field (studentName, pendingEvidenceCount, status)

sortOrderstring · enumOptional

Sort order

Possible values:
searchstringOptional

Search query

courseIdsnumber[]Optional
Responses
200

Students retrieved successfully

application/json
get
GET /v1/teacher-portfolios/{uuid}/student-portfolios/summary HTTP/1.1
Host: 
Accept: */*
{
  "data": [
    {
      "studentPortfolioId": "123e4567-e89b-12d3-a456-426614174000",
      "studentName": "text",
      "studentAvatar": "text",
      "pendingEvidenceCount": 1,
      "status": "not_started"
    }
  ],
  "meta": {
    "total": 1,
    "page": 1,
    "lastPage": 1,
    "hasNextPage": true,
    "hasPreviousPage": true
  }
}

Get assignments linked to courses

get
Authorizations
Path parameters
uuidstringRequired

Teacher Portfolio UUID

Query parameters
pagenumber · min: 1Optional

Page number (must be greater than 0)

Default: 1
pageSizenumber · min: 1 · max: 100Optional

Number of items per page (must be between 1 and 100)

Default: 20
Responses
200

The assignments are successfully retrieved.

application/json
get
GET /v1/teacher-portfolios/{uuid}/courses/assignments HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": 1,
    "userId": "text",
    "name": "text",
    "courseName": "text",
    "description": "text",
    "courseId": 1,
    "gradingType": "text",
    "htmlUrl": "text",
    "createdAt": "2025-10-13T20:19:40.711Z",
    "pointsPossible": 1,
    "submissionTypes": [
      "text"
    ]
  }
]

Last updated

Was this helpful?