ALiVE MIS API (1.0.0)

Download OpenAPI specification:

ALiVE MIS Support: support@alive-mis.org URL: https://alive-mis.org License: MIT

Monitoring, Evaluation & Learning Management Information System API

Overview

The ALiVE MIS API provides comprehensive endpoints for managing projects, activities, milestones, forms, reports, and user authentication. This API follows RESTful principles and uses JWT-based authentication.

Authentication

Most endpoints require authentication using either:

  • Bearer Token: Include Authorization: Bearer <token> header
  • Cookie: The auth_token cookie is automatically set after login

Rate Limiting

API requests are rate-limited to ensure fair usage and system stability.

Support

For API support, please contact the development team.

Authentication

User authentication and authorization endpoints

User login

Authenticate user with email and password

Request Body schema: application/json
required
object (LoginDto)

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "password123"
}

Response samples

Content type
application/json
{
  • "accessToken": "jwt_token",
  • "refreshToken": "refresh_token",
  • "user": {
    }
}

User registration

Register a new user account

Request Body schema: application/json
required
object (RegisterDto)

Responses

Request samples

Content type
application/json
{
  • "email": "newuser@example.com",
  • "password": "password123",
  • "firstName": "John",
  • "lastName": "Doe"
}

Response samples

Content type
application/json
{
  • "id": "user-id",
  • "email": "newuser@example.com",
  • "firstName": "John",
  • "lastName": "Doe"
}

Refresh access token

Get a new access token using refresh token

Request Body schema: application/json
required
any

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "refresh_token_value"
}

Response samples

Content type
application/json
{
  • "accessToken": "new_jwt_token",
  • "refreshToken": "new_refresh_token"
}

Request password reset

Send password reset link to email

Request Body schema: application/json
required
any

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "message": "If that email is registered you will receive a reset link shortly"
}

Reset password

Reset password using token from email

Request Body schema: application/json
required
any

Responses

Request samples

Content type
application/json
{
  • "token": "reset_token_from_email",
  • "password": "newpassword123"
}

Response samples

Content type
application/json
{
  • "message": "Password reset successfully. Please sign in with your new password."
}

User logout

Logout user and invalidate tokens

Authorizations:
None
Request Body schema: application/json
required
any

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "refresh_token_value"
}

Response samples

Content type
application/json
{
  • "message": "Logged out successfully"
}

Get current user

Retrieve authenticated user profile

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "id": "user-id",
  • "email": "user@example.com",
  • "firstName": "John",
  • "lastName": "Doe",
  • "roles": [
    ]
}

Update current user

Update authenticated user profile

Authorizations:
None
Request Body schema: application/json
required
any

Responses

Request samples

Content type
application/json
{
  • "firstName": "Jane",
  • "lastName": "Smith"
}

Get current user (alias)

Retrieve authenticated user profile (dashboard compatibility)

Authorizations:
None

Responses

Change password

Change authenticated user password

Authorizations:
None
Request Body schema: application/json
required
object (ChangePasswordDto)

Responses

Request samples

Content type
application/json
{
  • "currentPassword": "oldpassword123",
  • "newPassword": "newpassword123"
}

Get all roles

Retrieve list of all available roles

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "roles": [
    ]
}

Get role statistics

Retrieve statistics for all roles

Authorizations:
None

Responses

Get role by ID

Retrieve specific role details

Authorizations:
None
path Parameters
id
required
number

Responses

Get available users for role

Retrieve users not yet assigned to this role

Authorizations:
None
path Parameters
id
required
number

Responses

Assign user to role

Add user to a specific role

Authorizations:
None
path Parameters
id
required
number
userId
required
string

Responses

Unassign user from role

Remove user from a specific role

Authorizations:
None
path Parameters
id
required
number
userId
required
string

Responses

Get audit logs

Retrieve system audit logs with optional filtering

Authorizations:
None

Responses

Get audit log statistics

Retrieve statistics about audit logs

Authorizations:
None

Responses

Get system settings

Retrieve all system settings

Authorizations:
None

Responses

Get system health

Check system health status

Authorizations:
None

Responses

