---
title: "List all user statistics for all paths"
method: GET
path: "/api/v2/paths/stats"
tags: ["Paths"]
---

# List all user statistics for all paths

`GET /api/v2/paths/stats`

> 🔑
>
> Required OAuth scope: `pathStats:read`.

> 📖
>
> This endpoint is paginated with a page size of 2,000 path user statistics. For more information, see the [Pagination guide](https://360learning.readme.io/docs/pagination).

Lists all user statistics for paths in the platform.

## Query parameters

- `status` object
  - `eq` 'archived' | 'published' — Filter on values equal to the given one
- `completedAt` object
  - `lt` string, date-time — Filter on dates lower than the given one
  - `gte` string, date-time — Filter on dates greater than or equal the given one
- `pathId` object
  - `eq` string, ObjectId — Filter on values equal to the given one
  - `ne` string, ObjectId — Filter on values not equal to the given one
  - `in` string[] — Filter on values including the given ones
  - `nin` string[] — Filter on values excluding the given ones
- `userId` object
  - `eq` string, ObjectId — Filter on values equal to the given one
  - `ne` string, ObjectId — Filter on values not equal to the given one
  - `in` string[] — Filter on values including the given ones
  - `nin` string[] — Filter on values excluding the given ones

## Headers

- `360-api-version` 'v2.0', required

## Response `200`

Returns one page of 2000 path user statistics.

- PathSessionUserStatDTO[]
  - `_id` string, ObjectId, required — The unique ID of the user enrollment.
  - `progress` integer, required — The completion rate of the user as a percentage.
  - `status` union, required — The status of the user in the path session.
    - AwaitingCorrectionStatus
      - `type` 'awaitingCorrection', required — The learner reached an assessment step that the assessor has not validated yet.
    - LateStatus
      - `type` 'late', required — The path session is ongoing, and the learner meets all the following conditions: - They have started the path. - They have not completed at least one mandatory step with a past due date.
    - NotYetStartedStatus
      - `type` 'notYetStarted', required — The learner is enrolled in an ongoing path session, but they have not started the path yet.
    - OnTimeStatus
      - `type` 'onTime', required — The path session is ongoing, and the learner meets all the following conditions: - They have started the path. - They have completed all mandatory steps with past due dates. - They have not yet completed all mandatory steps without a due date or with a future due date.
    - SessionNotOpenedStatus
      - `type` 'sessionNotOpened', required — The learner is enrolled in a path session that has not started yet.
    - SuccessfulStatus
      - `type` 'successful', required — The learner meets all the following conditions: - They have reached the minimum score in all the mandatory courses that require it. - They have completed all mandatory steps in the path within the time limits. If the path has the mandatory replay option activated, they must have completed all mandatory steps within the path session, even if they has previously completed the courses elsewhere.
    - ToRetakeStatus
      - `type` 'toRetake', required — The path session is ongoing, the learner has started the path, and they meet at least one of the following conditions: - They have not reached the minimum score for at least one mandatory course, and they have not reached the maximum number of authorized attempts. - They have not completed the path within the time limits and they have not reached the maximum number of attempts for mandatory courses. - They completed at least one step outside the path context in a path that has the mandatory replay option activated.
      - `reason` 'mandatoryReplay' — The learner has not re-completed some mandatory steps previously completed outside the path.
    - UnsuccessfulStatus
      - `type` 'unsuccessful', required — The path session ended with a status of **Not yet started**, **Late**, **On time**, or **To retake**, or the learner meets at least one of the following conditions: - They have not reached the minimum score for at least one mandatory step and they reached the maximum number of attempts. - They have not completed the path within the time limits, and they reached the maximum number of attempts for the mandatory steps.
      - `reason` 'sessionEnded' — The learner status was either **Not yet started**, **Late**, **On time**, or **To retake**.
  - `timeSpent` number, required — The number of milliseconds spent by the user on the session.
  - `userId` string, ObjectId, required — The unique ID of the user.
  - `completedAt` string, date-time — The date and time of completion of the session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `score` integer — The score obtained by the user as a percentage.
  - `enrolledAt` string, date-time, required — The date and time the user was enrolled, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `unenrolledAt` string, date-time — The date and time the user was unenrolled, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `certificateId` string, ObjectId — The ID of the certificate obtained by the user in the session.
  - `selfEnrolled` boolean, required — True if the user self-enrolled in the given path session; false otherwise.
  - `startedAt` string, date-time — The date and time the user started working in the session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `dueDate` string, date-time — The date and time when the session is due, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `pathId` string, ObjectId, required — The unique ID of the path.
  - `sessionId` string, ObjectId, required — The unique ID of the path session.

## Other responses

- `401` — The given access token is either missing, invalid, has expired, or has been revoked.
- `403` — The given access token does not have the required OAuth scope to execute the request.
- `429` — The client has sent too many requests in a short amount of time.

---

[API](https://skmtc.net/360learning/apis/core-api.md) · [All operations](https://skmtc.net/360learning/apis/core-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/360learning/core-api/revisions/94b691b0b72c/schema)
