---
title: "Get a course report by org. Roles: admin."
method: POST
path: "/api/memberships/{membershipId}/reports/courses"
tags: ["Courses", "Reports", "Organizations"]
---

# Get a course report by org. Roles: admin.

`POST /api/memberships/{membershipId}/reports/courses`

## Path parameters

- `membershipId` integer, required

## Request body

- ReportCriteria
  - `startDate` string, date, required
  - `endDate` string, date, required
  - `audienceId` integer
  - `endDateTime` string, date-time
  - `startDateTime` string, date-time

## Response `200`

OK

- CourseReport
  - `criteria` ReportCriteria
    - `startDate` string, date, required
    - `endDate` string, date, required
    - `audienceId` integer
    - `endDateTime` string, date-time
    - `startDateTime` string, date-time
  - `memberCount` integer
  - `courses` CourseItem[]
    - `contentId` integer
    - `title` string
    - `enrolledCount` integer
    - `notStartedCount` integer
    - `inProgressCount` integer
    - `completedCount` integer

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Internal server error

## Changes

- **2026-09-02** `870f28ba2607` — 5 info
  - added the optional property `error/errorId` to the response with the `400` status
  - added the optional property `error/errorId` to the response with the `401` status
  - added the optional property `error/errorId` to the response with the `403` status
  - added the optional property `error/errorId` to the response with the `404` status
  - …1 more

[Change history](https://skmtc.dev/mobilecoach/apis/untitled-api/changes/api/memberships/:membershipId/reports/courses/post.md)

---

[API](https://skmtc.dev/mobilecoach/apis/untitled-api.md) · [All operations](https://skmtc.dev/mobilecoach/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mobilecoach/untitled-api/revisions/870f28ba2607/schema)
