Create a module
Creates a module with an initial active version. Returns the created module with defaultVersion, firstVersion, and courses count. Use GET /modules/{id} for examination requirements, files, and full version detail. Scoped to your integration’s institution via Basic Auth credentials.
POST
/modulesHeader parameters
Idempotency-KeystringrequiredRequest body
requiredapplication/jsonnamestringrequiredcodestringdescriptionstringiconstringbannerstringectsPointsintegerrequiredAttendancePercentageintegerversionNamestringResponses
201Module created
dataModuleCreateResultrequiredModule returned by POST /modules: created module with its initial version, plus `defaultVersion`, `firstVersion`, and `courses` count. Use GET /modules/{id} for examination requirements, files, and full version detail.
Show propertiesHide properties
idstringrequirednamestringrequiredinstitutionIdstringrequiredcodestring | nullisArchivedboolean | nullnameTranslationsobject | nullcourseModuleTagsModuleTag[]Show propertiesHide properties
Array of
ModuleTagidstringrequiredcourseModuleIdstringrequiredtagIdstringrequiredtagobjectrequiredShow propertiesHide properties
idstringrequirednamestringrequiredinstitutionIdstringrequiredcolorstring | nulliconstring | nullversionsModuleVersion[]requiredShow propertiesHide properties
Array of
ModuleVersionidstringrequiredversionstringrequirednamestringrequireddescriptionstring | nullrequiredMay be an empty string when not set.
iconstring | nullrequirediconTypestring | nullrequiredbannerstring | nullrequiredcreatedAtstring<date-time>requiredupdatedAtstring<date-time>requiredrequiredAttendancePercentageintegerrequiredectsPointsintegerrequiredcourseModuleIdstringrequiredstatusstringrequiredAllowed:
DRAFTACTIVEARCHIVEDtimePlanIdstring | nullrequiredisDefaultbooleanrequiredearlyAssessmentEnabledbooleanrequiredisCurrentlyElectablebooleanrequiredcapacityinteger | nullrequiredcolorinteger | nullrequiredcourseChatFileAttachmentsDefaultbooleanrequiredcourseChatReadOnlyDefaultbooleanrequiredcourseFeatureDefaultsobject | nullrequiredmoduleNamestring | nullrequiredattemptRulesobject | nullrequireddefaultVersionModuleVersionModule version summary. List and create endpoints return these fields; GET by ID includes nested relations.
Show propertiesHide properties
idstringrequiredversionstringrequirednamestringrequireddescriptionstring | nullrequiredMay be an empty string when not set.
iconstring | nullrequirediconTypestring | nullrequiredbannerstring | nullrequiredcreatedAtstring<date-time>requiredupdatedAtstring<date-time>requiredrequiredAttendancePercentageintegerrequiredectsPointsintegerrequiredcourseModuleIdstringrequiredstatusstringrequiredAllowed:
DRAFTACTIVEARCHIVEDtimePlanIdstring | nullrequiredisDefaultbooleanrequiredearlyAssessmentEnabledbooleanrequiredisCurrentlyElectablebooleanrequiredcapacityinteger | nullrequiredcolorinteger | nullrequiredcourseChatFileAttachmentsDefaultbooleanrequiredcourseChatReadOnlyDefaultbooleanrequiredcourseFeatureDefaultsobject | nullrequiredmoduleNamestring | nullrequiredattemptRulesobject | nullrequiredfirstVersionModuleVersionModule version summary. List and create endpoints return these fields; GET by ID includes nested relations.
Show propertiesHide properties
idstringrequiredversionstringrequirednamestringrequireddescriptionstring | nullrequiredMay be an empty string when not set.
iconstring | nullrequirediconTypestring | nullrequiredbannerstring | nullrequiredcreatedAtstring<date-time>requiredupdatedAtstring<date-time>requiredrequiredAttendancePercentageintegerrequiredectsPointsintegerrequiredcourseModuleIdstringrequiredstatusstringrequiredAllowed:
DRAFTACTIVEARCHIVEDtimePlanIdstring | nullrequiredisDefaultbooleanrequiredearlyAssessmentEnabledbooleanrequiredisCurrentlyElectablebooleanrequiredcapacityinteger | nullrequiredcolorinteger | nullrequiredcourseChatFileAttachmentsDefaultbooleanrequiredcourseChatReadOnlyDefaultbooleanrequiredcourseFeatureDefaultsobject | nullrequiredmoduleNamestring | nullrequiredattemptRulesobject | nullrequiredcoursesintegerTotal courses linked across all versions.
metaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredAllowed:
v4400Bad Request
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring401Unauthorized
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring409Conflict
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring429Too Many Requests
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring500Internal Server Error
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestringRequest
curl -X POST "https://fuxam.app/api/v4/modules" \
-H "Idempotency-Key: string" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"code": "string",
"description": "string",
"icon": "string",
"banner": "string",
"ectsPoints": 0,
"requiredAttendancePercentage": 0,
"versionName": "string"
}'const response = await fetch("https://fuxam.app/api/v4/modules", {
method: "POST",
headers: {
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "string",
"code": "string",
"description": "string",
"icon": "string",
"banner": "string",
"ectsPoints": 0,
"requiredAttendancePercentage": 0,
"versionName": "string"
})
});import requests
response = requests.post(
"https://fuxam.app/api/v4/modules",
headers={
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
json={
"name": "string",
"code": "string",
"description": "string",
"icon": "string",
"banner": "string",
"ectsPoints": 0,
"requiredAttendancePercentage": 0,
"versionName": "string"
},
)Response
{
"data": {
"id": "cm_xyz789",
"name": "Economics",
"institutionId": "inst_123",
"code": "ECO-101",
"isArchived": false,
"nameTranslations": null,
"courseModuleTags": [],
"versions": [
{
"id": "cmqevazu005pb4pi9zp2zthd1",
"version": "2.0.0",
"name": "Business Administration Basics",
"description": "",
"icon": null,
"iconType": "emoji",
"banner": null,
"createdAt": "2026-06-15T07:04:18.408Z",
"updatedAt": "2026-06-15T07:04:18.408Z",
"requiredAttendancePercentage": 80,
"ectsPoints": 5,
"courseModuleId": "cmqevazrw05p34pi9wv9w3mks",
"status": "ACTIVE",
"timePlanId": "cmqevazr905p14pi9st41ex1w",
"isDefault": true,
"earlyAssessmentEnabled": false,
"isCurrentlyElectable": true,
"capacity": null,
"color": null,
"courseChatFileAttachmentsDefault": true,
"courseChatReadOnlyDefault": false,
"courseFeatureDefaults": null,
"moduleName": null,
"attemptRules": null
}
],
"defaultVersion": {
"id": "cmqevazu005pb4pi9zp2zthd1",
"version": "2.0.0",
"name": "Business Administration Basics",
"description": "",
"icon": null,
"iconType": "emoji",
"banner": null,
"createdAt": "2026-06-15T07:04:18.408Z",
"updatedAt": "2026-06-15T07:04:18.408Z",
"requiredAttendancePercentage": 80,
"ectsPoints": 5,
"courseModuleId": "cmqevazrw05p34pi9wv9w3mks",
"status": "ACTIVE",
"timePlanId": "cmqevazr905p14pi9st41ex1w",
"isDefault": true,
"earlyAssessmentEnabled": false,
"isCurrentlyElectable": true,
"capacity": null,
"color": null,
"courseChatFileAttachmentsDefault": true,
"courseChatReadOnlyDefault": false,
"courseFeatureDefaults": null,
"moduleName": null,
"attemptRules": null
},
"firstVersion": {
"id": "cmqevazu005pb4pi9zp2zthd1",
"version": "2.0.0",
"name": "Business Administration Basics",
"description": "",
"icon": null,
"iconType": "emoji",
"banner": null,
"createdAt": "2026-06-15T07:04:18.408Z",
"updatedAt": "2026-06-15T07:04:18.408Z",
"requiredAttendancePercentage": 80,
"ectsPoints": 5,
"courseModuleId": "cmqevazrw05p34pi9wv9w3mks",
"status": "ACTIVE",
"timePlanId": "cmqevazr905p14pi9st41ex1w",
"isDefault": true,
"earlyAssessmentEnabled": false,
"isCurrentlyElectable": true,
"capacity": null,
"color": null,
"courseChatFileAttachmentsDefault": true,
"courseChatReadOnlyDefault": false,
"courseFeatureDefaults": null,
"moduleName": null,
"attemptRules": null
},
"courses": 0
},
"meta": {
"requestId": "req_1234567890_abc",
"timestamp": "2026-06-02T07:00:00.000Z",
"version": "v4"
}
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}