Acadia Platform API

Acadia Platform API provides programmatic access to digital work instructions, employee skills matrices, quizzes, evaluations, and knowledge management features for workforce development integrations.

OpenAPI Specification

acadia-platform.yaml Raw ↑
openapi: 3.0.3
info:
  title: Acadia - Platform API
  description: >-
    Acadia is a Connected Worker Platform providing digital work instructions,
    skills matrices, quizzing, evaluations, knowledge management, and team
    communications for frontline workforce development. This API specification
    documents the programmatic interface for integrating with Acadia's platform
    features.
  version: 1.0.0
  contact:
    url: https://www.acadia-software.com/
  x-generated-from: documentation
servers:
  - url: https://api.acadia-software.com/v1
    description: Acadia Platform API v1
security:
  - bearerAuth: []
tags:
  - name: Work Instructions
    description: Manage digital work instructions and task lists
  - name: Skills
    description: Manage employee skills and skills matrices
  - name: Quizzes
    description: Manage quizzes and assessments
  - name: Evaluations
    description: Manage structured skill evaluations
  - name: Employees
    description: Manage employee profiles and training records
  - name: Roles
    description: Manage job roles and training requirements
paths:
  /work-instructions:
    get:
      operationId: listWorkInstructions
      summary: Acadia List Work Instructions
      description: List all digital work instructions in the organization.
      tags:
        - Work Instructions
      parameters:
        - name: status
          in: query
          required: false
          description: Filter by publication status (draft, published, archived).
          schema:
            type: string
            enum:
              - draft
              - published
              - archived
          example: published
        - name: category
          in: query
          required: false
          description: Filter by work instruction category or department.
          schema:
            type: string
          example: safety
        - name: page
          in: query
          required: false
          description: Page number for pagination.
          schema:
            type: integer
            default: 1
          example: 1
        - name: limit
          in: query
          required: false
          description: Number of results per page (max 100).
          schema:
            type: integer
            default: 25
            maximum: 100
          example: 25
      responses:
        '200':
          description: List of work instructions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkInstructionList'
              examples:
                listWorkInstructions200Example:
                  summary: Default listWorkInstructions 200 response
                  x-microcks-default: true
                  value:
                    data:
                      - id: wi-abc123
                        title: Machine Startup Procedure
                        status: published
                        category: operations
                        version: 3
                        createdAt: '2026-01-15T09:00:00Z'
                        updatedAt: '2026-03-01T14:30:00Z'
                    total: 1
                    page: 1
                    limit: 25
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createWorkInstruction
      summary: Acadia Create Work Instruction
      description: Create a new digital work instruction.
      tags:
        - Work Instructions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkInstructionRequest'
            examples:
              createWorkInstructionRequestExample:
                summary: Default createWorkInstruction request
                x-microcks-default: true
                value:
                  title: New Safety Procedure
                  category: safety
                  description: Standard safety procedure for equipment handling
                  steps:
                    - order: 1
                      title: Don PPE
                      description: Put on all required personal protective equipment
      responses:
        '201':
          description: Work instruction created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkInstruction'
              examples:
                createWorkInstruction201Example:
                  summary: Default createWorkInstruction 201 response
                  x-microcks-default: true
                  value:
                    id: wi-def456
                    title: New Safety Procedure
                    status: draft
                    category: safety
                    version: 1
                    createdAt: '2026-04-19T10:00:00Z'
                    updatedAt: '2026-04-19T10:00:00Z'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /work-instructions/{id}:
    get:
      operationId: getWorkInstruction
      summary: Acadia Get Work Instruction
      description: Get details of a specific work instruction including all steps.
      tags:
        - Work Instructions
      parameters:
        - name: id
          in: path
          required: true
          description: Work instruction identifier.
          schema:
            type: string
          example: wi-abc123
      responses:
        '200':
          description: Work instruction details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkInstruction'
              examples:
                getWorkInstruction200Example:
                  summary: Default getWorkInstruction 200 response
                  x-microcks-default: true
                  value:
                    id: wi-abc123
                    title: Machine Startup Procedure
                    status: published
                    category: operations
                    version: 3
                    description: Standard procedure for starting production machinery safely
                    steps:
                      - order: 1
                        title: Inspect Machine
                        description: Visually inspect the machine for defects or hazards
                      - order: 2
                        title: Clear Safety Zone
                        description: Ensure no personnel are in the machine safety zone
                    createdAt: '2026-01-15T09:00:00Z'
                    updatedAt: '2026-03-01T14:30:00Z'
        '404':
          description: Work instruction not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /employees:
    get:
      operationId: listEmployees
      summary: Acadia List Employees
      description: List all employees in the organization with their training status.
      tags:
        - Employees
      parameters:
        - name: role_id
          in: query
          required: false
          description: Filter employees by role identifier.
          schema:
            type: string
          example: role-ops-001
        - name: department
          in: query
          required: false
          description: Filter employees by department name.
          schema:
            type: string
          example: Production
        - name: page
          in: query
          required: false
          description: Page number for pagination.
          schema:
            type: integer
            default: 1
          example: 1
        - name: limit
          in: query
          required: false
          description: Number of results per page.
          schema:
            type: integer
            default: 25
          example: 25
      responses:
        '200':
          description: List of employees
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeList'
              examples:
                listEmployees200Example:
                  summary: Default listEmployees 200 response
                  x-microcks-default: true
                  value:
                    data:
                      - id: emp-ghi789
                        name: Jane Smith
                        email: [email protected]
                        department: Production
                        role: Machine Operator
                        trainingCompletion: 87
                    total: 1
                    page: 1
                    limit: 25
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /employees/{id}/skills:
    get:
      operationId: getEmployeeSkills
      summary: Acadia Get Employee Skills
      description: Get the skills matrix for a specific employee, showing all required and completed skills.
      tags:
        - Skills
      parameters:
        - name: id
          in: path
          required: true
          description: Employee identifier.
          schema:
            type: string
          example: emp-ghi789
      responses:
        '200':
          description: Employee skills matrix
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeSkillsMatrix'
              examples:
                getEmployeeSkills200Example:
                  summary: Default getEmployeeSkills 200 response
                  x-microcks-default: true
                  value:
                    employeeId: emp-ghi789
                    employeeName: Jane Smith
                    role: Machine Operator
                    skills:
                      - skillId: skill-001
                        name: Machine Startup
                        required: true
                        completed: true
                        completedAt: '2026-02-10T08:00:00Z'
                        score: 95
                      - skillId: skill-002
                        name: Emergency Shutdown
                        required: true
                        completed: false
                        completedAt: null
                        score: null
                    overallCompletion: 50
        '404':
          description: Employee not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /quizzes:
    get:
      operationId: listQuizzes
      summary: Acadia List Quizzes
      description: List all quizzes available in the platform.
      tags:
        - Quizzes
      parameters:
        - name: status
          in: query
          required: false
          description: Filter by quiz status (active, inactive).
          schema:
            type: string
            enum:
              - active
              - inactive
          example: active
      responses:
        '200':
          description: List of quizzes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizList'
              examples:
                listQuizzes200Example:
                  summary: Default listQuizzes 200 response
                  x-microcks-default: true
                  value:
                    data:
                      - id: quiz-jkl012
                        title: Machine Safety Knowledge Check
                        status: active
                        questionCount: 10
                        passingScore: 80
                        createdAt: '2026-01-20T10:00:00Z'
                    total: 1
                    page: 1
                    limit: 25
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /roles:
    get:
      operationId: listRoles
      summary: Acadia List Roles
      description: List all defined job roles with their training requirements.
      tags:
        - Roles
      responses:
        '200':
          description: List of roles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleList'
              examples:
                listRoles200Example:
                  summary: Default listRoles 200 response
                  x-microcks-default: true
                  value:
                    data:
                      - id: role-ops-001
                        name: Machine Operator
                        department: Production
                        requiredTrainings: 12
                        completionRate: 78
                    total: 1
                    page: 1
                    limit: 25
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT Bearer token for API authentication
  schemas:
    WorkInstruction:
      type: object
      description: A digital work instruction document
      properties:
        id:
          type: string
          description: Unique work instruction identifier
          example: wi-abc123
        title:
          type: string
          description: Title of the work instruction
          example: Machine Startup Procedure
        status:
          type: string
          description: Publication status
          example: published
          enum:
            - draft
            - published
            - archived
        category:
          type: string
          description: Category or department the instruction belongs to
          example: operations
        version:
          type: integer
          description: Version number of the work instruction
          example: 3
        description:
          type: string
          description: Description of the work instruction purpose
          example: Standard procedure for starting production machinery safely
        steps:
          type: array
          description: Ordered steps in the work instruction
          items:
            $ref: '#/components/schemas/WorkInstructionStep'
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the instruction was created
          example: '2026-01-15T09:00:00Z'
        updatedAt:
          type: string
          format: date-time
          description: Timestamp of last update
          example: '2026-03-01T14:30:00Z'
    WorkInstructionStep:
      type: object
      description: A single step within a work instruction
      properties:
        order:
          type: integer
          description: Step sequence number
          example: 1
        title:
          type: string
          description: Step title
          example: Inspect Machine
        description:
          type: string
          description: Detailed description of the step
          example: Visually inspect the machine for defects or hazards
    WorkInstructionList:
      type: object
      description: Paginated list of work instructions
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/WorkInstruction'
        total:
          type: integer
          description: Total number of work instructions
          example: 42
        page:
          type: integer
          description: Current page number
          example: 1
        limit:
          type: integer
          description: Results per page
          example: 25
    CreateWorkInstructionRequest:
      type: object
      description: Request body for creating a work instruction
      required:
        - title
        - category
      properties:
        title:
          type: string
          description: Title of the new work instruction
          example: New Safety Procedure
        category:
          type: string
          description: Category or department
          example: safety
        description:
          type: string
          description: Description of the instruction purpose
          example: Standard safety procedure for equipment handling
        steps:
          type: array
          items:
            $ref: '#/components/schemas/WorkInstructionStep'
    Employee:
      type: object
      description: An employee in the organization
      properties:
        id:
          type: string
          description: Unique employee identifier
          example: emp-ghi789
        name:
          type: string
          description: Employee full name
          example: Jane Smith
        email:
          type: string
          format: email
          description: Employee email address
          example: [email protected]
        department:
          type: string
          description: Department name
          example: Production
        role:
          type: string
          description: Job role name
          example: Machine Operator
        trainingCompletion:
          type: integer
          description: Overall training completion percentage
          example: 87
    EmployeeList:
      type: object
      description: Paginated list of employees
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Employee'
        total:
          type: integer
          example: 150
        page:
          type: integer
          example: 1
        limit:
          type: integer
          example: 25
    SkillRecord:
      type: object
      description: A skill record in the employee skills matrix
      properties:
        skillId:
          type: string
          description: Unique skill identifier
          example: skill-001
        name:
          type: string
          description: Skill name
          example: Machine Startup
        required:
          type: boolean
          description: Whether this skill is required for the role
          example: true
        completed:
          type: boolean
          description: Whether the employee has completed this skill
          example: true
        completedAt:
          type: string
          format: date-time
          description: When the skill was completed
          example: '2026-02-10T08:00:00Z'
        score:
          type: integer
          description: Score achieved (0-100)
          example: 95
    EmployeeSkillsMatrix:
      type: object
      description: Complete skills matrix for an employee
      properties:
        employeeId:
          type: string
          description: Employee identifier
          example: emp-ghi789
        employeeName:
          type: string
          description: Employee name
          example: Jane Smith
        role:
          type: string
          description: Current job role
          example: Machine Operator
        skills:
          type: array
          items:
            $ref: '#/components/schemas/SkillRecord'
        overallCompletion:
          type: integer
          description: Overall skill completion percentage
          example: 87
    Quiz:
      type: object
      description: A quiz or assessment
      properties:
        id:
          type: string
          description: Quiz identifier
          example: quiz-jkl012
        title:
          type: string
          description: Quiz title
          example: Machine Safety Knowledge Check
        status:
          type: string
          description: Quiz status
          example: active
          enum:
            - active
            - inactive
        questionCount:
          type: integer
          description: Number of questions in the quiz
          example: 10
        passingScore:
          type: integer
          description: Minimum passing score percentage
          example: 80
        createdAt:
          type: string
          format: date-time
          description: Quiz creation timestamp
          example: '2026-01-20T10:00:00Z'
    QuizList:
      type: object
      description: Paginated list of quizzes
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Quiz'
        total:
          type: integer
          example: 15
        page:
          type: integer
          example: 1
        limit:
          type: integer
          example: 25
    Role:
      type: object
      description: A job role with training requirements
      properties:
        id:
          type: string
          description: Role identifier
          example: role-ops-001
        name:
          type: string
          description: Role name
          example: Machine Operator
        department:
          type: string
          description: Department the role belongs to
          example: Production
        requiredTrainings:
          type: integer
          description: Number of required training completions for the role
          example: 12
        completionRate:
          type: integer
          description: Average completion rate across employees in this role
          example: 78
    RoleList:
      type: object
      description: Paginated list of roles
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Role'
        total:
          type: integer
          example: 8
        page:
          type: integer
          example: 1
        limit:
          type: integer
          example: 25
    ErrorResponse:
      type: object
      description: Error response
      properties:
        message:
          type: string
          description: Human-readable error message
          example: Unauthorized - invalid or expired token
        error:
          type: string
          description: Error code
          example: unauthorized