---
title: "Returns paginated list of all course progress for a user by email"
method: GET
path: "/v1/users/course-progress/list/{email}"
tags: ["users"]
---

# Returns paginated list of all course progress for a user by email

`GET /v1/users/course-progress/list/{email}`

## Request

- Base URL: `https://api.memberspot.de` (the document declares no server; this is the origin it was published from)
- URL: `https://api.memberspot.de/v1/users/course-progress/list/{email}`
- Auth: API key in header `X-API-KEY`

## Path parameters

- `email` string, email, required

## Query parameters

- `lastLoadedCourseId` string
- `pageLength` number

## Response `200`

Returns paginated list of all course progress for a user by email

- UserCourseProgressResult
  - `data` UserCourseProgressItem[], required: Array with user course progress items
    - `uid` string, required: User identifier
    - `email` string, required: User email
    - `firstname` string, required: Users firstname
    - `name` string, required: Users lastname
    - `active` boolean: Is course active
    - `courseId` string, required: Course id
    - `activePosts` number: Number of lessons that count towards the course progress of this user (published lessons in accessible chapters). Omitted when the user does not have the course.
    - `completedPosts` number: Number of completed lessons of this user in the course. The course counts as completed when activePosts > 0 and completedPosts >= activePosts (SCORM courses track completion separately). Omitted when the user does not have the course.
    - `grantedAt` string, date-time: Date the course was first granted to the user. Revoking and re-granting access keeps this date; check "active" for the current access state. Omitted when the user never had the course.
    - `startDate` string, date-time: Date from which course access and drip scheduling are anchored for the user. Derived from the offer launch date or set by an admin, so it can be before or after grantedAt. Omitted when the user never had the course.
    - `updatedAt` string, date-time: Date the course assignment was last written. It changes whenever progress, access state, chapter access or start date change, and can also move when the access of the user is re-evaluated without a visible change. An unchanged value therefore guarantees unchanged data; a newer value does not guarantee a difference. Omitted for assignments that have not been written since the field was introduced.
  - `nextPage` string: Field will be provided when more data is availiable

## Other responses

- `400`: Missing arguments (check your api key)
- `401`: Api key provided but invalid
- `429`: Too many requests - only 4 requests per second allowed

---

[API](https://skmtc.dev/memberspot/apis/memberspot-api.md) · [All operations](https://skmtc.dev/memberspot/apis/memberspot-api/llms.txt) · [OpenAPI document](https://skmtc.dev/memberspot/apis/memberspot-api/revisions/48a9411d4339?raw)
