Skip to content
Esc
↑↓navigate↵open⌘Jpreview

Get a module

Returns a module with all versions fully expanded (examination requirements, time plan items, files, course connections, tags). Scoped to your integration’s institution via Basic Auth credentials.

GET/modules/{id}
Authorization
AuthorizationBasic auth · headerrequired

Basic Auth with clientId as username and clientSecret as password

Path parameters
idstringrequired
Responses
200

Module

dataModuleDetailrequired

Full module detail with tags and all versions expanded (examination requirements, files, connections).

Show properties
idstringrequired
namestringrequired
institutionIdstringrequired
codestring | null
isArchivedboolean | null
nameTranslationsobject | null
isSubmoduleboolean

Catalog classification. false is a Module; true is a reusable catalog Submodule.

courseModuleTagsModuleTag[]
Show properties
Array of ModuleTag
idstringrequired
courseModuleIdstringrequired
tagIdstringrequired
tagobjectrequired
Show properties
idstringrequired
namestringrequired
institutionIdstringrequired
colorstring | null
iconstring | null
versionsModuleVersionDetail[]required

All versions, each fully expanded with nested relations.

Show properties
Array of ModuleVersionDetail
idstring
versionstring
namestring
descriptionstring | null
iconstring | null
iconTypestring | null
bannerstring | null
createdAtstring<date-time>
updatedAtstring<date-time>
requiredAttendancePercentageinteger
ectsPointsnumber

ECTS credit points. Halves only (0, 0.5, 1, 1.5, …). Breaking change: previously integer-only.

min 0
courseModuleIdstring
statusstring
timePlanIdstring | null
isDefaultboolean
earlyAssessmentEnabledboolean
isCurrentlyElectableboolean
capacityinteger | null
colorinteger | null
courseChatFileAttachmentsDefaultboolean
courseChatReadOnlyDefaultboolean
courseFeatureDefaultsobject | null
moduleNamestring | null
attemptRulesobject | null
createdCoursesobject[]

rows created from this version.

timePlanInstitutionLessonUnit | null

relation.

Show properties
One of:
InstitutionLessonUnit
idstringrequired
namestringrequired
institutionIdstringrequired
minutesintegerrequired
isDefaultbooleanrequired
null
null
parentConnectionsobject[]

Nested childModuleVersion is the full

childConnectionsobject[]

Nested parentModuleVersion is the full

examinationRequirementsModuleVersionExaminationRequirement[]

Examination requirement with template defaults applied.

Show properties
Array of ModuleVersionExaminationRequirement
idstringrequired
courseModuleVersionIdstring
namestringrequired
nameEnglishstring | null
typestringrequired
lengthinteger | null
ratingModestring
schedulingModestring
isFinalExamboolean
weightPercentageinteger | null
attemptWorkflowstring
examinationRequirementTemplateIdstring | null
templateIdstring | null

Alias of examinationRequirementTemplateId after merge.

allowAlternativeRequestboolean
needsTopicConfirmationboolean
topicSubmissionDaysBeforeDeadlineinteger | null
examineeAssignmentModestring
customExamFormIdstring | null
nameTranslationsobject | null
examinationRequirementTemplateobject | null
timePlanItemsModuleVersionTimePlanItem[]

Time plan item (id, name, needsAppointment, amount).

Show properties
Array of ModuleVersionTimePlanItem
idstringrequired
namestringrequired
needsAppointmentbooleanrequired
amountintegerrequired
additionalDescriptionsModuleVersionAdditionalDescription[]

Additional description blocks, sorted by position.

Show properties
Array of ModuleVersionAdditionalDescription
idstringrequired
namestringrequired
descriptionstring | null
positionintegerrequired
filesModuleVersionFile[]

Files attached to this version (id, fileUrl).

Show properties
Array of ModuleVersionFile
idstringrequired
fileUrlstringrequired
metaResponseMetarequired
Show properties
requestIdstringrequired
timestampstring<date-time>required
versionstringrequired
Allowed:v4
watermarkstring<date-time>

Present on GET /users?updatedSince= pages. Taken at the first page minus a 60s overlap. Bound into pagination.next_cursor. Use it as the next updatedSince after deduping by user id. Delivery is inclusive >= and at-least-once.

401

Unauthorized

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
404

Not Found

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
422

Unprocessable Entity — validation or business rule error

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
429

Too Many Requests — 1000 requests per minute per institution. Includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (ISO-8601), and Retry-After (seconds).

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
500

Internal Server Error

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
existingUserIdstring

Present on 409 email or membership-code conflicts. The user id that already holds the email or code.

activeSessionobject

Present on time-tracking start 409 when a session is already running. Stop this session, then retry start.

Show properties
idstringrequired
startTimestring<date-time>required
conflictingLogobject

Present on time-tracking 409 when the interval being written overlaps an existing log or open session. Start uses [punch, ∞). Stop uses [sessionStart, stop). endTime is null while that session is still open.

Show properties
idstringrequired
startTimestring<date-time>required
endTimestring<date-time> | nullrequired
Try it
Server
Authorization
Parameters
Request
curl -X GET 'https://fuxam.app/api/v4/modules/string' \
  -H 'Authorization: Basic YOUR_CREDENTIALS' \
  -H 'Accept: application/json'
