Adobe Captivate · Schema

Adobe Learning Manager Learning Object

Schema for a learning object in Adobe Learning Manager (formerly Captivate Prime). Learning objects include courses, learning programs, certifications, and job aids. The API follows JSON:API conventions, with resources represented by type, id, attributes, and relationships.

AuthoringEducationeLearningLMSSCORMTrainingxAPI

Properties

Name Type Description
data object
included array Related resources included via the include query parameter, such as instances, skills, and authors
View JSON Schema on GitHub

JSON Schema

adobe-captivate-learning-object-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://learningmanager.adobe.com/schemas/learning-object.json",
  "title": "Adobe Learning Manager Learning Object",
  "description": "Schema for a learning object in Adobe Learning Manager (formerly Captivate Prime). Learning objects include courses, learning programs, certifications, and job aids. The API follows JSON:API conventions, with resources represented by type, id, attributes, and relationships.",
  "type": "object",
  "required": ["data"],
  "properties": {
    "data": {
      "$ref": "#/$defs/LearningObjectResource"
    },
    "included": {
      "type": "array",
      "description": "Related resources included via the include query parameter, such as instances, skills, and authors",
      "items": {
        "type": "object",
        "required": ["id", "type"],
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "attributes": {
            "type": "object"
          },
          "relationships": {
            "type": "object"
          }
        }
      }
    }
  },
  "$defs": {
    "LearningObjectResource": {
      "type": "object",
      "description": "A JSON:API resource representing a learning object",
      "required": ["id", "type"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the learning object, prefixed by type (e.g. course:12345, learningProgram:67890)",
          "pattern": "^(course|learningProgram|certification|jobAid):[0-9]+$"
        },
        "type": {
          "type": "string",
          "description": "JSON:API resource type",
          "const": "learningObject"
        },
        "attributes": {
          "$ref": "#/$defs/LearningObjectAttributes"
        },
        "relationships": {
          "$ref": "#/$defs/LearningObjectRelationships"
        }
      }
    },
    "LearningObjectAttributes": {
      "type": "object",
      "description": "Attributes of a learning object resource",
      "properties": {
        "authorNames": {
          "type": "array",
          "description": "Display names of the content authors",
          "items": {
            "type": "string"
          }
        },
        "dateCreated": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp when the learning object was created"
        },
        "datePublished": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp when the learning object was published"
        },
        "dateUpdated": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp of the most recent update"
        },
        "duration": {
          "type": "integer",
          "description": "Estimated duration to complete in seconds",
          "minimum": 0
        },
        "effectiveModifiedDate": {
          "type": "string",
          "format": "date-time",
          "description": "The effective modification date used for sorting and filtering"
        },
        "enrollmentType": {
          "type": "string",
          "description": "How learners can enroll in this learning object",
          "enum": ["Self Enrolled", "Manager Nominated", "Admin Enrolled"]
        },
        "externalRegistration": {
          "type": "boolean",
          "description": "Whether external registration is enabled"
        },
        "hasOptionalLoResources": {
          "type": "boolean",
          "description": "Whether the learning object has optional resources"
        },
        "imageUrl": {
          "type": "string",
          "format": "uri",
          "description": "URL of the learning object thumbnail image"
        },
        "isExternal": {
          "type": "boolean",
          "description": "Whether this is an external learning object"
        },
        "isSubLoOrderEnforced": {
          "type": "boolean",
          "description": "Whether the order of sub-learning-objects is enforced"
        },
        "loFormat": {
          "type": "string",
          "description": "Content delivery format of the learning object",
          "enum": ["Self Paced", "Blended", "Classroom", "Virtual Classroom", "Activity"]
        },
        "loType": {
          "type": "string",
          "description": "The type of learning object",
          "enum": ["course", "learningProgram", "certification", "jobAid"]
        },
        "localizedMetadata": {
          "type": "array",
          "description": "Name, description, and overview in different locales",
          "items": {
            "$ref": "#/$defs/LocalizedMetadata"
          },
          "minItems": 1
        },
        "moduleResetEnabled": {
          "type": "boolean",
          "description": "Whether module reset is enabled for retry attempts"
        },
        "prerequisiteConstraints": {
          "type": "string",
          "description": "Constraint rules for prerequisite learning objects"
        },
        "rating": {
          "type": "object",
          "description": "Average rating and rating count",
          "properties": {
            "averageRating": {
              "type": "number",
              "description": "Average learner rating (0-5)",
              "minimum": 0,
              "maximum": 5
            },
            "ratingsCount": {
              "type": "integer",
              "description": "Number of ratings submitted",
              "minimum": 0
            }
          }
        },
        "state": {
          "type": "string",
          "description": "Current state of the learning object",
          "enum": ["Active", "Retired", "Published", "Draft"]
        },
        "tags": {
          "type": "array",
          "description": "Tags for categorization and search",
          "items": {
            "type": "string"
          }
        },
        "unenrollmentAllowed": {
          "type": "boolean",
          "description": "Whether learners can self-unenroll from this learning object"
        }
      }
    },
    "LocalizedMetadata": {
      "type": "object",
      "description": "Localized name, description, and overview for a learning object",
      "required": ["locale", "name"],
      "properties": {
        "description": {
          "type": "string",
          "description": "Detailed description in the specified locale"
        },
        "locale": {
          "type": "string",
          "description": "BCP 47 locale code (e.g. en-US, fr-FR, de-DE)",
          "pattern": "^[a-z]{2}(-[A-Z]{2})?$"
        },
        "name": {
          "type": "string",
          "description": "Display name in the specified locale",
          "minLength": 1,
          "maxLength": 255
        },
        "overview": {
          "type": "string",
          "description": "Plain text overview or summary"
        },
        "richTextOverview": {
          "type": "string",
          "description": "Rich text (HTML) overview content"
        }
      }
    },
    "LearningObjectRelationships": {
      "type": "object",
      "description": "Relationships of a learning object to other resources",
      "properties": {
        "instances": {
          "$ref": "#/$defs/Relationship",
          "description": "Instances (offerings) of this learning object"
        },
        "skills": {
          "$ref": "#/$defs/Relationship",
          "description": "Skills associated with this learning object"
        },
        "prerequisiteLOs": {
          "$ref": "#/$defs/Relationship",
          "description": "Prerequisite learning objects that must be completed first"
        },
        "subLOs": {
          "$ref": "#/$defs/Relationship",
          "description": "Sub-learning-objects (for learning programs)"
        },
        "supplementaryResources": {
          "$ref": "#/$defs/Relationship",
          "description": "Additional supplementary resources"
        },
        "authors": {
          "$ref": "#/$defs/Relationship",
          "description": "Authors who created this content"
        },
        "catalog": {
          "$ref": "#/$defs/Relationship",
          "description": "Catalog this learning object belongs to"
        },
        "enrollment": {
          "$ref": "#/$defs/Relationship",
          "description": "Current user's enrollment in this learning object"
        }
      }
    },
    "Relationship": {
      "type": "object",
      "description": "A JSON:API relationship describing links between resources",
      "properties": {
        "data": {
          "oneOf": [
            {
              "$ref": "#/$defs/ResourceIdentifier"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ResourceIdentifier"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "links": {
          "type": "object",
          "properties": {
            "related": {
              "type": "string",
              "format": "uri",
              "description": "URL to fetch the related resource(s)"
            }
          }
        }
      }
    },
    "ResourceIdentifier": {
      "type": "object",
      "description": "JSON:API resource identifier object",
      "required": ["id", "type"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the related resource"
        },
        "type": {
          "type": "string",
          "description": "Type name of the related resource"
        }
      }
    },
    "LearningObjectInstance": {
      "type": "object",
      "description": "An instance of a learning object with specific enrollment and completion settings",
      "required": ["id", "type"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique instance identifier"
        },
        "type": {
          "type": "string",
          "const": "learningObjectInstance"
        },
        "attributes": {
          "type": "object",
          "properties": {
            "completionDeadline": {
              "type": ["string", "null"],
              "format": "date-time",
              "description": "Deadline for learners to complete"
            },
            "enrollmentDeadline": {
              "type": ["string", "null"],
              "format": "date-time",
              "description": "Deadline for enrollment"
            },
            "isDefault": {
              "type": "boolean",
              "description": "Whether this is the default instance"
            },
            "isFlexible": {
              "type": "boolean",
              "description": "Whether this instance has flexible deadlines"
            },
            "localizedMetadata": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/LocalizedMetadata"
              }
            },
            "seatLimit": {
              "type": ["integer", "null"],
              "description": "Maximum enrollment count, null for unlimited",
              "minimum": 0
            },
            "state": {
              "type": "string",
              "description": "Current instance state",
              "enum": ["Active", "Retired"]
            }
          }
        }
      }
    },
    "Enrollment": {
      "type": "object",
      "description": "A learner's enrollment record for a learning object",
      "required": ["id", "type"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique enrollment identifier"
        },
        "type": {
          "type": "string",
          "const": "enrollment"
        },
        "attributes": {
          "type": "object",
          "properties": {
            "completedOn": {
              "type": ["string", "null"],
              "format": "date-time",
              "description": "Completion timestamp"
            },
            "dateEnrolled": {
              "type": "string",
              "format": "date-time",
              "description": "Enrollment timestamp"
            },
            "dateStarted": {
              "type": ["string", "null"],
              "format": "date-time",
              "description": "When the learner first accessed the content"
            },
            "hasPassed": {
              "type": "boolean",
              "description": "Whether the learner passed"
            },
            "progressPercent": {
              "type": "integer",
              "description": "Completion percentage",
              "minimum": 0,
              "maximum": 100
            },
            "score": {
              "type": ["number", "null"],
              "description": "Score achieved"
            },
            "state": {
              "type": "string",
              "description": "Current enrollment state",
              "enum": ["ENROLLED", "STARTED", "COMPLETED", "PENDING_APPROVAL", "REJECTED", "EXPIRED"]
            }
          }
        }
      }
    }
  }
}