Docs

Docs

x-cpod-domain: learning

Learning

Cohorts and assessments in the L&D surface.

Try in explorer client.learning

Cohort

A group of learners in a program.

REST path/api/v1/learning/cohorts
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.learning.cohorts.list()

// create:
await client.learning.cohorts.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
group_idstringUnderlying Group with kind=cohort. Format: grp-<uuid>.
program_idstringProgramme catalogue identifier.
namestringHuman-readable cohort name.
start_datedate-timeProgramme start date (ISO 8601).
end_datedate-timeProgramme end date (ISO 8601).
statusstringLifecycle status of the cohort.
session_countnumberTotal number of sessions in the programme.
facilitator_idsjsonUser IDs of facilitators responsible for this cohort.
assigned_assessment_idsjsonAssessment IDs assigned to this cohort. Format: asm-<uuid>.
completion_required_pctnumberMinimum completion percentage required to pass the programme.
current_completion_pctnumberComputed current completion percentage across enrolled learners.
metadatajsonArbitrary key-value metadata for app-specific extensions.
tagsjsonFree-form tags for filtering and categorisation.
versionnumberOptimistic concurrency version counter.

Assessment

A test, quiz, or evaluation artifact.

REST path/api/v1/learning/assessments
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.learning.assessments.list()

// create:
await client.learning.assessments.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
kindstringPolymorphic kind of assessment.
namestringHuman-readable assessment name.
descriptionstringOptional description of the assessment's purpose.
responsible_user_idstringUser ID of the assessor or facilitator responsible for this assessment.
target_cohort_idstringCohort this assessment is assigned to. Used when kind=learning.
target_group_idstringGroup this assessment is scoped to.
target_account_idstringCustomer account this assessment relates to. Used for customer-related kinds.
framework_idsjsonGRC framework IDs. Used when kind=grc_self_assessment or compliance_audit.
control_idsjsonGRC control IDs in scope. Used when kind=grc_self_assessment or compliance_audit.
questionsjsonInline question definitions. Each item has id, text, type, options, weight, required.
question_bank_idstringReference to a shared question bank instead of inline questions.
frequencystringRecurrence frequency for scheduled assessments.
due_datedate-timeDeadline for completing the assessment.
scheduled_start_atdate-timeScheduled start time for the assessment.
statusstringLifecycle status of the assessment.
response_countnumberNumber of responses received.
completion_pctnumberPercentage of expected responses received.
findingsjsonKey findings from the assessment.
recommendationsjsonRecommendations arising from the assessment findings.
assessment_toolsjsonTools used to conduct the assessment (e.g. Nmap, Nessus, leadthe-ai).
output_document_idstringID of the final output report document.
tagsjsonFree-form tags for filtering and categorisation.
versionnumberOptimistic concurrency version counter.