Update setting

Update a specific system setting

Authorizations:
None
path Parameters
key
required
string
Request Body schema: application/json
required
object (UpdateSettingDto)

Responses

Request samples

Content type
application/json
{
  • "value": "setting_value"
}

Users

User management and profile operations

List all users

Retrieve list of all users (admin only)

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "users": [
    ]
}

Create new user

Create a new user account (super admin only)

Authorizations:
None
Request Body schema: application/json
required
object (CreateUserDto)

Responses

Request samples

Content type
application/json
{
  • "email": "newuser@example.com",
  • "password": "password123",
  • "firstName": "John",
  • "lastName": "Doe",
  • "tenantId": "tenant-id"
}

Response samples

Content type
application/json
{
  • "id": "user-id",
  • "email": "newuser@example.com",
  • "firstName": "John",
  • "lastName": "Doe"
}

Get user by ID

Retrieve specific user details

Authorizations:
None
path Parameters
id
required
string

Responses

Update user

Update user information

Authorizations:
None
path Parameters
id
required
string
Request Body schema: application/json
required
object (UpdateUserDto)

Responses

Request samples

Content type
application/json
{
  • "firstName": "Jane",
  • "lastName": "Smith"
}

UsersController_remove

path Parameters
id
required
string

Responses

Projects

Project management endpoints

List all projects

Retrieve a list of all projects accessible to the current user.

Authorizations:
None

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new project

Create a new project in the system.

Authorizations:
None
Request Body schema: application/json
required

Project creation payload

object (CreateProjectDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Q1 Training Initiative",
  • "description": "Comprehensive training program for new employees",
  • "startDate": "2024-01-01",
  • "endDate": "2024-03-31",
  • "budget": 50000
}

Response samples

Content type
application/json
{
  • "id": "proj-001",
  • "name": "Q1 Training Initiative",
  • "description": "Comprehensive training program for new employees",
  • "status": "active",
  • "startDate": "2024-01-01",
  • "endDate": "2024-03-31",
  • "budget": 50000,
  • "tenantId": "tenant-001",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-01T08:00:00Z"
}

Get project by ID

Retrieve detailed information about a specific project.

Authorizations:
None
path Parameters
id
required
string
Example: proj-001

The unique identifier of the project

Responses

Response samples

Content type
application/json
{
  • "id": "proj-001",
  • "name": "Q1 Training Initiative",
  • "description": "Comprehensive training program for new employees",
  • "status": "active",
  • "startDate": "2024-01-01",
  • "endDate": "2024-03-31",
  • "budget": 50000,
  • "tenantId": "tenant-001",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-15T10:30:00Z"
}

Update project

Partially update a project.

Authorizations:
None
path Parameters
id
required
string
Example: proj-001

The unique identifier of the project to update

Request Body schema: application/json
required

Project update payload (partial)

object (UpdateProjectDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Q1 Training Initiative - Updated",
  • "budget": 55000
}

Response samples

Content type
application/json
{
  • "id": "proj-001",
  • "name": "Q1 Training Initiative - Updated",
  • "description": "Comprehensive training program for new employees",
  • "status": "active",
  • "startDate": "2024-01-01",
  • "endDate": "2024-03-31",
  • "budget": 55000,
  • "tenantId": "tenant-001",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-15T11:45:00Z"
}

Delete project

Delete a project from the system.

Authorizations:
None
path Parameters
id
required
string
Example: proj-001

The unique identifier of the project to delete

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Project deleted"
}

List project expenses

Retrieve all expenses associated with a specific project.

Authorizations:
None
path Parameters
id
required
string
Example: proj-001

The unique identifier of the project

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add expense to project

Create a new expense record for a project.

Authorizations:
None
path Parameters
id
required
string
Example: proj-001

The unique identifier of the project

Request Body schema: application/json
required

Expense creation payload

object (CreateExpenseDto)

Responses

Request samples

Content type
application/json
{
  • "description": "Training materials",
  • "amount": 5000,
  • "category": "materials",
  • "date": "2024-01-10"
}

Response samples

