---
title: "Show course | Mostra corso"
method: GET
path: "/courses/{courseId}"
tags: ["Courses"]
---

# Show course | Mostra corso

`GET /courses/{courseId}`

## Request

- Base URL: `https://app.didattica.polito.it/api`
- URL: `https://app.didattica.polito.it/api/courses/{courseId}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/polito/apis/polito-faculty-api/docs/courses/:courseId/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `courseId` integer, required

## Response `200`

The request has succeeded.

- object
  - `data` Course, required
    - `id` integer, nullable, required: The identifier for the current instance of this course. If null this is not a teaching (such as thesis), it won't have a course page
    - `shortcode` string, required
    - `name` string, required
    - `teachingPeriod` string, required: The semester(s) this course belongs to
    - `teacherId` integer, nullable, required
    - `teacherName` string, nullable, required
    - `isOverBooking` boolean, required
    - `category` string, required: Defines the course type and whether the course page should be opened when no instructor is assigned to the course.
    - `enrollmentRole` 'student' | 'viewer' | 'teacher' | 'collaborator', required
    - `year` string, required
    - `style` Symbol, required
      - `label` string
      - `color` union
        - string
        - ThemeColors
          - `light` string, required: Color used in light mode.
          - `dark` string, required: Color used in dark mode.
      - `icon` string

## Other responses

- `400`: The server could not understand the request due to invalid syntax.
- `500`: Server error

## Changes

- **2026-10-25** `c29c33e75373`: 1 info
  - added the required property `data/allOf[#/components/schemas/CourseModule]/style` to the response with the `200` status
- **2026-09-22** `7fbc3307705f`: 2 info
  - added the required property `data/allOf[#/components/schemas/CourseModule]/category` to the response with the `200` status
  - added the required property `data/vcPreviousYears/items/name` to the response with the `200` status
- **2026-06-17** `4ad36cf4e652`: 1 breaking
  - removed the required property `data/allOf[#/components/schemas/CourseModule]/previousEditions` from the response with the `200` status
- **2026-03-19** `946d1c1bbe83`: 8 breaking, 1 info
  - removed the required property `data/id` from the response with the `200` status
  - removed the required property `data/isInPersonalStudyPlan` from the response with the `200` status
  - removed the required property `data/isOverBooking` from the response with the `200` status
  - removed the required property `data/name` from the response with the `200` status
  - …5 more

[Operation history](https://skmtc.dev/polito/apis/polito-faculty-api/changes/courses/:courseId/get.md)

---

[API](https://skmtc.dev/polito/apis/polito-faculty-api.md) - [All operations](https://skmtc.dev/polito/apis/polito-faculty-api/llms.txt) - [OpenAPI document](https://skmtc.dev/polito/apis/polito-faculty-api/revisions/c29c33e75373?raw)
