Create a curricula version
Creates a new version for an existing curriculum. Pass versionName in the body. Returns the version with nested parent curriculum. Use GET /curricula/{id}/versions/{versionId} for full structure. Scoped to your integration’s institution via Basic Auth credentials.
POST
/curricula/{id}/versionsPath parameters
idstringrequiredHeader parameters
Idempotency-KeystringrequiredRequest body
requiredapplication/jsonversionNamestringrequiredResponses
201Version created
dataCurriculaVersionCreateResultrequiredCurriculum version returned by POST /curricula/{id}/versions, including nested parent curriculum.
Show propertiesHide properties
curriculaobjectrequiredParent curriculum, including any connected study programs.
idstringrequiredversionstringrequirednamestringrequiredcurriculaIdstringrequiredisDefaultbooleanrequiredisCohortVersionbooleanrequiredsourceCohortIdstring | nullelectionModestring | nullWhen students may elect modules. Null when election is not configured.
Allowed:
ELECT_WHENEVERELECT_BEFORE_TERMELECT_AFTER_TERMelectionStartWeeksinteger | nullWeeks before term when election opens.
electionEndWeeksinteger | nullWeeks before term when election closes.
createdAtstring<date-time>requiredupdatedAtstring<date-time>requiredmetaResponseMetarequiredShow 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
objectfieldstringmessagestring404Not Found
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/curricula/string/versions" \
-H "Idempotency-Key: string" \
-H "Content-Type: application/json" \
-d '{
"versionName": "string"
}'const response = await fetch("https://fuxam.app/api/v4/curricula/string/versions", {
method: "POST",
headers: {
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
body: JSON.stringify({
"versionName": "string"
})
});import requests
response = requests.post(
"https://fuxam.app/api/v4/curricula/string/versions",
headers={
"Idempotency-Key": "string",
"Content-Type": "application/json"
},
json={
"versionName": "string"
},
)Response
{
"data": {
"id": "cv_001",
"version": "1.0",
"name": "Default",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-06-01T00:00:00.000Z",
"curriculaId": "cur_001",
"electionEndWeeks": null,
"electionMode": null,
"electionStartWeeks": null,
"isCohortVersion": false,
"sourceCohortId": null,
"isDefault": true,
"curricula": {
"id": "cur_001",
"name": "Bachelor CS 2024",
"institutionId": "inst_123",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-06-01T00:00:00.000Z",
"isCohortSpecific": false,
"isArchived": false,
"code": "CS-2024",
"studyProgramConnectedCurricula": []
}
},
"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"
}
]
}