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

# Module Groups

> Organize course modules into logical groups (semesters, periods, areas).

# Module Groups

Module groups let you organize a course's modules into logical sections — semesters, academic periods, knowledge areas, or any other grouping that reflects your curriculum structure.

***

## The module group object

```json theme={null}
{
  "uuid": "d4e5f6a7-b8c9-0123-defg-234567890123",
  "name": "1st Semester",
  "order": 1,
  "is_active": true,
  "course": {
    "uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "name": "Bachelor of Computer Science"
  }
}
```

***

## List module groups

```http theme={null}
GET /courses/{course_uuid}/modules/groups
```

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.dokstamp.com/courses/c3d4e5f6-a7b8-9012-cdef-123456789012/modules/groups" \
    -H "Authorization: Bearer {TOKEN}" \
    -H "Accept: application/json" \
    -H "X-Tenant: {TENANT}"
  ```
</CodeGroup>

***

## Create a module group

```http theme={null}
POST /courses/{course_uuid}/modules/groups
```

| Parameter   | Type    | Required | Description                       |
| ----------- | ------- | -------- | --------------------------------- |
| `name`      | string  | Yes      | Group name (e.g., "1st Semester") |
| `order`     | integer | No       | Display order within the course   |
| `is_active` | boolean | No       | Default: `true`                   |

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.dokstamp.com/courses/c3d4e5f6-a7b8-9012-cdef-123456789012/modules/groups" \
    -H "Authorization: Bearer {TOKEN}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "X-Tenant: {TENANT}" \
    -d '{
      "name": "1st Semester",
      "order": 1,
      "is_active": true
    }'
  ```
</CodeGroup>

After creating groups, assign modules to them using the `course_module_group_uuid` parameter when attaching modules. See [Course Modules](/en/api-reference/courses/modules).

***

## Get, update, delete

```http theme={null}
GET    /courses/{course_uuid}/modules/groups/{group_uuid}
PATCH  /courses/{course_uuid}/modules/groups/{group_uuid}
PUT    /courses/{course_uuid}/modules/groups/{group_uuid}
DELETE /courses/{course_uuid}/modules/groups/{group_uuid}
```
