> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Course Lessons

> Returns all lessons belonging to a specific course.

# List Course Lessons

Returns the ordered list of lessons for a specific course. Used to render the course syllabus and track which lessons the customer has completed.

## Authentication

Requires a valid customer bearer token to include completion status.

## Path Parameters

<ParamField path="courseId" type="number" required>
  Numeric identifier of the course. Returned as `Id` from `GET /api/public/courses/v2`.
</ParamField>

## Query Parameters

<ParamField query="_shape" type="string">
  Comma-separated list of field paths to include in the response. When provided, only the
  specified fields are returned — useful for reducing payload size. Supports nested paths
  using dot notation.
</ParamField>

## Response

Returns a `CourseSummary` object containing the lessons array and course-level metadata.

### Top-Level Fields

| Field             | Type      | Description                                    |
| ----------------- | --------- | ---------------------------------------------- |
| `Enrolled`        | `boolean` | Whether the customer is enrolled in the course |
| `Completed`       | `boolean` | Whether the customer has completed the course  |
| `Completeness`    | `number`  | Completion percentage (0–1)                    |
| `CanAccessCourse` | `boolean` | Whether the customer can access course content |
| `AttendeeCount`   | `number`  | Number of enrolled attendees                   |
| `LessonsCount`    | `number`  | Total number of lessons                        |
| `CreatedOnUtc`    | `string`  | Course creation date (UTC)                     |

### Attendee (current customer)

| Field          | Type     | Description                      |
| -------------- | -------- | -------------------------------- |
| `Id`           | `number` | Attendee record identifier       |
| `FullName`     | `string` | Attendee full name               |
| `Email`        | `string` | Attendee email                   |
| `CreatedOn`    | `string` | Enrollment date (business-local) |
| `CreatedOnUtc` | `string` | Enrollment date (UTC)            |

### Course

| Field               | Type             | Description                               |
| ------------------- | ---------------- | ----------------------------------------- |
| `Id`                | `number`         | Course identifier                         |
| `Title`             | `string`         | Course title                              |
| `SummaryText`       | `string`         | Short course summary                      |
| `FullDescription`   | `string`         | Full course description (HTML)            |
| `OverviewText`      | `string`         | Course overview text                      |
| `GroupName`         | `string`         | Course group / category name              |
| `Visibility`        | `string`         | Visibility setting                        |
| `Active`            | `boolean`        | Whether the course is active              |
| `ShowInHomePage`    | `boolean`        | Whether shown on the home page            |
| `ShowOverview`      | `boolean`        | Whether the overview tab is visible       |
| `HasCommunityGroup` | `boolean`        | Whether the course has a discussion group |
| `CreatedOn`         | `string`         | Date created (business-local time)        |
| `CreatedOnUtc`      | `string`         | Date created (UTC)                        |
| `UpdatedOn`         | `string \| null` | Date last updated (business-local time)   |
| `UpdatedOnUtc`      | `string \| null` | Date last updated (UTC)                   |

### Lessons Array

| Field          | Type      | Description                           |
| -------------- | --------- | ------------------------------------- |
| `Id`           | `number`  | Lesson identifier                     |
| `Title`        | `string`  | Lesson title                          |
| `SummaryText`  | `string`  | Lesson summary text                   |
| `DisplayOrder` | `number`  | Sort order within the course          |
| `IsOpen`       | `boolean` | Whether the lesson is available       |
| `IsComplete`   | `boolean` | Whether the customer has completed it |

### Lessons Section (nested)

| Field                  | Type     | Description        |
| ---------------------- | -------- | ------------------ |
| `Section.Id`           | `number` | Section identifier |
| `Section.Title`        | `string` | Section title      |
| `Section.DisplayOrder` | `number` | Section sort order |

### Other

| Field            | Type             | Description                            |
| ---------------- | ---------------- | -------------------------------------- |
| `Tariff`         | `object \| null` | Associated plan/tariff (if any)        |
| `Host`           | `object \| null` | Course host profile                    |
| `CommunityGroup` | `object \| null` | Linked discussion group (`Id`, `Name`) |
| `CurrentLesson`  | `object \| null` | The first open, incomplete lesson      |

## Examples

### Fetch lessons for a course

```http theme={null}
GET /api/public/courses/v2/42/lessons
Authorization: Bearer {token}
```

## TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const { resource: lessons } = useTypedData(httpClient, endpoints.courses.lessons(42))
```