Content type
application/json
{
  • "id": "exp-001",
  • "projectId": "proj-001",
  • "description": "Training materials",
  • "amount": 5000,
  • "category": "materials",
  • "date": "2024-01-10",
  • "createdAt": "2024-01-10T09:00:00Z"
}

Delete project expense

Remove an expense from a project.

Authorizations:
None
path Parameters
id
required
string
Example: proj-001

The unique identifier of the project

expenseId
required
string
Example: exp-001

The unique identifier of the expense to delete

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Expense deleted"
}

Milestones

Project milestone tracking

List project milestones

Retrieve all milestones for a specific project.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create milestone

Create a new milestone for a project.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

Request Body schema: application/json
required

Milestone creation payload

object (CreateMilestoneDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Phase 1 Completion",
  • "description": "Complete initial training modules",
  • "dueDate": "2024-02-15"
}

Response samples

Content type
application/json
{
  • "id": "mile-001",
  • "projectId": "proj-001",
  • "name": "Phase 1 Completion",
  • "description": "Complete initial training modules",
  • "dueDate": "2024-02-15",
  • "status": "pending",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-01T08:00:00Z"
}

Get milestone by ID

Retrieve detailed information about a specific milestone.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

id
required
string
Example: mile-001

The unique identifier of the milestone

Responses

Response samples

Content type
application/json
{
  • "id": "mile-001",
  • "projectId": "proj-001",
  • "name": "Phase 1 Completion",
  • "description": "Complete initial training modules",
  • "dueDate": "2024-02-15",
  • "status": "in_progress",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-15T10:30:00Z"
}

Update milestone

Partially update a milestone.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

id
required
string
Example: mile-001

The unique identifier of the milestone to update

Request Body schema: application/json
required

Milestone update payload (partial)

object (UpdateMilestoneDto)

Responses

Request samples

Content type
application/json
{
  • "status": "completed"
}

Response samples

Content type
application/json
{
  • "id": "mile-001",
  • "projectId": "proj-001",
  • "name": "Phase 1 Completion",
  • "description": "Complete initial training modules",
  • "dueDate": "2024-02-15",
  • "status": "completed",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-15T11:45:00Z"
}

Delete milestone

Delete a milestone from a project.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

id
required
string
Example: mile-001

The unique identifier of the milestone to delete

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Milestone deleted"
}

Activities

Activity management within projects

List project activities

Retrieve all activities for a specific project.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create activity

Create a new activity for a project.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

Request Body schema: application/json
required

Activity creation payload

object (CreateActivityDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Module 1: Introduction",
  • "description": "Introduction to the training program",
  • "startDate": "2024-01-15",
  • "endDate": "2024-01-20"
}

Response samples

Content type
application/json
{
  • "id": "act-001",
  • "projectId": "proj-001",
  • "name": "Module 1: Introduction",
  • "description": "Introduction to the training program",
  • "status": "active",
  • "startDate": "2024-01-15",
  • "endDate": "2024-01-20",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-01T08:00:00Z"
}

Get activity by ID

Retrieve detailed information about a specific activity.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

id
required
string
Example: act-001

The unique identifier of the activity

Responses

Response samples

Content type
application/json
{
  • "id": "act-001",
  • "projectId": "proj-001",
  • "name": "Module 1: Introduction",
  • "description": "Introduction to the training program",
  • "status": "active",
  • "startDate": "2024-01-15",
  • "endDate": "2024-01-20",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-15T10:30:00Z"
}

Update activity

Partially update an activity.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

id
required
string
Example: act-001

The unique identifier of the activity to update

Request Body schema: application/json
required

Activity update payload (partial)

object (UpdateActivityDto)

Responses

Request samples

Content type
application/json
{
  • "status": "completed"
}

Response samples

Content type
application/json
{
  • "id": "act-001",
  • "projectId": "proj-001",
  • "name": "Module 1: Introduction",
  • "description": "Introduction to the training program",
  • "status": "completed",
  • "startDate": "2024-01-15",
  • "endDate": "2024-01-20",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-15T11:45:00Z"
}

Delete activity

Delete an activity from a project.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

id
required
string
Example: act-001

