---
title: "Retrieve a course"
method: GET
path: "/api/v2/courses/{courseId}"
tags: ["Courses"]
---

# Retrieve a course

`GET /api/v2/courses/{courseId}`

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

Retrieves the details of a specific course with the provided course ID.

## Path parameters

- `courseId` string, ObjectId, required

## Headers

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

## Response `200`

Returns the details of the given course.

- CourseDTO
  - `name` string, required — The title of the course.
  - `sourceLang` '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 in which the course is created.
  - `authorId` string, ObjectId, required — The unique ID of the author of the course.
  - `groupId` string, ObjectId, required — The unique ID of the group where the course was created.
  - `coAuthorIds` string[], required — The list of unique IDs of the co-authors of the course.
  - `description` string — The description of the course.
  - `duration` number — An estimate of the time required to complete the course. The expected value is a number of minutes.
  - `_id` string, ObjectId, required — The unique ID of the course.
  - `createdAt` string, date-time, required — The date and time when the course was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `defaultLang` '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 in which the course is displayed when the learner’s profile language is not available.
  - `modifiedAt` string, date-time, required — The date and time when the course was last updated, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). Note that when translations are updated or when the course is archived/restored, its modification date does not change.
  - `status` 'archived' | 'deleted' | 'published', required — The status of the course.
  - `translations` CourseTranslationDTO[], required — The different translations available for the course.
    - `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 translation.
    - `published` boolean, required — True if the translation is available to users in this language; false otherwise.
    - `translatorIds` string[], required — The list of unique IDs of the translators assigned to this language.
    - `translatedFields` CourseTranslatedFields, required
      - `name` string — The translation of the field `name` for this language.
      - `description` string — The translation of the field `description` for this language.
  - `type` 'elearning standard' | 'external' | 'native', required — The type of the course.
  - `externalPlatform` string — The external platform where the course comes from. It is only set if the course has the `external` type.
  - `currentVersionNumber` integer — The current version of the course (most recent release).
  - `collaborativeLearning` boolean — A boolean indicating whether collaborative learning is enabled or not.

## 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.
- `404` — The given `courseId` does not correspond to any existing course.
- `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)
