CreateLearningRecordRequest

A request or response body; the type column links to the schemas it refers to.

CreateLearningRecordRequest

FieldTypeRequiredDescription
owner_organization_idstring (uuid)yes

Organization the record belongs to. Always required.

owner_department_idstring (uuid)no

Omit for a record owned by the organization directly.

learner_user_idstring (uuid)no

`users.id` of the learner. Omit to record about yourself — the snapshots below then default to your own profile.

learner_display_namestringno

1–300 characters

learner_emailstringno

1–300 characters

titlestringyes

1–300 characters

descriptionstringno

at most 5000 characters

statusstringno

Callers without records:write over the owner may only create pending records about themselves. rejected cannot be set directly — it is entered through the reject endpoint.

one of "pending" | "in_progress" | "completed" | "expired" | "revoked" · defaults to "completed"

completed_atstring (date-time) | nullno

When the training or assessment happened. Required on a pending submission about yourself: a recertification window counts only records completed after the current award, so an undated one could never count.

expires_atstring (date-time) | nullno

Must be after completed_at when both are set.

external_idstringno

Importer-assigned id; unique per owning organization, so re-runs are idempotent.

1–300 characters

subject_matter_idsarray of string (uuid)no

Subjects to file the record under; must belong to the same organization.

at most 100 items · defaults to []

hidden_from_learnerbooleanno

Hide the record from the learner it is about: they can then read it only through records:read over the owner. Needs records:write over the owner — a self-service submission cannot be hidden — and a status other than pending or rejected.

defaults to false

jsonExample
{
  "owner_organization_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "owner_department_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "learner_user_id": "8f14e45f-ceea-467f-a10e-cbb9f6bcaf0f",
  "learner_display_name": "string",
  "learner_email": "string",
  "title": "Forklift operator certification",
  "description": "string",
  "status": "completed",
  "completed_at": "2026-01-01T00:00:00.000Z",
  "expires_at": "2026-01-01T00:00:00.000Z",
  "external_id": "string",
  "subject_matter_ids": [],
  "hidden_from_learner": false
}