Create a module version
Creates a new version for an existing module. Pass versionName in the body (e.g. 1.0, 2.0). The default course title is copied from the parent module; optionally pass moduleDisplayName to override how the module is displayed for this version. Returns summary fields — use GET /modules/{id}/versions/{versionId} for full detail. Scoped to your integration’s institution via Basic Auth credentials.
/modules/{id}/versionsAuthorizationBasic auth · headerrequiredBasic Auth with clientId as username and clientSecret as password
idstringrequiredIdempotency-Keystringrequiredapplication/jsonversionNamestringrequiredVersion label displayed in the UI (e.g. 1.0, 2.0). Stored in CourseModuleVersion.version.
descriptionstringOptional version description.
moduleDisplayNamestringOptional per-version module display name override (CourseModuleVersion.moduleName). When omitted, the parent module name is used.
Version created
dataModuleVersionrequiredModule 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>requiredrequiredAttendancePercentageintegerrequiredectsPointsintegerrequiredcourseModuleIdstringrequiredstatusstringrequiredDRAFTACTIVEARCHIVEDtimePlanIdstring | nullrequiredisDefaultbooleanrequiredearlyAssessmentEnabledbooleanrequiredisCurrentlyElectablebooleanrequiredcapacityinteger | nullrequiredcolorinteger | nullrequiredcourseChatFileAttachmentsDefaultbooleanrequiredcourseChatReadOnlyDefaultbooleanrequiredcourseFeatureDefaultsobject | nullrequiredmoduleNamestring | nullrequiredattemptRulesobject | nullrequiredmetaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredv4Bad Request
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringUnauthorized
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringNot Found
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringConflict
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringToo Many Requests
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringInternal Server Error
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestring