Attach module slot(s) to a curricula version
Creates one or more module slots in a curricula version. Pass moduleIds (resolves each module’s default version) or a single courseModuleVersionId. Optionally assign curriculaVersionTermId, curriculaVersionPathwayId, and parentId (another item in the same version). Returns a single item when one module is attached, or { items, count } when multiple moduleIds are provided. Scoped to your integration’s institution via Basic Auth credentials.
/curricula/{id}/versions/{versionId}/itemsAuthorizationBasic auth · headerrequiredBasic Auth with clientId as username and clientSecret as password
idstringrequiredversionIdstringrequiredIdempotency-Keystringrequiredapplication/jsonmoduleIdsstring[]courseModuleVersionIdstringcurriculaVersionTermIdstringcurriculaVersionPathwayIdstringparentIdstringisCoreModulebooleanisFinalModulebooleanItem(s) created
dataCurriculaVersionItem | objectrequiredShow propertiesHide properties
idstringrequiredcurriculaVersionIdstringrequiredcourseModuleIdstring | nullcourseModuleVersionIdstring | nullcurriculaVersionTermIdstring | nullcurriculaVersionPathwayIdstring | nullparentIdstring | nullisCoreModulebooleanrequiredisFinalModulebooleanrequiredmoduleGroupIdstring | nullupdatedAtstring<date-time> | nullparentItemIdstring | nullchildCountintegerrequiredcourseModuleCurriculaVersionItemCourseModule | nullShow propertiesHide properties
idstringrequirednamestringrequiredcodestring | nullnullcourseModuleVersionCurriculaVersionItemCourseModuleVersion | nullShow propertiesHide properties
idstringrequirednamestringrequiredversionstringrequiredstatusstringrequiredDRAFTACTIVEARCHIVEDnullcurriculaVersionTermCurriculaVersionItemTermRef | nullShow propertiesHide properties
idstringrequirednamestringrequiredpositionintegerrequirednullcurriculaVersionPathwayCurriculaVersionItemPathwayRef | nullShow propertiesHide properties
idstringrequirednamestringrequiredtypestringrequiredFIXEDSELECTABLE_FOCUSnullitemsCurriculaVersionItem[]requiredShow propertiesHide properties
CurriculaVersionItemidstringrequiredcurriculaVersionIdstringrequiredcourseModuleIdstring | nullcourseModuleVersionIdstring | nullcurriculaVersionTermIdstring | nullcurriculaVersionPathwayIdstring | nullparentIdstring | nullisCoreModulebooleanrequiredisFinalModulebooleanrequiredmoduleGroupIdstring | nullupdatedAtstring<date-time> | nullparentItemIdstring | nullchildCountintegerrequiredcourseModuleCurriculaVersionItemCourseModule | nullShow propertiesHide properties
idstringrequirednamestringrequiredcodestring | nullnullcourseModuleVersionCurriculaVersionItemCourseModuleVersion | nullShow propertiesHide properties
idstringrequirednamestringrequiredversionstringrequiredstatusstringrequiredDRAFTACTIVEARCHIVEDnullcurriculaVersionTermCurriculaVersionItemTermRef | nullShow propertiesHide properties
idstringrequirednamestringrequiredpositionintegerrequirednullcurriculaVersionPathwayCurriculaVersionItemPathwayRef | nullShow propertiesHide properties
idstringrequirednamestringrequiredtypestringrequiredFIXEDSELECTABLE_FOCUSnullcountintegerrequiredmetaResponseMetarequiredShow 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.
Bad Request
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> | nullrequiredUnauthorized
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> | nullrequiredConflict — duplicate email or membership code (body includes existingUserId when known), a time-tracking session that is already running (activeSession), a time-tracking interval that overlaps an existing log (conflictingLog), idempotency key reused with a different body (idempotency_key_reused), or concurrent request with the same key still in progress (idempotency_key_in_progress)
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