Adobe Captivate Enrollments API

Manage learner enrollments in courses and learning programs

OpenAPI Specification

adobe-captivate-enrollments-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Adobe Captivate Prime API (Learning Manager) Account Enrollments 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: Enrollments
  description: Manage learner enrollments in courses and learning programs
paths:
  /enrollments:
    get:
      operationId: getEnrollments
      summary: Adobe Captivate List Enrollments
      description: Retrieves a paginated list of enrollments. Can be scoped to the authenticated user or to all users (admin only). Supports filtering by learning object ID, state, and date range.
      tags:
      - Enrollments
      parameters:
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/sort'
      - name: filter.loId
        in: query
        description: Filter by learning object ID
        schema:
          type: string
      - name: filter.loInstanceId
        in: query
        description: Filter by learning object instance ID
        schema:
          type: string
      - name: filter.userId
        in: query
        description: Filter by user ID (admin only)
        schema:
          type: string
      - name: filter.states
        in: query
        description: Comma-separated list of enrollment states to filter by
        schema:
          type: string
      - name: include
        in: query
        description: 'Comma-separated list of related resources to include. Valid values: learningObject, loInstance, loResourceGrades'
        schema:
          type: string
      responses:
        '200':
          description: List of enrollments
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/EnrollmentListResponse'
              examples:
                getEnrollments200Example:
                  summary: Default getEnrollments 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
        '401':
          description: Unauthorized
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getEnrollments401Example:
                  summary: Default getEnrollments 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
    post:
      operationId: createEnrollment
      summary: Adobe Captivate Enroll a User
      description: Enrolls a user in a learning object instance. The request must specify the learning object instance and the user to enroll.
      tags:
      - Enrollments
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/EnrollmentCreateRequest'
            examples:
              createEnrollmentRequestExample:
                summary: Default createEnrollment request
                x-microcks-default: true
                value:
                  data:
                    type: standard
                    attributes:
                      loInstanceId: abc123
                    relationships:
                      loInstance:
                        data: {}
                      learner:
                        data: {}
      responses:
        '201':
          description: Enrollment created
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/EnrollmentResponse'
              examples:
                createEnrollment201Example:
                  summary: Default createEnrollment 201 response
                  x-microcks-default: true
                  value:
                    data:
                      id: abc123
                      type: standard
                      attributes:
                        completedOn: '2025-03-15T14:30:00Z'
                        dateEnrolled: '2025-03-15T14:30:00Z'
                        dateStarted: '2025-03-15T14:30:00Z'
                        hasPassed: true
                        progressPercent: 1
                      relationships:
                        learner: example
                        learningObject: example
                        loInstance: example
        '400':
          description: Invalid enrollment request
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                createEnrollment400Example:
                  summary: Default createEnrollment 400 response
                  x-microcks-default: true
                  value:
                    source:
                      info: example
                    status: active
                    title: example
                    detail: example
                    code: example
        '409':
          description: User is already enrolled
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                createEnrollment409Example:
                  summary: Default createEnrollment 409 response
                  x-microcks-default: true
                  value:
                    source:
                      info: example
                    status: active
                    title: example
                    detail: example
                    code: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /enrollments/{enrollmentId}:
    get:
      operationId: getEnrollment
      summary: Adobe Captivate Get an Enrollment
      description: Retrieves a single enrollment by its ID.
      tags:
      - Enrollments
      parameters:
      - $ref: '#/components/parameters/enrollmentId'
      - name: include
        in: query
        description: Comma-separated list of related resources to include
        schema:
          type: string
      responses:
        '200':
          description: Enrollment details
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/EnrollmentResponse'
              examples:
                getEnrollment200Example:
                  summary: Default getEnrollment 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: abc123
                      type: standard
                      attributes:
                        completedOn: '2025-03-15T14:30:00Z'
                        dateEnrolled: '2025-03-15T14:30:00Z'
                        dateStarted: '2025-03-15T14:30:00Z'
                        hasPassed: true
                        progressPercent: 1
                      relationships:
                        learner: example
                        learningObject: example
                        loInstance: example
        '404':
          description: Enrollment not found
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getEnrollment404Example:
                  summary: Default getEnrollment 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
    delete:
      operationId: unenrollUser
      summary: Adobe Captivate Unenroll a User
      description: Removes a user's enrollment from a learning object instance. Only applicable if the enrollment is in a state that allows unenrollment.
      tags:
      - Enrollments
      parameters:
      - $ref: '#/components/parameters/enrollmentId'
      responses:
        '204':
          description: Enrollment deleted successfully
        '400':
          description: Enrollment cannot be deleted in its current state
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unenrollUser400Example:
                  summary: Default unenrollUser 400 response
                  x-microcks-default: true
                  value:
                    source:
                      info: example
                    status: active
                    title: example
                    detail: example
                    code: example
        '404':
          description: Enrollment not found
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unenrollUser404Example:
                  summary: Default unenrollUser 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
components:
  schemas:
    EnrollmentCreateRequest:
      type: object
      description: Request body for creating an enrollment
      required:
      - data
      properties:
        data:
          type: object
          required:
          - type
          - attributes
          properties:
            type:
              type: string
              const: enrollment
            attributes:
              type: object
              properties:
                loInstanceId:
                  type: string
                  description: ID of the learning object instance to enroll in
            relationships:
              type: object
              properties:
                loInstance:
                  type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/ResourceIdentifier'
                learner:
                  type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/ResourceIdentifier'
    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
    Enrollment:
      type: object
      description: A learner's enrollment in a learning object instance
      properties:
        id:
          type: string
          description: Unique enrollment identifier
        type:
          type: string
          const: enrollment
        attributes:
          type: object
          properties:
            completedOn:
              type: string
              format: date-time
              description: Timestamp when the enrollment was completed
            dateEnrolled:
              type: string
              format: date-time
              description: Timestamp when the learner was enrolled
            dateStarted:
              type: string
              format: date-time
              description: Timestamp when the learner started
            hasPassed:
              type: boolean
              description: Whether the learner passed the learning object
            progressPercent:
              type: integer
              description: Completion progress as a percentage (0-100)
              minimum: 0
              maximum: 100
            score:
              type: number
              description: Score achieved by the learner
            state:
              type: string
              description: Current enrollment state
              enum:
              - ENROLLED
              - STARTED
              - COMPLETED
              - PENDING_APPROVAL
              - REJECTED
              - EXPIRED
        relationships:
          type: object
          properties:
            learner:
              $ref: '#/components/schemas/Relationship'
            learningObject:
              $ref: '#/components/schemas/Relationship'
            loInstance:
              $ref: '#/components/schemas/Relationship'
    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
    EnrollmentResponse:
      type: object
      description: Single enrollment response
      properties:
        data:
          $ref: '#/components/schemas/Enrollment'
    EnrollmentListResponse:
      type: object
      description: Paginated list of enrollments
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Enrollment'
        links:
          $ref: '#/components/schemas/PaginationLinks'
    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
  parameters:
    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
    enrollmentId:
      name: enrollmentId
      in: path
      required: true
      description: The unique identifier of the enrollment
      schema:
        type: string
  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/