Adobe Captivate Learning Objects API

Manage learning objects including courses, learning programs, certifications, and job aids

OpenAPI Specification

adobe-captivate-learning-objects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Adobe Captivate Prime API (Learning Manager) Account Learning Objects API
  description: The Adobe Learning Manager (formerly Captivate Prime) API v2 provides programmatic access to the Learning Management System for managing learning objects, courses, users, enrollments, certifications, skills, badges, gamification, catalogs, and user groups. The API follows the JSON:API specification and uses OAuth 2.0 for authentication. It enables integration with third-party systems for automating learner management, content delivery, and reporting.
  version: '2'
  contact:
    name: Adobe Learning Manager Support
    url: https://helpx.adobe.com/learning-manager/kb/helpdesk.html
  termsOfService: https://www.adobe.com/legal/terms.html
  license:
    name: Adobe Terms of Use
    url: https://www.adobe.com/legal/terms.html
servers:
- url: https://learningmanager.adobe.com/primeapi/v2
  description: Adobe Learning Manager Production API
security:
- oauth2: []
tags:
- name: Learning Objects
  description: Manage learning objects including courses, learning programs, certifications, and job aids
paths:
  /learningObjects:
    get:
      operationId: getLearningObjects
      summary: Adobe Captivate List Learning Objects
      description: Retrieves a paginated list of learning objects available to the authenticated user. Learning objects include courses, learning programs, certifications, and job aids. Supports filtering by type, catalog, skill, tag, and status.
      tags:
      - Learning Objects
      parameters:
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/sort'
      - name: filter.loTypes
        in: query
        description: Comma-separated list of learning object types to filter by
        schema:
          type: string
          enum:
          - course
          - learningProgram
          - certification
          - jobAid
      - name: filter.catalogIds
        in: query
        description: Comma-separated list of catalog IDs to filter by
        schema:
          type: string
      - name: filter.skillName
        in: query
        description: Filter by skill name
        schema:
          type: string
      - name: filter.tagName
        in: query
        description: Filter by tag name
        schema:
          type: string
      - name: filter.loState
        in: query
        description: Filter by learning object state
        schema:
          type: string
          enum:
          - Active
          - Retired
      - name: include
        in: query
        description: 'Comma-separated list of related resources to include. Valid values: instances, enrollment, skills, subLOs, prerequisiteLOs, supplementaryResources, authors, catalogLabels'
        schema:
          type: string
      responses:
        '200':
          description: List of learning objects
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/LearningObjectListResponse'
              examples:
                getLearningObjects200Example:
                  summary: Default getLearningObjects 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - example
                    links:
                      self: https://example.com/path/abc123
                      next: https://example.com/path/abc123
                      prev: https://example.com/path/abc123
                    included:
                    - {}
        '400':
          description: Invalid filter parameters
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getLearningObjects400Example:
                  summary: Default getLearningObjects 400 response
                  x-microcks-default: true
                  value:
                    source:
                      info: example
                    status: active
                    title: example
                    detail: example
                    code: example
        '401':
          description: Unauthorized - missing or invalid access token
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getLearningObjects401Example:
                  summary: Default getLearningObjects 401 response
                  x-microcks-default: true
                  value:
                    source:
                      info: example
                    status: active
                    title: example
                    detail: example
                    code: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /learningObjects/{learningObjectId}:
    get:
      operationId: getLearningObject
      summary: Adobe Captivate Get a Learning Object
      description: Retrieves a single learning object by its ID, including its metadata, instances, and relationships. The response follows JSON:API format with optional included resources.
      tags:
      - Learning Objects
      parameters:
      - $ref: '#/components/parameters/learningObjectId'
      - name: include
        in: query
        description: Comma-separated list of related resources to include in the response
        schema:
          type: string
      responses:
        '200':
          description: Learning object details
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/LearningObjectResponse'
              examples:
                getLearningObject200Example:
                  summary: Default getLearningObject 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: abc123
                      type: standard
                      attributes:
                        authorNames:
                        - {}
                        dateCreated: '2025-03-15T14:30:00Z'
                        datePublished: '2025-03-15T14:30:00Z'
                        dateUpdated: '2025-03-15T14:30:00Z'
                        duration: 1
                      relationships:
                        instances: example
                        skills: example
                        prerequisiteLOs: example
                        subLOs: example
                        authors: example
                    included:
                    - {}
        '404':
          description: Learning object not found
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getLearningObject404Example:
                  summary: Default getLearningObject 404 response
                  x-microcks-default: true
                  value:
                    source:
                      info: example
                    status: active
                    title: example
                    detail: example
                    code: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /learningObjects/{learningObjectId}/instances:
    get:
      operationId: getLearningObjectInstances
      summary: Adobe Captivate List Instances of a Learning Object
      description: Retrieves all instances associated with a learning object. Each instance represents a specific offering of the course with its own enrollment deadline, completion deadline, and seat limit.
      tags:
      - Learning Objects
      parameters:
      - $ref: '#/components/parameters/learningObjectId'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/pageLimit'
      responses:
        '200':
          description: List of learning object instances
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/LearningObjectInstanceListResponse'
              examples:
                getLearningObjectInstances200Example:
                  summary: Default getLearningObjectInstances 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - example
                    links:
                      self: https://example.com/path/abc123
                      next: https://example.com/path/abc123
                      prev: https://example.com/path/abc123
        '404':
          description: Learning object not found
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getLearningObjectInstances404Example:
                  summary: Default getLearningObjectInstances 404 response
                  x-microcks-default: true
                  value:
                    source:
                      info: example
                    status: active
                    title: example
                    detail: example
                    code: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /search:
    get:
      operationId: searchLearningObjects
      summary: Adobe Captivate Search Learning Objects
      description: Performs a text-based search across learning objects. Returns matching courses, learning programs, certifications, and job aids based on the search query. Supports pagination and filtering by learning object type and catalog.
      tags:
      - Learning Objects
      parameters:
      - name: query
        in: query
        required: true
        description: The search query string
        schema:
          type: string
      - name: filter.loTypes
        in: query
        description: Comma-separated list of learning object types to search
        schema:
          type: string
      - name: filter.catalogIds
        in: query
        description: Comma-separated list of catalog IDs to search within
        schema:
          type: string
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/pageLimit'
      responses:
        '200':
          description: Search results
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/LearningObjectListResponse'
              examples:
                searchLearningObjects200Example:
                  summary: Default searchLearningObjects 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - example
                    links:
                      self: https://example.com/path/abc123
                      next: https://example.com/path/abc123
                      prev: https://example.com/path/abc123
                    included:
                    - {}
        '400':
          description: Missing or invalid query parameter
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                searchLearningObjects400Example:
                  summary: Default searchLearningObjects 400 response
                  x-microcks-default: true
                  value:
                    source:
                      info: example
                    status: active
                    title: example
                    detail: example
                    code: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    LearningObjectListResponse:
      type: object
      description: Paginated list of learning objects
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/LearningObject'
        links:
          $ref: '#/components/schemas/PaginationLinks'
        included:
          type: array
          description: Related resources included via the include parameter
          items:
            type: object
    LocalizedMetadata:
      type: object
      description: Metadata for a learning object in a specific locale
      properties:
        description:
          type: string
          description: Description in the specified locale
        locale:
          type: string
          description: The locale code (e.g. en-US, fr-FR)
        name:
          type: string
          description: Name in the specified locale
        overview:
          type: string
          description: Overview or summary text
        richTextOverview:
          type: string
          description: Rich text (HTML) overview content
    Relationship:
      type: object
      description: A JSON:API relationship object
      properties:
        data:
          oneOf:
          - $ref: '#/components/schemas/ResourceIdentifier'
          - type: array
            items:
              $ref: '#/components/schemas/ResourceIdentifier'
        links:
          type: object
          properties:
            related:
              type: string
              format: uri
              description: URL to fetch the related resource
    ErrorResponse:
      type: object
      description: Error response following JSON:API error format
      properties:
        source:
          type: object
          properties:
            info:
              type: string
              description: URL to the API documentation
        status:
          type: string
          description: HTTP status code
        title:
          type: string
          description: Short error title
        detail:
          type: string
          description: Human-readable error description
        code:
          type: string
          description: Machine-readable error code
    LearningObjectResponse:
      type: object
      description: Single learning object response
      properties:
        data:
          $ref: '#/components/schemas/LearningObject'
        included:
          type: array
          items:
            type: object
    ResourceIdentifier:
      type: object
      description: JSON:API resource identifier
      required:
      - id
      - type
      properties:
        id:
          type: string
          description: Resource identifier
        type:
          type: string
          description: Resource type name
    LearningObjectInstanceListResponse:
      type: object
      description: Paginated list of learning object instances
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/LearningObjectInstance'
        links:
          $ref: '#/components/schemas/PaginationLinks'
    LearningObject:
      type: object
      description: A learning object representing a course, learning program, certification, or job aid in the Learning Manager system
      properties:
        id:
          type: string
          description: Unique identifier for the learning object
        type:
          type: string
          description: JSON:API resource type
          const: learningObject
        attributes:
          type: object
          properties:
            authorNames:
              type: array
              description: Names of the content authors
              items:
                type: string
            dateCreated:
              type: string
              format: date-time
              description: Timestamp when the learning object was created
            datePublished:
              type: string
              format: date-time
              description: Timestamp when the learning object was published
            dateUpdated:
              type: string
              format: date-time
              description: Timestamp of the last update
            duration:
              type: integer
              description: Estimated duration to complete in seconds
            effectiveModifiedDate:
              type: string
              format: date-time
              description: Effective modification date
            enrollmentType:
              type: string
              description: How users can enroll in this learning object
              enum:
              - Self Enrolled
              - Manager Nominated
              - Admin Enrolled
            imageUrl:
              type: string
              format: uri
              description: URL of the learning object thumbnail image
            loFormat:
              type: string
              description: Content delivery format
              enum:
              - Self Paced
              - Blended
              - Classroom
              - Virtual Classroom
              - Activity
            loType:
              type: string
              description: Type of learning object
              enum:
              - course
              - learningProgram
              - certification
              - jobAid
            localizedMetadata:
              type: array
              description: Metadata in different locales
              items:
                $ref: '#/components/schemas/LocalizedMetadata'
            state:
              type: string
              description: Current state of the learning object
              enum:
              - Active
              - Retired
              - Published
              - Draft
            tags:
              type: array
              description: Tags associated with the learning object
              items:
                type: string
            unenrollmentAllowed:
              type: boolean
              description: Whether learners can self-unenroll
        relationships:
          type: object
          properties:
            instances:
              $ref: '#/components/schemas/Relationship'
            skills:
              $ref: '#/components/schemas/Relationship'
            prerequisiteLOs:
              $ref: '#/components/schemas/Relationship'
            subLOs:
              $ref: '#/components/schemas/Relationship'
            authors:
              $ref: '#/components/schemas/Relationship'
            catalog:
              $ref: '#/components/schemas/Relationship'
    PaginationLinks:
      type: object
      description: Pagination links following JSON:API conventions
      properties:
        self:
          type: string
          format: uri
          description: URL for the current page
        next:
          type: string
          format: uri
          description: URL for the next page
        prev:
          type: string
          format: uri
          description: URL for the previous page
    LearningObjectInstance:
      type: object
      description: An instance of a learning object representing a specific offering with its own timeline and enrollment settings
      properties:
        id:
          type: string
          description: Unique identifier for the instance
        type:
          type: string
          const: learningObjectInstance
        attributes:
          type: object
          properties:
            completionDeadline:
              type: string
              format: date-time
              description: Deadline by which the learner must complete the course
            enrollmentDeadline:
              type: string
              format: date-time
              description: Deadline for enrolling in this instance
            isDefault:
              type: boolean
              description: Whether this is the default instance
            seatLimit:
              type: integer
              description: Maximum number of learners who can enroll
            state:
              type: string
              description: Current state of the instance
              enum:
              - Active
              - Retired
  parameters:
    learningObjectId:
      name: learningObjectId
      in: path
      required: true
      description: 'The unique identifier of the learning object (format: course:XXXXXX, learningProgram:XXXXXX, certification:XXXXXX, or jobAid:XXXXXX)'
      schema:
        type: string
    sort:
      name: sort
      in: query
      description: 'Sort field and direction. Prefix with - for descending order. Example: -dateCreated, name, -dateUpdated'
      schema:
        type: string
    pageLimit:
      name: page[limit]
      in: query
      description: Maximum number of records to return per page (max 10)
      schema:
        type: integer
        default: 10
        maximum: 10
    pageOffset:
      name: page[offset]
      in: query
      description: The offset for pagination (number of records to skip)
      schema:
        type: integer
        default: 0
        minimum: 0
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication via Adobe IMS. Supports authorization code flow for user-context access and client credentials flow for application-level access.
      flows:
        authorizationCode:
          authorizationUrl: https://learningmanager.adobe.com/oauth/o/authorize
          tokenUrl: https://learningmanager.adobe.com/oauth/token
          refreshUrl: https://learningmanager.adobe.com/oauth/token/refresh
          scopes:
            learner:read: Read access to learner data
            learner:write: Write access to learner data
            admin:read: Read access to admin data
            admin:write: Write access to admin data
        clientCredentials:
          tokenUrl: https://learningmanager.adobe.com/oauth/token
          scopes:
            learner:read: Read access to learner data
            admin:read: Read access to admin data
            admin:write: Write access to admin data
externalDocs:
  description: Adobe Learning Manager API v2 Documentation
  url: https://captivateprime.adobe.com/docs/primeapi/v2/