Skip to content
Docs
English
Esc
↑↓navigate↵open⌘Jpreview

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.

POST/modules/{id}/versions
Authorization
AuthorizationBasic auth · headerrequired

Basic Auth with clientId as username and clientSecret as password

Path parameters
idstringrequired
Header parameters
Idempotency-Keystringrequired
Request body
requiredapplication/json
versionNamestringrequired

Version label displayed in the UI (e.g. 1.0, 2.0). Stored in CourseModuleVersion.version.

descriptionstring

Optional version description.

moduleDisplayNamestring

Optional per-version module display name override (CourseModuleVersion.moduleName). When omitted, the parent module name is used.

Responses
201

Version created

dataModuleVersionrequired

Module version summary. List and create endpoints return these fields; GET by ID includes nested relations.

Show properties
idstringrequired
versionstringrequired
namestringrequired
descriptionstring | nullrequired

May be an empty string when not set.

iconstring | nullrequired
iconTypestring | nullrequired
bannerstring | nullrequired
createdAtstring<date-time>required
updatedAtstring<date-time>required
requiredAttendancePercentageintegerrequired
ectsPointsintegerrequired
courseModuleIdstringrequired
statusstringrequired
Allowed:DRAFTACTIVEARCHIVED
timePlanIdstring | nullrequired
isDefaultbooleanrequired
earlyAssessmentEnabledbooleanrequired
isCurrentlyElectablebooleanrequired
capacityinteger | nullrequired
colorinteger | nullrequired
courseChatFileAttachmentsDefaultbooleanrequired
courseChatReadOnlyDefaultbooleanrequired
courseFeatureDefaultsobject | nullrequired
moduleNamestring | nullrequired
attemptRulesobject | nullrequired
metaResponseMetarequired
Show properties
requestIdstringrequired
timestampstring<date-time>required
versionstringrequired
Allowed:v4
400

Bad Request

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

Unauthorized

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

Not Found

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

Conflict

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

Too Many Requests

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

Internal Server Error

typestringrequired
Allowed:error
codestringrequired
Allowed:bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_error
titlestringrequired
statusintegerrequired
detailstringrequired
instancestring
errorsobject[]
Show properties
Array of object
fieldstring
messagestring
Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X POST 'https://fuxam.app/api/v4/modules/string/versions' \
  -H 'Authorization: Basic YOUR_CREDENTIALS' \
  -H 'Idempotency-Key: string' \
  -H 'Content-Type: application/json' \
  -d '{
  "versionName": "2.0"
}'
Response
{
  "data": {
    "id": "cmqevazu005pb4pi9zp2zthd1",
    "version": "2.0",
    "name": "Economics",
    "description": null,
    "icon": null,
    "iconType": "emoji",
    "banner": null,
    "createdAt": "2026-06-15T07:04:18.408Z",
    "updatedAt": "2026-06-15T07:04:18.408Z",
    "requiredAttendancePercentage": 0,
    "ectsPoints": 0,
    "courseModuleId": "cmqevazrw05p34pi9wv9w3mks",
    "status": "DRAFT",
    "timePlanId": null,
    "isDefault": false,
    "earlyAssessmentEnabled": false,
    "isCurrentlyElectable": true,
    "capacity": null,
    "color": null,
    "courseChatFileAttachmentsDefault": true,
    "courseChatReadOnlyDefault": false,
    "courseFeatureDefaults": null,
    "moduleName": null,
    "attemptRules": null
  },
  "meta": {
    "requestId": "req_abc123",
    "timestamp": "2026-06-26T00:00:00.000Z",
    "version": "v4"
  }
}