The unique identifier of the activity to delete

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Activity deleted"
}

Assign user to activity

Assign a user to an activity.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

id
required
string
Example: act-001

The unique identifier of the activity

Request Body schema: application/json
required

User assignment payload

string

Responses

Request samples

Content type
application/json
{
  • "user_id": "user-123"
}

Response samples

Content type
application/json
{
  • "id": "assign-001",
  • "activityId": "act-001",
  • "userId": "user-123",
  • "assignedAt": "2024-01-15T10:30:00Z"
}

Remove user assignment from activity

Remove a user assignment from an activity.

Authorizations:
None
path Parameters
projectId
required
string
Example: proj-001

The unique identifier of the project

assignmentId
required
string
Example: assign-001

The unique identifier of the assignment to remove

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Assignment removed"
}

Forms

Dynamic form builder and submission management

List all forms

Retrieve a paginated list of all forms accessible to the current user.

Authorizations:
None
query Parameters
limit
any
Example: limit=20

Items per page (default: 20)

page
any
Example: page=1

Page number (default: 1)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 1,
  • "page": 1,
  • "limit": 20
}

Create form

Create a new form.

Authorizations:
None
Request Body schema: application/json
required

Form creation payload

object (CreateFormDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Employee Onboarding",
  • "description": "New employee onboarding form"
}

Response samples

Content type
application/json
{
  • "id": "form-001",
  • "name": "Employee Onboarding",
  • "description": "New employee onboarding form",
  • "status": "active",
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-01T08:00:00Z"
}

Get form by ID

Retrieve detailed information about a specific form including all fields.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form

Responses

Response samples

Content type
application/json
{
  • "id": "form-001",
  • "name": "Employee Onboarding",
  • "description": "New employee onboarding form",
  • "status": "active",
  • "fields": [
    ],
  • "createdAt": "2024-01-01T08:00:00Z",
  • "updatedAt": "2024-01-15T10:30:00Z"
}

Update form

Partially update a form.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form to update

Request Body schema: application/json
required

Form update payload (partial)

object (UpdateFormDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Employee Onboarding - Updated"
}

Delete form

Delete a form from the system.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form to delete

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Form deleted"
}

Duplicate form

Create a copy of an existing form with all its fields.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form to duplicate

Responses

Response samples

Content type
application/json
{
  • "id": "form-002",
  • "name": "Employee Onboarding (Copy)",
  • "description": "New employee onboarding form",
  • "status": "active",
  • "createdAt": "2024-01-15T10:30:00Z",
  • "updatedAt": "2024-01-15T10:30:00Z"
}

Add field to form

Add a new field to a form.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form

Request Body schema: application/json
required

Form field creation payload

object (CreateFormFieldDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Full Name",
  • "type": "text",
  • "required": true,
  • "placeholder": "Enter your full name"
}

Response samples

Content type
application/json
{
  • "id": "field-001",
  • "formId": "form-001",
  • "name": "Full Name",
  • "type": "text",
  • "required": true,
  • "placeholder": "Enter your full name"
}

Update form field

Update a field in a form.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form

fieldId
required
string
Example: field-001

The unique identifier of the field to update

Request Body schema: application/json
required

Form field update payload

object (UpdateFormFieldDto)

Responses

Request samples

Content type
application/json
{ }

Delete form field

Remove a field from a form.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form

fieldId
required
string
Example: field-001

The unique identifier of the field to delete

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Field deleted"
}

Assign form to user

Assign a form to a user or group of users.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form

Request Body schema: application/json
required

Form assignment payload

object (AssignFormDto)

Responses

Request samples

Content type
application/json
{
  • "userId": "user-123",
  • "dueDate": "2024-02-15"
}

Response samples

Content type
application/json
{
  • "id": "assign-001",
  • "formId": "form-001",
  • "userId": "user-123",
  • "dueDate": "2024-02-15",
  • "assignedAt": "2024-01-15T10:30:00Z"
}

Remove form assignment

Remove a form assignment from a user.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form

assignmentId
required
string
Example: assign-001

The unique identifier of the assignment to remove

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Assignment removed"
}

