Prosci Training API

Training programs and enrollment management

OpenAPI Specification

prosci-training-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Prosci Change Management ADKAR Assessments Training API
  description: API for managing organizational change initiatives using Prosci's research-based change management methodology. Provides access to change projects, ADKAR assessments, PCT (Prosci Change Triangle) assessments, stakeholder analyses, change plans, and training resources.
  version: 1.0.0
  contact:
    name: Prosci Support
    email: support@prosci.com
    url: https://www.prosci.com/contact
  license:
    name: Proprietary
    url: https://www.prosci.com/terms
  termsOfService: https://www.prosci.com/terms
servers:
- url: https://api.prosci.com/v1
  description: Production server
security:
- bearerAuth: []
- apiKeyAuth: []
tags:
- name: Training
  description: Training programs and enrollment management
paths:
  /training/programs:
    get:
      operationId: listTrainingPrograms
      summary: Prosci List training programs
      description: Retrieves available Prosci training and certification programs.
      tags:
      - Training
      parameters:
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/offsetParam'
      - name: format
        in: query
        description: Filter by delivery format
        schema:
          type: string
          enum:
          - in-person
          - virtual
          - on-demand
      - name: programType
        in: query
        description: Filter by program type
        schema:
          type: string
          enum:
          - certification
          - practitioner
          - executive
          - train-the-trainer
      responses:
        '200':
          description: A paginated list of training programs
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TrainingProgram'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /training/enrollments:
    get:
      operationId: listEnrollments
      summary: Prosci List training enrollments
      description: Retrieves training enrollments for the authenticated organization.
      tags:
      - Training
      parameters:
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/offsetParam'
      - name: status
        in: query
        description: Filter by enrollment status
        schema:
          type: string
          enum:
          - enrolled
          - in-progress
          - completed
          - cancelled
      responses:
        '200':
          description: A paginated list of enrollments
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Enrollment'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createEnrollment
      summary: Prosci Enroll in a training program
      description: Creates a new enrollment in a Prosci training program.
      tags:
      - Training
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollmentCreate'
      responses:
        '201':
          description: Enrollment created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enrollment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    limitParam:
      name: limit
      in: query
      description: Maximum number of items to return
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    offsetParam:
      name: offset
      in: query
      description: Number of items to skip for pagination
      schema:
        type: integer
        minimum: 0
        default: 0
  schemas:
    TrainingProgram:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the program
        name:
          type: string
          description: Name of the training program
        description:
          type: string
          description: Description of the program
        programType:
          type: string
          enum:
          - certification
          - practitioner
          - executive
          - train-the-trainer
          description: Type of training program
        format:
          type: string
          enum:
          - in-person
          - virtual
          - on-demand
          description: Delivery format
        durationDays:
          type: integer
          description: Duration of the program in days
        certificationLevel:
          type: string
          enum:
          - certified-change-practitioner
          - certified-change-management-professional
          - certified-instructor
          description: Certification level awarded upon completion
        prerequisites:
          type: array
          items:
            type: string
          description: Prerequisites for enrollment
        url:
          type: string
          format: uri
          description: URL for more information
      required:
      - id
      - name
      - programType
      - format
    EnrollmentCreate:
      type: object
      properties:
        programId:
          type: string
        participantId:
          type: string
        participantName:
          type: string
        participantEmail:
          type: string
          format: email
      required:
      - programId
      - participantId
    Pagination:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items
        limit:
          type: integer
          description: Number of items per page
        offset:
          type: integer
          description: Current offset
        hasMore:
          type: boolean
          description: Whether more items are available
      required:
      - total
      - limit
      - offset
      - hasMore
    Enrollment:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the enrollment
        programId:
          type: string
          description: Identifier of the training program
        programName:
          type: string
          description: Name of the training program
        participantId:
          type: string
          description: Identifier of the participant
        participantName:
          type: string
          description: Name of the participant
        participantEmail:
          type: string
          format: email
          description: Email of the participant
        status:
          type: string
          enum:
          - enrolled
          - in-progress
          - completed
          - cancelled
          description: Enrollment status
        enrollmentDate:
          type: string
          format: date
          description: Date of enrollment
        completionDate:
          type: string
          format: date
          description: Date of completion
        certificationId:
          type: string
          description: Certification identifier upon successful completion
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
      - id
      - programId
      - participantId
      - status
    Error:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
          description: Detailed validation errors
      required:
      - code
      - message
  responses:
    BadRequest:
      description: The request was invalid or malformed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication credentials are missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token obtained from the Prosci authentication endpoint.
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key provided by Prosci for application access.