Get a curricula version
Returns a curricula version with all related data: study terms (including organization-term mappings), pathways, module clusters, and module items with planning units. Use this when you need the full curriculum structure for a cohort or program. Scoped to your integration’s institution via Basic Auth credentials.
/curricula/{id}/versions/{versionId}AuthorizationBasic auth · headerrequiredBasic Auth with clientId as username and clientSecret as password
idstringrequiredversionIdstringrequiredVersion detail
dataCurriculaVersionDetailrequiredFully expanded curricula version: terms, pathways, module clusters, module items, and parent curricula metadata.
Show propertiesHide properties
idstringrequiredversionstringrequirednamestringrequiredcreatedAtstring<date-time>requiredupdatedAtstring<date-time>requiredcurriculaIdstringrequiredelectionEndWeeksinteger | nullrequiredelectionModestring | nullrequiredELECT_WHENEVERELECT_BEFORE_TERMELECT_AFTER_TERMelectionStartWeeksinteger | nullrequiredisCohortVersionbooleanrequiredsourceCohortIdstring | nullrequiredsourceCohortobject | nullrequiredShow propertiesHide properties
idstringnamestringcurriculaVersionTermsCurriculaVersionTermInDetail[]requiredShow propertiesHide properties
CurriculaVersionTermInDetailidstringrequiredpositionintegerrequirednamestringrequiredcurriculaVersionIdstringrequiredcohortCurriculaVersionTermCohortCurriculaVersionTermInDetail[]requiredShow propertiesHide properties
CohortCurriculaVersionTermInDetailidstringrequiredcurriculaVersionTermIdstringrequiredorganizationTermIdstringrequiredcohortIdstringrequiredinstitutionIdstringrequiredcohortobjectrequiredShow propertiesHide properties
idstringrequirednamestringrequiredorganizationTermOrganizationTermrequiredAcademic term (semester) with optional module election and reassessment registration windows.
Show propertiesHide properties
idstringrequirednamestringrequiredtermEndstring<date-time>requiredEnd of the academic term.
institutionIdstringrequiredtermStartstring<date-time>requiredStart of the academic term.
codestring | nullelectionEndstring<date-time> | nullDeadline for module elections for this term.
electionStartstring<date-time> | nullWhen students may begin electing modules for this term.
reassessmentRegistrationEndstring<date-time> | nullWhen reassessment registration closes.
reassessmentRegistrationStartstring<date-time> | nullWhen reassessment registration opens.
curriculaVersionTermCurriculaVersionTermrequiredShow propertiesHide properties
idstringrequiredpositionintegerrequirednamestringrequiredcurriculaVersionIdstringrequiredcohortStudyTimelineStatusobject | nullcurriculaVersionPathwaysCurriculaVersionPathway[]requiredShow propertiesHide properties
CurriculaVersionPathwayidstringrequiredpositionintegerrequirednamestringrequiredtypestringrequiredFIXED = mandatory pathway; SELECTABLE_FOCUS = student chooses one focus.
FIXEDSELECTABLE_FOCUScurriculaVersionIdstringrequireddescriptionstring | nullcurriculaVersionModuleClusterobject[]requiredElective module clusters in this version.
isDefaultbooleanrequiredcurriculaobjectrequiredParent curriculum summary (institutionId omitted on GET /versions/{versionId}).
Show propertiesHide properties
idstringrequirednamestringrequiredisCohortSpecificbooleanrequiredcurriculaVersionItemsCurriculaVersionItemDetail[]requiredModule items with planning units.
Show propertiesHide properties
CurriculaVersionItemDetailidstringrequiredcurriculaVersionIdstringrequiredcourseModuleIdstringrequiredcourseModuleVersionIdstring | nullcurriculaVersionTermIdstring | nullcurriculaVersionModuleClusterIdstring | nullcurriculaVersionPathwayIdstring | nullparentIdstring | nullupdatedAtstring<date-time>requiredisCoreModulebooleanrequiredcourseModuleobject | nullwith nested courseModuleTags.
Show propertiesHide properties
idstringnamestringinstitutionIdstringcodestring | nullisArchivedboolean | nullnameTranslationsobject | nullcourseModuleTagsModuleTag[]Show propertiesHide properties
ModuleTagidstringrequiredcourseModuleIdstringrequiredtagIdstringrequiredtagobjectrequiredShow propertiesHide properties
idstringrequirednamestringrequiredinstitutionIdstringrequiredcolorstring | nulliconstring | nullcurriculaVersionTermCurriculaVersionTermInDetail | nullShow propertiesHide properties
idstringrequiredpositionintegerrequirednamestringrequiredcurriculaVersionIdstringrequiredcohortCurriculaVersionTermCohortCurriculaVersionTermInDetail[]requirednullcurriculaVersionPathwayCurriculaVersionPathway | nullShow propertiesHide properties
idstringrequiredpositionintegerrequirednamestringrequiredtypestringrequiredFIXED = mandatory pathway; SELECTABLE_FOCUS = student chooses one focus.
FIXEDSELECTABLE_FOCUScurriculaVersionIdstringrequireddescriptionstring | nullnullcurriculaVersionModuleClusterobject | nullmoduleGroupIdstring | nullrequiredmoduleGroupobject | nullrequiredShow propertiesHide properties
idstringnamestringcodestring | nullcolorstring | nullcourseModuleVersionCurriculaVersionItemModuleVersion | nullShow propertiesHide properties
examinationRequirementsobject[]requiredcourseModuleIdstringrequiredidstringrequiredparentConnectionsobject[]requiredNested childModuleVersion is the full
childConnectionsobject[]requiredNested parentModuleVersion may include the parent module.
namestringrequiredmoduleNamestring | nullversionstringrequiredectsPointsnumberrequiredECTS credit points. Halves only (0, 0.5, 1, 1.5, …). Breaking change: previously integer-only.
unitAmountnumberrequiredTotal scheduled units from time plan items that require appointments.
unitNamestringrequiredLesson unit name (from the version time plan or institution default).
unitMinuteEquivalentnumberrequiredLesson unit length in minutes (from the version time plan or institution default).
nullmetaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredv4watermarkstring<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.
Unauthorized
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringexistingUserIdstringPresent on 409 email or membership-code conflicts. The user id that already holds the email or code.
activeSessionobjectPresent on time-tracking start 409 when a session is already running. Stop this session, then retry start.
Show propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredconflictingLogobjectPresent 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 propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredendTimestring<date-time> | nullrequiredNot Found
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringexistingUserIdstringPresent on 409 email or membership-code conflicts. The user id that already holds the email or code.
activeSessionobjectPresent on time-tracking start 409 when a session is already running. Stop this session, then retry start.
Show propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredconflictingLogobjectPresent 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 propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredendTimestring<date-time> | nullrequiredUnprocessable Entity — validation or business rule error
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringexistingUserIdstringPresent on 409 email or membership-code conflicts. The user id that already holds the email or code.
activeSessionobjectPresent on time-tracking start 409 when a session is already running. Stop this session, then retry start.
Show propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredconflictingLogobjectPresent 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 propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredendTimestring<date-time> | nullrequiredToo Many Requests — 1000 requests per minute per institution. Includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (ISO-8601), and Retry-After (seconds).
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringexistingUserIdstringPresent on 409 email or membership-code conflicts. The user id that already holds the email or code.
activeSessionobjectPresent on time-tracking start 409 when a session is already running. Stop this session, then retry start.
Show propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredconflictingLogobjectPresent 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 propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredendTimestring<date-time> | nullrequiredInternal Server Error
typestringrequirederrorcodestringrequiredbad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedidempotency_key_in_progressservice_unavailableretryablerate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
objectfieldstringmessagestringexistingUserIdstringPresent on 409 email or membership-code conflicts. The user id that already holds the email or code.
activeSessionobjectPresent on time-tracking start 409 when a session is already running. Stop this session, then retry start.
Show propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredconflictingLogobjectPresent 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 propertiesHide properties
idstringrequiredstartTimestring<date-time>requiredendTimestring<date-time> | nullrequired