Submit form

Submit a completed form with field responses.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form

Request Body schema: application/json
required

Form submission payload

object (SubmitFormDto)

Responses

Request samples

Content type
application/json
{
  • "responses": {
    }
}

Response samples

Content type
application/json
{
  • "id": "submission-001",
  • "formId": "form-001",
  • "userId": "user-123",
  • "responses": {
    },
  • "submittedAt": "2024-01-15T10:30:00Z"
}

List form submissions

Retrieve all submissions for a specific form.

Authorizations:
None
path Parameters
id
required
string
Example: form-001

The unique identifier of the form

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Reports

AI-powered reporting and analytics

Generate report

Generate a new report based on specified criteria. Requires SUPER_ADMIN, TENANT_ADMIN, or REPORT_VIEWER role.

Authorizations:
None
Request Body schema: application/json
required

Report generation parameters

object (GenerateReportDto)

Responses

Request samples

Content type
application/json
{
  • "title": "Q1 Training Report",
  • "type": "training_summary",
  • "filters": {
    }
}

Response samples

Content type
application/json
{
  • "id": "report-001",
  • "title": "Q1 Training Report",
  • "type": "training_summary",
  • "status": "completed",
  • "fullReport": "Report content here...",
  • "wordCount": 2500,
  • "createdAt": "2024-01-15T10:30:00Z"
}

Save report

Save a client-generated report to the database as COMPLETED.

Authorizations:
None
Request Body schema: application/json
required

Report save payload

object (SaveReportDto)

Responses

Request samples

Content type
application/json
{
  • "title": "Q1 Training Report",
  • "fullReport": "Report content here...",
  • "wordCount": 2500
}

Response samples

Content type
application/json
{
  • "id": "report-001",
  • "title": "Q1 Training Report",
  • "status": "completed",
  • "fullReport": "Report content here...",
  • "wordCount": 2500,
  • "createdAt": "2024-01-15T10:30:00Z"
}

List all reports

Retrieve a paginated list of all reports accessible to the current user.

Authorizations:
None
query Parameters
page
string
Example: page=1

Page number (default: 1)

limit
string
Example: limit=10

Items per page (default: 10, max: 100)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 1,
  • "page": 1,
  • "limit": 10
}

Get report by ID

Retrieve detailed information about a specific report.

Authorizations:
None
path Parameters
id
required
string
Example: report-001

The unique identifier of the report

Responses

Response samples

Content type
application/json
{
  • "id": "report-001",
  • "title": "Q1 Training Report",
  • "type": "training_summary",
  • "status": "completed",
  • "fullReport": "Report content here...",
  • "sections": {
    },
  • "wordCount": 2500,
  • "createdAt": "2024-01-15T10:30:00Z",
  • "updatedAt": "2024-01-15T10:30:00Z"
}

Update report

Update report details such as title, content, or sections.

Authorizations:
None
path Parameters
id
required
string
Example: report-001

The unique identifier of the report to update

Request Body schema: application/json
required

Report update payload

string

Responses

Request samples

Content type
application/json
{
  • "title": "Q1 Training Report - Updated",
  • "fullReport": "Updated report content...",
  • "wordCount": 2600
}

Response samples

Content type
application/json
{
  • "id": "report-001",
  • "title": "Q1 Training Report - Updated",
  • "status": "completed",
  • "fullReport": "Updated report content...",
  • "wordCount": 2600,
  • "updatedAt": "2024-01-15T11:45:00Z"
}

Delete report

Delete a report from the system.

Authorizations:
None
path Parameters
id
required
string
Example: report-001

The unique identifier of the report to delete

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Report deleted"
}

Tenants

Multi-tenant organization management

List all tenants

Retrieve a list of all tenants in the system. Requires SUPER_ADMIN or TENANT_ADMIN role.

Authorizations:
None

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new tenant

Create a new tenant in the system. Only SUPER_ADMIN can perform this action.

Authorizations:
None
Request Body schema: application/json
required

Tenant creation payload

