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 |
JSON Schema
{
"$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"]
}
}
}
}
}
}
}