Skip to main content

Course Modules

After creating a course and its modules separately, you must explicitly attach modules to the course. The attachment defines the module’s position, whether it is required, and its workload within this specific course.

List attachable modules

Returns modules that belong to the same institution and are not yet attached to this course.
GET /courses/{course_uuid}/attach/modules
curl "https://api.dokstamp.eu/courses/c3d4e5f6-a7b8-9012-cdef-123456789012/attach/modules" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "X-Tenant: {TENANT}"

Attach modules to a course

POST /courses/{course_uuid}/attach/modules
ParameterTypeRequiredDescription
modulesarrayYesArray of module attachment objects
modules[].uuidstringYesModule UUID
modules[].orderintegerNoPosition in the course curriculum
modules[].is_requiredbooleanNoOverride the module’s default is_required
modules[].workloadintegerNoOverride the module’s default workload for this course
modules[].course_module_group_uuidstringNoAssign to a module group
curl -X POST "https://api.dokstamp.eu/courses/c3d4e5f6-a7b8-9012-cdef-123456789012/attach/modules" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Tenant: {TENANT}" \
  -d '{
    "modules": [
      {
        "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "order": 1,
        "is_required": true,
        "workload": 80
      },
      {
        "uuid": "c3d4e5f6-a7b8-9012-cdef-123456789013",
        "order": 2,
        "is_required": true,
        "workload": 60
      }
    ]
  }'

Detach modules from a course

DELETE /courses/{course_uuid}/detach/modules
ParameterTypeRequiredDescription
modulesarrayYesArray of module UUIDs to detach
{ "modules": ["b2c3d4e5-f6a7-8901-bcde-f12345678901"] }
Detaching a module from a course does not delete the module itself — only the association is removed. The module remains available to attach to other courses.