---
title: "List all courses statistics"
method: GET
path: "/api/v2/courses/stats"
tags: ["Courses"]
---

# List all courses statistics

`GET /api/v2/courses/stats`

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

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

Lists all courses statistics in your platform.

## Query parameters

- `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
- `courseId` 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 500 courses attempts statistics.

- CourseStatDTO[]
  - `_id` string, ObjectId, required — The unique ID of the attempt.
  - `versionNumber` integer — The version number of the course the learner attempted.
  - `lang` 'bg' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'fi' | 'fr' | 'hr' | 'ht_HT' | 'hu' | 'id' | 'it' | 'ja' | 'kar_MM' | 'ko' | 'lt' | 'mh_MH' | 'nl' | 'nl_BE' | 'no' | 'pl' | 'pt' | 'ro' | 'ru' | 'rw_RW' | 'sk' | 'sl' | 'so_SO' | 'sv' | 'sw_KE' | 'th' | 'ti_ET' | 'tr' | 'uk' | 'zh' | 'am_ET' | 'bn' | 'bs' | 'ca' | 'cy' | 'en_CA' | 'en_GB' | 'es_AR' | 'es_MX' | 'et' | 'fr_CA' | 'gu' | 'he_IL' | 'hy' | 'kk' | 'km' | 'lo' | 'lv' | 'mi' | 'mn_MN' | 'mr' | 'ms' | 'my_MM' | 'nn_NO' | 'or' | 'pa' | 'pt_BR' | 'pt_MZ' | 'rn_BI' | 'si' | 'ta' | 'te' | 'tl_PH' | 'ur' | 'uz' | 'yo_NG' | 'zh_tw' | 'el' | 'hi' | 'sr' | 'ar' | 'vi' | 'zh_HANT', required — The language of the course the learner attempted.
  - `firstActivityAt` string, date-time — The date and time of the first activity of the user on the course attempt, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `lastActivityAt` string, date-time — The date and time of the last activity of the user on the course attempt, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `timeSpent` number, required — The time spent by the user in the course attempt in milliseconds.
  - `progress` integer, required — The completion rate of the user as a percentage.
  - `score` integer — The score obtained by the user as a percentage.
  - `completedAt` string, date-time — The date and time when the attempt was completed, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `pathId` string, ObjectId — The unique ID of the path if the course is played in the path context.
  - `pathSessionId` string, ObjectId — The unique ID of the path session if the course is played in the path context.
  - `courseId` string, ObjectId, required — The unique ID of the course.
  - `userId` string, ObjectId, required — The unique ID of the user having performed this attempt.

## 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/versions/94b691b0b72c/schema)