Response
{
  "data": {
    "id": "cm_xyz789",
    "name": "Economics",
    "institutionId": "inst_123",
    "code": "ECO-101",
    "isArchived": false,
    "nameTranslations": null,
    "isSubmodule": false,
    "courseModuleTags": [
      {
        "id": "cmt_abc123",
        "courseModuleId": "cm_xyz789",
        "tagId": "tag_def456",
        "tag": {
          "id": "tag_def456",
          "name": "Core Module",
          "institutionId": "inst_123",
          "color": "#0361fc",
          "icon": "book"
        }
      }
    ],
    "versions": [
      {
        "id": "cmv_abc123",
        "version": "1.0.0",
        "name": "Introduction to Economics",
        "description": "Introductory economics module.",
        "icon": "📚",
        "iconType": "emoji",
        "banner": null,
        "createdAt": "2026-01-15T10:00:00.000Z",
        "updatedAt": "2026-06-01T08:30:00.000Z",
        "requiredAttendancePercentage": 80,
        "ectsPoints": 5,
        "courseModuleId": "cm_xyz789",
        "status": "ACTIVE",
        "timePlanId": "ilu_001",
        "isDefault": true,
        "earlyAssessmentEnabled": false,
        "isCurrentlyElectable": true,
        "capacity": 30,
        "color": null,
        "courseChatFileAttachmentsDefault": true,
        "courseChatReadOnlyDefault": false,
        "courseFeatureDefaults": null,
        "moduleName": "Economics 101",
        "attemptRules": null,
        "createdCourses": [
          {
            "id": "course_001",
            "layer_id": "layer_001",
            "name": "Introduction to Economics",
            "icon": "/illustrations/course-icon-library/book-worm.webp",
            "color": 5,
            "dynamicBanner": null,
            "institution_id": "inst_123",
            "description": null,
            "bannerImage": null,
            "iconType": "image",
            "courseModuleVersionId": "cmv_abc123",
            "curriculaId": null,
            "code": "ECO-101",
            "capacity": null,
            "status": "ACTIVE",
            "isDatabase": false,
            "settings": null,
            "learningJourneyMode": "DEFAULT",
            "scormFileUrl": null,
            "scormR2FileUrl": null,
            "scormProcessingProgress": null,
            "scormProcessingStage": null,
            "scormProcessingStatus": null
          }
        ],
        "timePlan": {
          "id": "ilu_001",
          "name": "UE",
          "institutionId": "inst_123",
          "minutes": 45,
          "isDefault": false
        },
        "parentConnections": [
          {
            "id": "conn_002",
            "parentModuleVersionId": "cmv_abc123",
            "childModuleVersionId": "cmv_child",
            "studyPeriodId": "cvt_001",
            "childModuleVersion": {
              "id": "cmv_child",
              "version": "2.0.0",
              "name": "Follow-up Module",
              "description": null,
              "icon": null,
              "iconType": "emoji",
              "banner": null,
              "createdAt": "2026-01-15T10:00:00.000Z",
              "updatedAt": "2026-06-01T08:30:00.000Z",
              "requiredAttendancePercentage": 80,
              "ectsPoints": 5,
              "courseModuleId": "cm_followup",
              "status": "ACTIVE",
              "timePlanId": null,
              "isDefault": false,
              "earlyAssessmentEnabled": false,
              "isCurrentlyElectable": true,
              "capacity": null,
              "color": null,
              "courseChatFileAttachmentsDefault": true,
              "courseChatReadOnlyDefault": false,
              "courseFeatureDefaults": null,
              "moduleName": null,
              "attemptRules": null
            }
          }
        ],
        "childConnections": [
          {
            "id": "conn_001",
            "parentModuleVersionId": "cmv_parent",
            "childModuleVersionId": "cmv_abc123",
            "studyPeriodId": "cvt_001",
            "parentModuleVersion": {
              "id": "cmv_parent",
              "version": "1.0.0",
              "name": "Prerequisite Module",
              "description": null,
              "icon": null,
              "iconType": "emoji",
              "banner": null,
              "createdAt": "2026-01-01T10:00:00.000Z",
              "updatedAt": "2026-06-01T08:30:00.000Z",
              "requiredAttendancePercentage": 80,
              "ectsPoints": 5,
              "courseModuleId": "cm_prereq",
              "status": "ACTIVE",
              "timePlanId": null,
              "isDefault": true,
              "earlyAssessmentEnabled": false,
              "isCurrentlyElectable": true,
              "capacity": null,
              "color": null,
              "courseChatFileAttachmentsDefault": true,
              "courseChatReadOnlyDefault": false,
              "courseFeatureDefaults": null,
              "moduleName": null,
              "attemptRules": null
            }
          }
        ],
        "examinationRequirements": [
          {
            "id": "req_001",
            "courseModuleVersionId": "cmv_abc123",
            "name": "Final Exam",
            "nameEnglish": null,
            "type": "exam",
            "length": 120,
            "ratingMode": "PASSED_OR_FAILED",
            "schedulingMode": "DEADLINE",
            "isFinalExam": true,
            "weightPercentage": 100,
            "attemptWorkflow": "AUTO_REATTEMPT",
            "examinationRequirementTemplateId": "ert_001",
            "templateId": "ert_001",
            "allowAlternativeRequest": false,
            "needsTopicConfirmation": false,
            "topicSubmissionDaysBeforeDeadline": null,
            "examineeAssignmentMode": "STANDARD",
            "customExamFormId": null,
            "nameTranslations": null,
            "examinationRequirementTemplate": null
          }
        ],
        "timePlanItems": [
          {
            "id": "tpi_001",
            "name": "Lecture",
            "needsAppointment": true,
            "amount": 14
          }
        ],
        "additionalDescriptions": [
          {
            "id": "desc_001",
            "name": "Learning Outcomes",
            "description": "Students will understand basic economics.",
            "position": 0
          }
        ],
        "files": [
          {
            "id": "file_001",
            "fileUrl": "https://storage.example.com/module.pdf"
          }
        ]
      }
    ]
  },
  "meta": {
    "requestId": "req_abc123",
    "timestamp": "2026-06-26T00:00:00.000Z",
    "version": "v4"
  }
}

Was this page helpful?