object (CreateTenantDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Acme Corporation",
  • "email": "admin@acme.com",
  • "phone": "+1-555-0100",
  • "address": "123 Business Ave, Tech City, TC 12345"
}

Response samples

Content type
application/json
{
  • "id": "tenant-001",
  • "name": "Acme Corporation",
  • "email": "admin@acme.com",
  • "phone": "+1-555-0100",
  • "address": "123 Business Ave, Tech City, TC 12345",
  • "status": "active",
  • "createdAt": "2024-01-15T10:30:00Z",
  • "updatedAt": "2024-01-15T10:30:00Z"
}

Get tenant by ID

Retrieve detailed information about a specific tenant.

Authorizations:
None
path Parameters
id
required
string
Example: tenant-001

The unique identifier of the tenant

Responses

Response samples

Content type
application/json
{
  • "id": "tenant-001",
  • "name": "Acme Corporation",
  • "email": "admin@acme.com",
  • "phone": "+1-555-0100",
  • "address": "123 Business Ave, Tech City, TC 12345",
  • "status": "active",
  • "createdAt": "2024-01-15T10:30:00Z",
  • "updatedAt": "2024-01-15T10:30:00Z"
}

Update tenant (PATCH)

Partially update a tenant. Only SUPER_ADMIN can perform this action.

Authorizations:
None
path Parameters
id
required
string
Example: tenant-001

The unique identifier of the tenant to update

Request Body schema: application/json
required

Tenant update payload (partial)

object (UpdateTenantDto)

Responses

Request samples

Content type
application/json
{
  • "name": "Acme Corporation Updated",
  • "phone": "+1-555-0101"
}

Response samples

Content type
application/json
{
  • "id": "tenant-001",
  • "name": "Acme Corporation Updated",
  • "email": "admin@acme.com",
  • "phone": "+1-555-0101",
  • "address": "123 Business Ave, Tech City, TC 12345",
  • "status": "active",
  • "createdAt": "2024-01-15T10:30:00Z",
  • "updatedAt": "2024-01-15T11:45:00Z"
}

Update tenant (PUT)

Update a tenant using PUT method for dashboard compatibility. Only SUPER_ADMIN can perform this action.

Authorizations:
None
path Parameters
id
required
string
Example: tenant-001

The unique identifier of the tenant to update

Request Body schema: application/json
required

Tenant update payload

object (UpdateTenantDto)

Responses

Request samples

Content type
application/json
{ }

Delete tenant

Delete a tenant from the system. Only SUPER_ADMIN can perform this action.

Authorizations:
None
path Parameters
id
required
string
Example: tenant-001

The unique identifier of the tenant to delete

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Tenant deleted"
}

Activate tenant

Activate a deactivated tenant. Restores the tenant to active status.

Authorizations:
None
path Parameters
id
required
string
Example: tenant-001

The unique identifier of the tenant to activate

Responses

Response samples

Content type
application/json
{
  • "id": "tenant-001",
  • "name": "Acme Corporation",
  • "status": "active"
}

Assign user to tenant

Assign a user to a tenant. SUPER_ADMIN or TENANT_ADMIN can perform this action.

Authorizations:
None
path Parameters
id
required
string
Example: tenant-001

The unique identifier of the tenant

Request Body schema: application/json
required

User assignment payload

object (AssignUserDto)

Responses

Request samples

Content type
application/json
{
  • "userId": "user-123"
}

Response samples

Content type
application/json
{
  • "id": "assignment-001",
  • "tenantId": "tenant-001",
  • "userId": "user-123",
  • "assignedAt": "2024-01-15T10:30:00Z"
}

Remove user from tenant

Remove a user from a tenant. SUPER_ADMIN or TENANT_ADMIN can perform this action.

Authorizations:
None
path Parameters
id
required
string
Example: tenant-001

The unique identifier of the tenant

userId
required
string
Example: user-123

The unique identifier of the user to remove

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "User removed from tenant"
}

ETL

Data extraction, transformation, and loading

Run ETL process

Manually trigger the ETL (Extract, Transform, Load) process. Requires SUPER_ADMIN or TENANT_ADMIN role.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "rowsProcessed": 1250,
  • "durationMs": 15000
}

