ScormCourse

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

ScormCourse

FieldTypeRequiredDescription
idstring (uuid)yes—
organization_idstring (uuid)yes—
owner_department_idstring (uuid) | nullyes

Owning department within the organization; null = owned by the organization directly. Scopes which scorm:read/scorm:write grants cover the course, and narrows who may take it: an organization-owned course is open to every member, a department-owned one only to the owning department's role holders.

namestringyes—
descriptionstring | nullyes—
audiencestringyes

Whom the course is for. trainees: everyone its ownership admits — every member for an organization-owned course, the owning department's role holders for a department-owned one — trainers included. trainers: only holders of scorm:read over the course's owner, for modules that teach how to run the training rather than the training itself; the course is absent from everyone else's list and launches.

one of "trainees" | "trainers"

subjectsarray of ScormCourseSubjectyes

The subject matters every completion record is filed under, alphabetically; empty for an untagged course.

scorm_versionstringyes

SCORM revision detected from the package's imsmanifest.xml.

one of "scorm-1.2" | "scorm-2004" | "unknown"

launch_pathstringyes

Zip-entry path (optionally with a query string) of the launch resource.

mastery_scorenumber | nullyes

SCORM 1.2 adlcp:masteryscore (0-100) from the manifest, if declared.

package_file_namestringyes—
package_size_bytesintegeryes—
package_replaced_atstring (date-time) | nullyes

When the package was last replaced in place through PUT /scorm-courses/{course_id}/package; null while the original upload is served.

current_package_versionintegeryes

The package version the course serves to fresh attempts: 1 for the registered upload, one more per replacement. The package fields above describe it; GET /scorm-courses/{course_id}/package-versions lists every version.

recertification_required_atstring (date-time) | nullyes

When recertification was last required by a package replacement, for display; null when every completion on record still counts.

recertification_required_from_versioninteger | nullyes

Completions count from this package version on: a completion of an attempt on an earlier version no longer satisfies scorm_course_complete rules, so certified learners must complete the course again. Null when every version counts.

created_bystring | nullyes—
created_atstring (date-time)yes—
archived_atstring (date-time) | nullyes

An archived course is hidden from learners and takes no new attempts.

jsonExample
{
  "id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "organization_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "owner_department_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "name": "string",
  "description": "string",
  "audience": "trainees",
  "subjects": [
    {
      "id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
      "slug": "string",
      "name": "string"
    }
  ],
  "scorm_version": "scorm-1.2",
  "launch_path": "string",
  "mastery_score": 0,
  "package_file_name": "string",
  "package_size_bytes": 0,
  "package_replaced_at": "2026-01-01T00:00:00.000Z",
  "current_package_version": 0,
  "recertification_required_at": "2026-01-01T00:00:00.000Z",
  "recertification_required_from_version": 0,
  "created_by": "string",
  "created_at": "2026-01-01T00:00:00.000Z",
  "archived_at": "2026-01-01T00:00:00.000Z"
}