Get ETL job runs

Retrieve a list of recent ETL job runs with their execution details.

Authorizations:
None
query Parameters
limit
string
Example: limit=20

Maximum number of job runs to return (default: 20)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get training KPIs

Retrieve key performance indicators for training programs.

Authorizations:
None
query Parameters
tenantId
string
Example: tenantId=tenant-001

Filter KPIs by tenant ID (optional)

Responses

Response samples

Content type
application/json
{
  • "totalTrainees": 250,
  • "completionRate": 85.5,
  • "averageScore": 78.3,
  • "coursesCompleted": 1250,
  • "certificatesIssued": 210
}

Get course performance metrics

Retrieve performance metrics for all courses.

Authorizations:
None
query Parameters
tenantId
string
Example: tenantId=tenant-001

Filter performance data by tenant ID (optional)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

BI

Business intelligence and analytics

Integrations

Third-party system integrations

List integrations

Retrieve a list of all available integrations and their connection status.

Authorizations:
None

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Test integration connection

Test the connection to an integration service.

Authorizations:
None
path Parameters
id
required
string
Example: moodle

The integration identifier (e.g., "moodle")

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Connection successful"
}

Trigger integration sync

Manually trigger a synchronization with the integration service.

Authorizations:
None
path Parameters
id
required
string
Example: moodle

The integration identifier (e.g., "moodle")

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Sync completed",
  • "rowsProcessed": 150,
  • "durationMs": 5000
}

Get sync history

Retrieve the synchronization history for an integration.

Authorizations:
None
path Parameters
id
required
string
Example: moodle

The integration identifier (e.g., "moodle")

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Disconnect integration

Disconnect an integration service.

Authorizations:
None
path Parameters
id
required
string
Example: moodle

The integration identifier (e.g., "moodle")

Responses

Response samples

Content type
application/json
{
  • "success": false,
  • "message": "Disconnect not supported for Moodle — update env vars to disable"
}

Reconnect integration

Reconnect to an integration service.

Authorizations:
None
path Parameters
id
required
string
Example: moodle

The integration identifier (e.g., "moodle")

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Reconnected successfully"
}

App

AppController_getHello

Responses

AppController_getHealth

Responses

FormStats

FormStatsController_getMySubmissionStats

Responses

Events

EventsController_getMetrics

Responses

Business Intelligence

Get accessible tenants

Retrieve a list of tenants accessible to the current user for analytics.

Authorizations:
None

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get training KPIs

Retrieve key performance indicators for training programs.

Authorizations:
None
query Parameters
tenant
any
Example: tenant=tenant-001

Filter by tenant ID (optional)

Responses

Response samples

Content type
application/json
{
  • "totalTrainees": 250,
  • "completionRate": 85.5,
  • "averageScore": 78.3,
  • "coursesCompleted": 1250,
  • "certificatesIssued": 210,
  • "activePrograms": 12
}

Get training trends

Retrieve training trends over a specified time period.

Authorizations:
None
query Parameters
tenant
any
Example: tenant=tenant-001

Filter by tenant ID (optional)

months
any
Example: months=6

Number of months to analyze (default: 6)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get course analytics

Retrieve analytics data for all courses.

Authorizations:
None
query Parameters
tenant
any
Example: tenant=tenant-001

Filter by tenant ID (optional)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get performance summary

Retrieve an overall performance summary across all training programs.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "totalEnrollments": 1250,
  • "totalCompletions": 1050,
  • "overallCompletionRate": 84,
  • "averageScore": 77.8,
  • "topPerformers": 45,
  • "needsSupport": 120
}

Get grade distribution

Retrieve the distribution of grades across all learners.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "A (90-100)": 250,
  • "B (80-89)": 450,
  • "C (70-79)": 350,
  • "D (60-69)": 150,
  • "F (Below 60)": 50
}

Get quiz performance metrics

Retrieve performance metrics for all quizzes.

Authorizations:
None

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get assignment performance metrics

Retrieve performance metrics for all assignments.

Authorizations:
None

Responses

Response samples

Content type
application/json
[
  • {
    }
]