Skip to main content

Academy of mine APIs (1.0.0)

Download OpenAPI specification:Download

List of all API endpoints

Accredible

It allows users to receive digital credentials

Validate Accredible API Key

Validates the API Key provided with the request

Request Body schema: application/json
required
key
required
string

The API key that needs to be validated

Responses

Request samples

Content type
application/json
{
  • "key": "sunt"
}

Response samples

Content type
application/json
{
  • "message": "Success",
  • "status": "success"
}

Accredible Groups Lookup

Retrieves all the accredible groups. Helps while showing group names in dropdown elements.

Responses

Response samples

Content type
application/json
{
  • "isEnabled": true,
  • "data": [
    • {
      • "id": 353767,
      • "name": "group_aom_course"
      },
    • {
      • "id": 353282,
      • "name": "intro-ce"
      },
    • {
      • "id": 352594,
      • "name": "aom"
      }
    ]
}

Announcements

The Announcements module allows you to manage announcement-related operations within the system.

Create an Announcement

Updates an existing announcement with new content, expiry, and sending rules. Also updates the recipient list depending on the sending rules.

path Parameters
id
required
integer
Example: 45

The ID of the announcement to update.

Request Body schema: application/json
required
id
required
integer

The ID of the announcement (used for permission check).

expiry
string

nullable The expiration date of the announcement.

heading
required
string

The title or heading of the announcement.

content
required
string

The message content of the announcement.

sending_rules
required
string

Must be one of: all, specific_users, specific_course_users, specific_class_users, specific_portals.

course_ids
Array of strings

required_if:sending_rules,specific_course_users The list of course IDs if targeting specific course users.

portal_ids
Array of strings

required_if:sending_rules,specific_portals The list of portal IDs if targeting specific portals.

user_ids
Array of strings

required_if:sending_rules,specific_users The list of user IDs if targeting specific users.

portalId
integer

optional The portal ID for ownership context (nullable if -1).

Responses

Request samples

Content type
application/json
{
  • "id": 45,
  • "expiry": "2025-12-31 23:59:59",
  • "heading": "System Maintenance",
  • "content": "The system will be down for maintenance tonight.",
  • "sending_rules": "specific_users",
  • "course_ids": [
    • 101,
    • 102
    ],
  • "portal_ids": [
    • 201,
    • 202
    ],
  • "user_ids": [
    • 1,
    • 2,
    • 3
    ],
  • "portalId": 5
}

Response samples

Content type
application/json
{
  • "id": 45,
  • "message": "Announcement Updated Successfully"
}

Announcement Tabular List

Returns all the announcements in a tabular list format in paginated mode. You can apply filter using search_param via heading(announcement heading).

query Parameters
portalId
integer
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"heading":""}

For searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "heading": "Test Announcement",
      • "author": "John Doe",
      • "created_at": "2020-08-26 09:08",
      • "content": "This is a test announcement",
      • "rules": "all"
      }
    ]
}

Update an announcement.

Request Body schema: application/json
required
id
required
integer

ID of the announcement to be updated.

expiry
string

optional Date of expiration of announcement in Y-m-d format.

heading
required
string

The title of the announcement.

content
required
string

The message content of the announcement.

sending_rules
required
string

Must be one of: all, specific_users, specific_course_users, specific_class_users, specific_portals.

course_ids
Array of strings

required_if:sending_rules,specific_course_users The list of course IDs if targeting specific course users.

portal_ids
Array of strings

required_if:sending_rules,specific_portals The list of portal IDs if targeting specific portals.

user_ids
Array of strings

required_if:sending_rules,specific_users The list of user IDs if targeting specific users.

portalId
integer

optional The portal ID for ownership context (nullable if -1).

Responses

Request samples

Content type
application/json
{
  • "id": 12,
  • "expiry": "2020-08-05",
  • "heading": "New Announcement",
  • "content": "The system will be down for maintenance tonight.",
  • "sending_rules": "specific_users",
  • "course_ids": [
    • 101,
    • 102
    ],
  • "portal_ids": [
    • 201,
    • 202
    ],
  • "user_ids": [
    • 1,
    • 2,
    • 3
    ],
  • "portalId": 5
}

Response samples

Content type
application/json
{
  • "id": 45,
  • "message": "Announcement Updated Successfully"
}

Retrieve Announcement

Retrieves the details of the specified announcement. Helps in fetching announcement using its ID. (See Parameters)

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "heading": "New Announcement",
  • "content": "This is for test purpose",
  • "sending_rules": "all",
  • "expiry": "2020-08-05"
}

Delete Announcement

To delete an announcement, you need to use this request. Returns number of announcement deleted. (See Response)

Request Body schema: application/json
required
delete_ids
required
Array of strings

All announcement IDs which needs to be deleted.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "3 announcement(s) deleted "
}

Learner Announcement List

Returns all the announcement in list format in paginated mode. You can apply filter using search_param via heading of the announcements. These annoucement list will appear in learner panel(dashboard) not admin panel.

query Parameters
portalId
required
integer
Example: portalId=1

Portal ID.

page_size
required
integer
Example: page_size=5

Records per page.

page_number
required
integer
Example: page_number=1

Page number.

order_by
required
object
Example: colName=created_at&direction=desc

Order_by object.

search_param
required
object
Example: heading=

Search param object.

viewType
required
string
Example: viewType=self

View type.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 100,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "heading": "Announcement 1",
      • "author": "John Doe",
      • "content": "<p>This is an example of announcement content</p>",
      • "created_at": "21st Jan, 2020 12:00 PM"
      },
    • {
      • "id": 2,
      • "heading": "Announcement 2",
      • "author": "John Doe",
      • "content": "<p>This is an example of announcement content</p>",
      • "created_at": "21st Jan, 2020 12:00 PM"
      }
    ]
}

Assignments

An Assignment Module is a lesson module used as course content. Helps to perform CRUD operation to and for Assignments modules.

Assignment Modules Tabular List

Returns all the assignment modules in a tabular list format in paginated mode. You can apply filter using search_param via associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"associatedCourse":"","moduleName":""}

For searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "Assignment-1",
      • "slug": "assignment-1",
      • "type": "assignment",
      • "submissionType": "file",
      • "display_type": "File",
      • "totalPoints": 20,
      • "icon": "<i class=\"el-icon-document\"></i>",
      • "author": "Aom Staff",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "showMappedCourses": false,
      • "course_count": 1
      }
    ]
}

Create Assignment Module

Handles the creation of an assignment module as part of course content. Validates the request and saves a new module with the given parameters.

Request Body schema: application/json
required
name
required
string

Name of the assignment module.

content
required
string

Content for the assignment module.

totalPoints
integer

Points awarded for completing the assignment.

submission_type
required
string

Type of submission (text or file).

allowed_filetypes
string

Required if submission type is file.

isLocked
boolean

Indicates if the module is locked.

estimatedCompletion
nullable

Estimated time to complete the module.

estimationCompletedUnit
nullable

Unit of time estimation (e.g., minutes, hours).

Responses

Request samples

Content type
application/json
{
  • "name": "Essay on LMS",
  • "content": "An introduction to LMS.",
  • "totalPoints": 30,
  • "submission_type": "file",
  • "allowed_filetypes": "[\"pdf\", \"docx\"]",
  • "isLocked": true,
  • "estimatedCompletion": "90",
  • "estimationCompletedUnit": "minutes"
}

Response samples

Content type
application/json
{
  • "id": 5,
  • "message": "Module saved successfully"
}

Update Assignment Module

Updates the details of a specified assignment module. (See parameters) Assignment modules can be used in the course as course content.

path Parameters
id
required
string
Example: 6

ID of the assignment module.

Request Body schema: application/json
required
name
required
string

Name of the assignment module.

content
string

Content for the assignment modules that students will see.

totalPoints
integer

Total points a student can get by completing this assignment.

submission_type
required
string

Type for the assignment module(file based or text based). Submission type options: text or file.

allowed_filetypes
required
Array of strings

Allowed file types that will be submitted by the students when the submission_type is file.

isLocked
required
boolean

If true, the assignment is locked and students cannot submit it.

estimatedCompletion
nullable

Estimated time to complete the module.

estimationCompletedUnit
nullable

Unit of time estimation (e.g., minutes, hours).

Responses

Request samples

Content type
application/json
{
  • "name": "Getting Started",
  • "content": "<p>This is the updated short content here</p>",
  • "totalPoints": 20,
  • "submission_type": "file",
  • "allowed_filetypes": [
    • "pdf",
    • "docx"
    ],
  • "isLocked": true,
  • "estimatedCompletion": "90",
  • "estimationCompletedUnit": "minutes"
}

Response samples

Content type
application/json
{
  • "message": "Module updated successfully"
}

Retrieve Assignment Module

Retrieves the details of the specified assignment module using its ID. This includes the module's ID, name, slug, content, total points, submission type, allowed file types, estimated completion, and associated courses. If the module's details exist, it fetches additional information such as total points, submission type, lock status, and allowed file types.

path Parameters
id
required
string
Example: 6

ID of the assignment module.

Request Body schema: application/json
optional
id
required

The ID of the assignment module to fetch details for.

Responses

Request samples

Content type
application/json
{
  • "id": "qui"
}

Retrieve Detailed Assignment Module Info

Retrieves detailed information of an assignment module including course details, module details, and previous submissions. This function also checks if the module can be launched based on the current registration and updates the module's status if accessed.

query Parameters
portalId
integer
Example: portalId=1

ID of the portal for which the assignment is being submitted.

registrationId
required
string
Example: registrationId=1

ID of the course registration to which the module is attached.

moduleId
required
string
Example: moduleId=4

ID of the assignment module.

Responses

Response samples

Content type
application/json
{
  • "name": "Assignment 1",
  • "slug": "assignment-1",
  • "content": "<p>Example content</p>",
  • "courseName": "Course 1",
  • "min_time_spent": 120,
  • "totalPoints": 100,
  • "submissionType": "file",
  • "maxUploadSize": 50,
  • "allowedFileTypes": ".pdf,.docx",
  • "otherModules": [
    • {
      • "module_id": 1,
      • "name": "test",
      • "slug": "test",
      • "type": "text",
      • "icon": "<i class=\"el-icon-tickets\"></i>",
      • "is_locked": false,
      • "lock_reason": "",
      • "is_dripped": false,
      • "drip_message": "",
      • "is_current": false,
      • "status_row_id": 1,
      • "status": "Completed",
      • "started_on": "2020-08-03T10:02:33.000000Z",
      • "completed_on": "2020-08-03T10:02:41.000000Z",
      • "last_accessed_on": "8 hours ago",
      • "total_time_spent": {
        },
      • "completion_percentage": 100,
      • "no_of_times_accessed": 3
      },
    • {
      • "module_id": 4,
      • "name": "assign",
      • "slug": "assign",
      • "type": "assignment",
      • "icon": "<i class=\"el-icon-edit-outline\"></i>",
      • "is_locked": false,
      • "lock_reason": "",
      • "is_dripped": false,
      • "drip_message": "",
      • "is_current": true,
      • "status_row_id": -1,
      • "status": "Not Started",
      • "started_on": "",
      • "completed_on": "",
      • "last_accessed_on": "Never",
      • "total_time_spent": "",
      • "points_awarded": "",
      • "completion_percentage": 0,
      • "no_of_times_accessed": 0
      },
    • {
      • "module_id": 7,
      • "name": "First-quiz",
      • "slug": "first-quiz",
      • "type": "quiz",
      • "icon": "<i class=\"el-icon-discover\"></i>",
      • "is_locked": false,
      • "lock_reason": "",
      • "is_dripped": false,
      • "drip_message": "",
      • "is_current": false,
      • "status_row_id": -1,
      • "status": "Not Started",
      • "started_on": "",
      • "completed_on": "",
      • "last_accessed_on": "Never",
      • "total_time_spent": "",
      • "points_awarded": "",
      • "completion_percentage": 0,
      • "no_of_times_accessed": 0
      },
    • {
      • "module_id": 9,
      • "name": "My-video-lesson",
      • "slug": "my-video-lesson",
      • "type": "video",
      • "icon": "<i class=\"el-icon-video-play\"></i>",
      • "is_locked": false,
      • "lock_reason": "",
      • "is_dripped": false,
      • "drip_message": "",
      • "is_current": false,
      • "status_row_id": 4,
      • "status": "In Progress",
      • "started_on": "2020-08-10T20:04:14.000000Z",
      • "completed_on": null,
      • "last_accessed_on": "6 hours ago",
      • "total_time_spent": {
        },
      • "completion_percentage": 0,
      • "no_of_times_accessed": 1
      },
    • {
      • "module_id": 10,
      • "name": "Essay on LMS",
      • "slug": "essay-on-lms",
      • "type": "assignment",
      • "icon": "<i class=\"el-icon-edit-outline\"></i>",
      • "is_locked": false,
      • "lock_reason": "",
      • "is_dripped": false,
      • "drip_message": "",
      • "is_current": false,
      • "status_row_id": 5,
      • "status": "Completed",
      • "started_on": "2020-08-11T02:47:32.000000Z",
      • "completed_on": "2020-08-11T02:47:32.000000Z",
      • "last_accessed_on": "46 seconds ago",
      • "total_time_spent": {
        },
      • "completion_percentage": 100,
      • "no_of_times_accessed": 1
      }
    ],
  • "launchCheck": {
    • "canbeLaunched": true,
    • "errTitle": "",
    • "errDesc": ""
    },
  • "prevSlug": "previous-assignment",
  • "nextSlug": "next-assignment",
  • "status": "In Progress",
  • "display_status": "In Progress",
  • "statusRowId": 5,
  • "timeSpent": 30,
  • "prevSubmission": [ ],
  • "timeToBeSpent": 2
}

Retrieve Assignment Submission Details

Retrieves the submission details of the assigment the student have given. Helps in grading a student. (See Response)

query Parameters
statusRowId
required
string
Example: statusRowId=1

ID of the Module status of the current assignment.

Responses

Response samples

Content type
application/json
{
  • "courseId": 1,
  • "courseName": "course 1",
  • "assignmentName": "assign",
  • "status": "In Progress",
  • "content": "Desc",
  • "totalPoints": 50,
  • "userFullName": "Aom Staff",
  • "userEmail": "[email protected]",
  • "submissions": [
    • {
      • "id": 1,
      • "file_path": [
        ],
      • "student_message": null,
      • "instructor_message": null,
      • "points_awarded": null,
      • "evaluated_by": "",
      • "submitted_on": "Aug 10, 2020 11:33 AM",
      • "evaluated_on": ""
      }
    ]
}

Submit Assignment

Submits the assignment after attempting all the aspects of the assignment.Updates the status of assignment to submitted if student is finished the assignment and submits. (See Parameters)

Request Body schema: application/json
optional
portalId
integer

ID of the portal for which the assignment is being submitted.

statusRowId
required

ID of the Module status of the current assignment.

submissions
required

Submission data(file or text).

studentMessage
required

Student message to instructor.

Responses

Request samples

Content type
application/json
{
  • "portalId": 1,
  • "statusRowId": "7",
  • "submissions": "[1,2,3]",
  • "studentMessage": "\"This is my assignment submission\""
}

Response samples

Content type
application/json
{
  • "message": "Assignment submitted successfully"
}

Upload Assignment File

Handles the upload of an assignment file by students. You can use File form to upload a file to the system.

Request Body schema: application/json
required
file
required
string

File to be uploaded for current assignment.

Responses

Request samples

Content type
application/json
{
  • "file": "aliquam"
}

Response samples

Content type
application/json

Evaluate Assignment

Evaluates the assignment from Instructor side.Updates the status of assignment to completed if Instructor thinks student's submission is upto the marks. (See Parameters)

Request Body schema: application/json
optional
portalId
integer

ID of the portal for which the assignment is being submitted.

statusRowId
required

ID of the Module status of the current assignment.

evaluation
required

Evaluation data by the Instructor(Completed or not).

Responses

Request samples

Content type
application/json
{
  • "portalId": 1,
  • "statusRowId": "7",
  • "evaluation": "{instructorMessage : 'You comments look good', pointsAwarded: '50', isAccepted : true }"
}

Response samples

Content type
application/json
{
  • "message": "Assignment evaluated successfully"
}

Audit Logs

It allows you to track the user activity in the LMS.

Get Audit Activities

Fetches and paginates a list of audit log activities for the selected portal and date range. Supports filtering by user, activity type, date range, and model (performedOn). Also allows sorting.

query Parameters
portalId
integer
Example: portalId=5

optional Filter activities based on a specific portal and its sub-portals.

page_size
required
integer
Example: page_size=10

Number of records per page.

page_number
required
integer
Example: page_number=1

The current page number.

order_by
object
Example: colName=created_at&direction=desc

optional Sorting details as a JSON object with colName and direction.

search_param
string
Example: search_param={"user_id":3,"activityName":"created","dates":["2024-12-01","2024-12-31"],"performedOn":"Course"}

optional JSON-encoded object containing search filters (user_id, activityName, dates, performedOn).

context
string
Example: context=admin

optional Custom context passed from frontend (not used internally).

selectedMonth
required
string
Example: selectedMonth=03-2024

The selected month (in m-Y format) used to determine the date range for filtering.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 135,
  • "recordsFiltered": 23,
  • "records": [
    • {
      • "performed_by": "Jane Doe",
      • "effect_on": "Course",
      • "subject": "Course: Laravel Basics",
      • "action": "CREATED",
      • "created_at": "13 Apr 2025 02:45 PM",
      • "details": {
        }
      }
    ],
  • "performedOnList": [
    • "Course",
    • "Module",
    • "User"
    ]
}

Audit Activity Lookup

Retrieves all the activities performed by the user. This is a lookup request that helps in showing options in dropdowns elements.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "login",
    • "display_value": "LOGIN"
    },
  • {
    • "db_value": "created",
    • "display_value": "CREATED"
    },
  • {
    • "db_value": "updated",
    • "display_value": "UPDATED"
    },
  • {
    • "db_value": "deleted",
    • "display_value": "DELETED"
    }
]

Badge

Endpoints for handling and managing Gamification badges

Get a tabular list of badges, with pagination and search

query Parameters
page_size
integer
Example: page_size=50

Number of records to return per page.

page_number
integer
Example: page_number=1

Page number to return.

order_by
object
Example:

Sort the results by the given column and direction. e.g. {colName: 'title', direction: 'asc'}

search_param
object
Example:

Search for records with the given parameters. e.g. {title: 'test'}

Responses

Response samples

Content type
application/json
{}

Create a new badge

Request Body schema: application/json
optional
title
required

string The title of the badge.

points
required

numeric The number of points the badge is worth.

badgeIconUrl
required

string The URL of the icon for the badge.

defaultIconUrl
nullable

string The default icon URL to use if the badgeIconUrl is not available.

organizationId
nullable

string The ID of the organization the badge belongs to.

Responses

Request samples

Content type
application/json
{
  • "title": "Gold",
  • "points": "1",
  • "badgeIconUrl": "/images/badges/Badge_1.png",
  • "defaultIconUrl": "/images/default-badge.png",
  • "organizationId": "97852067"
}

Response samples

Content type
application/json
{
  • "id": 3,
  • "message": "Badge created successfully"
}

Return default badges available in the system.

These badges are not stored in the database and are available for use as soon as the application is installed.

Responses

Response samples

Content type
application/json
{
  • "value": "Badge 1",
  • "url": "/images/badges/Badge_1.png"
}

Retrieve a badge by its ID.

path Parameters
id
required
string
Example: 1

ID of the badge needs to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "Gold",
  • "points": 1,
  • "organizationId": "97852067",
  • "badgeIconUrl": "/images/badges/Badge_1.png"
}

Update an existing badge by its ID.

path Parameters
id
required
string
Example: 1

ID of the badge needs to be retrieved.

Request Body schema: application/json
optional
title
required

string The title of the badge.

points
nullable

numeric The number of points the badge is worth.

badgeIconUrl
required

string The URL of the icon for the badge.

defaultIconUrl
nullable

string The default icon URL to use if the badgeIconUrl is not available.

organizationId
nullable

string The ID of the organization the badge belongs to.

Responses

Request samples

Content type
application/json
{
  • "title": "Gold",
  • "points": "1",
  • "badgeIconUrl": "/images/badges/Badge_1.png",
  • "defaultIconUrl": "/images/default-badge.png",
  • "organizationId": "97852067"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Badge updated successfully"
}

Delete specified badges.

Deletes badges that are not assigned to any users and not used in gamification events. Logs an activity for each deleted badge.

Request Body schema: application/json
required
delete_ids
required
Array of strings

An array of badge IDs to be deleted. The IDs must have permission to be deleted.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "1 badge(s) deleted. 0 badge(s) not deleted as they are assigned to users. 0 badge(s) not deleted as they are used in gamification events."
}

Categories

Categories represents Course category, Product category, Question category. Helps performimg operations in all these models.

Product Category Lookup

Retrieves all the product categories. This request helps in showing all product categories in form elements like dropdown, etc. Returns ID and name of the product category.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Product Category 1"
    }
]

Course Category Lookup

Retrieves all categories of the courses. If courseIds is provided, it will filter the categories for those courses. If categoryIds is provided, it will filter the categories with those IDs. Returns name and id of the category.

query Parameters
array
string
Example: array=[1,2]

categoryIds The IDs of the categories to filter.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Category 1"
}

Module Category Lookup

Retrieves all categories of the modules. Returns name and id of the category.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Category 1"
}

Question Category Lookup

Retrieves all the categories of the questions user has ever created. This request helps in showing all question categories in form elements like dropdown, etc. Returns ID and name of the question category.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 4,
    • "name": "Question-cat"
    }
]

User Category Lookup

Retrieves all the categories of the users user has ever created. This request helps in showing all user categories in form elements like dropdown, etc. Returns ID and name of the user category.

query Parameters
search_term
string
Example: search_term=numquam

optional The name or substring of the user category name to search for that user category. example: user

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "User Category 1"
    }
]

Learning Path Category Lookup

Retrieves all the categories of the learning paths user has ever created. This request helps in showing all learning path categories in form elements like dropdown, etc. Returns ID and name of the learning path category.

query Parameters
search_term
string
Example: search_term=sed

optional The name or substring of the learning path category name to search for that learning path category. example: learning

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Learning Path Category 1"
    }
]

Course Category Tabular List

Returns all the course categories in a tabular list format in paginated mode. You can apply filter using search_param via categoryName.

query Parameters
page_size
required
string
Example: page_size=9

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"categoryName":""}

For searching items based on category name.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 4,
  • "recordsFiltered": 3,
  • "records": [
    • {
      • "id": 3,
      • "name": "superman_postman",
      • "author": "Client Admin",
      • "count": 0,
      • "created_at": "Aug 10, 2020 12:43 PM"
      },
    • {
      • "id": 2,
      • "name": "category-new",
      • "author": "Aom Staff",
      • "count": 0,
      • "created_at": "Aug 10, 2020 12:37 PM"
      },
    • {
      • "id": 1,
      • "name": "Category-1",
      • "author": "Aom Staff",
      • "count": 1,
      • "created_at": "Aug 09, 2020 06:20 PM"
      }
    ]
}

Module Category Tabular List

Returns all the module categories in a tabular list format in paginated mode. You can apply a filter using search_param via categoryName.

query Parameters
page_size
required
string
Example: page_size=9

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"categoryName":""}

For searching items based on category name.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 4,
  • "recordsFiltered": 2,
  • "records": [
    • {
      • "id": 1,
      • "name": "module-category-1",
      • "author": "Aom Staff",
      • "count": 3,
      • "created_at": "Aug 10, 2020 12:43 PM"
      },
    • {
      • "id": 2,
      • "name": "module-category-2",
      • "author": "Client Admin",
      • "count": 1,
      • "created_at": "Aug 09, 2020 06:20 PM"
      }
    ]
}

Product Category Tabular List

Returns all the product categories in a tabular list format in paginated mode. You can apply a filter using search_param via categoryName.

query Parameters
page_size
required
string
Example: page_size=9

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"categoryName":""}

For searching items based on category name.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 2,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 2,
      • "name": "product memberships",
      • "author": "Aom Staff",
      • "count": 1,
      • "created_at": "May 10, 2022 03:39 AM"
      }
    ]
}

Question Category Tabular List

Returns all the question categories in a tabular list format in paginated mode. You can apply filter using search_param via categoryName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"categoryName":""}

For searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 3,
  • "recordsFiltered": 3,
  • "records": [
    • {
      • "id": 1,
      • "name": "Question Category-1",
      • "author": "Aom Staff",
      • "count": 4,
      • "created_at": "Aug 10, 2020 12:43 PM"
      },
    • {
      • "id": 2,
      • "name": "Question Category-2",
      • "author": "Client Admin",
      • "count": 2,
      • "created_at": "Aug 09, 2020 06:20 PM"
      },
    • {
      • "id": 3,
      • "name": "Question Category-3",
      • "author": "Aom Staff",
      • "count": 1,
      • "created_at": "Aug 10, 2020 06:34 PM"
      }
    ]
}

Create Category

Creates a new category using parameters mentioned. (See parameters) Creates the course/question/product category details using category name and category type.

Request Body schema: application/json
required
category_name
required
string

Name of the category.

categoryType
required
string

Type of the category to be created.

Responses

Request samples

Content type
application/json
{
  • "category_name": "category-new",
  • "categoryType": "course"
}

Response samples

Content type
application/json
{
  • "message": "Category Created Successfully"
}

Update Category

Updates a category using parameters mentioned. (See parameters) Updates the course/question/product category details using category name and category type.

path Parameters
id
required
string
Example: 3

ID of the category.

Request Body schema: application/json
required
category_name
required
string

Name of the category.

categoryType
required
string

Type of the category to be updated.

Responses

Request samples

Content type
application/json
{
  • "category_name": "category-new",
  • "categoryType": "course"
}

Response samples

Content type
application/json
{
  • "message": "Category Updated Successfully"
}

Get Category

Retrieves a category by its ID.

path Parameters
id
required
string
Example: 3

ID of the category.

Responses

Response samples

Content type
application/json
{
  • "id": 3,
  • "name": "superman_postman",
  • "type": "course",
  • "created_by": 2,
  • "updated_by": null,
  • "deleted_by": null,
  • "created_at": "2020-08-10 12:43:12",
  • "updated_at": "2020-08-10 12:56:37",
  • "deleted_at": null
}

Delete categories of given type

Request Body schema: application/json
optional
type
required

Type of category to be deleted.

delete_ids
required

Ids of categories to be deleted.

categoryName
required

Name of category to be deleted.

Responses

Request samples

Content type
application/json
{
  • "type": "question",
  • "delete_ids": "[1,2,3]",
  • "categoryName": "Question Category-1"
}

Response samples

Content type
application/json
{
  • "message": "3 category(s) deleted. 2 category(s) not deleted as it is used in dynamic quiz(s). Please remove the category from the quiz and try again.",
  • "deletedCategories": [
    • 4
    ],
  • "notDeletedCategories": [
    • 1,
    • 2
    ],
  • "usedInPlaces": [
    • {
      • "Question Category-1": [
        ]
      },
    • {
      • "Question Category-2": [
        ]
      }
    ]
}

Get the count of questions in a category

Get the count of questions in a category.

path Parameters
categoryId
required
string
Example: 1

The category id.

Responses

Response samples

Content type
application/json
{
  • "questionCount": 10
}

Learning Path Category Tabular List

Returns all the learning path categories in a tabular list format in paginated mode. You can apply a filter using search_param via categoryName.

query Parameters
page_size
required
string
Example: page_size=9

The number of the item you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"categoryName":""}

For searching items based on category name.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "learning path category 1",
      • "author": "Aom Staff",
      • "count": 1,
      • "created_at": "May 16, 2022 07:00 AM"
      }
    ]
}

Certificate Templates

A Certificate template is used to provide to learners. learners can achieve this award by completing the course. Helps in performing CRUD operations for and to certificates

Certificate Template Lookup

Returns all the certificate templates in a list format.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "cert 1"
}

Certificate Template Tabular List

Returns all the certificate templates in a tabular list format in paginated mode. You can apply filter using search_param via templateName(certificate template name) and courseId(course Id).

query Parameters
page_size
required
string
Example: page_size=50

The number of the item you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"templateName":"abc","courseId":"1"}

For searching items based on Course category ids, course name.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "cert 1",
      • "slug": "cert-1",
      • "status": "publish",
      • "categories": "",
      • "author": "Aom Staff",
      • "created_at": "03 Aug 2020 09:08 AM"
      }
    ]
}

Quick Edit Certificate Templates

Updates the instructor/author for the selected certificate templates.

Request Body schema: application/json
optional
template_ids
required

array The list of ids of the certificate templates you want to perform the action on.

author_id
required

integer The ID of the new instructor/author.

Responses

Request samples

Content type
application/json
{
  • "template_ids": "explicabo",
  • "author_id": "commodi"
}

Response samples

Content type
application/json
{
  • "message": "Certificate Templates updated Successfully"
}

Field Keys Lookup

Retrieves all the fields that can be available on the certificate template. Helps while showing fields in form elements like dropdown while creating certificate template. Returns a list of all fields that can be used on the certificate template. (See Response)

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "student_first_name",
    • "display_value": "Student First Name"
    },
  • {
    • "db_value": "student_last_name",
    • "display_value": "Student Last Name"
    },
  • {
    • "db_value": "student_full_name",
    • "display_value": "Student Full Name"
    },
  • {
    • "db_value": "course_name",
    • "display_value": "Course Name"
    },
  • {
    • "db_value": "issue_date",
    • "display_value": "Date of Issue"
    },
  • {
    • "db_value": "expiry_date",
    • "display_value": "Date of Expiry"
    },
  • {
    • "db_value": "instructor_name",
    • "display_value": "Instructor Name"
    },
  • {
    • "db_value": "certificate_code",
    • "display_value": "Certificate Code"
    },
  • {
    • "db_value": "course_credit",
    • "display_value": "Course Credit"
    },
  • {
    • "db_value": "learning_path_name",
    • "display_value": "Learning Path Name"
    },
  • {
    • "db_value": "learning_path_credit",
    • "display_value": "Learning Path Credit"
    },
  • {
    • "db_value": "custom_text",
    • "display_value": "Custom Text"
    }
]

Font Families Lookup

Retrieves all the font families that can be used on the certificate template. Helps while showing font families in form elements like dropdown while creating certificate template. Returns a list of all font families that can be used on the certificate template. (See Response)

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "Lato",
    • "display_value": "Arial",
    • "is_selected": "true"
    },
  • {
    • "db_value": "Courier",
    • "display_value": "Courier"
    },
  • {
    • "db_value": "Source Sans Pro",
    • "display_value": "Helvetica"
    },
  • {
    • "db_value": "Montserrat",
    • "display_value": "Montserrat"
    },
  • {
    • "db_value": "Roboto Condensed",
    • "display_value": "Roboto"
    },
  • {
    • "db_value": "Space Mono",
    • "display_value": "Space Mono"
    },
  • {
    • "db_value": "Roboto Slab",
    • "display_value": "Roboto Slab"
    }
]

Create Certificate Template

Creates a new certificate template and stores it in the database. The template can be used to assign to students upon course completion.

Request Body schema: application/json
required
name
required
string

The name of the certificate template.

organization_id
integer

optional The ID of the organization associated with the certificate template.

bg_url
string

optional The URL of the background image for the certificate template.

height
required
integer

The height of the certificate template.

width
required
integer

The width of the certificate template.

fields
required
Array of strings

The array of fields to be included in the certificate. Each field contains its properties like key, font size, font family, etc.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": 2,
  • "message": "Certificate Template created successfully"
}

Retrieves a single certificate template.

Returns a single certificate template based on the id provided. (See Response)

path Parameters
id
required
string
Example: facilis

The ID of the certificate template.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Completion-Certificate",
  • "organization_id": 1,
  • "height": 680,
  • "width": 1075,
  • "fields": [
    • {
      • "key": "course_name",
      • "value": "Course Name",
      • "font_size": 20,
      • "font_family": "Arial",
      • "font_color": "#222",
      • "top": 432,
      • "left": 469,
      • "align_center": false,
      • "width": 200,
      • "height": 40
      }
    ]
}

Update Certificate Template

Updates the details of a specified certificate template.

path Parameters
id
required
string
Example: facilis

The ID of the certificate template.

Request Body schema: application/json
required
name
required
string

The name of the certificate template.

organization_id
integer

optional The ID of the organization associated with the certificate template.

bg_url
string

optional The URL of the background image for the certificate template.

height
required
integer

The height of the certificate template.

width
required
integer

The width of the certificate template.

fields
required
Array of strings

The array of fields to be included in the certificate. Each field contains its properties like key, font size, font family, etc.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "Certificate Template updated successfully"
}

Preview Certificate Template

Allows users to preview a certificate template by downloading it with demo data. Simulates 100% completion and marks the text module as completed.

path Parameters
id
required
string
Example: 2

The ID of the certificate template.

Responses

Deletes a certificate template or multiple templates.

Request Body schema: application/json
required
delete_ids
required
string

The IDs of the certificate templates to be deleted.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": "[1,2,3]"
}

Clone Certificate Template

Clones the selected certificate template to create a new one with same settings. The new template name is set as "_copy"

Request Body schema: application/json
optional
templateId
required

integer The ID of the certificate template you want to clone.

Responses

Request samples

Content type
application/json
{
  • "templateId": "porro"
}

Response samples

Content type
application/json
{
  • "message": "Certificate Template Cloned Successfully"
}

Courses

You can perform operations like create, edit, delete on courses and its contents.

Load Course Rating Details

Retrieves the course ratings with details. The response includes course name, course ID, rating, reviews, user ID, user display name, user avatar, and submission date.

query Parameters
page_size
required
string
Example: page_size=10

Number of records to return per page.

page_number
required
string
Example: page_number=1

Current page number.

courseIds
required
string
Example: courseIds=[1,2,3]

An array of course IDs to filter the ratings by.

Responses

Response samples

Content type
application/json
{
  • "ratings": [
    • {
      • "id": 1,
      • "courseName": "Course 1",
      • "courseId": 1,
      • "rating": 4.5,
      • "userId": 1,
      • "reviews": "This is a sample review",
      • "userDisplayName": "John Doe",
      • "avatar": "<svg...>",
      • "submissionDate": "Feb 2020"
      }
    ],
  • "total": 20,
  • "recordsFiltered": 10
}

Retrieve course curriculum details

Retrieves the course curriculum details given a set of course IDs. The response includes course name, modules, and sections.

query Parameters
courseIds
required
string
Example: courseIds=placeat

An array of course IDs to retrieve their curriculum details. example: [1,2,3]

Responses

Response samples

Content type
application/json
[
  • {
    • "name": "Course 1",
    • "modules": [
      • {
        },
      • {
        }
      ]
    }
]

Tabular List

Retrieves all the courses in a tabular list format with pagination mode. You can apply filter using search_param via courseName, courseCategoryIds and status.

query Parameters
page_size
required
string
Example: page_size=10

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"courseCategoryIds": [1,2], "courseName": "", "status": "DRAFT"}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "Test Course",
      • "slug": "test-course",
      • "status": "DRAFT",
      • "display_status": "Draft",
      • "categories": "Category 1, Category 2",
      • "author": "John Doe",
      • "created_at": "Aug 26, 2020 12:00 AM",
      • "certificate_template_id": 1,
      • "accredible_group_id": [ ]
      }
    ]
}

Dropdown List

Retrieves all the courses in a dropdown format in paginated mode. You can apply filter using portal_id via query param.

query Parameters
portalId
integer
Example: portalId=5

The portal ID used for additional filtering.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Course 1"
    },
  • {
    • "id": 2,
    • "name": "Course 2"
    }
]

Enrolled Learners

Retrieves all enrolled students for a course.

query Parameters
course_id
required
string
Example: course_id=1

The ID of course.

portalId
required
string
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

page_size
required
string
Example: page_size=10

Number of the results you want in each page.

page_number
required
string
Example: page_number=1

Current Page number.

order_by
string
Example: order_by=registered_on

Returns details in some order.

search_param
string
Example: search_param={"status":["Not Started","In Progress"],"nameOrEmail":"John Doe"}

Search parameters related to course.

Responses

Response samples

Content type
application/json
{
  • "courseName": "course 1",
  • "recordsTotal": 12,
  • "totalNotStarted": 3,
  • "totalInProgress": 4,
  • "totalCompleted": 5,
  • "recordsFiltered": 12,
  • "records": [
    • {
      • "id": 1,
      • "user_id": 2,
      • "first_name": "John",
      • "last_name": "Doe",
      • "email": "[email protected]",
      • "status": "Not Started",
      • "display_status": "Not Started",
      • "percentComplete": 0,
      • "access_status": "Allowed",
      • "registered_on": "Aug 09, 2020",
      • "started_on": "",
      • "completed_on": "",
      • "expire_on": "Never",
      • "last_accessed_on": "Never",
      • "certificate_count": 0,
      • "user_type": "Learner",
      • "raw_user_type": "learner"
      }
    ]
}

Retrieve the list of webinars for a given course

This API retrieves the list of webinars for a given course ID. The response includes the webinar name, start date, end date, duration, location, instructor, and other relevant information.

path Parameters
course_id
required
string
Example: 1

The ID of the course to retrieve webinars for.

query Parameters
search_param
string
Example: search_param={"dates": ["2020-07-01", "2020-07-31"]}

JSON object containing search parameters.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Webinar 1",
    • "startDate": "2020-07-01",
    • "endDate": "2020-07-01",
    • "duration": "1 hour",
    • "location": "New York",
    • "instructor": "John Doe"
    },
  • {
    • "id": 2,
    • "name": "Webinar 2",
    • "startDate": "2020-07-01",
    • "endDate": "2020-07-01",
    • "duration": "1 hour",
    • "location": "New York",
    • "instructor": "Jane Doe"
    }
]

Retrieve the list of learning resources for a given course

This API retrieves the list of learning resources for a given course ID. The response includes the learning resource name, type, file name, file type, status, s3_url, mux_url, mux_id, bunny_video_id, bunny_video_url, mime_type, created at.

path Parameters
course_id
required
string
Example: 1

The ID of the course to retrieve learning resources for.

query Parameters
search_param
string
Example: search_param={}

JSON object containing search parameters.

Responses

Response samples

Content type
application/json
[]

Retrieves all the submissions for all the courses a user is enrolled in, for a given portal

query Parameters
page_size
required
integer
Example: page_size=10

Number of results per page.

page_number
required
integer
Example: page_number=1

The current page number.

order_by
object
Example: column=name&direction=asc

JSON object specifying the column and direction to sort by.

search_param
object
Example: name=John Doe&type=assignment&status=Submitted

JSON object containing search criteria.

portalId
required
integer
Example: portalId=5

ID of the portal to filter results.

Responses

Response samples

Content type
application/json
{}

Retrieves all the submissions for all the courses a user is enrolled in, for a given portal

query Parameters
page_size
required
integer
Example: page_size=10

Number of results per page.

page_number
required
integer
Example: page_number=1

The current page number.

order_by
object
Example: column=name&direction=asc

JSON object specifying the column and direction to sort by.

search_param
object
Example: name=Course Name

JSON object containing search criteria.

portalId
required
integer
Example: portalId=5

ID of the portal to filter results.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "totalPending": 5,
  • "records": [
    • {
      • "course_name": "Course 1",
      • "status_row_id": 1,
      • "module_id": 1,
      • "module_name": "Assignment 1",
      • "module_type": "assignment",
      • "module_status": "Submitted",
      • "first_name": "John",
      • "last_name": "Doe",
      • "email": "[email protected]",
      • "submission_id": 1,
      • "submitted_on": "2020-01-01"
      },
    • {
      • "course_name": "Course 2",
      • "status_row_id": 2,
      • "module_id": 2,
      • "module_name": "Discussion 1",
      • "module_type": "discussion",
      • "module_status": "Submitted",
      • "first_name": "Jane",
      • "last_name": "Doe",
      • "email": "[email protected]",
      • "submission_id": 2,
      • "submitted_on": "2020-01-01"
      }
    ]
}

API to fetch LMS Overview Report

Request Body schema: application/json
required
searchPortalIds
required
Array of strings

Portal Ids

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "labels": [ ],
  • "totalNotStarted": [ ],
  • "totalInProgress": [ ],
  • "totalCompleted": [ ],
  • "percentageCompleted": [ ],
  • "sumNotStarted": 0,
  • "sumInProgress": 0,
  • "sumCompleted": 0,
  • "sumPercentageCompleted": 0
}

API to get Course Detail Report

Request Body schema: application/json
required
course_ids
required
Array of strings

The course ids to filter the report

page_size
required
integer

The number of records per page

page_number
required
integer

The page number to request

order_by
required
object

The column name and direction to order the report by

search_param
required
object

The search parameters to filter the report by

userCategoryId
required
integer

The user category id to filter the report by

registered_between
required
Array of strings

The date range to filter the report by

searchPortalIds
required
Array of strings

The portal ids to filter the report by

Responses

Request samples

Content type
application/json
{
  • "course_ids": [
    • "qui"
    ],
  • "page_size": 12,
  • "page_number": 12,
  • "order_by": [ ],
  • "search_param": [ ],
  • "userCategoryId": 18,
  • "registered_between": [
    • "mollitia"
    ],
  • "searchPortalIds": [
    • "sapiente"
    ]
}

Response samples

Content type
application/json
{
  • "recordsTotal": 0,
  • "totalNotStarted": 0,
  • "totalInProgress": 0,
  • "totalCompleted": 0,
  • "recordsFiltered": 0,
  • "records": [
    • {
      • "user_id": 0,
      • "course_id": 0,
      • "first_name": "",
      • "last_name": "",
      • "email": "",
      • "course_name": "",
      • "portal_name": "",
      • "status": "",
      • "display_status": "",
      • "percent_complete": 0,
      • "access_status": "",
      • "registered_on": "",
      • "started_on": "",
      • "completed_on": "",
      • "expire_on": "",
      • "last_accessed_on": "",
      • "percent_achieved": 0,
      • "total_time_spent": "",
      • "certifcate_issued": "",
      • "certifcate_count": "",
      • "certifcate_issued_date": "",
      • "certificate_expire": ""
      }
    ]
}

Get the list of custom user metas that needs to be printed on the Course Insight Export report

Responses

Retrieve Course Details

Fetches detailed information for a specific course, including metadata, modules, categories, learning paths, and associated resources.

path Parameters
id
required
string
Example: 1

The ID of the course to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Course Name",
  • "slug": "course-name",
  • "featuredImageUrl": "https://example.com/image.jpg",
  • "instructions": "Course instructions",
  • "credits": 3,
  • "estimatedCompletion": 10,
  • "estimationCompletedUnit": "hours",
  • "minPassingPercentage": 70,
  • "gradingRule": "average",
  • "durationRule": "fixed",
  • "durationSpecificDate": "2025-06-01",
  • "durationDays": 30,
  • "selectedBadgeId": 1,
  • "isBadgeSelected": "badge",
  • "points": 100,
  • "status": "published",
  • "certificateTemplates": [
    • 1,
    • 2
    ],
  • "associatedProduct": [ ],
  • "shopifyProducts": [
    • 101,
    • 102
    ],
  • "completionRedirectionUrl": "https://example.com/completion",
  • "certificateExpiresAfter": 365,
  • "certificateExpiresAfterGracePeriod": 30,
  • "accredibleGroupId": [
    • 5,
    • 6
    ],
  • "enableCourseRating": true,
  • "completionCriteria": "all_modules",
  • "hasAssociatedProduct": false,
  • "modules": [
    • {
      • "module_id": 1,
      • "display_order": 1,
      • "name": "Module Name",
      • "type": "text",
      • "icon": "<i class=\"el-icon-tickets\"></i>",
      • "is_locked": false,
      • "drip_rules": "immediately",
      • "drip_fixed_date": null,
      • "drip_interval": null,
      • "drip_interval_unit": "day",
      • "drip_calculation_reference": "registration_date",
      • "selectedModuleBadgeId": 1,
      • "modulePoints": 10,
      • "isModuleBadgeSelected": "badge",
      • "minSpentHour": 0,
      • "minSpentMinutes": 0
      }
    ],
  • "categories": [
    • 1,
    • 2
    ],
  • "gradeModules": [
    • 1,
    • 2
    ],
  • "selectedModules": [
    • 1,
    • -999
    ],
  • "learningPaths": [
    • {
      • "learning_path_id": 1,
      • "learning_path_name": "Learning Path Name"
      }
    ],
  • "learningResources": [ ],
  • "webinarList": [ ],
  • "selectedWebinars": [
    • -999
    ]
}

Update Course Details

Use this endpoint to update a course's settings, including curriculum, certification, grading, duration, and other metadata.

path Parameters
id
required
string
Example: 1

The ID of the course to retrieve.

Request Body schema: application/json
optional
name
string

The course title.

status
string

The course status (e.g., draft, published).

featuredImageUrl
string

URL of the course's featured image.

instructions
string

Additional instructions for the course.

credits
integer

Number of credits assigned to the course.

estimatedCompletion
integer

Estimated time to complete the course.

estimationCompletedUnit
string

Unit for estimated completion (e.g., hours, days).

minPassingPercentage
numeric

Minimum passing score percentage.

gradingRule
Array of strings

Rules for course grading.

durationRule
string

Type of duration rule.

durationSpecificDate
date

The specific date when course access ends (if applicable).

durationDays
integer

Number of days the course is accessible.

points
integer

Points rewarded upon completion.

certificateTemplates
integer

ID of the certificate template.

certificateExpiresAfter
integer

Certificate validity period in days.

certificateExpiresAfterGracePeriod
integer

Grace period after expiry in days.

completionRedirectionUrl
string

URL to redirect upon course completion.

enableCourseRating
boolean

Whether course rating is enabled.

completionCriteria
string

Criteria for course completion.

selectedModules
Array of strings

Selected module IDs.

selectedWebinars
Array of strings

Selected webinar IDs.

shopifyProducts
Array of strings

Shopify product IDs linked to the course.

learningResources
Array of strings

Associated learning resource IDs.

accredibleGroupId
integer

Accredible group ID for certification.

isBadgeSelected
string

Indicates if badge is selected. Should be 'badge' to use selectedBadgeId.

selectedBadgeId
integer

ID of the badge to be assigned if isBadgeSelected is 'badge'.

modules
Array of strings

The list of modules added to the course with section and drip settings. Each module object can contain the following:

  • module_id: integer ID of the module. Example: 1
  • name: string Name of the module. Example: "Introduction Text Module"
  • type: string Type of the module. Example: "text"
  • section_name: string Name of the section the module belongs to. Example: "Section 1"
  • is_locked: boolean Whether the module is locked. Example: false
  • modulePoints: integer Points assigned to the module. Example: 10
  • icon: string Icon HTML used for UI. Example: "<i class="el-icon-tickets">"
  • selectedModuleBadgeId: integer Badge ID assigned to the module. Example: 4
  • drip_rules: string Rule for content drip. Example: "immediately"
  • drip_interval: integer Interval before the module is unlocked. Example: 2
  • drip_interval_unit: string Unit of the interval (day/week/month). Example: "day"
  • drip_fixed_date: date Fixed date to unlock the module (if applicable). Example: "2025-01-01"
  • drip_calculation_reference: string Base date for drip logic (e.g., registration_date).

Responses

Request samples

Content type
application/json
{
  • "name": "\"Professional Development and Training\"",
  • "status": "\"published\"",
  • "featuredImageUrl": "\"https://example.com/image.jpg\"",
  • "instructions": "\"Complete all modules.\"",
  • "credits": 3,
  • "estimatedCompletion": 10,
  • "estimationCompletedUnit": "\"hours\"",
  • "minPassingPercentage": "70",
  • "gradingRule": [
    • {
      • "type": "average",
      • "weight": 50
      }
    ],
  • "durationRule": "\"fixed\"",
  • "durationSpecificDate": "\"2025-06-01\"",
  • "durationDays": 30,
  • "points": 100,
  • "certificateTemplates": 2,
  • "certificateExpiresAfter": 365,
  • "certificateExpiresAfterGracePeriod": 30,
  • "completionRedirectionUrl": "\"https://example.com/congrats\"",
  • "enableCourseRating": true,
  • "completionCriteria": "\"all_modules\"",
  • "selectedModules": [
    • 1,
    • 3,
    • 5
    ],
  • "selectedWebinars": [
    • 10,
    • 11
    ],
  • "shopifyProducts": [
    • 101,
    • 102
    ],
  • "learningResources": [
    • 201,
    • 202
    ],
  • "accredibleGroupId": 55,
  • "isBadgeSelected": "\"badge\"",
  • "selectedBadgeId": 7,
  • "modules": "registration_date"
}

Response samples

Content type
application/json
{
  • "message": "Course updated successfully"
}

Save Course

Creates or updates a course with associated modules, categories, certificates, webinars, and settings. This endpoint handles both draft and publish modes. It validates different fields based on the mode. In draft mode, only the course name is required. In publish mode, full validation is enforced including modules, certificates, completion criteria, badges, and grading settings.

It also links categories (creating new ones if needed), associates selected certificate templates, handles Shopify product mappings, and processes webinar integrations.

path Parameters
id
required
string
Example: 1

The ID of the course to be updated.

Request Body schema: application/json
optional
name
string

The course title.

status
string

The course status (e.g., draft, published).

featuredImageUrl
string

URL of the course's featured image.

instructions
string

Additional instructions for the course.

credits
integer

Number of credits assigned to the course.

estimatedCompletion
integer

Estimated time to complete the course.

estimationCompletedUnit
string

Unit for estimated completion (e.g., hours, days).

minPassingPercentage
numeric

Minimum passing score percentage.

gradingRule
Array of strings

Rules for course grading.

durationRule
string

Type of duration rule.

durationSpecificDate
date

The specific date when course access ends (if applicable).

durationDays
integer

Number of days the course is accessible.

points
integer

Points rewarded upon completion.

certificateTemplates
integer

ID of the certificate template.

certificateExpiresAfter
integer

Certificate validity period in days.

certificateExpiresAfterGracePeriod
integer

Grace period after expiry in days.

completionRedirectionUrl
string

URL to redirect upon course completion.

enableCourseRating
boolean

Whether course rating is enabled.

completionCriteria
string

Criteria for course completion.

selectedModules
Array of strings

Selected module IDs.

selectedWebinars
Array of strings

Selected webinar IDs.

shopifyProducts
Array of strings

Shopify product IDs linked to the course.

learningResources
Array of strings

Associated learning resource IDs.

accredibleGroupId
integer

Accredible group ID for certification.

isBadgeSelected
string

Indicates if badge is selected. Should be 'badge' to use selectedBadgeId.

selectedBadgeId
integer

ID of the badge to be assigned if isBadgeSelected is 'badge'.

modules
Array of strings

The list of modules added to the course with section and drip settings. Each module object can contain the following:

  • module_id: integer ID of the module. Example: 1
  • name: string Name of the module. Example: "Introduction Text Module"
  • type: string Type of the module. Example: "text"
  • section_name: string Name of the section the module belongs to. Example: "Section 1"
  • is_locked: boolean Whether the module is locked. Example: false
  • modulePoints: integer Points assigned to the module. Example: 10
  • icon: string Icon HTML used for UI. Example: "<i class="el-icon-tickets">"
  • selectedModuleBadgeId: integer Badge ID assigned to the module. Example: 4
  • drip_rules: string Rule for content drip. Example: "immediately"
  • drip_interval: integer Interval before the module is unlocked. Example: 2
  • drip_interval_unit: string Unit of the interval (day/week/month). Example: "day"
  • drip_fixed_date: date Fixed date to unlock the module (if applicable). Example: "2025-01-01"
  • drip_calculation_reference: string Base date for drip logic (e.g., registration_date).

Request samples

Content type
application/json
{
  • "name": "\"Professional Development and Training\"",
  • "status": "\"published\"",
  • "featuredImageUrl": "\"https://example.com/image.jpg\"",
  • "instructions": "\"Complete all modules.\"",
  • "credits": 3,
  • "estimatedCompletion": 10,
  • "estimationCompletedUnit": "\"hours\"",
  • "minPassingPercentage": "70",
  • "gradingRule": [
    • {
      • "type": "average",
      • "weight": 50
      }
    ],
  • "durationRule": "\"fixed\"",
  • "durationSpecificDate": "\"2025-06-01\"",
  • "durationDays": 30,
  • "points": 100,
  • "certificateTemplates": 2,
  • "certificateExpiresAfter": 365,
  • "certificateExpiresAfterGracePeriod": 30,
  • "completionRedirectionUrl": "\"https://example.com/congrats\"",
  • "enableCourseRating": true,
  • "completionCriteria": "\"all_modules\"",
  • "selectedModules": [
    • 1,
    • 3,
    • 5
    ],
  • "selectedWebinars": [
    • 10,
    • 11
    ],
  • "shopifyProducts": [
    • 101,
    • 102
    ],
  • "learningResources": [
    • 201,
    • 202
    ],
  • "accredibleGroupId": 55,
  • "isBadgeSelected": "\"badge\"",
  • "selectedBadgeId": 7,
  • "modules": [
    • "consequatur"
    ]
}

Course Lookup

Retrieves the courses matching the search term provided in the request. If the portalId is provided, it will fetch courses which are attached to the portal. If the type is report, it will fetch all the courses attached to the membership and the courses attached to the learning path attached to the portal as well.

query Parameters
search_term
required
string
Example: search_term=course 1

The search term to search for courses.

portalId
required
string
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

type
string
Example: type=report

optional The type of the call.

Responses

Response samples

Content type
application/json
[
  • {
    • "value": 1,
    • "label": "course 1"
    },
  • {
    • "value": 2,
    • "label": "course 2"
    }
]

Deletes courses

Request Body schema: application/json
required
delete_ids
required
Array of strings

The course IDs to delete.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "3 course(s) deleted, 2 course(s) not deleted as it has enrollments. Please remove the students from the course and try again.",
  • "deletedCourses": [
    • 1,
    • 2
    ],
  • "notDeletedCourses": [
    • 3,
    • 4
    ],
  • "enrolledCourses": [
    • {
      • "id": 3,
      • "name": "Course 3"
      },
    • {
      • "id": 4,
      • "name": "Course 4"
      }
    ],
  • "notDeletedProductCourses": [
    • 1,
    • 3
    ],
  • "productCourses": {
    • "Course 1": [
      • {
        }
      ],
    • "Course 3": [
      • {
        }
      ]
    },
  • "notDeletedAutoEnrolledCourses": [
    • 2
    ],
  • "autoEnrolledCourses": [
    • {
      • "courseId": 2,
      • "courseName": "Course 2"
      }
    ],
  • "notDeletedLearningPathCourses": [
    • 4
    ],
  • "learningPathCourses": {
    • "Course 4": [
      • {
        }
      ]
    },
  • "notDeletedPortalCourses": [
    • 1
    ],
  • "portalCourses": {
    • "Course 1": [
      • {
        }
      ]
    }
}

Quick Edit

Updates the details of specified courses in bulk. The parameters to be updated are provided in the request.

Request Body schema: application/json
required
course_ids
required
Array of strings

IDs of the courses to be updated.

author_id
integer

ID of the new instructor/author for the specified courses.

categories_id
Array of strings

IDs of the categories to update the specified courses with.

Responses

Request samples

Content type
application/json
{
  • "course_ids": [
    • 1,
    • 2
    ],
  • "author_id": 1,
  • "categories_id": [
    • 3,
    • 4
    ]
}

Response samples

Content type
application/json
{
  • "message": "Courses updated Successfully"
}

Drip Option Lookup

Retrieves all the options for the drip feature that the platform offers like Immediately, On a Fixed Date, At Fixed Intervals. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "options": [
      • {
        },
      • {
        },
      • {
        }
      ],
    • "intervals": [
      • {
        },
      • {
        },
      • {
        }
      ],
    • "calculation_ref": [
      • {
        },
      • {
        }
      ]
    }
]

Course Status Lookup

Retrieves all the statuses for a course the platform offers like Not Started, In Progress, Completed. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "Not Started",
    • "display_value": "Not Started"
    },
  • {
    • "db_value": "In Progress",
    • "display_value": "In Progress"
    },
  • {
    • "db_value": "Completed",
    • "display_value": "Completed"
    }
]

Grading Rules Lookup

Retrieves all the grading rules available for course creation. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "no_grading",
    • "display_value": "No Grading"
    },
  • {
    • "db_value": "avg_all_modules",
    • "display_value": "Average of all Quiz/Assignment/Discussions/Scorm"
    },
  • {
    • "db_value": "avg_specific_modules",
    • "display_value": "Average of specific Quiz/Assignment/Discussions/Scorm"
    }
]

Duration Rules Lookup

Retrieves all the duration rules for the courses. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "unlimited",
    • "display_value": "Unlimited"
    },
  • {
    • "db_value": "on_specific_date",
    • "display_value": "Till Specific Date"
    },
  • {
    • "db_value": "x_days_after_start",
    • "display_value": "Till X day(s) after a student starts the course"
    },
  • {
    • "db_value": "x_days_after_enrollment",
    • "display_value": "Till X day(s) after a student registers in the course"
    }
]

Retrieve Course Activities

Retrieves paginated activities for a specified course based on various parameters.

query Parameters
course_id
required
string
Example: course_id=1

The ID of the course.

page_size
required
string
Example: page_size=10

The number of activities you want in each page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction":"asc"}

JSON object to order the activities.

search_param
string
Example: search_param={"nameOrEmail":"John Doe"}

JSON object for searching activities by specific criteria.

context
string
Example: context="overview"

Context in which activities are retrieved.

portalId
string
Example: portalId=5

The portal ID to filter activities by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
{
  • "courseName": "course 1",
  • "featuredImage": null,
  • "recordsTotal": 40,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 10,
      • "verb": "ACCESSED",
      • "created_at": "Aug 03, 2020 10:07 AM",
      • "message": "Demo Student has accessed course 1",
      • "student": "Demo Student"
      },
    • {
      • "id": 9,
      • "verb": "ACHIEVED CERTIFICATE",
      • "created_at": "Aug 03, 2020 10:02 AM",
      • "message": "Demo Student has achieved certificate for course 1",
      • "student": "Demo Student"
      },
    • {
      • "id": 8,
      • "verb": "COMPLETED",
      • "created_at": "Aug 03, 2020 10:02 AM",
      • "message": "course 1 was completed",
      • "student": "Demo Student"
      },
    • {
      • "id": 7,
      • "verb": "COMPLETED",
      • "created_at": "Aug 03, 2020 10:02 AM",
      • "message": "course 1 was completed",
      • "student": "Demo Student"
      },
    • {
      • "id": 6,
      • "verb": "ACHIEVED CERTIFICATE",
      • "created_at": "Aug 03, 2020 10:02 AM",
      • "message": "Demo Student has achieved certificate for course 1",
      • "student": "Demo Student"
      },
    • {
      • "id": 5,
      • "verb": "COMPLETED",
      • "created_at": "Aug 03, 2020 10:02 AM",
      • "message": "course 1 was completed",
      • "student": "Demo Student"
      },
    • {
      • "id": 4,
      • "verb": "COMPLETED",
      • "created_at": "Aug 03, 2020 10:02 AM",
      • "message": "course 1 was completed",
      • "student": "Demo Student"
      },
    • {
      • "id": 3,
      • "verb": "STARTED",
      • "created_at": "Aug 03, 2020 10:02 AM",
      • "message": "Demo Student has started test",
      • "student": "Demo Student"
      },
    • {
      • "id": 2,
      • "verb": "STARTED",
      • "created_at": "Aug 03, 2020 10:01 AM",
      • "message": "Demo Student has started course 1",
      • "student": "Demo Student"
      },
    • {
      • "id": 1,
      • "verb": "ENROLLED",
      • "created_at": "Aug 03, 2020 10:00 AM",
      • "message": "Demo Student is enrolled to course 1",
      • "student": "Demo Student"
      }
    ]
}

Retrieves the course details for given course ID and user ID

path Parameters
id
required
string
Example: 1

Course registration ID for the student of the course you want to see progress.

query Parameters
userId
required
string
Example: userId=3

ID of the user.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "course 1",
  • "course_id": 1,
  • "userId": 3,
  • "userName": "John Doe",
  • "email": "[email protected]",
  • "featuredImageUrl": null,
  • "status": "Not Started",
  • "completionPercentage": 0,
  • "enrollmentDate": "2020-08-03T10:00:00.000000Z",
  • "expiryDate": "2020-08-04T10:00:00.000000Z",
  • "completionDate": null,
  • "startDate": null,
  • "lastAccessed": null,
  • "modules": [
    • {
      • "module_id": 1,
      • "name": "test",
      • "slug": "test",
      • "type": "text",
      • "icon": "<i class=\"el-icon-tickets\"></i>",
      • "status_row_id": -1,
      • "status": "Not Started",
      • "started_on": null,
      • "completed_on": null,
      • "last_accessed_on": null,
      • "total_time_spent": null,
      • "completion_percentage": 0,
      • "no_of_times_accessed": 0,
      • "totalMarks": null,
      • "obtainedMarks": null
      },
    • {
      • "module_id": 4,
      • "name": "assign",
      • "slug": "assign",
      • "type": "assignment",
      • "icon": "<i class=\"el-icon-edit-outline\"></i>",
      • "status_row_id": -1,
      • "status": "Not Started",
      • "started_on": null,
      • "completed_on": null,
      • "last_accessed_on": null,
      • "total_time_spent": null,
      • "completion_percentage": 0,
      • "no_of_times_accessed": 0,
      • "totalMarks": 50,
      • "obtainedMarks": null
      }
    ],
  • "hasSection": false
}

Update Course Progress

Updates the course progress for given course.

path Parameters
id
required
string
Examples:
  • - When the value is omitted
  • 6 - When the value is present

Optional parameter. The The ID of the course.

query Parameters
userId
string
Example: userId=3

The ID of the user.

enrollmentDate
string
Example: enrollmentDate=2020-01-01 00:00:00

The enrollment date for the course. Format Y-m-d H:i:s.

expiryDate
string
Example: expiryDate=2020-01-01 00:00:00

The expiry date for the course. Format Y-m-d H:i:s.

startDate
string
Example: startDate=2020-01-01 00:00:00

The start date for the course. Format Y-m-d H:i:s.

completionDate
string
Example: completionDate=2020-01-01 00:00:00

The completion date for the course. Format Y-m-d H:i:s.

lastAccessed
string
Example: lastAccessed=2020-01-01 00:00:00

The last accessed date for the course. Format Y-m-d H:i:s.

status
string
Example: status=Completed

The status of the course.

modules
string
Example: modules=[{"module_id": 16, "status": "Not Started"}]

The modules status for the course.

Responses

Response samples

Content type
application/json
{
  • "message": "Course updated Successfully"
}

Retrieves the name of the course for given course ID

query Parameters
id
required
string
Example: id=1

The ID of course.

Responses

Enroll learners

To enroll users in a course, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the course.

Request Body schema: application/json
required
studentIds
required
Array of strings

User IDs needs to be enrolled in this course.

portalId
integer

optional The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Request samples

Content type
application/json
{
  • "studentIds": [
    • 2,
    • 3
    ],
  • "portalId": 5
}

Response samples

Content type
application/json
{
  • "message": "2 student(s) enrolled successfully",
  • "enrolledUsersCount": 2,
  • "notEnrolledUsers": 0
}

Remove Learners

To remove users from a course, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the course.

Request Body schema: application/json
required
enrollmentIds
required
Array of strings

Enrollment IDs needs to be removed from this course.

Responses

Request samples

Content type
application/json
{
  • "enrollmentIds": [
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "2 student(s) removed successfully"
}

Reset Progress

To reset the progress of students for course, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the course.

Request Body schema: application/json
required
enrollmentIds
required
Array of strings

Enrollment IDs needs to be reset from this course.

Responses

Request samples

Content type
application/json
{
  • "enrollmentIds": [
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "2 student(s) progress is reset successfully"
}

Revoke Access

To revoke the access of course from students, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the course.

Request Body schema: application/json
required
enrollmentIds
required
Array of strings

Course Registration/Enrollment IDs whose access needs to be revoked.

Responses

Request samples

Content type
application/json
{
  • "enrollmentIds": [
    • 8,
    • 7
    ]
}

Response samples

Content type
application/json
{
  • "message": "2 learner(s) access has been revoked successfully"
}

Grant Access

To grant the access of course to students, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the course.

Request Body schema: application/json
required
enrollmentIds
required
Array of strings

Course Registration/Enrollment IDs needs access to be granted from this course.

Responses

Request samples

Content type
application/json
{
  • "enrollmentIds": [
    • 9,
    • 6
    ]
}

Response samples

Content type
application/json
{
  • "message": "2 learner(s) access has been granted successfully"
}

Set Expiry

To update the expiry date for the learners of a course, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the course.

Request Body schema: application/json
required
enrollmentIds
required
Array of strings

Course Registration/Enrollment IDs needs setting expiry date for course.

expiryDate
required

Date on which the course is going to be expired.

Responses

Request samples

Content type
application/json
{
  • "enrollmentIds": [
    • "fugiat"
    ],
  • "expiryDate": "porro"
}

Response samples

Content type
application/json
{
  • "message": "Expiration date is successfully updated for 2 student(s)"
}

Assign Certificate

To assign certificate to the user for the course, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the course.

Request Body schema: application/json
required
enrollmentIds
required
Array of strings

Course Registration/Enrollment IDs needs certificate to be assigned for this course.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "Certificate is successfully assigned to 2 student(s)"
}

Course Activity Lookup

Retrieves all the activities performed in a course. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "ENROLLED",
    • "display_value": "ENROLLED"
    },
  • {
    • "db_value": "STARTED",
    • "display_value": "STARTED"
    },
  • {
    • "db_value": "ACCESSED",
    • "display_value": "ACCESSED"
    },
  • {
    • "db_value": "COMPLETED",
    • "display_value": "COMPLETED"
    },
  • {
    • "db_value": "SUBMITTED",
    • "display_value": "SUBMITTED"
    },
  • {
    • "db_value": "EVALUATED",
    • "display_value": "EVALUATED"
    },
  • {
    • "db_value": "REJECTED",
    • "display_value": "REJECTED"
    },
  • {
    • "db_value": "RETAKE",
    • "display_value": "RETAKEN"
    },
  • {
    • "db_value": "ACHIEVED CERTIFICATE",
    • "display_value": "ACHIEVED CERTIFICATE"
    },
  • {
    • "db_value": "RESET",
    • "display_value": "RESET"
    },
  • {
    • "db_value": "REMOVED",
    • "display_value": "REMOVED"
    },
  • {
    • "db_value": "REVOKED",
    • "display_value": "REVOKED"
    },
  • {
    • "db_value": "GRANTED",
    • "display_value": "GRANTED"
    },
  • {
    • "db_value": "UPDATED EXPIRY DATE",
    • "display_value": "UPDATED EXPIRY DATE"
    },
  • {
    • "db_value": "FAILED",
    • "display_value": "FAILED"
    },
  • {
    • "db_value": "MANUALLY UPDATED",
    • "display_value": "MANUALLY UPDATED"
    },
  • {
    • "db_value": "REGISTERED",
    • "display_value": "REGISTERED"
    },
  • {
    • "db_value": "ATTENDED",
    • "display_value": "ATTENDED"
    },
  • {
    • "db_value": "NO SHOW",
    • "display_value": "NO SHOW"
    },
  • {
    • "db_value": "CANCELLED",
    • "display_value": "CANCELLED"
    },
  • {
    • "db_value": "ACHIEVED BADGE",
    • "display_value": "ACHIEVED BADGE"
    }
]

Gradebook Data

Retrieves all the progress achieved by a learner on the course. Details will be returned in paginated mode. You can use the userId parameter to get details for different Learners.

path Parameters
id
required
string
Example: 1

Course registration ID for the Learner of the course you want to see progress.

query Parameters
userId
required
string
Example: userId=3

ID of the user.

Responses

Response samples

Content type
application/json
{
  • "name": "course 1",
  • "modules": [
    • {
      • "module_id": 1,
      • "name": "test",
      • "slug": "test",
      • "type": "text",
      • "icon": "<i class=\"el-icon-tickets\"></i>",
      • "status_row_id": 1,
      • "status": "Completed",
      • "started_on": "2020-08-03T10:02:33.000000Z",
      • "completed_on": "2020-08-03T10:02:41.000000Z",
      • "last_accessed_on": "6 days ago",
      • "total_time_spent": {
        },
      • "completion_percentage": 100,
      • "no_of_times_accessed": 1,
      • "totalMarks": null,
      • "obtainedMarks": null
      },
    • {
      • "module_id": 4,
      • "name": "assign",
      • "slug": "assign",
      • "type": "assignment",
      • "icon": "<i class=\"el-icon-edit-outline\"></i>",
      • "status_row_id": -1,
      • "status": "Not Started",
      • "started_on": "",
      • "completed_on": "",
      • "last_accessed_on": "Never",
      • "total_time_spent": "",
      • "points_awarded": "",
      • "completion_percentage": 0,
      • "no_of_times_accessed": 0,
      • "totalMarks": 50,
      • "obtainedMarks": null
      }
    ],
  • "id": 1,
  • "userId": 3,
  • "featuredImageUrl": null,
  • "instructions": null,
  • "accessStatus": "Allowed",
  • "status": "Completed",
  • "completionPercentage": 50,
  • "timeSpent": {
    • "hours": 0,
    • "minutes": 0,
    • "seconds": 6,
    • "totalSeconds": 6
    },
  • "enrollmentDate": "03 Aug 2020",
  • "isExpired": false,
  • "daysToExpire": "Unlimited days",
  • "lastAccessed": "6 days ago",
  • "isCertificateAvailable": true,
  • "totalMarks": 50,
  • "obtainedMarks": 0,
  • "percentage": 0
}

Enrolled User Lookup

Retrieves a list of users enrolled in a specified course, optionally filtered by portal ID and search term. The search term can match first name, last name, email, or full name.

query Parameters
search_term
required
string
Example: search_term="John Doe"

The search term to search for users.

id
required
integer
Example: id=1

The ID of the course to filter users by.

portalId
integer
Example: portalId=5

optional The ID of the portal to filter users by. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
[]

Clone a course.

This function clones a course and its associated categories and modules. It allows for a deep copy, which clones all course content, including modules and their details. The cloned course will have a new name suffixed with "_copy" and the requesting user will be recorded as the creator and updater.

Request Body schema: application/json
required
course_id
required
integer

The ID of the course to clone.

isDeepCopy
required
boolean

If true, all content will be deeply copied.

Responses

Request samples

Content type
application/json
{
  • "course_id": 1,
  • "isDeepCopy": true
}

Response samples

Content type
application/json
{
  • "message": "Course Cloned Successfully"
}

Update the list of courses which are auto-enrolled for free to users after registration.

Request Body schema: application/json
required
courses
required
Array of strings

The list of course IDs to auto enroll.

Responses

Request samples

Content type
application/json
{
  • "courses": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "Course Updated Successfully",
  • "type": "success",
  • "title": "Success"
}

Get the list of courses which are auto-enrolled for free to users after registration.

Responses

Response samples

Content type
application/json
[
  • {
    • "value": 1,
    • "label": "Course 1"
    },
  • {
    • "value": 2,
    • "label": "Course 2"
    },
  • {
    • "value": 3,
    • "label": "Course 3"
    }
]

Retrieve the list of students enrolled in a given webinar

This API retrieves the list of students enrolled in a given webinar ID and portal ID. The response includes the student name, email, avatar, status, registered on, last accessed on, attendance recording type, notes.

path Parameters
course_id
required
string
Example: 1

The ID of the course to retrieve enrollments for.

webinar_id
required
string
Example: 1

The ID of the webinar to retrieve enrollments for.

portal_id
required
string
Example: 1

The ID of the portal for which the course is being accessed.

query Parameters
page_size
required
string
Example: page_size=10

The number of records to return per page.

page_number
required
string
Example: page_number=1

The page number.

order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

Order by column and direction.

search_param
string
Example: search_param={}

JSON object containing search parameters.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "user_id": 1,
    • "first_name": "John",
    • "last_name": "Doe",
    • "email": "[email protected]",
    • "status": "active",
    • "registered_on": "2020-07-01 10:00:00",
    • "last_accessed_on": "2020-07-01 11:00:00",
    • "attendance_recording_type": "video",
    • "notes": "Some notes"
    },
  • {
    • "id": 2,
    • "user_id": 2,
    • "first_name": "Jane",
    • "last_name": "Smith",
    • "email": "[email protected]",
    • "status": "inactive",
    • "registered_on": "2020-07-01 10:00:00",
    • "last_accessed_on": "2020-07-01 11:00:00",
    • "attendance_recording_type": "audio",
    • "notes": "Some notes"
    }
]

Save Course Rating

Saves the course rating given by user and fires an event to send notification to the course creator.

Request Body schema: application/json
optional
user_id
required

The ID of the user who is submitting the review.

course_id
required

The ID of the course for which the review is being submitted.

reviews
string

The reviews given by the user.

rating
integer

The rating given by the user.

display_name
string

The display name of the user.

portal_id
required

The ID of the portal for which the course is being accessed.

Responses

Request samples

Content type
application/json
{
  • "user_id": "1",
  • "course_id": "1",
  • "reviews": "\"This course is awesome\"",
  • "rating": 5,
  • "display_name": "\"John Doe\"",
  • "portal_id": "1"
}

Retrieves all the course ratings in a tabular list format in paginated mode.

You can apply filter using search_param via associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"associatedCourse":"","moduleName":""}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "total": 1,
  • "recordsFiltered": 1,
  • "ratings": [
    • {
      • "id": 1,
      • "courseName": "Course Name",
      • "courseId": 1,
      • "rating": 5,
      • "userId": 1,
      • "reviews": "My first comment",
      • "userdisplayName": "John Doe",
      • "submissionDate": "Aug 11, 2020 05:56 AM"
      }
    ]
}

Delete Course Rating

Deletes the specified course rating and updates the average rating of the course.

Request Body schema: application/json
optional
id
required

The ID of the course rating to delete.

Responses

Request samples

Content type
application/json
{
  • "id": "1"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "message": "Course Rating deleted successfully!"
}

Launch

This API is used to launch a course and get the modules associated with the course.

path Parameters
registrationId
required
string
Example: 2

Registration ID of the course.

query Parameters
info
string
Example: info=info=true

optional If the API is called with info parameter, the API will not start the course, but will return the information of the course.

portalId
required
string
Example: portalId=1

Portal ID of the user.

moduleIds
Array of strings
Example: moduleIds=1&moduleIds=2

optional If you want to get the status of specific modules, you can pass the module IDs.

Responses

Response samples

Content type
application/json
{
  • "name": "Course Name",
  • "id": 2,
  • "instructions": "Course Instructions",
  • "rating": 4.5,
  • "enableCourseRating": true,
  • "accessStatus": "Allowed",
  • "status": "Not Started",
  • "display_status": "Not Started",
  • "completionPercentage": 0,
  • "timeSpent": "00:00:00",
  • "enrollmentDate": "22-02-2022",
  • "isExpired": false,
  • "lastAccessed": "Never",
  • "estimatedCompletionTime": "2 hours",
  • "expireOn": "22-02-2022",
  • "modules": [ ],
  • "daysToExpire": 10
}

Retrieve course information (name, modules, webinars, etc.)

This API retrieves course information for a given course ID, portal ID, and user ID. The response includes the course name, modules, webinars, learning resources, and other relevant information.

query Parameters
courseId
required
string
Example: courseId=1

ID of the course.

portalId
required
string
Example: portalId=1

ID of the portal for which the course is being accessed.

userId
required
string
Example: userId=1

ID of the user accessing the course.

Responses

Response samples

Content type
application/json
{
  • "name": "Course 1",
  • "modules": [
    • {
      • "module_id": 1,
      • "name": "Test Module 1",
      • "slug": "test-module-1",
      • "type": "text",
      • "icon": "el-icon-tickets",
      • "display_type": "Text",
      • "last_accessed_on": "Never",
      • "status": "Not Enrolled",
      • "display_status": "Not Enrolled",
      • "completion_percentage": 0,
      • "estimatedCompletion_time": "1 hour"
      }
    ],
  • "webinarList": [
    • {
      • "id": 1,
      • "name": "Test Webinar 1",
      • "start_date": "2020-08-03T10:02:33.000000Z",
      • "end_date": "2020-08-03T10:02:33.000000Z",
      • "description": "Test webinar description",
      • "duration": "1 hour",
      • "is_registered": false
      }
    ],
  • "learningResources": []
}

Discount Coupons

A Coupon is used by the learners to reduce ther price by some discount, provided by the Instructor. It helps for adding/updating/editing discount coupons applied on products.

Coupons Tabular List

Returns all the coupons in a tabular list format with pagination. Allows filtering using the search_param via code (coupon code).

query Parameters
page_size
required
string
Example: page_size=50

The number of items you want per page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction":"desc"}

optional JSON object for ordering items based on columns.

search_param
integer
Example: search_param=0

optional JSON object for searching items based on coupon code.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "code": "code75",
      • "type": "percent_amount",
      • "value": 1500,
      • "total_limit": 12,
      • "expired_at": "Aug 26, 2020"
      }
    ]
}

Coupon Lookup

Retrieves all coupons whose code matches the search term provided. This is useful for displaying coupons in form elements like dropdowns.

query Parameters
search_term
required
string
Example: search_term="SUMMER"

The term to search for in coupon codes.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "code": "code75"
    }
]

Retrieves all the type of the coupons.

Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "fixed_amount",
    • "display_value": "Fixed Cart Discount"
    },
  • {
    • "db_value": "percent_amount",
    • "display_value": "Percentage Discount"
    }
]

Create Coupon

Creates a coupon based on the request data. Coupons can be used by the students to get some discount while purchasing the course.

Request Body schema: application/json
required
code
required
string

code for the coupon.

value
required
numeric

Value of the coupon(discount price or percentage).

type
required
string

Types of the coupon. Type options: fixed_amount or percent_amount.

expiry
date

On this date, this coupon will get expired.

allowed_emails
string

All allowed email comma seprated.

usage_limit
integer

How many times this coupon can be used?.

notes
string

Notes for the coupon.

allowed_products
Array of strings

allowed products.

allowed_product_categories
Array of strings

allowed product categories.

Responses

Request samples

Content type
application/json
{
  • "code": "code75",
  • "value": "1500",
  • "type": "percent_amount",
  • "expiry": "2020-08-26",
  • "allowed_emails": "null",
  • "usage_limit": 2000,
  • "notes": "Discount upto 75%",
  • "allowed_products": [
    • 1,
    • 2,
    • 3
    ],
  • "allowed_product_categories": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Coupon created successfully"
}

Get Coupon

Retrieves a coupon based on its ID. Useful for displaying a coupon's details.

query Parameters
id
required
string
Example: id=1

The ID of the coupon.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "code": "code75",
  • "type": "percent_amount",
  • "value": 1500,
  • "usage_limit": 12,
  • "expiry": "2020-08-26",
  • "allowed_emails": null,
  • "note_privacy": null,
  • "notes": "Discount upto 75%",
  • "allowed_products": [ ],
  • "excluded_products": [ ],
  • "allowed_product_categories": [ ]
}

Update Coupon

Updates a coupon based on the id provided as parameter.

Request Body schema: application/json
optional
id
required

The ID of the coupon.

code
required

Code for the coupon.

value
required

Value of the coupon(discount price or percentage).

type
required

Types of the coupon. Type options: fixed_amount or percent_amount.

expiry
date

On this date, this coupon will get expired.

allowed_emails
string

All allowed email comma seprated.

usage_limit
integer

How many times this coupon can be used?.

notes
string

Notes for the coupon.

allowed_products
Array of strings

allowed products.

allowed_product_categories
Array of strings

allowed product categories.

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "code": "code75",
  • "value": "1500",
  • "type": "percent_amount",
  • "expiry": "2020-08-26",
  • "allowed_emails": "null",
  • "usage_limit": 2000,
  • "notes": "Discount upto 75%",
  • "allowed_products": [
    • 1,
    • 2,
    • 3
    ],
  • "allowed_product_categories": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Coupon updated successfully"
}

Delete Coupon

Deletes a coupon based on the id provided as parameter.

Request Body schema: application/json
optional
delete_ids
required

The ID of the coupon.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": "[1,2,3]"
}

Response samples

Content type
application/json
{
  • "message": "1 coupon(s) deleted. 1 coupon(s) not deleted as they are associated with orders"
}

List of all coupons.

Returns a list of all coupons. Response contains coupon id and coupon code.

Responses

Response samples

Content type
application/json
{
  • "0": {
    • "id": 1,
    • "code": "code1"
    },
  • "1": {
    • "id": 2,
    • "code": "code2"
    }
}

Discussions

A Discussion module is used as course content and a platform where learners can have discussions. Helps to perform CRUD operation to and for discussion modules.

Discussion Modules Tabular List

Returns all discussion modules in a tabular list format with pagination. Filters can be applied using search parameters for associated courses and module names.

query Parameters
page_size
required
string
Example: page_size=50

The number of items per page.

page_number
required
string
Example: page_number=1

Current page number for pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

Optional JSON for sorting items by column.

search_param
string
Example: search_param={"associatedCourse": "", "moduleName": ""}

Optional JSON for searching by associatedCourse and moduleName.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 5,
  • "records": [
    • {
      • "id": 1,
      • "name": "Discussion 1",
      • "slug": "discussion-1",
      • "type": "discussion",
      • "totalPoints": 100,
      • "icon": "<i class=\"el-icon-chat\"></i>",
      • "author": "John Doe",
      • "showMappedCourses": false,
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "course_count": 2
      }
    ]
}

Create Discussion Module

To create a discussion module, you need to use this request. (See parameters) Created discussion modules can be used in the course as course content/lesson.

Returns : id of the discussion created and successfull message

Request Body schema: application/json
required
name
required
string

Name of the discussion module.

content
required
string

Content for the discussion modules that learners will see.

should_be_evaluated
required
boolean

If true, the discussion will be graded on course evaluation.

totalPoints
integer

Total points a student can get by completing this discussion.

minComments
integer

At least these many comments should be provided by the student to pass the discussion(required if should_be_evaluated is true).

estimatedCompletion
nullable

Estimated time to complete the module.

estimationCompletedUnit
nullable

Unit of time estimation (e.g., minutes, hours).

Responses

Request samples

Content type
application/json
{
  • "name": "First-discussion",
  • "content": "A brief description",
  • "should_be_evaluated": true,
  • "totalPoints": 20,
  • "minComments": 5,
  • "estimatedCompletion": "90",
  • "estimationCompletedUnit": "minutes"
}

Response samples

Content type
application/json
{
  • "id": 8,
  • "message": "Module saved successfully"
}

Update Discussion Module

Updates the details of a specified discussion module. Validates the request and updates the module with the given parameters if it exists.

path Parameters
id
required
string
Example: 1

ID of the discussion module.

Request Body schema: application/json
required
name
required
string

Name of the discussion module.

content
required
string

Content for the discussion module.

should_be_evaluated
required
boolean

If true, the discussion will be graded on course evaluation.

totalPoints
integer

optional Total points a student can get by completing this discussion.

minComments
integer

At least these many comments should be provided by the student to pass the discussion. Required if should_be_evaluated is true.

estimatedCompletion
nullable

Estimated time to complete the module.

estimationCompletedUnit
nullable

Unit of time estimation (e.g., minutes, hours).

Responses

Request samples

Content type
application/json
{
  • "name": "First Discussion",
  • "content": "An updated brief description",
  • "should_be_evaluated": true,
  • "totalPoints": 20,
  • "minComments": 5,
  • "estimatedCompletion": "90",
  • "estimationCompletedUnit": "minutes"
}

Response samples

Content type
application/json
{
  • "message": "Module updated successfully"
}

Get Discussion Module

Returns a discussion module based on its ID.

path Parameters
id
required
string
Example: 1

ID of the discussion module.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Discussion 1",
  • "slug": "discussion-1",
  • "content": "A brief description",
  • "totalPoints": 100,
  • "should_be_evaluated": true,
  • "minComments": 2,
  • "estimatedCompletion": 2,
  • "estimationCompletedUnit": "hours",
  • "courses": [
    • {
      • "course_id": 1,
      • "course_name": "Course 1"
      }
    ]
}

Get Discussion Module Details

To get the details of a discussion module, you need to use this request. (See parameters)

path Parameters
registrationId
required
string
Example: 1

ID of the course registration.

moduleId
required
string
Example: 2

ID of the discussion module.

portalId
required
integer
Examples:
  • - When the value is omitted
  • 5 - When the value is present

Optional parameter. The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Retrieve Comments

Returns all the discussion comments in a tabular list format in paginated mode. You can apply filter using search_param via associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"associatedCourse":"","moduleName":""}

for searching items based on field names.

moduleId
required
string
Example: moduleId=2

ID of the discussion module.

registrationId
required
string
Example: registrationId=1

ID of the course registration.

Responses

Post Comment for Discussion Module

Post a comment for the discussion module. The comment is for the given module under the given course registration. If the comment meets the submission conditions, then the module status is updated to 'Submitted' and an entry is made in discussion evaluation table and an email is sent to the instructor.

Request Body schema: application/json
optional
statusRowId
required

ID of the Module status of the current discussion submission.

currentUserId
required

ID of the user who commented.

comment
required

Comment posted by the user for current discussion.

parentId
optional

Parent ID of the discussion.

portalId
integer

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Request samples

Content type
application/json
{
  • "statusRowId": "7",
  • "currentUserId": "1",
  • "comment": "This is my first comment.",
  • "parentId": "1",
  • "portalId": 5
}

Response samples

Content type
application/json
{
  • "status": "Submitted",
  • "message": "Comment Posted"
}

Retrieve Discussion Submission Details

Retrieves the submission details of the discussion the student have given. Helps in grading a student. (See Response)

query Parameters
statusRowId
required
string
Example: statusRowId=delectus

ID of the Module status of the current discussion submission. example: 1

Responses

Response samples

Content type
application/json
{
  • "courseId": 1,
  • "courseName": "course 1",
  • "discussionName": "assign",
  • "status": "In Progress",
  • "content": "Desc",
  • "totalPoints": 50,
  • "shouldBeEvaluated": true,
  • "userAvatar": "avatar.jpg",
  • "userFullName": "Aom Staff",
  • "userEmail": "[email protected]",
  • "comments": [
    • {
      • "id": 1,
      • "comment": "This is my first comment.",
      • "date": "Aug 10, 2020 11:33 AM"
      }
    ],
  • "replies": [
    • {
      • "id": 1,
      • "comment": "This is my first reply.",
      • "date": "Aug 10, 2020 11:33 AM"
      }
    ]
}

Evaluate Discussion

Evaluates the discussion from Instructor side.Updates the status of discussion to completed if Instructor thinks student's submission is upto the marks. (See Parameters)

Request Body schema: application/json
optional
portalId
integer

ID of the portal for which the assignment is being submitted.

statusRowId
required

ID of the Module status of the current assignment.

evaluation
required

Evaluation data by the Instructor(Completed or not).

Responses

Request samples

Content type
application/json
{
  • "portalId": 1,
  • "statusRowId": "7",
  • "evaluation": "{instructorMessage : 'You comments look good', pointsAwarded: '50' }"
}

Response samples

Content type
application/json
{
  • "message": "Discussion evaluated successfully"
}

Retrieve Discussion Comments

Retrieves all the discussion comments in a nested tree format in paginated mode. You can apply filter using search_param via associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"associatedCourse":"","moduleName":""}

for searching items based on field names.

moduleId
required
string
Example: moduleId=2

ID of the discussion module.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "comment": "My first comment",
      • "courseName": "course 1",
      • "userAvatar": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"><circle cx=\"20\" cy=\"20\" r=\"20\" stroke=\"background\" stroke-width=\"0\" fill=\"#00BCD4\" /><text x=\"20\" y=\"20\" font-size=\"14\" fill=\"#FFFFFF\" alignment-baseline=\"middle\" text-anchor=\"middle\" dominant-baseline=\"central\">AS</text></svg>",
      • "userFullName": "Aom Staff",
      • "date": "Aug 11, 2020 05:56 AM",
      • "replies": [
        ]
      }
    ]
}

Delete Discussion Comments

Deletes the given comments and its children too.

Request Body schema: application/json
optional
delete_ids
required

An array of IDs of comments to be deleted.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": "[1,2,3]"
}

Response samples

Content type
application/json
{
  • "message": "Comment(s) deleted successfully"
}

ECommerce

Endpoints for managing ecommerce settings. Getting and setting items status and values for the platform and the products.

Retrieves the global ecommerce product settings.

Fetches the settings of global products, including the color of product price and call to action names for free, simple and subscription products.

Responses

Response samples

Content type
application/json
{
  • "product_price_color": {
    • "content": {
      • "backgroundColor": "#fff"
      }
    },
  • "free_product_cta": "Enroll Now",
  • "simple_product_cta": "Add to Cart",
  • "subscription_product_cta": "Subscribe"
}

Set Global Ecommerce Product Settings

Updates the settings of global products, including the color of product price and call to action names for free, simple and subscription products.

Request Body schema: application/json
required
freeProductCta
required
string

Call to action name for free products.

simpleProductCta
required
string

Call to action name for simple products.

subscriptionProductCta
required
string

Call to action name for subscription products.

productPriceColor
required
object

Object containing a single key "content" with a single key "backgroundColor" which is the color of the product price.

Responses

Request samples

Content type
application/json
{
  • "freeProductCta": "Enroll Now",
  • "simpleProductCta": "Add to Cart",
  • "subscriptionProductCta": "Subscribe",
  • "productPriceColor": {
    • "content": {
      • "backgroundColor": "#fff"
      }
    }
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Retrieve Ecommerce Cart Abandonment Settings

Fetches the settings related to cart abandonment tracking, including whether tracking is enabled and the UTM parameters used for tracking.

Responses

Response samples

Content type
application/json
{
  • "enable_cart_abandoned_tracking": true,
  • "enable_tracking_staff": false,
  • "utm_parameters": "utm_source=google&utm_medium=cpc"
}

Set Ecommerce Cart Abandonment Setting

Updates the ecommerce settings related to cart abandonment tracking. Allows enabling/disabling of cart abandonment tracking and tracking by staff. Also updates UTM parameters used for tracking.

Request Body schema: application/json
required
enableTracking
required
boolean

Enable or disable cart abandonment tracking.

enableTrackingStaff
required
boolean

Enable or disable tracking by staff.

utmParameters
string

UTM parameters for cart abandonment tracking.

Responses

Request samples

Content type
application/json
{
  • "enableTracking": true,
  • "enableTrackingStaff": false,
  • "utmParameters": "utm_source=google&utm_medium=cpc"
}

Response samples

Content type
application/json
{
  • "message": "Cart Settings Updated Successfully"
}

Country Lookup

Retrieves all the countries in list format. Helps while showing countries in form elements like dropdown.

Responses

Response samples

Content type
application/json
{
  • "AF": "Afghanistan",
  • "AX": "Aland Islands",
  • "AL": "Albania",
  • "DZ": "Algeria",
  • "AS": "American Samoa",
  • "AD": "Andorra",
  • "AO": "Angola",
  • "AI": "Anguilla",
  • "AQ": "Antarctica",
  • "AG": "Antigua and Barbuda",
  • "AR": "Argentina",
  • "AM": "Armenia",
  • "AW": "Aruba",
  • "AU": "Australia",
  • "AT": "Austria",
  • "AZ": "Azerbaijan",
  • "BS": "Bahamas",
  • "BH": "Bahrain",
  • "BD": "Bangladesh",
  • "BB": "Barbados",
  • "BY": "Belarus",
  • "BE": "Belgium",
  • "BZ": "Belize",
  • "BJ": "Benin",
  • "BM": "Bermuda",
  • "BT": "Bhutan",
  • "BO": "Bolivia",
  • "BA": "Bosnia and Herzegovina",
  • "BW": "Botswana",
  • "BV": "Bouvet Island",
  • "BR": "Brazil",
  • "VG": "Virgin Islands, British",
  • "BN": "Brunei",
  • "BG": "Bulgaria",
  • "BF": "Burkina Faso",
  • "BI": "Burundi",
  • "KH": "Cambodia",
  • "CM": "Cameroon",
  • "CA": "Canada",
  • "CV": "Cape Verde",
  • "KY": "Cayman Islands",
  • "CF": "Central African Republic",
  • "TD": "Chad",
  • "CL": "Chile",
  • "CN": "China",
  • "CX": "Christmas Island",
  • "CC": "Cocos (Keeling) Islands",
  • "CO": "Colombia",
  • "KM": "Comoros",
  • "CG": "Congo",
  • "CD": "Congo, The Democratic Republic of the",
  • "CK": "Cook Islands",
  • "CR": "Costa Rica",
  • "CI": "Cote d'Ivoire",
  • "HR": "Croatia",
  • "CU": "Cuba",
  • "CW": "Curacao",
  • "CY": "Cyprus",
  • "CZ": "Czech Republic",
  • "DK": "Denmark",
  • "DJ": "Djibouti",
  • "DM": "Dominica",
  • "DO": "Dominican Republic",
  • "EC": "Ecuador",
  • "EG": "Egypt",
  • "SV": "El Salvador",
  • "GQ": "Equatorial Guinea",
  • "ER": "Eritrea",
  • "EE": "Estonia",
  • "ET": "Ethiopia",
  • "FK": "Falkland Islands (Malvinas)",
  • "FO": "Faroe Islands",
  • "FJ": "Fiji",
  • "FI": "Finland",
  • "FR": "France",
  • "GF": "French Guiana",
  • "PF": "French Polynesia",
  • "TF": "French Southern Territories",
  • "GA": "Gabon",
  • "GM": "Gambia",
  • "GE": "Georgia",
  • "DE": "Germany",
  • "GH": "Ghana",
  • "GI": "Gibraltar",
  • "GR": "Greece",
  • "GL": "Greenland",
  • "GD": "Grenada",
  • "GP": "Guadeloupe",
  • "GU": "Guam",
  • "GT": "Guatemala",
  • "GG": "Guernsey",
  • "GN": "Guinea",
  • "GW": "Guinea-Bissau",
  • "GY": "Guyana",
  • "HT": "Haiti",
  • "HM": "Heard Island and McDonald Islands",
  • "VA": "Holy See (Vatican City)",
  • "HN": "Honduras",
  • "HK": "Hong Kong",
  • "HU": "Hungary",
  • "IS": "Iceland",
  • "IN": "India",
  • "ID": "Indonesia",
  • "IR": "Iran, Islamic Republic of",
  • "IQ": "Iraq",
  • "IE": "Ireland",
  • "IM": "Isle of Man",
  • "IL": "Israel",
  • "IT": "Italy",
  • "JM": "Jamaica",
  • "JP": "Japan",
  • "JE": "Jersey",
  • "JO": "Jordan",
  • "KZ": "Kazakhstan",
  • "KE": "Kenya",
  • "KI": "Kiribati",
  • "KP": "Korea, Democratic People's Republic of",
  • "KR": "Korea, Republic of",
  • "KW": "Kuwait",
  • "KG": "Kyrgyzstan",
  • "LA": "Lao People's Democratic Republic",
  • "LV": "Latvia",
  • "LB": "Lebanon",
  • "LS": "Lesotho",
  • "LR": "Liberia",
  • "LY": "Libyan Arab Jamahiriya",
  • "LT": "Lithuania",
  • "LU": "Luxembourg",
  • "MO": "Macao",
  • "MK": "Macedonia, The Former Yugoslav Republic of",
  • "MG": "Madagascar",
  • "MW": "Malawi",
  • "MY": "Malaysia",
  • "MV": "Maldives",
  • "ML": "Mali",
  • "MT": "Malta",
  • "MH": "Marshall Islands",
  • "MQ": "Martinique",
  • "MR": "Mauritania",
  • "MU": "Mauritius",
  • "YT": "Mayotte",
  • "MX": "Mexico",
  • "FM": "Micronesia, Federated States of",
  • "MD": "Moldova, Republic of",
  • "MC": "Monaco",
  • "MN": "Mongolia",
  • "ME": "Montenegro",
  • "MS": "Montserrat",
  • "MA": "Morocco",
  • "MZ": "Mozambique",
  • "MM": "Myanmar",
  • "NA": "Namibia",
  • "NR": "Nauru",
  • "NP": "Nepal",
  • "NL": "Netherlands",
  • "NC": "New Caledonia",
  • "NZ": "New Zealand",
  • "NI": "Nicaragua",
  • "NE": "Niger",
  • "NG": "Nigeria",
  • "NU": "Niue",
  • "NF": "Norfolk Island",
  • "MP": "Northern Mariana Islands",
  • "NO": "Norway",
  • "OM": "Oman",
  • "PK": "Pakistan",
  • "PW": "Palau",
  • "PS": "Palestinian Territory, Occupied",
  • "PA": "Panama",
  • "PG": "Papua New Guinea",
  • "PY": "Paraguay",
  • "PE": "Peru",
  • "PH": "Philippines",
  • "PN": "Pitcairn",
  • "PL": "Poland",
  • "PT": "Portugal",
  • "PR": "Puerto Rico",
  • "QA": "Qatar",
  • "RE": "Reunion",
  • "RO": "Romania",
  • "RU": "Russian Federation",
  • "RW": "Rwanda",
  • "BL": "Saint Barthelemy",
  • "SH": "Saint Helena, Ascension and Tristan da Cunha",
  • "KN": "Saint Kitts and Nevis",
  • "LC": "Saint Lucia",
  • "MF": "Saint Martin (French part)",
  • "PM": "Saint Pierre and Miquelon",
  • "VC": "Saint Vincent and the Grenadines",
  • "WS": "Samoa",
  • "SM": "San Marino",
  • "ST": "Sao Tome and Principe",
  • "SA": "Saudi Arabia",
  • "SN": "Senegal",
  • "RS": "Serbia",
  • "SC": "Seychelles",
  • "SL": "Sierra Leone",
  • "SG": "Singapore",
  • "SX": "Sint Maarten (Dutch part)",
  • "SK": "Slovakia",
  • "SI": "Slovenia",
  • "SB": "Solomon Islands",
  • "SO": "Somalia",
  • "ZA": "South Africa",
  • "GS": "South Georgia and the South Sandwich Islands",
  • "SS": "South Sudan",
  • "ES": "Spain",
  • "LK": "Sri Lanka",
  • "SD": "Sudan",
  • "SR": "Suriname",
  • "SJ": "Svalbard and Jan Mayen",
  • "SZ": "Swaziland",
  • "SE": "Sweden",
  • "CH": "Switzerland",
  • "SY": "Syrian Arab Republic",
  • "TW": "Taiwan, Province of China",
  • "TJ": "Tajikistan",
  • "TZ": "Tanzania, United Republic of",
  • "TH": "Thailand",
  • "TL": "Timor-Leste",
  • "TG": "Togo",
  • "TK": "Tokelau",
  • "TO": "Tonga",
  • "TT": "Trinidad and Tobago",
  • "TN": "Tunisia",
  • "TR": "Turkey",
  • "TM": "Turkmenistan",
  • "TC": "Turks and Caicos Islands",
  • "TV": "Tuvalu",
  • "UG": "Uganda",
  • "UA": "Ukraine",
  • "AE": "United Arab Emirates",
  • "GB": "United Kingdom",
  • "US": "United States",
  • "UM": "United States Minor Outlying Islands",
  • "UY": "Uruguay",
  • "UZ": "Uzbekistan",
  • "VU": "Vanuatu",
  • "VE": "Venezuela, Bolivarian Republic of",
  • "VN": "Viet Nam",
  • "VI": "Virgin Islands, U.S.",
  • "WF": "Wallis and Futuna",
  • "EH": "Western Sahara",
  • "YE": "Yemen",
  • "ZM": "Zambia",
  • "ZW": "Zimbabwe"
}

States Lookup

Retrieves all the states for a given country code in list format. Helps while showing states in form elements like dropdown.

query Parameters
countryCode
required
string
Example: countryCode=IN

The country code for which the states are needed.

Responses

Retrieves all the currencies.

Fetches the list of all the currencies supported by the platform.

Responses

Retrieves the general ecommerce settings. Helps in fetching items of the ecommerce settings, like country, city, address, location, etc(See Response)

Responses

Set General Ecommerce Settings

To save the general ecommerce settings with updated values, you need to use this request. (See parameters)

Request Body schema: application/json
required
addressLine1
required
string

Address Line 1 of shop.

addressLine2
required
string

Address Line 2 of shop.

city
required
string

City of shop.

state
required
string

State of shop.

country
required
string

Country of shop.

zipcode
required
string

Zipcode of shop.

enableCoupons
required
boolean

If true, coupons are enabled.

currency
required
string

Currency of shop.

Responses

Request samples

Content type
application/json
{
  • "addressLine1": "1234 Lorem Ipsum Drive",
  • "addressLine2": "omnis",
  • "city": "New Jersey",
  • "state": "vel",
  • "country": "country",
  • "zipcode": "08053",
  • "enableCoupons": true,
  • "currency": "USD"
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Retrieves the invoice settings. Helps in fetching items of the invoice settings, like invoice business name, business name, tax settings, business info, etc(See Response)

Responses

Set Invoice Settings

Updates the settings for Invoice. Setting needs to be updated is mentioned in parameter. (See Parameter)

Request Body schema: application/json
required
invoiceBusinessName
required
string

Whether to use default business name or a custom business name.

businessName
string

required_if:invoiceBusinessName,customBusinessName Business name to be used in the invoice.

taxSettings
string

Tax settings of the invoice.

Responses

Request samples

Content type
application/json
{
  • "invoiceBusinessName": "customBusinessName",
  • "businessName": "Business Name",
  • "taxSettings": "inclusive"
}

Response samples

Content type
application/json
{
  • "message": "Order Invoice Settings Updated Successfully"
}

Retrieve Cart Abandonment Details

Fetches the cart abandonment details, including the cart total, status, abandoned at date, completed at date and products in the cart.

Request Body schema: application/json
required
required
object

The search parameters, including the abandoned at date range, status and name or email.

abandonedAt
Array of strings

The abandoned at date range.

status
Array of strings

The status of the cart abandonment.

nameOrEmail
string

The name or email of the user.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "recoverableOrders": 0,
  • "recoveredOrders": 0,
  • "recoverableRevenue": "0.00",
  • "recoveredRevenue": "0.00",
  • "currency": "USD",
  • "enableTracking": true,
  • "records": [
    • {
      • "id": 1,
      • "firstName": "John",
      • "lastName": "Doe",
      • "email": "[email protected]",
      • "cartTotal": "100.00",
      • "cartTotalNumber": 100,
      • "status": "Abandoned",
      • "abandonedAt": "2022-01-01 12:00:00",
      • "completedAt": null,
      • "orderId": null,
      • "products": [
        ]
      }
    ]
}

Retrieves the base currency of the shop.

Fetches the base currency set in the Ecommerce settings.

Responses

Response samples

Content type
application/json
{
  • "currency": "USD"
}

Returns a list of all tax classes and their associated tax rates.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Standard",
    • "description": "Default tax class for general products",
    • "showDetails": true,
    • "taxRates": [
      • {
        },
      • {
        }
      ]
    }
]

Creates a sales tax configuration.

Request Body schema: application/json
required
pricesIncludeTax
required
boolean

Whether prices include tax.

taxCalculationBasedOn
required
string

Whether to calculate tax based on shipping or billing.

shippingTaxClass
required
integer

The tax class for shipping.

taxDisplaySuffix
required
string

The suffix to display after tax.

displayTaxTotals
required
boolean

Whether to display tax totals.

Responses

Request samples

Content type
application/json
{
  • "pricesIncludeTax": true,
  • "taxCalculationBasedOn": "\"shipping\"",
  • "shippingTaxClass": 1,
  • "taxDisplaySuffix": "\"Incl. Tax\"",
  • "displayTaxTotals": true
}

Retrieves the sales tax settings.

Responses

Response samples

Content type
application/json
{
  • "pricesIncludeTax": true,
  • "taxCalculationBasedOn": "shipping",
  • "shippingTaxClass": 1,
  • "taxDisplaySuffix": "Incl. Tax",
  • "displayTaxTotals": true
}

Update a tax class.

Request Body schema: application/json
required
name
required
string

The name of the tax class.

description
required
string

The description of the tax class.

Responses

Request samples

Content type
application/json
{
  • "name": "\"Sales Tax\"",
  • "description": "\"This is a sales tax\""
}

Deletes a tax class and its associated tax rates.

If a tax class is associated with a product, it will not be deleted.

If a tax class is associated with an order, it will not be deleted.

If a tax class is associated with an order item, it will not be deleted.

Request Body schema: application/json
optional
delete_ids
Array of strings

of integers required The ids of the tax classes to delete.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "deletedTaxClasses": [
    • 1,
    • 3
    ],
  • "notDeletedTaxClasses": [
    • {
      • "order_id": 5001,
      • "tax_rate_id": 102,
      • "tax_rate_name": "US Reduced Rate"
      },
    • {
      • "order_id": 5002,
      • "tax_rate_id": 201,
      • "tax_rate_name": "EU Reduced Rate"
      }
    ],
  • "notDeletedTaxClassesProduct": [
    • {
      • "product_id": 3001,
      • "product_name": "Wireless Mouse",
      • "tax_class_id": 2
      },
    • {
      • "product_id": 3002,
      • "product_name": "E-book Subscription",
      • "tax_class_id": 2
      }
    ]
}

Update a tax rate.

Request Body schema: application/json
required
tax_class_id
integer

optional The id of the tax class the tax rate belongs to.

name
required
string

The name of the tax rate.

country
required
string

The country of the tax rate.

state
string

optional The state of the tax rate.

zipCode
Array of strings

of strings optional The zip codes of the tax rate.

rate
number

optional The rate of the tax rate.

appliedRateOn
string

optional The rate on which the tax rate is applied.

Responses

Request samples

Content type
application/json
{
  • "tax_class_id": 1,
  • "name": "\"Sales Tax\"",
  • "country": "\"United States\"",
  • "state": "\"California\"",
  • "zipCode": [
    • "10001",
    • "10002",
    • "10003"
    ],
  • "rate": 0.2,
  • "appliedRateOn": "\"all_states\""
}

Retrieves the sales tax settings.

Responses

Updates the sales tax setting.

Request Body schema: application/json
required
enableSalesTaxes
required
boolean

Whether to enable sales tax.

Responses

Request samples

Content type
application/json
{
  • "enableSalesTaxes": true
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated",
  • "type": "success",
  • "title": "Success"
}

Creates a new tax class and associated tax rates.

Request Body schema: application/json
required
name
required
string

The name of the tax class.

description
string

optional The description of the tax class.

taxRates
Array of strings

of objects required The tax rates associated with the tax class.

Responses

Request samples

Content type
application/json
{
  • "name": "\"Sales Tax\"",
  • "description": "\"Sales tax\"",
  • "taxRates": [
    • {
      • "name": "Sales Tax",
      • "country": "United States",
      • "state": "California",
      • "zipCode": [
        ],
      • "rate": 0.2,
      • "appliedRateON": "specific_states"
      }
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Tax Class and Rates created successfully.",
  • "tax_class_id": 1
}

Delete a tax rate.

If a tax rate is associated with any order, it will not be deleted and the API will return a list of orders which use the tax rate.

Request Body schema: application/json
required
delete_id
required
integer

The ID of the tax rate to delete.

Responses

Request samples

Content type
application/json
{
  • "delete_id": 1
}

Response samples

Content type
application/json
{
  • "status": "failed",
  • "message": "Tax rate could not be deleted as it is associated with existing orders.",
  • "notDeletedTaxRates": [
    • {
      • "order_id": 4501,
      • "tax_rate_id": 1,
      • "tax_rate_name": "US Standard Rate"
      },
    • {
      • "order_id": 4502,
      • "tax_rate_id": 1,
      • "tax_rate_name": "US Standard Rate"
      }
    ]
}

Loads a tax class by its ID.

Request Body schema: application/json
required
id
required
integer

The ID of the tax class.

Responses

Request samples

Content type
application/json
{
  • "id": 1
}

Response samples

Content type
application/json
{
  • "name": "Standard",
  • "description": "Default tax class for general products",
  • "taxRates": [
    • {
      • "id": 101,
      • "name": "US Standard Rate",
      • "country": "US",
      • "state": [
        ],
      • "zipCode": [
        ],
      • "rate": 7.25,
      • "appliedRateON": "2025-01-01T00:00:00Z"
      },
    • {
      • "id": 102,
      • "name": "US Reduced Rate",
      • "country": "US",
      • "state": [
        ],
      • "zipCode": [
        ],
      • "rate": 6.5,
      • "appliedRateON": "2025-03-15T00:00:00Z"
      }
    ]
}

Add a tax rate.

Request Body schema: application/json
required
tax_class_id
required
integer

The ID of the tax class.

name
required
string

The name of the tax rate.

country
required
string

The country of the tax rate.

state
Array of strings

of strings optional The state of the tax rate.

zipCode
Array of strings

of strings optional The zip codes of the tax rate.

rate
required
number

The rate of the tax rate.

appliedRateOn
required
string

The rate on which the tax rate is applied.

Responses

Request samples

Content type
application/json
{
  • "tax_class_id": 1,
  • "name": "\"Sales Tax\"",
  • "country": "\"United States\"",
  • "state": [
    • "California"
    ],
  • "zipCode": [
    • "10001",
    • "10002",
    • "10003"
    ],
  • "rate": 0.2,
  • "appliedRateOn": "\"all_states\""
}

Toggle Shipping Settings

Updates the shipping settings to enable or disable shipping based on the provided request parameter.

Request Body schema: application/json
required
enableShipping
required
boolean

Whether to enable or disable shipping.

Responses

Request samples

Content type
application/json
{
  • "enableShipping": true
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated",
  • "type": "success",
  • "title": "Success"
}

Set Shipping Setting

Updates the settings for shipping. Setting needs to be updated is mentioned in parameter. (See Parameter)

Request Body schema: application/json
required
shippingDestination
required
string

Shipping destination of order.

Responses

Request samples

Content type
application/json
{
  • "shippingDestination": "billing_address"
}

Response samples

Content type
application/json
{
  • "message": "Sales Tax Updated Successfully"
}

Retrieves the shipping settings.

Helps in fetching items of the shipping settings, like shipping destination and whether shipping is enabled or disabled.

Responses

Response samples

Content type
application/json
{
  • "shippingDestination": "123 Main Street, Springfield, IL 62704, USA",
  • "enableShipping": true
}

Get all shipping zones.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Shipping Zone 1",
      • "country": "India",
      • "state": [
        ],
      • "zip_code": [
        ],
      • "shippingMethods": "Flat Rate, Free Shipping",
      • "shippingMethod": {
        }
      }
    ],
  • "currency": "INR"
}

Retrieve Shipping Zone Methods

Fetches details of a specific shipping zone, including its name, country, state, zip code, applied zone criteria, and associated shipping methods.

query Parameters
id
required
integer
Example: id=1

The ID of the shipping zone to retrieve.

Responses

Response samples

Content type
application/json
{
  • "name": "California",
  • "country": "US",
  • "state": [
    • "CA"
    ],
  • "zip_code": [
    • "94000",
    • "95000"
    ],
  • "appliedZoneOn": "specific_states",
  • "shippingMethods": [
    • {
      • "id": 1,
      • "name": "Flat Rate Shipping",
      • "isEnabled": true,
      • "shippingMethod": "flat_rate",
      • "taxStatus": "taxable",
      • "cost": "10.00",
      • "minAmountRequired": true,
      • "minimumOrderAmount": 50
      }
    ]
}

Creates a new shipping zone.

Request Body schema: application/json
required
name
required
string

The name of the shipping zone.

country
required
string

The country to associate the shipping zone with.

appliedZoneOn
required
string

The type of shipping zone.

zip_code
required
string

The zip code(s) to associate with the shipping zone.

state
required
Array of strings

The state(s) to associate with the shipping zone.

shippingMethod
required
Array of strings

The shipping method details.

Responses

Request samples

Content type
application/json
{
  • "name": "USA",
  • "country": "US",
  • "appliedZoneOn": "specific_states",
  • "zip_code": "5600556, 5658666, 8474841",
  • "state": [
    • "AL",
    • "AK",
    • "AZ",
    • "AR",
    • "CA"
    ],
  • "shippingMethod": [
    • {
      • "name": "Flat Rate",
      • "isEnabled": true,
      • "shippingMethod": "flat_rate",
      • "taxStatus": "taxable",
      • "cost": 10.99,
      • "minAmountRequired": 100,
      • "minimumOrderAmount": 150
      }
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Shipping Zone Created Successfully",
  • "shippingZoneId": 1
}

Updates a shipping zone.

Request Body schema: application/json
required
id
required
integer

The ID of the shipping zone.

name
required
string

The name of the shipping zone.

country
required
string

The country of the shipping zone.

appliedZoneOn
required
string

The application scope of the zone, either 'zip_code', 'specific_states', or 'all_states'.

zip_code
string

optional Comma-separated zip codes if the zone applies to zip codes.

state
Array of strings

optional States if the zone applies to specific states.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "name": "US East Zone",
  • "country": "US",
  • "appliedZoneOn": "zip_code",
  • "zip_code": "12345,67890",
  • "state": [
    • "NY",
    • "NJ"
    ]
}

Response samples

Content type
application/json
{
  • "message": "Shipping Zone Updated Successfully"
}

Delete a shipping zone.

If the shipping zone is associated with one or more shipping methods, the method is not deleted and the response contains a list of orders that prevents the deletion.

Request Body schema: application/json
required
id
required
integer

The ID of the shipping method to delete.

Responses

Request samples

Content type
application/json
{
  • "id": 1
}

Response samples

Content type
application/json
{
  • "status": true,
  • "message": "Shipping Zone deleted successfully",
  • "notDeletedShippingZone": [ ]
}

Delete a shipping method.

If the shipping method is associated with one or more orders, the method is not deleted and the response contains a list of orders that prevents the deletion.

Request Body schema: application/json
required
id
required
integer

The ID of the shipping method to delete.

Responses

Request samples

Content type
application/json
{
  • "id": 1
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Shipping method deleted successfully",
  • "notDeletedShippingMethod": [ ]
}

Creates a new shipping method.

Request Body schema: application/json
required
name
required
string

The title of the shipping method.

shippingZoneId
required
integer

The ID of the shipping zone to associate the method with.

taxStatus
required
string

The tax status of the shipping method.

cost
required
number

The cost of the shipping method.

isEnabled
required
boolean

Whether the shipping method should be enabled.

shippingMethod
required
string

The type of shipping method.

minAmountRequired
required
number

The minimum amount required for free shipping.

minimumOrderAmount
required
number

The minimum amount required for free shipping.

Responses

Request samples

Content type
application/json
{
  • "name": "Flat Rate",
  • "shippingZoneId": 1,
  • "taxStatus": "taxable",
  • "cost": 10.99,
  • "isEnabled": true,
  • "shippingMethod": "Flat Rate",
  • "minAmountRequired": 100,
  • "minimumOrderAmount": 100
}

Response samples

Content type
application/json
{
  • "message": "Shipping method added successfully!"
}

Updates a shipping method.

Request Body schema: application/json
required
name
required
string

The title of the shipping method.

shippingZoneId
required
integer

The ID of the shipping zone to associate the method with.

taxStatus
required
string

The tax status of the shipping method.

cost
required
number

The cost of the shipping method.

isEnabled
required
boolean

Whether the shipping method should be enabled.

shippingMethod
required
string

The type of shipping method.

minAmountRequired
required
number

The minimum amount required for free shipping.

minimumOrderAmount
required
number

The minimum amount required for free shipping.

Responses

Request samples

Content type
application/json
{
  • "name": "Flat Rate",
  • "shippingZoneId": 1,
  • "taxStatus": "taxable",
  • "cost": 10.99,
  • "isEnabled": true,
  • "shippingMethod": "Flat Rate",
  • "minAmountRequired": 100,
  • "minimumOrderAmount": 100
}

Response samples

Content type
application/json
{
  • "message": "Shipping method updated successfully!"
}

Update the status of a shipping method.

Request Body schema: application/json
required
id
required
integer

The ID of the shipping method to update.

isEnabled
required
boolean

Whether the shipping method should be enabled.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "isEnabled": true
}

Response samples

Content type
application/json
{
  • "message": "Shipping method status updated successfully"
}

ECommerce Orders

An ECommerce Order is made by the learners when they purchase a product hence course. It helps in managing orders and performing CRUD operation on orders.

Tabular List

Retrieves all the orders in a tabular list format with pagination mode. You can apply filter using search_param via status(order status), user(user email or id), dateRange(date range).

query Parameters
page_size
required
string
Example: page_size=10

The number of the orders you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"status":["pending"],"user":["1"],"dateRange":["2020-01-01","2020-01-31"]}

For searching items based on status, user, date range.

portalId
integer
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "status": "pending",
      • "display_status": "Pending",
      • "total": "100.00",
      • "isTestOrder": false,
      • "customer": "John Doe",
      • "email": "[email protected]",
      • "created_at": "Jan 01, 2020 12:00 AM",
      • "isPortalOrder": false
      }
    ]
}

Download the PDF invoice for a specific order.

This endpoint allows authorized users to download a PDF invoice for a given order.

  • General users can download only their own orders.
  • Admins, owners, and staff can download any order.

The invoice includes billing/shipping information, tax breakdowns, product details, and more.

query Parameters
orderId
required
integer
Example: orderId=1023

The ID of the order to download the invoice for.

Responses

Response samples

Content type
application/json
{
  • "message": "Invoice downloaded successfully.",
  • "file": "/downloads/order.pdf"
}

Export Orders

Exports the order details based on the provided filters to an Excel file. The filters can include various criteria such as date range, user, product, etc. The generated file is downloaded as 'orders-test.xlsx'.

query Parameters
filters
required
string
Example: filters={"dateRange":["2020-07-31","2020-08-30"],"users":[3],"products":[1]}

JSON encoded filters to apply for exporting order details.

Responses

Retrieve Yearly Sales

Retrieves the details of yearly based order sales made from students and returns in tabular form. You can use the response for plotting graphs

query Parameters
year
required
string
Example: year=2020

Year for which you need sales information.

Responses

Response samples

Content type
application/json
{
  • "labels": [
    • "Jan",
    • "Feb",
    • "Mar",
    • "Apr",
    • "May",
    • "Jun",
    • "Jul",
    • "Aug",
    • "Sep",
    • "Oct",
    • "Nov",
    • "Dec"
    ],
  • "totalIncome": [
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0
    ],
  • "totalOrders": [
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0
    ],
  • "currency": {
    • "display_name": "United States (US) dollar",
    • "symbol": "&#36;"
    },
  • "sumIncome": 0,
  • "sumTotalOrder": 0
}

Retrieves the details of order sales for this month made from students and returns in tabular form.

You can use the response for plotting graphs

query Parameters
selectedMonth
required
string
Example: selectedMonth=1-2020

Month for which you need sales information(month_number-year).

Responses

Response samples

Content type
application/json
{
  • "labels": [
    • "Jan-01",
    • "Jan-02",
    • "Jan-03",
    • "Jan-04",
    • "Jan-05",
    • "Jan-06",
    • "Jan-07",
    • "Jan-08",
    • "Jan-09",
    • "Jan-10",
    • "Jan-11",
    • "Jan-12"
    ],
  • "totalIncome": [
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0
    ],
  • "totalOrders": [
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0,
    • 0
    ],
  • "currency": {
    • "display_name": "United States (US) dollar",
    • "symbol": "&#36;"
    },
  • "sumIncome": 0,
  • "sumTotalOrder": 0
}

Retrieve Product Breakdown Sales

Retrieves the details of product break-down based order sales for a given date range made from students and returns in tabular form. You can use the response for plotting graphs

query Parameters
selectedDateRange
required
string
Example: selectedDateRange=2020-01-01-2020-01-31

Date range for which you need sales information (start_date-end_date).

Responses

Response samples

Content type
application/json
{
  • "labels": [
    • "Product-1",
    • "Product-2"
    ],
  • "totalIncome": [
    • 0,
    • 0
    ],
  • "totalOrders": [
    • 0,
    • 0
    ],
  • "currency": {
    • "display_name": "United States (US) dollar",
    • "symbol": "&#36;"
    },
  • "sumIncome": 0,
  • "sumTotalOrder": 0
}

Order Status Lookup

Retrieves all the possible statuses for an order, such as pending payment, completed, cancelled, refunded, failed, awaiting shipping, and shipped. This is useful for showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "PENDING_PAYMENT",
    • "display_value": "Payment Pending"
    },
  • {
    • "db_value": "COMPLETED",
    • "display_value": "Completed"
    },
  • {
    • "db_value": "CANCELLED",
    • "display_value": "Cancelled"
    },
  • {
    • "db_value": "REFUNDED",
    • "display_value": "Refunded"
    },
  • {
    • "db_value": "FAILED",
    • "display_value": "Failed"
    },
  • {
    • "db_value": "AWAITING_SHIPPING",
    • "display_value": "Awaiting Shipping"
    },
  • {
    • "db_value": "SHIPPED",
    • "display_value": "Shipped"
    }
]

Delete Order

Deletes one or more orders based on the ids provided in the request.

Request Body schema: application/json
optional
delete_ids
required

The IDs of the orders to delete.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": "[1,2,3]"
}

Response samples

Content type
application/json
{
  • "message": "1 order(s) deleted."
}

Create Order

Creates a new order. (See parameters) Orders can be used as purchasing products by students.

Request Body schema: application/json
required
orderDate
required
date

Ordering date.

status
required
string

Different status for the orders like pending, completed, failed, etc. Status options: PENDING_PAYMENT, COMPLETED, CANCELLED, REFUNDED or FAILED.

customerId
required
integer

Ordered by this user Id.

billingAddressId
integer

Billing address Id.

shippingAddressId
integer

Shipping address Id.

orderItems
required
Array of strings

All added item for this order purchased together.

orderNotes
Array of strings

Notes either public or private while creating course(to remeber something, like normal note).

taxAmount
numeric

Tax amount.

otherFee
numeric

Other extra fees.

Responses

Request samples

Content type
application/json
{
  • "orderDate": "2020-08-25 0:00:00",
  • "status": "COMPLETED",
  • "customerId": 3,
  • "billingAddressId": 3500,
  • "shippingAddressId": 3500,
  • "orderItems": [
    • "qui"
    ],
  • "orderNotes": [
    • "eum"
    ],
  • "taxAmount": "null",
  • "otherFee": "null"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Order created successfully"
}

Retrieves the details of a specified order.

Helps in fetching order using its ID.

query Parameters
id
required
string
Example: id=1

Order Id.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "orderDate": "2022-11-16 14:19:45",
  • "status": "PENDING_PAYMENT",
  • "display_status": "Pending Payment",
  • "customerId": 1,
  • "billingAddressId": 1,
  • "shippingAddressId": 1,
  • "taxAmount": 0,
  • "otherFee": 0,
  • "isTestOrder": false,
  • "total": "10.00",
  • "sub_total": "10.00",
  • "currency": "USD",
  • "shopAddress": "123 Main St, Anytown, CA 12345, USA",
  • "billingAddress": {
    • "id": 1,
    • "first_name": "John",
    • "last_name": "Doe",
    • "company_name": "Company Name",
    • "street_address": "123 Main St",
    • "apartment_suite_number": "Apt 101",
    • "city": "Anytown",
    • "state": "CA",
    • "zip": "12345",
    • "country": "US"
    },
  • "shippingAddress": {
    • "id": 1,
    • "first_name": "John",
    • "last_name": "Doe",
    • "company_name": "Company Name",
    • "street_address": "123 Main St",
    • "apartment_suite_number": "Apt 101",
    • "city": "Anytown",
    • "state": "CA",
    • "zip": "12345",
    • "country": "US"
    },
  • "coupon_used": null,
  • "paymentGatewayId": 1,
  • "paymentGatewayEnabled": true,
  • "companyName": null,
  • "isShippingRequired": false,
  • "thankYouUrl": "/thank-you",
  • "shippingMethodId": 1,
  • "shippingTax": 0,
  • "shippingTaxRateId": null,
  • "orderNotes": [ ],
  • "orderItems": [
    • {
      • "product_id": 1,
      • "product_title": "Product Title",
      • "price": "10.00",
      • "quantity": 1,
      • "total": "10.00",
      • "initialProductPrice": "10.00",
      • "taxRateId": null,
      • "tax": 0,
      • "isShippingRequired": false,
      • "saleTax": 0
      }
    ],
  • "taxSettings": {
    • "enable_tax": true,
    • "tax_base": "base_price",
    • "tax_rate": 0
    },
  • "taxRates": [
    • {
      • "taxRateId": 1,
      • "taxRateName": "Tax Rate Name",
      • "totalTax": "0.00"
      }
    ],
  • "totalTax": "0.00"
}

Update an order's details.

Request Body schema: application/json
optional
id
required

integer The ID of the order to update.

orderDate
required

date The date of the order.

status
required

string The status of the order. One of [PENDING_PAYMENT, COMPLETED, CANCELLED, REFUNDED, FAILED, AWAITING_SHIPPING, SHIPPED].

customerId
required

integer The ID of the customer who placed the order.

billingAddressId
integer

The ID of the billing address for the order.

shippingAddressId
integer

The ID of the shipping address for the order.

orderItems
Array of strings

The items in the order.

taxAmount
string

The tax amount for the order.

otherFee
string

The other fee for the order.

Responses

Request samples

Content type
application/json
{
  • "id": "dicta",
  • "orderDate": "maxime",
  • "status": "rerum",
  • "customerId": "nemo",
  • "billingAddressId": 1,
  • "shippingAddressId": 2,
  • "orderItems": [
    • "asperiores"
    ],
  • "taxAmount": "et",
  • "otherFee": "mollitia"
}

Response samples

Content type
application/json
{
  • "message": "Order updated successfully"
}

Update Order Status

To update the status of an existing order

path Parameters
id
required
string
Example: 3

Order ID.

Request Body schema: application/json
optional
status
required

New status of the order. Status options: PENDING_PAYMENT, COMPLETED, CANCELLED, REFUNDED, FAILED

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "Order updated successfully"
}

Create Order Note

To create a order note, you need to use this request. Returns all order notes left after this note gets created. (See Response)

path Parameters
orderId
required
string
Example: 3

Order ID.

Request Body schema: application/json
optional
data
required

Note content.

type
required

Note type.

Responses

Request samples

Content type
application/json
{
  • "data": "New notes",
  • "type": "PRIVATE"
}

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "data": "note-1",
    • "type": "PRIVATE",
    • "created_on": "Aug 11, 2020 05:36 PM"
    }
]

Delete Order Note

Deletes an order note specified by its ID. After deletion, returns all remaining order notes for the associated order.

path Parameters
id
required
string
Example: 2

The ID of the order note to be deleted.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "data": "note-1",
    • "type": "PRIVATE",
    • "created_on": "Aug 11, 2020 05:36 PM"
    }
]

Refund Options Lookup

Provides the available refund options for an order, such as full refund or partial refund. This is useful for displaying choices in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "FULL_REFUND",
    • "display_value": "Refund 100%"
    },
  • {
    • "db_value": "PARTIAL_REFUND",
    • "display_value": "Refund Partially"
    }
]

Order Note Type Lookup

Provides the available note types for an order, such as private or public. This is useful for displaying choices in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "PRIVATE",
    • "display_value": "Don’t show to Customer"
    },
  • {
    • "db_value": "PUBLIC",
    • "display_value": "Show to customer"
    }
]

Refund Types Lookup

Provides the available refund types for an order, such as stripe, braintree, authorize.net and manual. This is useful for displaying choices in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "STRIPE_PAYMENT_GATEWAY",
    • "display_value": "Stripe Payment Gateway"
    },
  • {
    • "db_value": "BRAINTREE_PAYMENT_GATEWAY",
    • "display_value": "Braintree Payment Gateway"
    },
  • {
    • "db_value": "AUTHORIZENET_PAYMENT_GATEWAY",
    • "display_value": "AuthorizeNet Payment Gateway"
    },
  • {
    • "db_value": "MANUALLY",
    • "display_value": "Manually"
    }
]

Refund an order

This function will allow you to process a refund of an order. The refund amount, refund reason, and refund type must be provided. The refund type can be either FULL_REFUND or PARTIAL_REFUND. The refund amount is required if the refund type is PARTIAL_REFUND, and the refund amount must be greater than 0.

Request Body schema: application/json
required
id
required
integer

The ID of the order to be refunded.

refundedVia
required
string

The method used to process the refund. Options: MANUALLY, STRIPE.

refundType
required
string

The type of refund being issued. Options: FULL_REFUND, PARTIAL_REFUND.

refundAmount
required
numeric

The amount to refund. This parameter is required only if refundType is PARTIAL_REFUND.

refundReason
required
string

The reason for issuing the refund.

Responses

Request samples

Content type
application/json
{
  • "id": 123,
  • "refundedVia": "MANUALLY",
  • "refundType": "FULL_REFUND",
  • "refundAmount": "50.00",
  • "refundReason": "\"Product not as described\""
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Order Refunded Successfully."
}

Get all the refund orders for the given order id

path Parameters
id
required
string
Example: harum

The ID of the order

Responses

Response samples

Content type
application/json
{
  • "refundedVia": "MANUALLY",
  • "displayRefundedVia": "Manually",
  • "refundAmount": 100,
  • "refundReason": "Product not delivered",
  • "refundStatus": "COMPLETED",
  • "refundType": "FULL_REFUND",
  • "refundDatePaid": "2020-01-01"
}

ECommerce Payments

Endpoints for managing ecommerce Payment Gateways. Payment gateways will be used when your users are purchasing products.

Get All Payment Gateways

Returns all Payment Gateways.

Responses

Response samples

Content type
application/json
{}

Update Status of Payment Gateway

Updates the status of the specified payment gateway.

Request Body schema: application/json
required
id
required
integer

The id of the payment gateway to be updated.

status
required
boolean

The status of the payment gateway.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "status": true
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Update Stripe Settings

Updates the settings for Stripe payment gateway. Setting needs to be updated is mentioned in parameter. (See Parameter)

Request Body schema: application/json
required
gatewayEnabled
required
boolean

Enable status of stripe gateway.

paymentTitle
string

Payment title for the payments.

publishableKey
string

Publishable key value. Example:

secretKey
string

Secret key value. Example:

Responses

Request samples

Content type
application/json
{
  • "gatewayEnabled": true,
  • "paymentTitle": "Pay by Credit or Debit Card",
  • "publishableKey": "expedita",
  • "secretKey": "maiores"
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Retrieve Stripe Settings

Retrieves all the settings for Stripe payment gateway. Helps in maintaining the data and enable status of the Stripe settings.

Responses

Response samples

Content type
application/json
{
  • "gatewayEnabled": false,
  • "paymentTitle": "Pay by Credit or Debit Card",
  • "publishableKey": "",
  • "secretKey": "",
  • "production_mode": "no"
}

Update AuthorizeNet Settings

Updates the settings for AuthorizeNet payment gateway. Setting needs to be updated is mentioned in parameter. (See Parameter)

Request Body schema: application/json
required
gatewayEnabled
required
boolean

Enable status of AuthorizeNet gateway.

paymentTitle
string

Payment title for the payments.

loginId
string

Login Id from AuthorizeNet. Example:

transactionKey
string

Transaction key value. Example:

clientId
string

Client Id from AuthorizeNet. Example:

Responses

Request samples

Content type
application/json
{
  • "gatewayEnabled": true,
  • "paymentTitle": "Pay via Authorize.NET",
  • "loginId": "quasi",
  • "transactionKey": "adipisci",
  • "clientId": "assumenda"
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Retrieve AuthorizeNet Settings

Retrieves all the settings for AuthorizeNet payment gateway. Helps in mainting the data and enable status of the AuthorizeNet settings.

Responses

Response samples

Content type
application/json
{
  • "gatewayEnabled": false,
  • "paymentTitle": "Pay via Authorize.NET",
  • "loginId": "commodi",
  • "transactionKey": "nihil",
  • "clientId": "commodi",
  • "production_mode": "yes"
}

Update Braintree Settings

Updates the settings for Braintree payment gateway based on the provided request parameters. The settings include enabling the gateway, setting the payment title, and updating merchant credentials for either live or test mode depending on the production mode status.

Request Body schema: application/json
required
gatewayEnabled
required
boolean

Enable status of Braintree gateway.

paymentTitle
string

Payment title for the payments.

merchantId
string

Merchant Id value.

publicKey
string

Public Key value.

privateKey
string

Private key value.

authorizationKey
string

Authorization key value.

Responses

Request samples

Content type
application/json
{
  • "gatewayEnabled": true,
  • "paymentTitle": "Pay by Credit or Debit Card",
  • "merchantId": "your_merchant_id",
  • "publicKey": "your_public_key",
  • "privateKey": "your_private_key",
  • "authorizationKey": "your_authorization_key"
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Retrieves all the settings for Braintree payment gateway. Helps in mainting the data and enable status of the Braintree settings.

Responses

Response samples

Content type
application/json
{
  • "gatewayEnabled": false,
  • "paymentTitle": "Pay by Credit or Debit Card",
  • "merchantId": "",
  • "publicKey": "",
  • "privateKey": "",
  • "authorizationKey": "",
  • "production_mode": "yes"
}

Retrieve Paypal Settings

Retrieves all the settings for Paypal payment gateway. Helps in mainting the data and enable status of the Paypal settings.

Responses

Response samples

Content type
application/json
{}

Update Paypal Settings

Updates the settings for Paypal payment gateway based on the provided request parameters. The settings include enabling the gateway, setting the payment title, and updating client credentials for either live or test mode depending on the production mode status.

Request Body schema: application/json
required
gatewayEnabled
required
boolean

Enable status of Braintree gateway.

paymentTitle
string

Payment title for the payments.

clientId
string

Client Id value.

secretKey
string

Secret key value.

Responses

Request samples

Content type
application/json
{
  • "gatewayEnabled": true,
  • "paymentTitle": "Pay by Credit or Debit Card",
  • "clientId": "your_client_id",
  • "secretKey": "your_secret_key"
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Update Invoice Settings

Updates the settings for Invoice payment gateway. Setting needs to be updated is mentioned in parameter. (See Parameter)

Request Body schema: application/json
required
gatewayEnabled
required
boolean

Enable status of Invoice gateway.

paymentTitle
string

Payment title for the payments.

paymentInstructions
string

Payment instructions for the payments.

Responses

Request samples

Content type
application/json
{
  • "gatewayEnabled": true,
  • "paymentTitle": "Pay by Invoice",
  • "paymentInstructions": "Instructions for payment"
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Retrieve Invoice Settings

Retrieves all the settings for the Invoice payment gateway. This includes the enable status, payment title, and payment instructions. Useful for maintaining and displaying the current configuration of the Invoice gateway.

Responses

Response samples

Content type
application/json
{
  • "gatewayEnabled": false,
  • "paymentTitle": "Pay by Invoice",
  • "paymentInstructions": "Instructions for payment"
}

Update Cashnet Settings

Updates the settings for Cashnet payment gateway. Setting needs to be updated is mentioned in parameter. (See Parameter)

Request Body schema: application/json
required
gatewayEnabled
required
boolean

Enable status of Cashnet gateway.

paymentTitle
string

Payment title for the payments.

merchantId
string

Merchant Id value. Example:

apiKey
string

API Key value. Example:

apiEnvUrl
string

API Environment URL value.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Retrieve Cashnet Settings

Retrieves all the settings for Cashnet payment gateway. This includes the enable status, payment title, merchant id, api key, api environment url and production mode status. Useful for maintaining and displaying the current configuration of the Cashnet gateway.

Responses

Response samples

Content type
application/json
{
  • "gatewayEnabled": false,
  • "paymentTitle": "Pay by Credit or Debit Card",
  • "merchantId": "your_merchant_code",
  • "apiKey": "your_api_key",
  • "production_mode": "yes"
}

ECommerce Products

A Product will be reached to your learners. Course has to be attached to products so that learners can purchase your courses. Helps in performing CRUD operations for and to products.

Retrieve Product Catalog

Retrieves the details for the product catalogs in paginated form to show this to students as course catalog so that they can purchase the product hence course.

query Parameters
page_size
required
string
Example: page_size=50

The amount of records to return per page.

page_number
required
string
Example: page_number=1

The page number of the records to return.

order_by
required
string
Example: order_by={"colName":"created_at", "direction": "desc"}

The order by parameters.

search_param
required
string
Example: search_param={"title":"", "ids":"", "selectedPrice":["Paid", "Free"], "selectedProductCategories":[], "selectedCourseType":[]}

The search parameters.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "title": "Product-1",
      • "slug": "product-1",
      • "displayPrice": 3000,
      • "status": "IN-STOCK",
      • "label": "SIMPLE",
      • "display_label": "Simple",
      • "canBePurchased": true,
      • "seo_description": "This is the description of product 1.",
      • "price": 3000,
      • "type": "SIMPLE",
      • "price_frequency": "MONTHLY",
      • "webinarsCount": 1,
      • "modulesCount": 2,
      • "averageRating": 4.5
      }
    ]
}

Retrieves the product details.

Fetches the product details, including the title, slug, description, featured image url, regular price, sale price, status, expiry date, dynamic pricing, SEO title, SEO description, display price, can be purchased, label, display label, subscription price, price frequency, free trial value, free trial frequency, subscription expire after, membership id, content access type, catalog rank, global product setting color, sale tax, tax class id, average rating, min purchase quantity, webinars count, modules count, dynamic prices, categories, related products, courses, course categories, instructor led course, learning paths, learning path categories, category courses and category learning paths.

query Parameters
id
required
string
Example: id=provident

The ID of the product to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "Product-1",
  • "slug": "product-1",
  • "description": "This is the description of product 1.",
  • "featuredImageUrl": "https://example.com/product-1.jpg",
  • "regular_price": 3500,
  • "type": "SIMPLE",
  • "sale_price": 3000,
  • "saleStartDate": "2021-01-01 12:00:00",
  • "saleEndDate": "2021-01-15 12:00:00",
  • "status": "IN-STOCK",
  • "expiry_date": "2021-01-31 12:00:00",
  • "dynamic_pricing": true,
  • "seo_title": "Product-1",
  • "seo_description": "This is the description of product 1.",
  • "displayPrice": 3000,
  • "canBePurchased": true,
  • "label": "SIMPLE",
  • "display_label": "Simple",
  • "subscription_price": 3000,
  • "price_frequency": "MONTHLY",
  • "free_trial_value": 1,
  • "free_trial_frequency": "MONTHLY",
  • "subscription_expire_after": "2021-01-31 12:00:00",
  • "membership_id": 1,
  • "contentAccessType": "PHYSICAL",
  • "catalog_rank": 1,
  • "globalProductSettingColor": {
    • "product_price_color": {
      • "backgroundColor": "#fff"
      }
    },
  • "saleTax": 0,
  • "taxClassId": 1,
  • "averageRating": 4.5,
  • "minPurchaseQuantity": 1,
  • "webinarsCount": 1,
  • "modulesCount": 2,
  • "dynamicPrices": [
    • {
      • "minQty": 1,
      • "maxQty": 10,
      • "perPrice": 3000
      }
    ],
  • "categories": [
    • 1,
    • 2
    ],
  • "relatedProducts": [
    • 1,
    • 2
    ],
  • "courses": [
    • {
      • "value": 1,
      • "label": "Course-1"
      },
    • {
      • "value": 2,
      • "label": "Course-2"
      }
    ],
  • "courseCategories": [
    • 1,
    • 2
    ],
  • "instructorLedCourse": [
    • {
      • "value": 1,
      • "label": "Instructor Led Course-1"
      }
    ],
  • "learningPaths": [
    • {
      • "value": 1,
      • "label": "Learning Path-1",
      • "learningPathCourses": [
        ]
      }
    ],
  • "categoryCourses": [
    • {
      • "value": 3,
      • "label": "Course-3"
      }
    ],
  • "categoryLearningPaths": [
    • {
      • "value": 2,
      • "label": "Learning Path-2",
      • "learningPathCourses": [
        ]
      }
    ]
}

Update an existing product.

This endpoint allows updating a product's details, including its pricing, categories, related products, courses, and other properties. It supports dynamic pricing and validation for product data such as description, sale prices, SEO, and tax settings.

Request Body schema: application/json
required
id
required
integer

The ID of the product to be updated.

title
required
string

The title of the product.

description
required
string

The description of the product.

featuredImageUrl
string

The URL for the product's featured image.

regular_price
numeric

The regular price of the product.

sale_price
numeric

The sale price of the product.

saleStartDate
string

The start date of the sale in Y-m-d H:i:s format.

saleEndDate
string

The end date of the sale in Y-m-d H:i:s format.

status
required
string

The status of the product. Options: "COMING-SOON", "IN-STOCK", "OUT-OF-STOCK".

type
required
string

The type of the product. Options: "SIMPLE", "DOWNLOADABLE", "SUBSCRIPTION".

categories
Array of strings

The IDs of the categories associated with the product.

courses
Array of strings

The courses associated with the product.

relatedProducts
Array of strings

The related product IDs.

dynamic_pricing
boolean

Whether dynamic pricing is enabled for the product.

dynamicPrices
Array of strings

An array of dynamic pricing rules.

seo_title
string

The SEO title for the product.

seo_description
string

The SEO description for the product.

membership_id
integer

The ID of the membership associated with the product.

subscription_price
numeric

The subscription price for subscription products.

price_frequency
string

The frequency of subscription payments. Options: "DAILY", "WEEKLY", "MONTHLY", "YEARLY".

free_trial_value
numeric

The free trial value for subscription products.

free_trial_frequency
string

The frequency of the free trial. Options: "DAYS", "WEEKS", "MONTHS", "YEARS".

minPurchaseQuantity
numeric

The minimum purchase quantity for the product.

saleTax
string

The tax rate for the sale.

taxClassId
integer

The ID of the tax class associated with the product.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "title": "\"New Course Title\"",
  • "description": "\"A detailed description of the course.\"",
  • "featuredImageUrl": "\"https://example.com/image.jpg\"",
  • "regular_price": "100.00",
  • "sale_price": "80.00",
  • "saleStartDate": "\"2025-04-01 00:00:00\"",
  • "saleEndDate": "\"2025-04-10 00:00:00\"",
  • "status": "\"IN-STOCK\"",
  • "type": "\"SIMPLE\"",
  • "categories": [
    • 1,
    • 2,
    • 3
    ],
  • "courses": [
    • {
      • "value": 1
      },
    • {
      • "value": 2
      }
    ],
  • "relatedProducts": [
    • 101,
    • 102
    ],
  • "dynamic_pricing": true,
  • "dynamicPrices": [
    • {
      • "minQty": 1,
      • "perPrice": 90
      }
    ],
  • "seo_title": "\"Product SEO Title\"",
  • "seo_description": "\"This is a detailed product description for SEO.\"",
  • "membership_id": 10,
  • "subscription_price": "20.00",
  • "price_frequency": "\"MONTHLY\"",
  • "free_trial_value": "7",
  • "free_trial_frequency": "\"DAYS\"",
  • "minPurchaseQuantity": "1",
  • "saleTax": "\"10%\"",
  • "taxClassId": 1
}

Response samples

Content type
application/json
{
  • "message": "Product updated successfully"
}

Get webinars for a product

Returns all webinars associated with the courses related to the product with the given ID. Optionally accepts a search parameter which can be used to filter the results by date range and location.

query Parameters
product_id
required
string
Example: product_id=reprehenderit

The ID of the product.

search_param
string
Example: search_param=cum

optional A JSON object with two properties: 'dates' and 'location'. 'dates' should be an array of two dates in the format 'Y-m-d'. 'location' should be the ID of a location.

Responses

Response samples

Content type
application/json
{
  • "Course Name 1": [
    • {
      • "id": 1,
      • "startDate": "2020-01-01",
      • "endDate": "2020-01-01",
      • "startTime": "09:00:00",
      • "endTime": "17:00:00",
      • "location_id": 1,
      • "location": "Location 1"
      },
    • {
      • "id": 2,
      • "startDate": "2020-01-15",
      • "endDate": "2020-01-15",
      • "startTime": "09:00:00",
      • "endTime": "17:00:00",
      • "location_id": 2,
      • "location": "Location 2"
      }
    ],
  • "Course Name 2": [ ]
}

Search Products

Retrieves the products with the search_term in the product name or in the name of the courses or learning paths associated with the product. Returns the products in a select list format. Helps while showing products names in form elements like dropdown. You can apply filters using search_term parameter. (See Response)

query Parameters
search_term
required
string
Example: search_term=totam

The name or substring of the product name to search for that product.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Product-1",
    • "value": "/product/product-1"
    },
  • {
    • "id": 2,
    • "name": "Product-2",
    • "value": "/product/product-2"
    }
]

Retrieve All Products

Retrieves all the products that exists in the system. Helps in fetching all the products.

query Parameters
excludeId
string
Example: excludeId=1

optional ID of the product you want to exclude from the records.

Responses

Product Type Lookup

Retrieves the types of the product that the platform offers. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "SIMPLE",
    • "display_value": "Simple"
    },
  • {
    • "db_value": "SUBSCRIPTION",
    • "display_value": "Subscription"
    }
]

Update Slug

Updates the slug of the product identified by 'id' with the new slug provided. The new slug is checked for uniqueness and if it already exists, a new slug is generated by appending a counter to the slug. The updated slug is then saved to the product. Returns the updated slug.

path Parameters
id
required
string
Example: 3

ID of the product to be updated.

query Parameters
slug
required
string
Example: slug="about-us"

The new slug of the product.

Responses

Response samples

Content type
application/json
"about-us-1"

Product Status Lookup

Retrieves the statuses for a product the platform offers. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "COMING-SOON",
    • "display_value": "Coming Soon"
    },
  • {
    • "db_value": "IN-STOCK",
    • "display_value": "In Stock"
    },
  • {
    • "db_value": "OUT-OF-STOCK",
    • "display_value": "Out of Stock"
    }
]

Tabular List

Retrieves all the products in a tabular list format in paginated mode. You can apply filter using search_param via title, productStatus(in-stock, out-of-stock, etc) and productCategoryIds.

query Parameters
page_size
required
string
Example: page_size=10

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"title": "", "productStatus": ["IN-STOCK"], "productCategoryIds": []}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "title": "Product 1",
      • "regular_price": 3500,
      • "type": "SIMPLE",
      • "status": "IN-STOCK",
      • "created_at": "2021-01-01 12:00:00",
      • "catalog_rank": 1
      }
    ]
}

Product Lookup

Retrieves all the products in a select list format. Helps while showing products names in form elements like dropdown. You can apply filters using search_term parameter. (See Response)

query Parameters
search_term
required
string
Example: search_term=molestiae

The name or substring of the product name to search for that product.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "title": "Product-1",
    • "isShippingRequired": true
    },
  • {
    • "id": 2,
    • "title": "Product-2",
    • "isShippingRequired": false
    }
]

Create a new product.

Request Body schema: application/json
required
title
required

The title of the product.

description
required

The description of the product.

featuredImageUrl
string

The featured image of the product.

regular_price
required
numeric

The regular price of the product.

type
required
string

The type of the product. Type options: SIMPLE, DOWNLOADABLE or SUBSCRIPTION.

sale_price
numeric

The sale price of the product.

saleStartDate
date

The sale start date of the product.

saleEndDate
date

The sale end date of the product.

status
required
string

The status of the product. Status options: COMING-SOON, IN-STOCK or OUT-OF-STOCK.

expiry
date

The expiry date of the product.

categories
Array of strings

The categories of the product.

courses
Array of strings

The courses of the product.

courseCategories
Array of strings

The course categories of the product.

learningPaths
Array of strings

The learning paths of the product.

learningPathCategories
Array of strings

The learning path categories of the product.

membership_id
integer

The membership id of the product.

seo_title
string

The seo title of the product.

seo_description
string

The seo description of the product.

subscription_price
required
numeric

The subscription price of the product for the product type Subscription.

price_frequency
required
string

The price frequency to be charged for Subscription product. Price Frequency Options: DAILY, WEEKLY, MONTHLY or YEARLY.

free_trial_value
numeric

The free trail for the Subscription product.

free_trial_frequency
string

The free trail frequency for the subscription product in which the product will be available for free. Free Trail Frequency Options: DAYS, WEEKS, MONTHS, YEARS.

subscription_expire_after
numeric

The subscription expire after for the Subscription product.

dynamic_pricing
boolean

The dynamic pricing for the product.

taxClassId
integer

The tax class id of the product.

minPurchaseQuantity
numeric

The minimum purchase quantity of the product.

catalog_rank
numeric

The catalog rank of the product.

saleTax
string

The sale tax of the product.

shippingClass
integer

The shipping class of the product.

Responses

Request samples

Content type
application/json
{
  • "title": "Product-1",
  • "description": "Course 1 product",
  • "regular_price": "3500",
  • "type": "SIMPLE",
  • "sale_price": "3001",
  • "saleStartDate": "2020-12-01 0:00:00",
  • "saleEndDate": "2020-12-31 0:00:00",
  • "status": "IN-STOCK",
  • "expiry": "2020-10-29 0:00:00",
  • "categories": [ ],
  • "courses": [
    • "aspernatur"
    ],
  • "courseCategories": [ ],
  • "learningPaths": [
    • "omnis"
    ],
  • "learningPathCategories": [ ],
  • "membership_id": 1,
  • "seo_title": "awesome-product",
  • "seo_description": "includes many good courses",
  • "subscription_price": "3500",
  • "price_frequency": "WEEKLY",
  • "free_trial_value": "5",
  • "free_trial_frequency": "aut",
  • "subscription_expire_after": "5",
  • "dynamic_pricing": true,
  • "taxClassId": 1,
  • "minPurchaseQuantity": "2",
  • "catalog_rank": "1",
  • "saleTax": "taxable",
  • "shippingClass": 1
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Product created successfully"
}

Delete product

To delete a product, you need to use this request. Returns number of product deleted(if multiple selected) and also not deleted. (See Response)

Request Body schema: application/json
required
delete_ids
required
Array of strings

All product IDs which needs to be deleted.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "2 product(s) deleted 1 product(s) not deleted as it has active subscription. Please remove the subscription and try again.",
  • "deletedProductsCount": 2,
  • "unDeletedProductsCount": 1,
  • "unDeletedProducts": [
    • {
      • "id": 5,
      • "name": "Product-5"
      }
    ]
}

Get the price of the product.

path Parameters
id
required
string
Example: 1

The ID of the product.

Responses

Response samples

Content type
application/json
{
  • "price": 3001
}

Quick Edit

Updates the details in bulk for a specified product. Parameters is provided which needs to be updated. (See Parameters)

Request Body schema: application/json
required
product_ids
required
Array of strings

All product IDs which needs to be updated.

outofstock
required
boolean

Whether product is out of stock.

Responses

Request samples

Content type
application/json
{
  • "product_ids": [
    • 3,
    • 2
    ],
  • "outofstock": true
}

Response samples

Content type
application/json
{
  • "message": "Products updated Successfully"
}

Product Free Trial Interval Lookup For Products

Retrieves how often the amount will be deducted in subscription of the product, the platform offers. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "DAYS",
    • "display_value": "Days"
    },
  • {
    • "db_value": "WEEKS",
    • "display_value": "Weeks"
    },
  • {
    • "db_value": "MONTHS",
    • "display_value": "Months"
    },
  • {
    • "db_value": "YEARS",
    • "display_value": "Years"
    }
]

Subscription Price Frequency Lookup For Products

Retrieves how often the amount will be deducted in subscription of the product, the platform offers. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "DAILY",
    • "display_value": "Per day"
    },
  • {
    • "db_value": "WEEKLY",
    • "display_value": "Per week"
    },
  • {
    • "db_value": "MONTHLY",
    • "display_value": "Per month"
    },
  • {
    • "db_value": "YEARLY",
    • "display_value": "Per year"
    }
]

Clone Product

Clone the product with the given ID and copies all the related mappings with the product

Request Body schema: application/json
optional
productId
required

The id of the product to be cloned.

Responses

Request samples

Content type
application/json
{
  • "productId": "autem"
}

Response samples

Content type
application/json
{
  • "message": "Product Cloned Successfully"
}

Flash Cards Modules

A Flash Cards Module is a lesson module used as course content. Helps to perform CRUD operation to and for Flash Cards modules.

Flash Cards Modules Tabular List

Returns all the flash cards modules in a tabular list format in paginated mode. You can apply filter using search_param via moduleTypes(module type), associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"moduleTypes": ["flashcards"],associatedCourse":"","moduleName":""}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 14,
  • "recordsFiltered": 3,
  • "records": [
    • {
      • "id": 14,
      • "name": "Lesson-1",
      • "slug": "lesson-1",
      • "type": "flashcards",
      • "icon": "<i class=\"el-icon-collection\"></i>",
      • "author": "Aom Staff",
      • "created_at": "Aug 11, 2020 06:45 AM"
      },
    • {
      • "id": 5,
      • "name": "The Fundamentals of LMS",
      • "slug": "the-fundamentals-of-lms",
      • "type": "flashcards",
      • "icon": "<i class=\"el-icon-collection\"></i>",
      • "author": "Aom Staff",
      • "created_at": "Aug 10, 2020 04:59 PM"
      },
    • {
      • "id": 1,
      • "name": "test",
      • "slug": "test",
      • "type": "flashcards",
      • "icon": "<i class=\"el-icon-collection\"></i>",
      • "author": "Aom Staff",
      • "created_at": "Aug 03, 2020 09:56 AM"
      }
    ]
}

Create FlashCard Module

To create a flashcard module, you need to use this request. (See parameters) Created flashcard modules can be used in the course as course content/lesson.

Returns : id of the flashcard module created and successfull message

Request Body schema: application/json
required
name
required
string

Name of the flashcard module.

content
required
string

Content for the flashcard modules that students will see.

orientation
required
string

Orientation of the flashcard module.

trackCompletion
required
boolean

If true, the module is being tracked(whether its finished or not) in course player.

categories
Array of strings

The module category to which the flashcard belong to.

estimatedCompletion
integer

The estimated completion time for the flashcard module.

estimationCompletedUnit
string

The unit of the estimated completion time.

Responses

Request samples

Content type
application/json
{
  • "name": "The Fundamentals of LMS",
  • "content": "<p>This is the short content here</p>",
  • "orientation": "portrait",
  • "trackCompletion": true,
  • "categories": [
    • 1,
    • 2,
    • 3
    ],
  • "estimatedCompletion": 2,
  • "estimationCompletedUnit": "minute"
}

Response samples

Content type
application/json
{
  • "id": 9,
  • "message": "Module saved successfully"
}

Retrieve Detailed Flashcard Module Info

Retrieves details of flashcard module in depth. Returns related fields value. (See Response)

query Parameters
id
required
string
Example: id=6

ID of the flashcard module.

Responses

Response samples

Content type
application/json
{
  • "id": 6,
  • "name": "Introduction to Web Development",
  • "slug": "intro-to-web-development",
  • "content": "<p>This course covers the basics of HTML, CSS, and JavaScript for building modern websites.</p>",
  • "trackCompletion": true,
  • "estimatedCompletion": "30",
  • "estimationCompletedUnit": "hours",
  • "orientation": "Online",
  • "categories": [ ],
  • "courses": [ ]
}

Update Flash Card Module

Updates the details of the specified flash card module. (See parameters) Flash card modules can be used in the course as course content/lesson.

Request Body schema: application/json
required
name
required
string

Name of the flash card module.

content
Array of strings

Content for the flash card module.

orientation
required
string

Orientation of the flash card module.

trackCompletion
boolean

If true, the module is being tracked (whether it's finished or not) in course player.

categories
Array of strings

Categories to which the flash card module belongs.

estimatedCompletion
nullable

Estimated time to complete the module.

estimationCompletedUnit
nullable

Unit of the estimated completion time.

Responses

Request samples

Content type
application/json
{
  • "name": "Basic Concepts",
  • "content": [
    • "Flashcard content"
    ],
  • "orientation": "horizontal",
  • "trackCompletion": true,
  • "categories": [
    • 1,
    • 2,
    • 3
    ],
  • "estimatedCompletion": "30",
  • "estimationCompletedUnit": "minutes"
}

Response samples

Content type
application/json
{
  • "message": "Module updated successfully"
}

Retrieve Detailed Flashcard Module Info

Retrieves details of flashcard module in depth as well as different modules details that are being used as course content for the same course the current flashcard module is attached to. Returns related fields value. (See Response)

query Parameters
registrationId
required
string
Example: registrationId=1

ID of the course Registration for which this module is attached to.

moduleId
required
string
Example: moduleId=6

ID of the flashcard module.

Responses

Response samples

Content type
application/json
{
  • "name": "Web Development Basics",
  • "slug": "web-development-basics",
  • "content": "<p>This module introduces the core concepts of modern web development, including HTML, CSS, and responsive design.</p>",
  • "courseName": "Full Stack Web Development",
  • "trackCompletion": true,
  • "min_time_spent": 0,
  • "otherModules": [
    • {
      • "module_id": 1,
      • "name": "Introduction to HTML",
      • "slug": "introduction-to-html",
      • "type": "text",
      • "icon": "<i class=\"el-icon-tickets\"></i>",
      • "is_locked": false,
      • "lock_reason": "",
      • "is_dripped": false,
      • "drip_message": "",
      • "is_current": false,
      • "status_row_id": 1,
      • "status": "Completed",
      • "started_on": "2020-08-03T10:02:33.000000Z",
      • "completed_on": "2020-08-03T10:02:41.000000Z",
      • "last_accessed_on": "1 week ago",
      • "total_time_spent": {
        },
      • "completion_percentage": 100,
      • "no_of_times_accessed": 1
      },
    • {
      • "module_id": 4,
      • "name": "CSS Assignment",
      • "slug": "css-assignment",
      • "type": "assignment",
      • "icon": "<i class=\"el-icon-edit-outline\"></i>",
      • "is_locked": false,
      • "lock_reason": "",
      • "is_dripped": false,
      • "drip_message": "",
      • "is_current": true,
      • "status_row_id": -1,
      • "status": "Not Started",
      • "started_on": "",
      • "completed_on": "",
      • "last_accessed_on": "Never",
      • "total_time_spent": "",
      • "points_awarded": "",
      • "completion_percentage": 0,
      • "no_of_times_accessed": 0
      }
    ],
  • "launchCheck": {
    • "canbeLaunched": true,
    • "errTitle": "",
    • "errDesc": ""
    },
  • "prevSlug": "",
  • "nextSlug": "css-assignment",
  • "status": "Completed",
  • "timeSpent": 6,
  • "statusRowId": 1
}

Update the progress of a flashcard module.

query Parameters
portalId
required
string
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

statusRowId
required
string
Example: statusRowId=6

ID of the ModuleStatus Row belongs to current flashcard module.

cardIndex
required
string
Example: cardIndex=1

The current index of the card being accessed.

totalCards
required
string
Example: totalCards=10

The total number of cards in the current module.

Responses

Response samples

Content type
application/json
{
  • "status": "Completed",
  • "message": "Module completed successfully",
  • "course_newly_completed": false
}

Retrieve Detailed Flashcard Module Info as Membership content

Retrieves details of flashcard module in depth for the same membership the current flashcard module is attached to. Returns related fields value. (See Response)

query Parameters
moduleId
required
string
Example: moduleId=6

ID of the flashcard module.

Responses

Response samples

Content type
application/json
{}

Front End Webhook API

Endpoints for Front end Marketing Pages. Send automated notifications to external system when some action happens.

Webhook Event Lookup

Retrieves all the events for the webhook actions. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "new_account_created",
    • "display_value": "New Account Created"
    },
  • {
    • "db_value": "course_enrolled",
    • "display_value": "Enrolled in a course"
    },
  • {
    • "db_value": "quiz_submission",
    • "display_value": "Submitted a Quiz"
    },
  • {
    • "db_value": "assigment_submission",
    • "display_value": "Submitted an assignment"
    },
  • {
    • "db_value": "assigment_evaluation",
    • "display_value": "Evaluated an assignment"
    },
  • {
    • "db_value": "assigment_rejection",
    • "display_value": "Rejected an assignment"
    },
  • {
    • "db_value": "discussion_submission",
    • "display_value": "Submitted a discussion"
    },
  • {
    • "db_value": "new_order",
    • "display_value": "New Order Placed"
    },
  • {
    • "db_value": "failed_order",
    • "display_value": "Order Failed"
    },
  • {
    • "db_value": "refunded_order",
    • "display_value": "Order Refunded"
    },
  • {
    • "db_value": "pending_payment",
    • "display_value": "Payment Pending"
    },
  • {
    • "db_value": "new_announcement",
    • "display_value": "New Announcement"
    },
  • {
    • "db_value": "course_completed",
    • "display_value": "Course Completed"
    }
]

Create Webhook

Creates a webhook using parameters mentioned. (See parameters) Creates the webhook details using webhook ID.

path Parameters
id
required
string
Example: 3

ID of the webhook.

Request Body schema: application/json
required
url
required
string

Endpoint to send the data.

description
string

Description of the event that is being created.

eventList
required
string

Event from the option list. Event options: new_account_created, course_enrolled, quiz_submission, assigment_submission, assigment_evaluation, assigment_rejection, discussion_submission, new_order, failed_order, refunded_order, pending_payment, new_announcement or course_completed.

Responses

Request samples

Content type
application/json
{
  • "description": "It will use to collect new user data.",
  • "eventList": "New Account Created"
}

Response samples

Content type
application/json
{
  • "id": "4",
  • "message": "Webhook saved successfully"
}

Webhook Actions Tabular List

Returns all the Webhook created in a tabular list format. You can apply filter using search_param.

query Parameters
order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
integer
Example: search_param=0

For searching items based on Events.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 4,
  • "recordsFiltered": 3,
  • "records": [
    • {
      • "id": 3,
      • "events": "New Account Created",
      • "author": "Client Admin",
      • "created_at": "Aug 10, 2020 12:43 PM"
      },
    • {
      • "id": 4,
      • "events": "Enrolled in a course",
      • "author": "Client Admin",
      • "created_at": "Aug 10, 2020 12:43 PM"
      }
    ]
}

Update the specified webhook in storage.

path Parameters
id
required
string
Example: 3

ID of the webhook.

Request Body schema: application/json
required
url
required
string

Endpoint to send the data.

description
string

Description of the event that is being created.

eventList
required
string

Event from the option list. Event options: new_account_created, course_enrolled, quiz_submission, assigment_submission, assigment_evaluation, assigment_rejection, discussion_submission, new_order, failed_order, refunded_order, pending_payment, new_announcement or course_completed.

Responses

Request samples

Content type
application/json
{
  • "description": "It will use to collect new user data.",
  • "eventList": "New Account Created"
}

Response samples

Content type
application/json
{
  • "id": "4",
  • "message": "Webhook updated successfully"
}

Delete the specified webhook in storage.

path Parameters
id
required
string
Example: 3

ID of the webhook.

Responses

Response samples

Content type
application/json
{
  • "message": "Webhook deleted successfully"
}

Webhook Log Tabular List

Returns all the webhook log in a tabular list format in paginated mode.

path Parameters
id
required
string
Example: 3

ID of the webhook.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
integer
Example: search_param=0

For searching items based on columns provided in JSON format.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "event": "new_account_created",
      • "data": [ ],
      • "status": "success",
      • "errorMessage": "",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "showData": false
      }
    ]
}

Mailchimp Event Lookup

Retrieves all the events for the mailchimp actions. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "newAccount",
    • "display_value": "Add New Account"
    }
]

Create a new Mailchimp event

query Parameters
data
required
string
Example: data=[{"list_id": "1234567890", "list_name": "Test list", "event": "subscribe"}]

An array of webhooks to be saved.

Responses

Response samples

Content type
application/json
{
  • "message": "Mailchimp saved successfully"
}

Get all Mailchimp lists

Responses

Response samples

Content type
application/json
{
  • "lists": [
    • {
      • "id": "a1b2c3d4e5",
      • "name": "Weekly Newsletter",
      • "contact": {
        },
      • "permission_reminder": "You are receiving this email because you signed up on our website.",
      • "use_archive_bar": true,
      • "campaign_defaults": {
        },
      • "notify_on_subscribe": "[email protected]",
      • "notify_on_unsubscribe": "[email protected]",
      • "email_type_option": true,
      • "visibility": "pub",
      • "double_optin": true,
      • "marketing_permissions": true,
      • "modules": [
        ],
      • "stats": {
        },
      • "date_created": "2023-01-15T09:30:00+00:00"
      }
    ]
}

Mailchimp Actions Tabular List

Returns all the Mailchimp Actions created in a tabular list format. You can apply filter using search_param.

query Parameters
order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 4,
  • "recordsFiltered": 3,
  • "records": [
    • {
      • "id": 3,
      • "list_name": "AOM",
      • "event": "New Account Created",
      • "author": "Client Admin",
      • "created_at": "Aug 10, 2020 12:43 PM"
      },
    • {
      • "id": 4,
      • "list_name": "AOM",
      • "event": "Enrolled in a course",
      • "author": "Client Admin",
      • "created_at": "Aug 10, 2020 12:43 PM"
      }
    ]
}

Mailchimp Log Tabular List

Returns all the Mailchimp log in a tabular list format in paginated mode.

path Parameters
id
required
string
Example: 50

ID of the Mailchimp action.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"name":""}

For searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "event": "new_account_created",
      • "data": [ ],
      • "status": "success",
      • "errorMessage": "",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "showData": false
      }
    ]
}

Gamification

Endpoints for managing Gamification settings.

Tabular List

Retrieves all the gamification events in a tabular list format.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Test Gamification Event",
      • "triggerValue": 100,
      • "badgeTitle": "Test Badge",
      • "type": "total_money_spent",
      • "display_type": "Total money spent"
      }
    ]
}

Retrieves all the types of events for gamification event settings.

Helps showing options in dropdowns elements

Responses

Create a new gamification event.

Creates a new gamification event with the given name, type, selected badge ID, and trigger value.

Request Body schema: application/json
optional
name
required

string The name of the new event.

eventType
required

string The type of the new event.

selectedBadgeId
required

The ID of the selected badge.

triggerValue
required

integer The trigger value for the new event.

Responses

Request samples

Content type
application/json
{
  • "name": "\"New Event\"",
  • "eventType": "\"total_money_spent\"",
  • "selectedBadgeId": "123",
  • "triggerValue": "5.6"
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "message": "Event created successfully"
}

Retrieve a specific gamification event.

Fetches the details of a gamification event by its ID, including the event name, type, selected badge ID, and trigger value.

query Parameters
id
required
string
Example: id=1

integer The ID of the event to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Event 1",
  • "eventType": "total_module_completed",
  • "selectedBadgeId": 123,
  • "triggerValue": 5.6
}

Update a specific gamification event.

Updates the details of a gamification event by its ID, including the event name, type, selected badge ID, and trigger value.

query Parameters
name
required
string
Example: name="Event 1"

string The name of the Event.

eventType
required
string
Example: eventType="total_module_completed"

string The type of the Event.

selectedBadgeId
required
string
Example: selectedBadgeId=123

The ID of the selected badge.

triggerValue
required
string
Example: triggerValue=5.6

interger The trigger value for the event.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Event updated successfully"
}

Delete a specific gamification event.

Deletes a gamification event by its ID, but only if no badge has been assigned to a user for that event. If a badge has been assigned, the event cannot be deleted.

path Parameters
id
required
string
Example: 1

integer The ID of the event to be deleted.

Responses

Response samples

Content type
application/json
{
  • "message": "Event cannot be deleted as a badge has been assigned to user for this event"
}

General Settings

General Settings helps in managing general platform settings like site name, timezone, emails etc

Get site languages

Get list of all supported languages with their display name.

Responses

Get General Email Settings

Retrieves the details of the general email settings.

query Parameters
portalId
required
integer
Example: portalId=1

Portal ID.

Responses

Response samples

Content type
application/json
{
  • "fromName": "Academy of Mine",
  • "fromEmail": "[email protected]",
  • "replyToEmail": "[email protected]",
  • "templateDesign": "default",
  • "headerLogo": "Default",
  • "customHeaderLogoURL": null,
  • "headerBgColor": "#6b15b6",
  • "bgColor": "#ffffff",
  • "bodyBgColor": "#f6f9fc",
  • "bodyTextColor": "#1b1e24"
}

Update General Email Settings

To update the general email settings with updated values, you need to use this request. (See parameters)

Request Body schema: application/json
required
fromName
required
string

From name for the email.

fromEmail
required
string

From email address for the email.

replyToEmail
required
string

Reply to email address for the email.

templateDesign
required
string

Template design for the email.

headerLogo
required
string

Header logo for the email.

customHeaderLogoURL
required
string

Custom header logo URL for the email.

headerBgColor
required
string

Header background color for the email.

bgColor
required
string

Background color for the email.

bodyBgColor
required
string

Body background color for the email.

bodyTextColor
required
string

Body text color for the email.

footerText
required
string

Footer text for the email.

logoBgColor
required
string

Logo background color for the email.

Responses

Request samples

Content type
application/json
{
  • "fromName": "Academy of Mine",
  • "fromEmail": "[email protected]",
  • "replyToEmail": "[email protected]",
  • "templateDesign": "default",
  • "headerLogo": "Default",
  • "customHeaderLogoURL": "null",
  • "headerBgColor": "#6b15b6",
  • "bgColor": "#ffffff",
  • "bodyBgColor": "#f6f9fc",
  • "bodyTextColor": "#1b1e24",
  • "footerText": "Copyright &copy; Your Company Name - All rights reserved.",
  • "logoBgColor": "#1b1e24"
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Update email format for given type

This api is used to update the email format of given type

Request Body schema: application/json
required
type
required
string

Type of email.

portalId
required
integer

Portal ID

area
required
string

Area of email.

subject
required
string

Subject of email.

recipients
required
string

Recipients of email.

heading
required
string

Heading of email.

content
required
string

Content of email.

enabled
required
integer

Is email enabled?

admin_enabled
required
integer

Is email enabled for admin?

hours
required
integer

Number of hours.

days
required
integer

Number of days.

interval
required
string

Interval of reminder.

frequency
required
string

Frequency of reminder.

enable_coupon
required
integer

Is coupon enabled?

coupon
required
integer

Coupon ID.

Responses

Request samples

Content type
application/json
{
  • "type": "upcoming_webinar",
  • "portalId": 11,
  • "area": "Course, Class",
  • "subject": "Your Upcoming Webinar",
  • "recipients": "User",
  • "heading": "Upcoming Webinar",
  • "content": "This is a test email",
  • "enabled": 1,
  • "admin_enabled": 1,
  • "hours": 24,
  • "days": 7,
  • "interval": "days",
  • "frequency": "1",
  • "enable_coupon": 1,
  • "coupon": 1
}

Response samples

Content type
application/json
{
  • "message": "Template Updated Successfully"
}

Get Email Format

Retrieves the details of the email formats.

query Parameters
portalId
required
integer
Example: portalId=1
type
required
Array of strings
Example: type=new_account_creation&type=new_account_creation_others

Array of email types.

Responses

Get General Settings

Get the general settings of the site.

Responses

Response samples

Content type
application/json
{
  • "siteTitle": "Academy of mine",
  • "adminEmail": "[email protected]",
  • "siteLanguage": "en",
  • "timeZone": "null",
  • "dateFormat": "M d, Y",
  • "timeFormat": "h:i A",
  • "privateSite": "no",
  • "customTimeZone": "tempora",
  • "homePage": "1",
  • "productCatalogPage": 2,
  • "cartPage": 5,
  • "checkoutPage": "4",
  • "termConditionPage": 3,
  • "termConditionText": "I have read and agree to the website term.",
  • "privacyPolicyPage": 2,
  • "privacyPolicyText": "Your personal data will be used to process your order, support your experience throughout this website, and for other purposes described in our privacy policy."
}

Update General Settings

Update the general settings of the site with provided values in the request.

Request Body schema: application/json
required
siteTitle
required
string

Site title of the website.

adminEmail
required
string

Admin email of the website.

siteLanguage
required
string

Language of the site.

timeZone
required
string

Timezone of the site.

dateFormat
required
string

Date format of the site.

timeFormat
required
string

Time format of the site.

privateSite
required
string

Is the site private or not.

customTimeZone
required
string

Custom timezone for site.

homePage
required
integer

Homepage for site(page Id).

cartPage
required
integer

Cart page for site(page Id).

checkoutPage
required
integer

Checkout page for site(page Id).

termConditionPage
required
integer

Term and Condition page for the site(page Id).

termConditionText
required
string

Term and Condition Text of the site.

privacyPolicyPage
required
integer

Privacy Policy page for the site(page Id).

privacyPolicyText
required
string

Privacy Policy Text of the site.

cookieTitle
required
string

Cookie Title of the site.

cookieAccept
required
string

Cookie Accept Button of the site.

cookieReject
required
string

Cookie Reject Button of the site.

cookieMessage
required
string

Cookie Message of the site.

thankyouPage
required
integer

Thank you page for the site(page Id).

cookieEnable
required
integer

Is the cookie enable or not.

googleRecaptchaEnable
required
integer

Is the google recaptcha enable or not.

googleRecaptchaSiteKey
required
string

Google recaptcha site key.

googleRecaptchaSecretKey
required
string

Google recaptcha secret key.

blockedEmailsDomains
required
string

Blocked emails domains.

anyOneCanRegister
required
integer

Is the anyone can register or not.

learnerDashboard
required
string

Learner dashboard page/menu id.

customCatalogPageurl
required
string

Custom catalog page url.

Responses

Request samples

Content type
application/json
{
  • "siteTitle": "totam",
  • "adminEmail": "[email protected]",
  • "siteLanguage": "facilis",
  • "timeZone": "Asia/Tashkent",
  • "dateFormat": "ullam",
  • "timeFormat": "soluta",
  • "privateSite": "consequatur",
  • "customTimeZone": "\"America/New_York\"",
  • "homePage": 1,
  • "cartPage": 1,
  • "checkoutPage": 6,
  • "termConditionPage": 11,
  • "termConditionText": "voluptas",
  • "privacyPolicyPage": 7,
  • "privacyPolicyText": "mollitia",
  • "cookieTitle": "rem",
  • "cookieAccept": "sapiente",
  • "cookieReject": "reiciendis",
  • "cookieMessage": "pariatur",
  • "thankyouPage": 5,
  • "cookieEnable": 10,
  • "googleRecaptchaEnable": 14,
  • "googleRecaptchaSiteKey": "odit",
  • "googleRecaptchaSecretKey": "commodi",
  • "blockedEmailsDomains": "quia",
  • "anyOneCanRegister": 8,
  • "learnerDashboard": "aspernatur",
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated",
  • "type": "success",
  • "title": "Success"
}

Get a list of custom timezones.

Returns all available PHP timezones except a predefined custom list. Useful for showing only non-default timezones to users or filtering out common ones.

Responses

Response samples

Content type
application/json
[
  • "Africa/Abidjan",
  • "Africa/Accra",
  • "Africa/Addis_Ababa",
  • "Africa/Algiers",
  • "Africa/Asmara",
  • "Africa/Bamako"
]

Retrieve branding settings

Retrieves the details of the brand settings. Helps in fetching items of the brand settings, items like primary color, body color, logo footer text(See Response)

Responses

Response samples

Content type
application/json
{
  • "brandColors": {
    • "primaryColor": "#6b15b6",
    • "bodyBgColor": "#f6f9fc",
    • "bodyColor": "#1b1e24"
    },
  • "logo": "",
  • "logoMini": "",
  • "topBarEmail": "[email protected]",
  • "topBarPhone": "+1-202-555-0189",
  • "footerText": "Copyright &copy; Your Company Name - All rights reserved.",
  • "headerBgColor": "#6b15b6",
  • "menuTextColor": "#6b15b6",
  • "favicon": "favicon.ico",
  • "robotsTxt": "User-agent: *",
  • "hideSearchEngineVisibility": "no",
  • "learnerDashboard": "dashboard"
}

Set branding settings

Set the branding settings of the site.

Request Body schema: application/json
required
brandColors
required
object

Brand colors object.

logo
required
string

Logo of the site.

logoMini
required
string

Mini logo of the site.

topBarEmail
required
string

Top bar email of the site.

topBarPhone
required
string

Top bar phone of the site.

menuTextColor
required
string

Menu text color of the site.

footerText
required
string

Footer text of the site.

headerBgColor
required
string

Header background color of the site.

favicon
required
string

Favicon of the site.

robotsTxt
required
string

Robots.txt of the site.

hideSearchEngineVisibility
required
string

Hide search engine visibility of the site.

shouldCompileTheme
required
string

Should compile theme of the site.

Responses

Request samples

Content type
application/json
{
  • "brandColors": [ ],
  • "logo": "\"logo.png\"",
  • "logoMini": "\"mini-logo.png\"",
  • "topBarEmail": "\"[email protected]\"",
  • "topBarPhone": "\"+1 123 456 7890\"",
  • "menuTextColor": "\"#6b15b6\"",
  • "footerText": "\"Copyright &copy; Your Company Name - All rights reserved.\"",
  • "headerBgColor": "\"#6b15b6\"",
  • "favicon": "\"favicon.ico\"",
  • "robotsTxt": "\"User-agent: *\"",
  • "hideSearchEngineVisibility": "\"no\"",
  • "shouldCompileTheme": "\"true\""
}

Response samples

Content type
application/json
{
  • "message": "Branding Settings Updated"
}

Retrieves the custom CSS added in the platform.

Responses

Set Custom Stylings

Updates the custom CSS added in the platform.

Request Body schema: application/json
required
custom_css
required
string

The custom CSS to be added in the platform.

Responses

Request samples

Content type
application/json
{
  • "custom_css": ".aom-button {\n background-color: #fff;\n}"
}

Response samples

Content type
application/json
{
  • "message": "Custom Styling Saved Successfully"
}

Updates the status of the email if the selected area of the email format as enabled or not.

If disabled, the students will not get any email from this platform for selected email format area(account, lms, ecommerce, etc) and type (account creation, enrollments, etc)

Request Body schema: application/json
required
area
required
string

The email format area.

type
required
string

The email type.

isEnabled
required
boolean

The status of the email.

admin_enabled
required
boolean

The status of the email for admins.

portalId
required
integer

The portal id.

Responses

Request samples

Content type
application/json
{
  • "area": "account, lms, ecommerce, etc",
  • "type": "new_account_creation, course_enrolled, etc",
  • "isEnabled": true,
  • "admin_enabled": true,
  • "portalId": 1
}

Response samples

Content type
application/json
{
  • "message": "Email State Updated Successfully"
}

Searches for courses, users, products, and modules by name or email in the whole platform or in a specific portal.

Request Body schema: application/json
required
search_term
required
string

The keyword to search.

portalId
required
integer

The portal ID to search in a specific portal. Use -1 to search in the whole platform.

Responses

Request samples

Content type
application/json
{
  • "search_term": "\"John Doe\"",
  • "portalId": 5
}

Response samples

Content type
application/json
{
  • "courses": [
    • {
      • "label": "Course1",
      • "value": "/dashboard/course/manage/1"
      },
    • {
      • "label": "Course2",
      • "value": "/dashboard/course/manage/2"
      }
    ],
  • "users": [],
  • "products": [
    • {
      • "label": "Product1",
      • "value": "/dashboard/product/edit/1"
      },
    • {
      • "label": "Product2",
      • "value": "/dashboard/product/edit/2"
      }
    ],
  • "modules": [
    • {
      • "label": "Module1",
      • "value": "/dashboard/modules/edit/1"
      },
    • {
      • "label": "Module2",
      • "value": "/dashboard/modules/edit/2"
      }
    ]
}

Retrieves the status of the gamification feature.

Retrieves the status of gamification feature. Returns a boolean value if the feature is enabled or disabled.

Responses

Response samples

Content type
application/json
{
  • "is_enabled": true
}

Update Gamification Settings

Updates the gamification settings based on the provided request parameters. Toggles the gamification feature on or off.

Request Body schema: application/json
required
is_enabled
required
boolean

The status to enable or disable gamification.

Responses

Request samples

Content type
application/json
{
  • "is_enabled": true
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated",
  • "type": "success",
  • "title": "Success"
}

Hubspot Integration

It allows you to track learner activity and progress in the LMS, and trigger changes in HubSpot data accordingly.

Hubspot Event Lookup

Retrieves all the events for the hubspot actions. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "new_account_created",
    • "display_value": "New Account Created",
    • "crud_op": "Create",
    • "hubspot_crud": "[{'db_value' => 'hubspot_contact', 'display_value'=> 'Create New HubSpot Contact'}]"
    },
  • {
    • "db_value": "Account Updated",
    • "display_value": "Account Updated",
    • "crud_op": "Update",
    • "hubspot_crud": "[['db_value' => 'hubspot_contact', 'display_value'=> 'Update HubSpot Contact']]"
    },
  • {
    • "db_value": "course_enrolled",
    • "display_value": "Enrolled in a course",
    • "crud_op": "Update",
    • "hubspot_crud": "[['db_value' => 'hubspot_contact', 'display_value'=> 'Update Course Status in HubSpot Contact']]"
    },
  • {
    • "db_value": "course_completed",
    • "display_value": "Course Completed",
    • "crud_op": "Update",
    • "hubspot_crud": "[['db_value' => 'hubspot_contact', 'display_value'=> 'Update Course Status to complete in HubSpot Contact']]"
    },
  • {
    • "db_value": "course_started",
    • "display_value": "Course Started",
    • "crud_op": "Update",
    • "hubspot_crud": "[['db_value' => 'hubspot_contact', 'display_value'=> 'Update Course Status to in progress in HubSpot Contact']]"
    },
  • {
    • "db_value": "course_progress",
    • "display_value": "Course Progress Tracking",
    • "crud_op": "Update",
    • "hubspot_crud": "[['db_value' => 'hubspot_deal', 'display_value'=> 'Update Course Progress in HubSpot Deal']]"
    },
  • {
    • "db_value": "course_expired",
    • "display_value": "Course Expired",
    • "crud_op": "Update",
    • "hubspot_crud": "[['db_value' => 'hubspot_contact', 'display_value'=> 'HubSpot Contact']]"
    }
]

Field Lookup

Retrieves all the fields for the hubspot. Helps showing options in dropdowns elements

Request Body schema: application/json
required
type
required
string

Type to get the data, it can either be contact or deal.

Responses

Request samples

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

Response samples

Content type
application/json
[
  • {
    • "lms_fields": [
      • {
        },
      • {
        },
      • {
        },
      • {
        },
      • {
        }
      ]
    },
  • {
    • "hubspot_fields": [
      • {
        },
      • {
        },
      • {
        }
      ]
    },
  • {
    • "courses": [
      • {
        },
      • {
        }
      ]
    }
]

Create Hubspot Action

Creates a Hubspot action based on the provided parameters.

path Parameters
event
required
integer

The event of the Hubspot action.

action
required
string
Example: create

The action of the Hubspot action.

object
required
string
Example: Hubspot Contact

The object of the Hubspot action.

Responses

Response samples

Content type
application/json
{
  • "message": "Action created Successfully"
}

Save Hubspot Mapping

Saves the mapping of hubspot mapping. Helps in saving hubspot mapping using its type. (See Parameters)

Request Body schema: application/json
required
type
required

Type of the hupspot mapping you want to save the details of.

dealIdentifierObjectAndProperties
required
Array of strings

Deal identifier object and properties. (See parameters)

courseFieldProperties
required
Array of strings

Course field properties. (See parameters)

userFieldProperties
required
Array of strings

User field properties. (See parameters)

conditionMappingData
required
Array of strings

Array of condition mapping data.

Responses

Request samples

Content type
application/json
{
  • "type": "hubspot_contact",
  • "dealIdentifierObjectAndProperties": [
    • "blanditiis"
    ],
  • "courseFieldProperties": [
    • "reiciendis"
    ],
  • "userFieldProperties": [
    • "voluptatibus"
    ],
  • "conditionMappingData": [
    • {
      • "id": 1,
      • "conditionOperator": "AND",
      • "conditionValue": "hasdeal",
      • "conditionType": "CONTACT",
      • "conditionOperatorValue": "CONTAINS"
      },
    • {
      • "id": 2,
      • "conditionOperator": "OR",
      • "conditionValue": "hasdeal",
      • "conditionType": "CONTACT",
      • "conditionOperatorValue": "CONTAINS"
      }
    ]
}

Response samples

Content type
application/json
{
  • "is_success": true,
  • "message": "Mapping saved Successfully"
}

Retrieve Hubspot Mapping

Retrieves the details of the hubspot mapping. Helps in fetching hubspot mapping using its type. (See Parameters)

Request Body schema: application/json
optional
type
required

Type of the hupspot mapping you want to fetch the details of.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "type": "hubspot_condition",
  • "conditions": [ ]
}

Retrieves HubSpot integrations in a tabular format with pagination.

This function handles requests for retrieving a list of HubSpot integration events in a paginated tabular format. It allows filtering by events and ordering by specified columns. The results include detailed information about each event, such as the event and object display values, action, author, and timestamp.

query Parameters
order_by
string
Example: order_by={"colName": "created_at", "direction": "desc"}

JSON object for ordering items based on specified columns.

search_param
integer
Example: search_param=0

JSON object for filtering items by events.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 20,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "event": "course_enrolled",
      • "event_display_value": "Enrolled in a Course",
      • "object": "hubspot_contact",
      • "object_display_value": "HubSpot Contact",
      • "action": "created",
      • "author": "John Doe",
      • "created_at": "2021-01-01 12:00:00"
      }
    ]
}

Update Hubspot Action

Updates a Hubspot action based on the provided ID.

path Parameters
id
required
string
Example: 1

The ID of the Hubspot action to be updated.

Request Body schema: application/json
optional
event
required

The event of the Hubspot action.

action
required

The action of the Hubspot action.

object
required

The object of the Hubspot action.

Responses

Request samples

Content type
application/json
{
  • "event": "New Account Created",
  • "action": "create",
  • "object": "Hubspot Deal"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Hubspot updated successfully"
}

Delete Hubspot Action

Deletes a Hubspot action based on the provided ID.

path Parameters
id
required
string
Example: 1

The ID of the Hubspot action to be deleted.

Responses

Response samples

Content type
application/json
{
  • "message": "Hubspot deleted successfully"
}

Hubspot Log Tabular List

Returns all the Hubspot log in a tabular list format in paginated mode.

path Parameters
id
required
string
Example: 50

ID of the Hubspot action.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "event": "New Account Created",
      • "data": [ ],
      • "status": "success",
      • "errorMessage": "",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "showData": false
      }
    ]
}

Conditions Lookup

Retrieves all the conditions for Hubspot. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "equal_to",
    • "display_value": "="
    },
  • {
    • "db_value": "not_equal_to",
    • "display_value": "!="
    },
  • {
    • "db_value": "greater_than",
    • "display_value": ">"
    },
  • {
    • "db_value": "less_than",
    • "display_value": "<"
    }
]

Operator Lookup

Retrieves all the operators for Hubspot. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "and",
    • "display_value": "And"
    },
  • {
    • "db_value": "or",
    • "display_value": "Or"
    }
]

Import users from HubSpot.

This endpoint is used to initiate a user import process from HubSpot. It saves the provided HubSpot conditions, updates the import identifier for tracking, logs the import event, and dispatches a job to process the import in the background.

Request Body schema: application/json
required
hubspotConditions
required
Array of strings

The conditions used to filter HubSpot users before import.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "success": true,
  • "importId": 2,
  • "message": "Hubspot import user sync executed and in running state. Refresh to know its status."
}

Get the status of the last HubSpot user import.

This endpoint is used to get the status of the last HubSpot user import. It returns the status of the import, which can be either 'success', 'failed', or 'queue'. If the import is still in queue, it means that the import has been initiated but has not completed yet. If the import has failed, it means that there was an error during the import process. If the import was successful, it means that the import has completed without any errors.

query Parameters
importId
string
Example: importId=et

The identifier of the import job. If not provided, it defaults to the latest import job.

Responses

Response samples

Content type
application/json
{
  • "lastImportedDate": "22-Jan-2020 12:00 AM",
  • "status": "success"
}

Get Import User Logs

Returns all the Hubspot import user log in a tabular list format in paginated mode.

path Parameters
id
required
string
Example: 50

ID of the Hubspot action.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "importIdentifier": 1,
      • "event": "import_users",
      • "importedData": "[]",
      • "skippedData": "",
      • "message": "Import completed successfully",
      • "status": "success",
      • "display_status": "Success",
      • "errorMessage": "",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "showData": false,
      • "queueStatus": "success"
      }
    ]
}

Integrations

An integration can be used by admins to integrate this platform to other platforms. Endpoints helps in performing CRUD operation for and to integration.

Get all integrations.

Returns a list of all available integrations with their details such as name, identifier, logo, and status. The timestamps are formatted based on the app's configured timezone, language, date, and time format.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "HubSpot",
    • "identifier": "hubspot",
    • "description": "CRM Integration with HubSpot",
    • "is_enabled": true,
    • "implementer_class": "App\\Integrations\\Hubspot",
    • "created_by": 1,
    • "updated_by": 2,
    • "created_at": "Apr 12, 2025 10:35 AM",
    • "updated_at": "Apr 12, 2025 11:40 AM"
    }
]

Update Integration Settings

Updates the integration settings for a specified integration. Setting needs to be updated is mentioned in parameter. (See Parameter)

path Parameters
id
required
string
Example: 1

ID of the integration.

Request Body schema: application/json
required
portalId
integer

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

is_enabled
required
boolean

Enable status of integration.

settings
required
Array of strings

An associative array of settings to be updated.

Responses

Request samples

Content type
application/json
{
  • "portalId": 5,
  • "is_enabled": true,
  • "settings": [
    • "laborum"
    ]
}

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Retrieve Integration Settings

Retrieves all the integration settings for a specified integration. Helps in mainting the data and enable status of the integration.

path Parameters
id
required
string
Example: 1

ID of the integration.

Responses

Response samples

Content type
application/json
{
  • "name": "Google Analytics",
  • "identifier": "google-analytics",
  • "is_enabled": false,
  • "settings": {
    • "ga_code": "<script type=\"text/javascript\">var a = 12;</script>"
    }
}

Update the status of an integration

path Parameters
id
required
string
Example: 1

ID of the integration.

Request Body schema: application/json
required
status
required
boolean

Enable status of integration.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "Settings Updated"
}

Returns all the Integrations' Settings for a given Portal in a paginated list format.

path Parameters
portalId
required
string
Example: 2

ID of the portal you want to retrieve integrations settings of.

Responses

Retrieve Shopify Product List

Return all the Shopify Product, you need to use this request.

Request Body schema: application/json
required
search_term
required
string

Search term to search the product in Shopify.

Responses

Request samples

Content type
application/json
{
  • "search_term": "\"Introduction\"."
}

Create a product in shopify with the price and title provided in request

Request Body schema: application/json
required
title
required
string

Title of the product.

price
required
integer

Price of the product.

Responses

Request samples

Content type
application/json
{
  • "title": "aut",
  • "price": 7
}

Leaderboard

You can perform operations like create, edit, delete on Leaderboard Tiers.

Leaderboard Tier Tabular List

Retrieves all the leaderboard tiers in a tabular list format.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Bronze",
      • "lowerLimit": 0,
      • "upperLimit": 100
      },
    • {
      • "id": 2,
      • "name": "Silver",
      • "lowerLimit": 101,
      • "upperLimit": 200
      },
    • {
      • "id": 3,
      • "name": "Gold",
      • "lowerLimit": 201,
      • "upperLimit": 300
      }
    ]
}

Create a new Tier

Create a new Tier with name, lowerLimit and upperLimit.

path Parameters
name
required
string
Example: Level 1

The name of the Tier.

lowerLimit
required
string
Example: 1

The lower limit of the Tier.

upperLimit
required
string
Example: 10

The upper limit of the Tier.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Tier created successfully"
}

Get a Tier

Get a Tier with id.

path Parameters
id
required
string
Example: 1

The id of the Tier.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Level 1",
  • "lowerLimit": 1,
  • "upperLimit": 10
}

Update a Tier

Update a Tier with id, name, lowerLimit and upperLimit.

path Parameters
id
required
string
Example: 1

The id of the Tier.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Tier updated successfully"
}

Delete a Tier

Delete a Tier with id.

path Parameters
id
required
string
Example: 1

The id of the Tier.

Responses

Response samples

Content type
application/json
{
  • "message": "Tier deleted Succesfully.",
  • "success": true
}

Learning Paths

Learning Path Tabular List

Retrieves all the learning paths in a tabular list format in paginated mode. You can apply filter using search_param via name(learning path name).

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"name":""}

For searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "Test Learning Path",
      • "status": "PUBLISHED",
      • "display_status": "PUBLISHED",
      • "created_at": "Aug 03, 2020 09:31 AM"
      }
    ]
}

Create Learning Path

Creates a new learning path with courses, certificates, prerequisites and categories.

Request Body schema: application/json
required
name
required
string

Name of the learning path.

instructions
string

Instruction for the learning path.

featuredImageUrl
string

Image for the learning path.

credits
integer

Credit after learning path completion, used in certificates.

status
required
string

learning path is in Draft or Publish mode. Status options: draft or publish.

certificates
Array of strings

Certificates attached to this learning path.

prerequisites
Array of strings

Prerequisites courses of the learning path.

courses
required
Array of strings

All courses you want to attach to this learning path. Minimum 2 courses are required

categories
Array of strings

Categories for this learning path.

Responses

Request samples

Content type
application/json
{
  • "name": "Learning Path 1",
  • "instructions": "Some Instruction",
  • "featuredImageUrl": "img_path",
  • "credits": 70,
  • "status": "publish",
  • "certificates": [
    • 1,
    • 2
    ],
  • "prerequisites": [
    • 1,
    • 2
    ],
  • "courses": [
    • 1,
    • 2,
    • 3
    ],
  • "categories": [
    • 1,
    • 2
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Learning Path was successfully created"
}

Get Learning Path Details

Retrieves all the details of the specified learning path.

query Parameters
id
required
string
Example: id=1

ID of the learning path.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Test Learning Path",
  • "slug": "test-learning-path",
  • "status": "DRAFT",
  • "instructions": "Some Instruction",
  • "featuredImageUrl": "img_path",
  • "credits": 70,
  • "certificates": [
    • 1
    ],
  • "accredible_group_id": [
    • 1
    ],
  • "courses": [
    • {
      • "label": "Course 1",
      • "value": 1
      },
    • {
      • "label": "Course 2",
      • "value": 2
      }
    ],
  • "prerequisites": {
    • "1": true,
    • "2": false
    },
  • "categories": [
    • 1,
    • 2
    ]
}

Update Learning Path

Updates an existing learning path with courses, certificates, prerequisites and categories.

Request Body schema: application/json
required
id
required
integer

ID of the learning path.

name
required
string

Name of the learning path.

instructions
string

Instruction for the learning path.

featuredImageUrl
string

Image for the learning path.

credits
integer

Credit after learning path completion, used in certificates.

status
required
string

learning path is in Draft or Publish mode. Status options: draft or publish.

certificates
Array of strings

Certificates attached to this learning path.

prerequisites
Array of strings

Prerequisites courses of the learning path.

courses
required
Array of strings

All courses you want to attach to this learning path. Minimum 2 courses are required

categories
Array of strings

Categories for this learning path.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "name": "Learning Path 1",
  • "instructions": "Some Instruction",
  • "featuredImageUrl": "img_path",
  • "credits": 70,
  • "status": "publish",
  • "certificates": [
    • 1,
    • 2
    ],
  • "prerequisites": [
    • 1,
    • 2
    ],
  • "courses": [
    • 1,
    • 2,
    • 3
    ],
  • "categories": [
    • 1,
    • 2
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Learning Path was successfully updated"
}

Delete Learning Path

Deletes the learning paths and related mapping.

Request Body schema: application/json
required
delete_ids
required
Array of strings

Array of learning path IDs to be deleted.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "1 learning path(s) deleted, 1 learning path(s) not deleted as it has enrollments. Please remove the students from the learning path and try again.",
  • "deletedLearningPaths": 1,
  • "notDeletedLearningPaths": [
    • 1
    ],
  • "enrolledLearningPaths": [
    • {
      • "id": 1,
      • "name": "Learning path 1"
      }
    ],
  • "notDeletedPortalLearningPaths": [
    • 1
    ],
  • "portalLearningPaths": {
    • "Learning path 1": [
      • {
        }
      ]
    },
  • "notDeletedProductLearningPath": [
    • 1
    ],
  • "productLearningPaths": [
    • {
      • "id": 1,
      • "title": "Product 1"
      }
    ]
}

Learning Path Lookup

Retrieves Learning Path details based on the search query.

path Parameters
search_term
required
string
Example: "Learning Path"

Search term for the learning paths.

Responses

Response samples

Content type
application/json
{
  • "learning_paths": [
    • {
      • "value": 1,
      • "label": "Learning Path 1"
      },
    • {
      • "value": 2,
      • "label": "Learning Path 2"
      }
    ]
}

Enrolled Students

Retrieves all enrolled students for a learning path.

query Parameters
learning_path_id
required
string
Example: learning_path_id=1

The ID of learning path.

portalId
required
string
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

page_size
required
string
Example: page_size=10

Number of the results you want in each page.

page_number
required
string
Example: page_number=1

Current Page number.

order_by
string
Example: order_by=registered_on

Returns details in some order.

search_param
string
Example: search_param={"status":["Not Started","In Progress"],"nameOrEmail":"John Doe"}

Search parameters related to course.

Responses

Response samples

Content type
application/json
{
  • "learningPathName": "Learning Path 1",
  • "recordsTotal": 12,
  • "totalNotStarted": 3,
  • "totalInProgress": 4,
  • "totalCompleted": 5,
  • "recordsFiltered": 12,
  • "records": [
    • {
      • "id": 1,
      • "user_id": 2,
      • "first_name": "John",
      • "last_name": "Doe",
      • "email": "[email protected]",
      • "status": "Not Started",
      • "display_status": "Not Started",
      • "percentComplete": 0,
      • "access_status": "Allowed",
      • "registered_on": "Aug 09, 2020",
      • "started_on": "",
      • "completed_on": "",
      • "expire_on": "Never",
      • "last_accessed_on": "Never",
      • "certificate_count": 0,
      • "user_type": "Learner",
      • "raw_user_type": "learner"
      }
    ]
}

Enroll Students

To enroll users in a learning path, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the learning path.

Request Body schema: application/json
required
studentIds
required
Array of strings

User IDs needs to be enrolled in this learning path.

portalId
integer

optional The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Request samples

Content type
application/json
{
  • "studentIds": [
    • 2,
    • 3
    ],
  • "portalId": 5
}

Response samples

Content type
application/json
{
  • "message": "2 student(s) enrolled successfully",
  • "enrolledUsersCount": 2,
  • "notEnrolledUsers": 0
}

Remove Learners

To removes users from a learning path, you need to use this request.

path Parameters
id
required
string
Example: 1

ID of the learning path.

Request Body schema: application/json
required
enrollmentIds
required
Array of strings

Enrollment IDs needs to be removed from this learning path.

Responses

Request samples

Content type
application/json
{
  • "enrollmentIds": [
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "2 student(s) removed successfully"
}

Assign Certificate

Assigns a certificate to the users enrolled in a learning path using their enrollment IDs. Checks if the learning path has a certificate template available before proceeding with the assignment.

path Parameters
id
required
string
Example: 1

ID of the learning path for which the certificate is being assigned.

Request Body schema: application/json
required
enrollmentIds
required
Array of strings

Enrollment IDs that need to be assigned a certificate.

Responses

Request samples

Content type
application/json
{
  • "enrollmentIds": [
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "isSucess": true,
  • "message": "Certificate assigned successfully to 2 student(s)"
}

Learning Path Launch

This API is used to launch learning path and get the courses associated with the learning path.

path Parameters
registrationId
required
string
Example: 2

Registration ID of the learning path.

query Parameters
info
string
Example: info=info=true

optional If the API is called with info parameter, the API will not start the learning path, but will return the information of the learning path.

portalId
required
string
Example: portalId=1

Portal ID of the user.

Responses

Response samples

Content type
application/json
{
  • "name": "Learning Path Name",
  • "instructions": "Learning Path Instructions",
  • "learningPathStatus": "Active",
  • "status": "Not Started",
  • "display_status": "Not Started",
  • "completionPercentage": 0,
  • "enrollmentDate": "22-02-2022",
  • "certificate": 0,
  • "id": 2,
  • "rating": 4.5,
  • "totalEstimatedTime": "2 hours",
  • "courseData": [
    • {
      • "name": "Course 1",
      • "courseId": 3,
      • "rating": 4.5,
      • "status": "Not Started",
      • "completion_percentage": 0,
      • "display_status": "Not Started",
      • "expire_on": "22-02-2022",
      • "minimum_passing_percentage": 0,
      • "certificate": 0,
      • "certificate_expire_after": "Never",
      • "isExpired": false,
      • "isCurrent": true,
      • "isLocked": false,
      • "estimatedCompletionTime": "1 hour",
      • "userReviewAvailable": true,
      • "enableCourseRating": true
      }
    ]
}

Get Learning Path Details

query Parameters
learningPathId
required
string
Example: learningPathId=1

The ID of learning path.

portalId
required
string
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Learning Path Dropdown List

Returns a list of learning paths with their ID and Name based on the provided portal ID and search term. If a valid portal ID is provided, it filters learning paths associated with the portal. If no portal ID or an invalid one (e.g., -1) is given, it returns all learning paths.

query Parameters
portalId
integer
Example: portalId=5

The portal ID to filter learning paths by portal. Use -1 to skip portal filtering.

type
string
Example: type=public

The type of listing required (private/public).

search_term
string
Example: search_term="Advanced"

The search term to filter learning paths by name.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Learning Path 1"
    },
  • {
    • "id": 2,
    • "name": "Learning Path 2"
    }
]

Learning Path Detail Report

Retrieves learning path detail report based on the parameters provided.

path Parameters
searchPortalIds
required
string
Example: [1,2]

Portal IDs to filter learning paths by portal.

learning_path_ids
required
string
Example: [1,2]

Learning Path IDs to filter learning paths by ID.

query Parameters
page_size
required
string
Example: page_size=10

The number of results per page.

page_number
required
string
Example: page_number=1

The current page number.

order_by
string
Example: order_by={"colName": "registered_on", "direction": "desc"}

optional The column to sort the results by.

search_param
string
Example: search_param={"status": ["registered", "started"], "registered_on": ["2021-01-01", "2021-01-31"], "completed_on": ["2021-01-01", "2021-01-31"], "nameOrEmail": "John Doe"}

optional The search query parameters.

Responses

Response samples

Content type
application/json
{
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "user_id": 1,
      • "first_name": "John",
      • "last_name": "Doe",
      • "email": "[email protected]",
      • "learning_path_name": "Learning Path 1",
      • "status": "registered",
      • "display_status": "Registered",
      • "registered_on": "01-Jan-2021",
      • "started_on": "05-Jan-2021",
      • "completed_on": "10-Jan-2021",
      • "last_accessed_on": "10-Jan-2021",
      • "certifcate_issued": "Yes",
      • "courseDetails": [ ],
      • "total_time_spent": 10,
      • "expire_on": "Never",
      • "completed_lp_courses": 2,
      • "total_lp_courses": 5,
      • "portalName": "Portal 1"
      },
    • {
      • "user_id": 2,
      • "first_name": "Jane",
      • "last_name": "Doe",
      • "email": "[email protected]",
      • "learning_path_name": "Learning Path 2",
      • "status": "started",
      • "display_status": "Started",
      • "registered_on": "01-Jan-2021",
      • "started_on": "05-Jan-2021",
      • "completed_on": "10-Jan-2021",
      • "last_accessed_on": "10-Jan-2021",
      • "certifcate_issued": "No",
      • "courseDetails": [ ],
      • "total_time_spent": 10,
      • "expire_on": "Never",
      • "completed_lp_courses": 2,
      • "total_lp_courses": 5,
      • "portalName": "Portal 1"
      }
    ]
}

Retrieves an overview report of learning paths, including the status of enrollments.

This function aggregates the enrollment statuses (Not Started, In Progress, Completed) for each learning path, and calculates the percentage of completed enrollments. It takes into account portal-specific filters if provided.

query Parameters
searchPortalIds
Array of strings
Example: searchPortalIds=1&searchPortalIds=2

Optional array of portal IDs for filtering learning paths.

Responses

Response samples

Content type
application/json
{
  • "labels": [
    • "Learning Path 1",
    • "Learning Path 2"
    ],
  • "totalNotStarted": [
    • 5,
    • 3
    ],
  • "totalInProgress": [
    • 2,
    • 4
    ],
  • "totalCompleted": [
    • 3,
    • 3
    ],
  • "percentageCompleted": [
    • 30,
    • 50
    ],
  • "sumNotStarted": 8,
  • "sumInProgress": 6,
  • "sumCompleted": 6,
  • "sumPercentageCompleted": 37
}

Clone a learning path

This function clones a learning path and its associated courses and categories. It takes into account the user who initiated the request and records the user as the creator and updater of the cloned learning path.

query Parameters
learningPathId
required
string
Example: learningPathId=1

The ID of learning path to clone.

isDeepCopy
required
string
Example: isDeepCopy=true

Whether to clone the learning path with its courses and categories.

Responses

Response samples

Content type
application/json
{
  • "message": "Learning Path Cloned Successfully"
}

Learning Path Activities

Retrieves all the activities for a learning path based on the context provided. Context can be either 'portal' or 'lp'. If context is 'portal', it will return all activities for the portal. If context is 'lp', it will return all activities for the learning path.

query Parameters
learning_path_id
required
string
Example: learning_path_id=1

The ID of learning path.

page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"name":""}

For searching items based on field names.

context
required
string
Example: context=portal or lp

The context of the activities.

portalId
required
string
Example: portalId=5

The portal ID to filter activities by portal.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "Test Activity",
      • "status": "PUBLISHED",
      • "created_at": "Aug 03, 2020 09:31 AM"
      }
    ]
}

Learning Path Activities Lookup

Retrieves all the activities name performed by students in a learning path. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "ENROLLED",
    • "display_value": "ENROLLED"
    },
  • {
    • "db_value": "STARTED",
    • "display_value": "STARTED"
    },
  • {
    • "db_value": "ACCESSED",
    • "display_value": "ACCESSED"
    },
  • {
    • "db_value": "COMPLETED",
    • "display_value": "COMPLETED"
    },
  • {
    • "db_value": "ACHIEVED CERTIFICATE",
    • "display_value": "ACHIEVED CERTIFICATE"
    },
  • {
    • "db_value": "REMOVED",
    • "display_value": "REMOVED"
    }
]

Location

You can perform operations like create, edit, delete on locations

Create a new location.

Request Body schema: application/json
optional
location_name
required

The name of the location.

address
The

address of the location.

city
The

city of the location.

country
The

country of the location.

zipcode
The

zipcode of the location.

map_url
The

map URL of the location.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "Location Created Successfully"
}

Location Tabular List

Retrieves all the locations in a tabular list format with pagination mode. You can apply filter using search_param via locationName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the locations you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"locationName":"New York"}

for searching items based on location name.

Responses

Response samples

Content type
application/json
{}

Get Location

Retrieves an existing location by given ID.

path Parameters
id
required
integer
Example: 1

The ID of the location to be retrieved.

Responses

Response samples

Content type
application/json
{}

Update Location

Updates an existing location's details using the provided ID.

path Parameters
id
required
integer
Example: 1

The ID of the location to be retrieved.

Request Body schema: application/json
required
location_name
required
string

The name of the location.

address
string

The address of the location.

city
string

The city of the location.

country
string

The country of the location.

zipcode
string

The zipcode of the location.

map_url
string

The map URL of the location.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "Location Updated Successfully"
}

Delete Location

To delete a location, you need to use this request. Returns number of location deleted(if multiple selected) and also not deleted. (See Response)

Request Body schema: application/json
required
delete_ids
required
Array of strings

All location IDs which needs to be deleted.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "3 location(s) deleted 2 location(s) not deleted as it is used in class(s). Please remove the location from the class(s) and try again.",
  • "deletedLocations": 3
}

Location Lookup

Returns array of location data, containing location id and name.

Request Body schema: application/json
required
search_term
required
string

The search term for location name.

Responses

Request samples

Content type
application/json
{
  • "search_term": "\"New York\""
}

Response samples

Content type
application/json
[
  • {
    • "value": 1,
    • "label": "New York"
    },
  • {
    • "value": 2,
    • "label": "Los Angeles"
    }
]

LTI Integration API

This controller handles all API interactions related to Learning Tools Interoperability (LTI) integration. It provides endpoints for managing LTI tool launches, handling authentication, and syncing data between the platform and external LTI-compliant systems such as learning management systems (LMS).

Endpoints in this controller facilitate the integration and communication between the platform and external educational tools or services via the LTI standard.

Add a new LTI platform

Add a new LTI platform and save its details in the database.

query Parameters
platformId
required
string
Example: platformId=https://canvas.instructure.com

The platform ID.

platformName
required
string
Example: platformName=Canvas

The name of the platform.

clientId
required
string
Example: clientId=1234567890

The client ID of the platform.

jwksUrl
required
string
Example: jwksUrl=https://canvas.instructure.com/api/lti/security/jwks

The JWKS URL of the platform.

accessTokenUrl
required
string
Example: accessTokenUrl=https://canvas.instructure.com/login/oauth2/token

The access token URL of the platform.

authEndPoint
required
string
Example: authEndPoint=https://canvas.instructure.com/api/lti/authorize_redirect

The authentication endpoint URL of the platform.

roles
required
string
Example: roles=["Student", "Teacher"]

The roles of the users.

contentAccessible
required
string
Example: contentAccessible=true

Whether the content is accessible or not.

teacherProvisioningMode
required
string
Example: teacherProvisioningMode="New accounts only"

The provisioning mode for the teacher.

studentProvisioningMode
required
string
Example: studentProvisioningMode="New accounts only"

The provisioning mode for the student.

deploymentId
required
string
Example: deploymentId=1234567890

The deployment ID of the platform.

courses
required
string
Example: courses=[{"id":1,"name":"Course 1","syncGrade":true},{"id":2,"name":"Course 2","syncGrade":false}]

The courses associated with the platform.

Responses

Response samples

Content type
application/json
{
  • "id": 4,
  • "message": "Platform Added Successfully"
}

Update LtiPlatform

Updates the LtiPlatform along with its deployment and contents

Request Body schema: application/json
optional
id
required

The ID of the LtiPlatform.

platformId
required

The ID of the platform.

platformName
required

The name of the platform.

clientId
required

The client ID of the platform.

jwksUrl
required

The JWKS url of the platform.

accessTokenUrl
required

The access token URL of the platform.

authEndPoint
required

The authorization endpoint of the platform.

deploymentId
required

The deployment ID of the platform.

roles
required

The roles of the platform.

contentAccessible
required

The content accessible of the platform.

teacherProvisioningMode
required

The teacher provisioning mode of the platform.

studentProvisioningMode
required

The student provisioning mode of the platform.

courses
required

The courses of the platform.

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "platformId": "example.com",
  • "platformName": "Example",
  • "clientId": "123456789",
  • "accessTokenUrl": "https://example.com/token",
  • "authEndPoint": "https://example.com/auth",
  • "deploymentId": "123456789",
  • "roles": "[\"Instructor\", \"Student\"]",
  • "contentAccessible": "All",
  • "teacherProvisioningMode": "New accounts only",
  • "studentProvisioningMode": "Existing and new accounts",
  • "courses": "[{\"id\":1,\"syncGrade\":true}]"
}

Response samples

Content type
application/json
{
  • "message": "Platform Updated Successfully"
}

Get a LTI platform by id

This endpoint return a LTI platform by id with all its associated data.

path Parameters
id
required
string
Example: 1

The id of the LTI platform.

Responses

Response samples

Content type
application/json
{}

Tabular List

Retrieves all the LtiPlatforms in a tabular list format with pagination mode. You can apply filter using search_param via courseCategoryIds(course category ID), courseName or roleNames(user role)

query Parameters
page_size
required
string
Example: page_size=10

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"courseCategoryIds":[],"courseName":"course 1"}

for searching items based on Course category ids, course name.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 4,
  • "recordsFiltered": 4,
  • "records": [
    • {
      • "id": 4,
      • "name": "superadmin",
      • "displayName": "Super Admin",
      • "createdAt": "Aug 06, 2020 07:20 AM",
      • "lastLogin": "2 days ago"
      },
    • {
      • "id": 2,
      • "name": "admin",
      • "displayName": "Admin",
      • "createdAt": "Aug 03, 2020 09:31 AM",
      • "lastLogin": "Never"
      },
    • {
      • "id": 3,
      • "name": "groupadmin",
      • "displayName": "Group Admin",
      • "createdAt": "Aug 03, 2020 09:31 AM",
      • "lastLogin": "Never"
      },
    • {
      • "id": 1,
      • "name": "student",
      • "displayName": "Student",
      • "createdAt": "Aug 03, 2020 09:31 AM",
      • "lastLogin": "Never"
      }
    ]
}

Delete an LTI platform

Deletes the LTI platform along with its associated deployments and registrations from the database.

Request Body schema: application/json
optional
deleteId
required

The ID of the LTI platform to be deleted.

Responses

Request samples

Content type
application/json
{
  • "deleteId": "1"
}

Response samples

Content type
application/json
{
  • "message": "Platform deleted Successfully"
}

Media

Endpoints for handling and managing upload/downloads static files, assets and media

Upload Media

Handles the media upload request via both chunked and non-chunked approach. The request is determined by the presence of file object in the request. If the request contains a file object, it is saved directly to s3-pending folder. If the request does not contain a file object, it is assumed to be a chunked upload request. The chunk is saved to local chunks folder and if it is the last chunk, it is combined and saved to s3-pending folder. The delete request is handled by deleting the chunks folder for the given deleteId.

query Parameters
patch
string
Example: patch=ut

The file handler ID that is used to identify the chunked upload request.

deleteId
string
Example: deleteId=nobis

The file handler ID that is used to identify the chunked upload request to be deleted.

Responses

Response samples

Content type
application/json
{}

Upload Media

Handles the media upload request via both chunked and non-chunked approach. The request is determined by the presence of file object in the request. If the request contains a file object, it is saved directly to s3-pending folder. If the request does not contain a file object, it is assumed to be a chunked upload request. The chunk is saved to local chunks folder and if it is the last chunk, it is combined and saved to s3-pending folder. The delete request is handled by deleting the chunks folder for the given deleteId.

query Parameters
patch
string
Example: patch=ullam

The file handler ID that is used to identify the chunked upload request.

deleteId
string
Example: deleteId=sit

The file handler ID that is used to identify the chunked upload request to be deleted.

Responses

Response samples

Content type
application/json
{}

Upload Media

Handles the media upload request via both chunked and non-chunked approach. The request is determined by the presence of file object in the request. If the request contains a file object, it is saved directly to s3-pending folder. If the request does not contain a file object, it is assumed to be a chunked upload request. The chunk is saved to local chunks folder and if it is the last chunk, it is combined and saved to s3-pending folder. The delete request is handled by deleting the chunks folder for the given deleteId.

query Parameters
patch
string
Example: patch=quasi

The file handler ID that is used to identify the chunked upload request.

deleteId
string
Example: deleteId=in

The file handler ID that is used to identify the chunked upload request to be deleted.

Responses

Response samples

Content type
application/json
{}

Tabular List

Retrieves all the media in a tabular list format with pagination mode. You can apply filter using search_param via name(media name), file_type(file type).

query Parameters
page_size
required
string
Example: page_size=10

The number of the media you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"name":"media name","file_type":"Images"}

for searching items based on media name, file type.

Responses

Response samples

Content type
application/json
{}

Delete Media

This API is used to delete the uploaded media from the storage. It will also delete the video files from MUX if the file type is Video.

query Parameters
delete_ids
required
string
Example: delete_ids=qui

The array of media IDs which needs to be deleted. example: [1,2,3]

Responses

Response samples

Content type
application/json
{
  • "message": "2 media(s) deleted",
  • "errorMessage": "2 media(s) not deleted, Something went wrong! try again",
  • "fileNotDeleted": 2
}

Get Media Status

Returns the status of the uploaded media. (See Response)

query Parameters
id
required
string
Example: id=error

The ID of the media.

Responses

Response samples

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

Download Mux Video

This API is used to download the uploaded video from MUX service. If the master access is not enabled as temporary, this API will enable it. If the master access is already enabled as temporary, this API will return the download URL directly.

query Parameters
mux_id
required
string
Example: mux_id=7K0103V01NFz01

The MUX ID of the video to download.

Responses

Response samples

Content type
application/json

Save Video

This API is used to save the uploaded video media to the database. It takes videoGuid and fileName as input and returns the uploaded media.

query Parameters
videoGuid
required
string
Example: videoGuid=d2c0faa3-9d15-49c4-ae11-9b2c9a5c0a7c

The videoGuid of the uploaded video.

fileName
required
string
Example: fileName=test.mp4

The name of the uploaded video.

mimeType
required
string
Example: mimeType=video/mp4

The mime type of the uploaded video.

Responses

Response samples

Content type
application/json
{}

Get BunnyCDN Details

To get the BunnyCDN library id and api key, you need to use this request. It will return the BunnyCDN library id and api key based on the environment. If the request is from localhost, it will return the values from .env file. If the request is from production environment, it will return the values from database.

Responses

Response samples

Content type
application/json
{
  • "libraryId": "a1b2c3d4-library-7890",
  • "apiKey": "9b7e4c08-3d2f-4a1c-86f2-1e4b2d8f1234"
}

Create Bunny Video Library

This function creates a new video library on Bunny.net. It sends a POST request to the Bunny API with the site title and replication regions. On successful creation, it updates the local configuration with the new library ID, API key, and pull zone ID. It also fetches the pull zone name and updates the meta information accordingly.

Responses

Response samples

Content type
application/json
{
  • "is_success": true,
  • "bunny_library_id": "123456",
  • "bunny_api_key": "9b7e4c08-3d2f-4a1c-86f2-1e4b2d8f1234"
}

Memberships

Memberships are used to provide content access to users. Helps in providing course and standalone modules access to learners

Lookup memberships

Retrieves the memberships matching the search term provided in the request. If the portalId is provided, it will fetch memberships which are attached to the portal.

query Parameters
search_term
required
string
Example: search_term=membership 1

The search term to search for memberships.

portalId
required
string
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "membership 1"
    },
  • {
    • "id": 2,
    • "name": "membership 2"
    }
]

Retrieve Memberships in a Tabular List

Returns a paginated list of memberships in a tabular format with optional filters and sorting.

query Parameters
page_size
required
string
Example: page_size=10

The number of memberships to display per page.

page_number
required
string
Example: page_number=1

The current page number for pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

A JSON object specifying the column and direction for sorting.

search_param
string
Example: search_param={"name":"Basic Membership"}

A JSON object for filtering memberships by name.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 100,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Basic Membership",
      • "expired_at": "2023-12-31 23:59:59",
      • "author": "Admin",
      • "created_at": "2023-01-01 00:00:00"
      }
    ]
}

Get a membership by ID

path Parameters
id
required
string
Example: 1

The ID of the membership.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Gold-membership",
  • "courseAccess": "all",
  • "moduleAccess": "all",
  • "expired_at": "2021-10-03 23:59:59",
  • "courseAccessCategories": [
    • 1,
    • 2
    ],
  • "moduleAccessCategories": [
    • 5,
    • 19
    ]
}

Update Membership

Updates the details of a specified membership. (See Parameters) Membership is being used as to couple courses and standalone modules for students to launch and view.

path Parameters
id
required
string
Example: 1

The ID of the membership.

Request Body schema: application/json
optional
name
required

The name of the membership.

courseAccess
required

The type of course access. {all, no_access, specific} Only these values allowed.

moduleAccess
required

The type of module access. {all, no_access, specific} Only these values allowed.

courseAccessCategories
Array of strings

Any course category IDs if you have selected specific in courseAccess parameter.

moduleAccessCategories
Array of strings

Any module category IDs if you have selected specific in moduleAccess parameter.

expired_at
string

Expire date for the membership.

Responses

Request samples

Content type
application/json
{
  • "name": "Gold-membership",
  • "courseAccess": "all",
  • "moduleAccess": "all",
  • "courseAccessCategories": [
    • 1,
    • 2
    ],
  • "moduleAccessCategories": [
    • 5,
    • 19
    ],
  • "expired_at": "'2021-10-03 23:59:59'"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Membership created successfully"
}

Create a new membership

Creates a new membership with course and module access rules.

Request Body schema: application/json
optional
name
required

The name of the membership.

courseAccess
required

The type of course access. {all, no_access, specific} Only these values allowed.

moduleAccess
required

The type of module access. {all, no_access, specific} Only these values allowed.

courseAccessCategories
Array of strings

Any course category IDs if you have selected specific in courseAccess parameter.

moduleAccessCategories
Array of strings

Any module category IDs if you have selected specific in moduleAccess parameter.

expired_at
string

Expire date for the membership.

Responses

Request samples

Content type
application/json
{
  • "name": "Gold-membership",
  • "courseAccess": "all",
  • "moduleAccess": "all",
  • "courseAccessCategories": [
    • 1,
    • 2
    ],
  • "moduleAccessCategories": [
    • 5,
    • 19
    ],
  • "expired_at": "'2021-10-03 23:59:59'"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Membership created successfully"
}

Quick Edit

Updates the details in bulk for a specified membership. Parameters is provided which needs to be updated.

Request Body schema: application/json
required
membership_ids
required
Array of strings

All membership IDs which needs to be updated.

expired_at
required
string

Expiry date for the selected memberships.

Responses

Request samples

Content type
application/json
{
  • "membership_ids": [
    • 3,
    • 2
    ],
  • "expired_at": "2021-01-11 23:45:00"
}

Response samples

Content type
application/json
{
  • "message": "Memberships updated Successfully"
}

Menus

Menus are used as front end module for this platform. Endpoints for managing menus on marketing front end pages

Retrieve all the menus with all its associated items

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Main Menu",
    • "items": [
      • {
        },
      • {
        },
      • {
        },
      • {
        }
      ]
    },
  • {
    • "id": 2,
    • "name": "Top Bar Menu",
    • "items": [
      • {
        },
      • {
        }
      ]
    },
  • {
    • "id": 3,
    • "name": "Footer Menu",
    • "items": [ ]
    }
]

Get all the items associated with this menu

path Parameters
id
required
string
Example: 5

The id of the menu to be retrieved.

Responses

Response samples

Content type
application/json
[
  • {
    • "label": "Home",
    • "type": "page",
    • "custom_link": null,
    • "page_id": 1,
    • "display_order": 1,
    • "css_class": null,
    • "restrictions": null,
    • "open_in_new_tab": false,
    • "level": 1,
    • "isCollapsed": true,
    • "hyperlink": "/"
    },
  • {
    • "label": "Courses",
    • "type": "page",
    • "custom_link": null,
    • "page_id": 2,
    • "display_order": 2,
    • "css_class": null,
    • "restrictions": null,
    • "open_in_new_tab": false,
    • "level": 1,
    • "isCollapsed": true,
    }
]

Save or update menu items.

This endpoint accepts a list of menus with their associated items, deletes existing items, and inserts the new items accordingly.

Request Body schema: application/json
required
menuList
required
Array of strings

The list of menus with their items.

Responses

Request samples

Content type
application/json
{
  • "menuList": [
    • {
      • "id": 1,
      • "items": [
        ]
      }
    ]
}

Response samples

Content type
application/json
{
  • "message": "Menu updated successfully"
}

Modules

A module is a lesson that you add as course content. Modules could be Text, Video, PDF, SCORM, Quiz, Assignments or Survey. Helps in performing CRUD operation to and for modules.

Create Blank Module

Handles the creation of a blank module with the provided name and type. Validates the request data and saves a new module record in the database. Sets the created_by and updated_by fields to the ID of the authenticated user. Returns the ID and icon of the created module in JSON format.

Request Body schema: application/json
required
name
required
string

The name of the module.

type
required
string

The type of the module.

Responses

Request samples

Content type
application/json
{
  • "name": "Introduction",
  • "type": "text"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "icon": "<i class=\"el-icon-document\"></i>"
}

Modules Lookup

Retrieves all the modules. Helps while showing modules names in form elements like dropdown. You can apply filters using search_term parameter. (See Response)

query Parameters
search_term
required
string
Example: search_term=Introduction

The name or substring of the module name to search for that module.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Introduction",
    • "type": "text",
    • "icon": "<i class=\"el-icon-document\"></i>",
    • "value": 1,
    • "label": "Introduction"
    }
]

Get Pending Module Submissions

Returns the total number of pending module submissions (status = "Submitted") across all courses. Also returns a breakdown of pending submissions grouped by course.

Responses

Response samples

Content type
application/json
{}

Module Types Lookup

Retrieves all the types of modules supported by the platform. Useful for displaying options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "text",
    • "display_value": "Text"
    },
  • {
    • "db_value": "video",
    • "display_value": "Video"
    },
  • {
    • "db_value": "pdf",
    • "display_value": "PDF"
    },
  • {
    • "db_value": "powerpoint",
    • "display_value": "Powerpoint"
    },
  • {
    • "db_value": "flashcards",
    • "display_value": "Flash Cards"
    },
  • {
    • "db_value": "scorm",
    • "display_value": "SCORM/xAPI"
    },
  • {
    • "db_value": "quiz",
    • "display_value": "Quiz"
    },
  • {
    • "db_value": "assignment",
    • "display_value": "Assignment"
    },
  • {
    • "db_value": "discussion",
    • "display_value": "Discussion"
    },
  • {
    • "db_value": "survey",
    • "display_value": "Survey"
    }
]

Form Field Types Lookup

Retrieves all the types of form fields that are supported for surveys. Useful for displaying options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "text",
    • "display_value": "Survey Text"
    },
  • {
    • "db_value": "textarea",
    • "display_value": "Text Area"
    },
  • {
    • "db_value": "rating",
    • "display_value": "Rating"
    },
  • {
    • "db_value": "radio",
    • "display_value": "Single Select"
    },
  • {
    • "db_value": "checkbox",
    • "display_value": "Multiple Select"
    },
  • {
    • "db_value": "dropdown",
    • "display_value": "Drop Down"
    }
]

Modules Tabular List

Retrieves all the modules in a tabular list format in paginated mode. You can apply filter using search_param via associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=10

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"associatedCourse":"","moduleName":""}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Home Page",
      • "slug": "home-page",
      • "type": "text",
      • "icon": "<i class=\"el-icon-document\"></i>",
      • "author": "John Doe",
      • "created_at": "2021-01-01 12:00:00"
      }
    ]
}

Quick Edit Modules

This endpoint allows bulk updating of modules and their related details based on the provided module type. It updates fields like created_by, updated_by, no_of_retakes_allowed, and minimum_percentage for the selected modules.

Request Body schema: application/json
required
module_ids
required
Array of strings

The IDs of the modules to update.

type
required
string

The type of module (used to determine the model class).

author_id
integer

The new author ID to assign as created_by.

noOfRetakesAllowed
integer

The number of allowed retakes for the module.

minimumPassingMarks
integer

The minimum passing percentage.

Responses

Request samples

Content type
application/json
{
  • "module_ids": [
    • 1,
    • 2,
    • 3
    ],
  • "type": "quiz",
  • "author_id": 5,
  • "noOfRetakesAllowed": 3,
  • "minimumPassingMarks": 60
}

Response samples

Content type
application/json
{
  • "message": "Modules updated Successfully"
}

Deletes the specified modules.

This function is responsible for deleting the selected modules. The request should contain the IDs of the modules to be deleted.

Request Body schema: application/json
required
delete_ids
required
Array of strings

The IDs of all the modules which needs to be deleted.

type
required
string

The type of module (used to determine the model class).

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 2
    ],
  • "type": "quiz"
}

Clone a module.

Clones the module with its corresponding details and mappings. The newly generated cloned module will help to let you change the content of the module with or without letting affect the real module.

Request Body schema: application/json
required
moduleId
required
integer

ID of the module to be cloned.

isDeepCopy
required
boolean

If true, content will be affected in real module if changes made in cloned module.

Responses

Request samples

Content type
application/json
{
  • "moduleId": 1,
  • "isDeepCopy": false
}

Response samples

Content type
application/json
{
  • "message": "Module Cloned Successfully"
}

Quiz Lookup

Retrieves all the quiz modules. Helps while showing quiz names in form elements like dropdown. You can apply filters using search_term parameter. (See Response)

query Parameters
search_term
required
string
Example: search_term=Final quiz

The name or substring of the quiz name to search for that module.

Responses

Response samples

Content type
application/json
[
  • {
    • "value": 1,
    • "label": "First-quiz"
    },
  • {
    • "value": 2,
    • "label": "Quiz-2"
    }
]

Pages

Pages are Front end Marketing visuals. Page can be viewed by the different users to interact with this platform. Endpoint helps in managing pages.

Retrieve Page Layouts

Retrieves all the available page layouts in list format. Returns the list in JSON format.

query Parameters
context
required
string
Example: context=sequi

The context of the page layout. Possible values: page, section, row, or module.

search
required
object
Example:

The search criteria for filtering page layouts.

search.title
string
Example: search.title=My Layout

optional The title of the page layout to search for.

search.category
Array of strings
Example: search.category=category 1&search.category=category 2

optional The categories to filter the page layouts by.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Layout 1",
  • "type": "predefined",
  • "category": "category 1",
  • "data": "<div>Layout 1 HTML</div>",
  • "portal_id": 1
}

Save Page Layout

Saves a new page layout. This endpoint is being used by users to save their created page layouts.

Request Body schema: application/json
required
name
required
string

Name of the page layout.

context
required
string

Context of the page layout. Context options: page, section, row or module.

data
required
string

HTML content of the page layout.

portalId
required
integer

Portal ID of the page layout.

Responses

Request samples

Content type
application/json
{
  • "name": "ea",
  • "context": "earum",
  • "data": "consequatur",
  • "portalId": 8
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Layout saved successfully"
}

Retrieve Page Snippets

Retrieves all the available page snippets in list format. Returns the list in JSON format.

Responses

Response samples

Content type
application/json
{
  • "identifier1": {
    • "name": "Snippet 1",
    • "html": "<div>Snippet 1 HTML</div>"
    },
  • "identifier2": {
    • "name": "Snippet 2",
    • "html": "<div>Snippet 2 HTML</div>"
    }
}

Get Page

Returns Page details

path Parameters
id
required
integer
Example: 3

The ID of the page that needs to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "Home Page",
  • "slug": "",
  • "content": [ ],
  • "layout": "full_width",
  • "seo_title": "",
  • "seo_description": "",
  • "seo_thumbnail_url": "",
  • "restrictedToLoginUser": false,
  • "accessibleBy": "all",
  • "metas": [ ],
  • "userCategory": [ ],
  • "userType": [ ]
}

Update Page

Updates the specified page with new data including title, content, layout, SEO information, and access restrictions. The function accepts the page ID and a request object containing the new data. Validates the request data before updating the page. If the page is restricted to logged-in users, it validates the access permissions and updates user categories or types accordingly.

path Parameters
id
required
integer
Example: 3

The ID of the page that needs to be retrieved.

Request Body schema: application/json
required
title
required

The title of the page.

content
optional

The content of the page in JSON format.

layout
required

The layout type for the page. Layout options: full_width, no_header, fixed_width.

seo_title
optional

SEO title for the page.

seo_description
optional

SEO description for the page.

seo_thumbnail_url
optional

Thumbnail image for the page.

restrictedToLoginUser
boolean

Indicates if the page is restricted to logged-in users.

accessibleBy
required
string

if restrictedToLoginUser is true. The access restriction type. Options: all, user_category, user_type.

userCategory
required
Array of strings

if accessibleBy is user_category. Array of user categories.

userType
required
Array of strings

if accessibleBy is user_type. Array of user types.

Responses

Request samples

Content type
application/json
{
  • "title": "Home Page",
  • "content": "[{\"type\": \"text\", \"text\": \"<p>This is a sample page.</p>\"}]",
  • "layout": "full_width",
  • "seo_title": "null",
  • "seo_description": "null",
  • "seo_thumbnail_url": "null",
  • "restrictedToLoginUser": true,
  • "accessibleBy": "user_category",
  • "userCategory": [
    • "Student",
    • "Teacher"
    ],
  • "userType": [
    • "Student",
    • "Teacher"
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Page updated successfully"
}

Save Contact form response

The request helps in sending contact form responses to the admins and instructors of the platform. Generally this form is filled and sent by the learners to enquire something regarding your product, course or the platform.

Request Body schema: application/json
required
firstName
required
string

First Name of the user.

lastName
required
string

Last Name of the user.

email
required
string

Email of the user.

phoneNo
required
string

Phone Number of the user.

content
required
string

Message of the user.

toEmail
string

optional Email of the recipient. If not provided, email will be sent to the admin email.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "Mail sent successfully"
}

Tabular List

Retrieves all the pages in a tabular list format in paginated mode. You can apply filter using search_param via pageName(page name).

query Parameters
page_size
required
string
Example: page_size=10

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

For ordering items based on columns provided in JSON format.

search_param
integer
Example: search_param=0

for searching items based on field names.

type
integer
Example: type=0

optional The type of pages to retrieve.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "title": "Home Page",
      • "slug": "home-page",
      • "author": "John Doe",
      • "created_at": "2021-01-01 12:00:00"
      }
    ]
}

Dropdown List

Retrieves a list of pages with their ID and title. Returns the list in JSON format.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "title": "Page 1"
    },
  • {
    • "id": 2,
    • "title": "Page 2"
    }
]

Get the learner's dashboard menu and accessible pages.

This function retrieves the list of menu items for a general user and fetches pages that are accessible based on restrictions (either globally or for a specific user type).

Responses

Response samples

Content type
application/json
{
  • "pages": [
    • {
      • "id": 1,
      • "title": "Home"
      },
    • {
      • "id": 2,
      • "title": "Profile"
      }
    ],
  • "menus": [
    • {
      • "id": 1,
      • "name": "Dashboard",
      • "slug": "dashboard"
      }
    ]
}

Timezone List

Retrieves all the available PHP timezones in list format. Returns the list in JSON format.

Responses

Layout Lookup

Retrieves a list of available page layouts in key-value pairs. The 'db_value' represents the layout identifier used in the database, and the 'display_value' provides the user-friendly name for each layout. Returns the list in JSON format.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "full_width",
    • "display_value": "Full Width"
    },
  • {
    • "db_value": "fixed_width",
    • "display_value": "Fixed width with left/right margin gaps"
    },
  • {
    • "db_value": "no_header",
    • "display_value": "No Header/Menus/Footer"
    }
]

Page Restriction Lookup

Retrieves all the available page restrictions in key-value pairs. The 'db_value' represents the restriction identifier used in the database, and the 'display_value' provides the user-friendly name for each restriction. Returns the list in JSON format.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "all",
    • "display_value": "No Restriction"
    },
  • {
    • "db_value": "user_category",
    • "display_value": "Restrict by User Categories"
    },
  • {
    • "db_value": "user_type",
    • "display_value": "Restrict by User Types"
    }
]

Page Category Lookup

Retrieves all the page categories. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "call_to_action",
    • "display_value": "Call to Action"
    },
  • {
    • "db_value": "faq",
    • "display_value": "FAQs"
    },
  • {
    • "db_value": "features",
    • "display_value": "Features"
    },
  • {
    • "db_value": "pages",
    • "display_value": "Pages "
    },
  • {
    • "db_value": "products",
    • "display_value": "Products "
    },
  • {
    • "db_value": "team",
    • "display_value": "Team"
    },
  • {
    • "db_value": "testimonial",
    • "display_value": "Testimonial"
    }
]

Save a new Page

Creates a new page associated with given portal. Saves the page restrictions. Returns the ID of the newly created page.

Request Body schema: application/json
required
title
required

The title of the page.

content
optional

The content of the page in JSON format.

layout
required

The layout type for the page. Layout options: full_width, no_header, fixed_width.

seo_title
optional

SEO title for the page.

seo_description
optional

SEO description for the page.

seo_thumbnail_url
optional

Thumbnail image for the page.

restrictedToLoginUser
boolean

to check to allow the users to access the page.

accessibleBy
required
string

if restrictedToLoginUser is true. Accessible by options: all, user_category, user_type.

userCategory
required
Array of strings

if accessibleBy is user_category. Array of user categories.

userType
required
Array of strings

if accessibleBy is user_type. Array of user types.

Responses

Request samples

Content type
application/json
{
  • "title": "Home Page",
  • "content": "[{\"type\": \"text\", \"text\": \"<p>This is a sample page.</p>\"}]",
  • "layout": "full_width",
  • "seo_title": "null",
  • "seo_description": "null",
  • "seo_thumbnail_url": "null",
  • "restrictedToLoginUser": true,
  • "accessibleBy": "user_category",
  • "userCategory": [
    • "Student",
    • "Teacher"
    ],
  • "userType": [
    • "Student",
    • "Teacher"
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Page saved successfully"
}

Soft Delete Page

To delete a page, you need to use this request. The pages will not be deleted permanently, it will be in draft mode. You can restore the page later. Returns page drafted(if multiple selected). (See Response)

Request Body schema: application/json
required
page_ids
required
Array of strings

All page IDs which needs to be drafted.

Responses

Request samples

Content type
application/json
{
  • "page_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "Page moved to draft successfully"
}

Hard Delete Page

To delete a page, you need to use this request. The pages will be deleted permanently. In this case, you cannot restore the page after hard delete. Returns page deleted(if multiple selected). (See Response)

Request Body schema: application/json
required
page_ids
required
Array of strings

All page IDs which needs to be deleted.

Responses

Request samples

Content type
application/json
{
  • "page_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "Pages deleted permanently"
}

Restore Page

To restore a page, you need to use this request. The pages will be restored from draft mode to published mode. Returns page restored(if multiple selected). (See Response)

Request Body schema: application/json
required
page_ids
required
Array of strings

All page IDs which needs to be restored.

Responses

Request samples

Content type
application/json
{
  • "page_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "Page restored successfully"
}

Update Page Slug

Updates the slug of the page identified by 'id' with the new slug provided. The new slug is checked for uniqueness and if it already exists, a new slug is generated by appending a counter to the slug. The updated slug is then saved to the page. Returns the updated slug.

path Parameters
id
required
integer
Example: 3

ID of the page to be updated.

query Parameters
slug
required
string
Example: slug="about-us"

The new slug of the page.

Responses

Response samples

Content type
application/json
"about-us-1"

Animation Lookup

Retrieves all the animation classes supported by animate.css

Responses

Response samples

Content type
application/json
[
  • {
    • "label": "bounce",
    • "value": "animate__animated animate__bounce"
    },
  • {
    • "label": "flash",
    • "value": "animate__animated animate__flash"
    }
]

PDFs

A PDF Module is a lesson module used as course content. Helps to perform CRUD operation to and for PDF modules.

PDF Modules Tabular List

Returns all the PDF modules in a tabular list format in paginated mode. You can apply filter using search_param via moduleTypes(module type), associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"moduleTypes": ["pdf"],associatedCourse":"","moduleName":""}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "JavaScript Basics",
      • "slug": "javascript-basics",
      • "type": "pdf",
      • "icon": "<i class=\"el-icon-document\"></i>",
      • "author": "Aom Staff",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "course_count": 1
      }
    ]
}

Create PDF Module

Creates a new pdf module. (See parameters)

Request Body schema: application/json
required
name
required

Name of the pdf module.

content
required
string

Content for the text modules that students will see.

url
required
string

URL or actual path of the pdf module that students will see.

trackCompletion
required
boolean

If true, the module is being tracked(whether its finished or not) in course player.

allowDownload
required
boolean

If true, the pdf can be downloaded(by the learners) otherwise not in course player.

defaultZoom
required
string

The pdf will open with the set zoom percentage in course player.

showSidebar
boolean

If true, the pdf will open with a sidebar in course player.

categories
Array of strings

Categories to be added to the module.

estimatedCompletion
string

Estimated time to complete in course player.

estimationCompletedUnit
string

Unit of estimated time to complete in course player.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Module saved successfully"
}

Get PDF Module

Retrieves the details of the specified pdf module. Helps in fetching pdf module using module ID. (See Parameters) Returns : id, name, slug, content, url, allowDownload, trackCompletion, estimatedCompletion, estimationCompletedUnit, defaultZoom, showSidebar and categories of the pdf module created.

path Parameters
id
required
string
Example: 6

ID of the pdf module.

Responses

Response samples

Content type
application/json
{}

Update PDF Module

Updates the details of a specified PDF module. (See parameters) PDF modules can be used in the course as course content/lesson.

path Parameters
id
required
string
Example: 6

ID of the pdf module.

Request Body schema: application/json
required
name
required
string

Name of the PDF module.

content
string

Content for the PDF module that students will see.

url
required
string

URL or actual path of the PDF module that students will see.

trackCompletion
boolean

If true, the module is being tracked (whether it's finished or not) in course player.

allowDownload
boolean

If true, the PDF can be downloaded (by the students) otherwise not in course player.

defaultZoom
required
string

The PDF will open with the set zoom percentage in course player.

showSidebar
boolean

If true, the PDF will open with a sidebar in course player.

categories
Array of strings

Categories to be added to the module.

estimatedCompletion
string

Estimated time to complete in course player.

estimationCompletedUnit
string

Unit of estimated time to complete in course player.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "Module updated successfully"
}

Get PDF Module Details

To get the details of a pdf module, you need to use this request. (See parameters)

path Parameters
registrationId
required
string
Example: 1

ID of the course registration.

moduleId
required
string
Example: 2

ID of the pdf module.

portalId
required
integer
Examples:
  • - When the value is omitted
  • 5 - When the value is present

Optional parameter. The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
{}

Retrieve Detailed PDF module Info for Membership content

Retrieves details of pdf module in depth for the same membership the current pdf module is attached to. Returns related fields value. (See Response)

query Parameters
moduleId
required
string
Example: moduleId=9

ID of the pdf module.

Responses

Response samples

Content type
application/json
{}

Portal

The Portal API controller handles various operations related to the portal's functionality.

All endpoints within this controller are responsible for providing and managing data related to the portal's core operations.

Create a new portal.

Request Body schema: application/json
optional
portalName
required

string The name of the portal.

portalSlug
required

string The slug of the portal.

totalSeat
nullable|integer

The total number of seats for the portal.

expiryDate
nullable|date

The date when the portal will expire.

expiryMessage
nullable|string

The message that will be displayed when the portal expires.

accessPermission
nullable|string

The permission for accessing the portal.

seatAccess
nullable|string

The type of seat access for the portal.

logoImageUrl
nullable|string

The URL of the logo for the portal.

miniLogoImageUrl
nullable|string

The URL of the mini logo for the portal.

brandColor
required|string

The brand color for the portal.

bodyBackgroundColor
required|string

The background color for the body of the portal.

bodyTextColor
required|string

The text color for the body of the portal.

headerBackgroundColor
nullable|string

The background color for the header of the portal.

selectedPrimaryLanguage
required|string

The primary language for the portal.

isActive
nullable|boolean

Whether the portal is active or not.

selectedCourses
nullable|array

The courses that should be selected for the portal.

selectedMembership
nullable|integer

The membership that should be selected for the portal.

enrollMembershipId
nullable|integer

The ID of the membership that should be enrolled in the portal.

isPortalAdminLearner
nullable|boolean

Whether the portal admin is also a learner or not.

portalAdminType
nullable|string

The type of portal admin.

addExistingUser
nullable|array

The existing users that should be added to the portal.

selectedUsers
nullable|array

The users that should be selected for the portal.

selectedCategoriesIds
nullable|array

The IDs of the categories that should be selected for the portal.

enrollCoursesIds
nullable|array

The IDs of the courses that should be enrolled in the portal.

enrollLearningPathIds
nullable|array

The IDs of the learning paths that should be enrolled in the portal.

learnerDashboard
nullable|integer

The ID of the page that should be used as the learner dashboard.

customStyle
nullable|string

The custom CSS for the portal.

customFont
nullable|string

The custom font for the portal.

customCode
nullable|string

The custom code for the portal.

Responses

Request samples

Content type
application/json
{
  • "portalName": "\"EduPortal\"",
  • "portalSlug": "\"eduportal\"",
  • "totalSeat": "100",
  • "expiryDate": "\"2023-12-31\"",
  • "expiryMessage": "\"This portal has expired.\"",
  • "accessPermission": "\"all\"",
  • "seatAccess": "\"first-come-first-served\"",
  • "logoImageUrl": "\"https://example.com/logo.png\"",
  • "miniLogoImageUrl": "\"https://example.com/mini-logo.png\"",
  • "brandColor": "\"#3498db\"",
  • "bodyBackgroundColor": "\"#ffffff\"",
  • "bodyTextColor": "\"#333333\"",
  • "headerBackgroundColor": "\"#2c3e50\"",
  • "selectedPrimaryLanguage": "\"en\"",
  • "isActive": "true",
  • "selectedCourses": "[1, 2, 3]",
  • "selectedMembership": "1",
  • "enrollMembershipId": "2",
  • "isPortalAdminLearner": "false",
  • "portalAdminType": "\"super-admin\"",
  • "addExistingUser": "[3, 4, 5]",
  • "selectedUsers": "[1, 2]",
  • "selectedCategoriesIds": "[10, 11]",
  • "enrollCoursesIds": "[101, 102]",
  • "enrollLearningPathIds": "[201, 202]",
  • "learnerDashboard": "10",
  • "customStyle": "\".portal-header { background-color: #333; }\"",
  • "customFont": "\"Arial, sans-serif\"",
  • "customCode": "\"<script>console.log('Hello World');</script>\""
}

Response samples

Content type
application/json
{
  • "message": "Portal created successfully"
}

Returns a list of courses for a given portal

query Parameters
portalId
required
integer
Example: portalId=1

The id of the portal

page_size
required
integer
Example: page_size=10

Number of results per page.

page_number
required
integer
Example: page_number=1

The current page number.

order_by
object
Example: column=name&direction=asc

JSON object specifying the column and direction to sort by.

search_param
object
Example: name=John Doe&type=assignment&status=Submitted

JSON object containing search criteria.

Responses

Response samples

Content type
application/json
{}

Learning Path List

Retrieves learning paths associated with the portal.

path Parameters
portalId
required
string
Example: 1

Portal ID of the user.

query Parameters
page_size
required
string
Example: page_size=10

The number of results per page.

page_number
required
string
Example: page_number=1

The current page number.

order_by
string
Example: order_by={"colName": "name", "direction": "desc"}

optional The column to sort the results by.

search_param
string
Example: search_param={"learningPathName": "Learning Path 1"}

optional The search query parameters.

type
required
string
Example: type=all or active

The type of learning paths to retrieve.

Responses

Response samples

Content type
application/json
{
  • "portalName": "Portal 1",
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "learningPathId": 1,
      • "learningPathName": "Learning Path 1",
      • "last24hCount": 5,
      • "learningPathStatistics": {
        }
      },
    • {
      • "learningPathId": 2,
      • "learningPathName": "Learning Path 2",
      • "last24hCount": 2,
      • "learningPathStatistics": {
        }
      }
    ]
}

Retrieve portal admin permissions.

Fetches a list of permissions available for portal administrators.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Manage Users"
    },
  • {
    • "id": 2,
    • "name": "Edit Content"
    }
]

Retrieves a paginated and filtered list of users for a given portal, including their enrollment statistics.

query Parameters
page_size
required
integer
Example: page_size=10

Number of results per page.

page_number
required
integer
Example: page_number=1

The current page number.

order_by
object
Example: colName=firstName&direction=asc

JSON object specifying the column and direction to sort by.

search_param
object
Example: nameOrEmail=John Doe

JSON object containing search criteria.

portalId
required
integer
Example: portalId=5

ID of the portal to filter users.

userType
string
Example: userType="portal_admin"

Type of user to filter by (e.g., 'portal_admin').

isInPortal
boolean
Example: isInPortal=true

Filter users who are in the portal.

Responses

Response samples

Content type
application/json
{
  • "portalName": "Portal Name",
  • "recordsTotal": 100,
  • "recordsFiltered": 10,
  • "recordIdsFiltered": [
    • 1,
    • 2,
    • 3
    ],
  • "records": [
    • {
      • "id": 1,
      • "firstName": "John",
      • "lastName": "Doe",
      • "userType": "learner",
      • "email": "[email protected]",
      • "stats": {
        },
      • "status": "active",
      • "lastLogin": "2 days ago",
      • "createdBy": "Admin User",
      • "createdAt": "2023-10-01 12:00:00",
      • "portals": "Portal 1, Portal 2",
      • "portalNameForAdmins": "Main Portal",
      • "portalUserType": "portal_admin",
      • "is_learner": true,
      • "userCategory": "Category1, Category2",
      • "permissionsDisplayNames": "View, Edit",
      • "permissionsNames": [
        ]
      }
    ]
}

Get courses for a given membership

path Parameters
id
required
string
Example: 1

The ID of the portal.

query Parameters
page_size
required
string
Example: page_size=10

The number of records per page.

page_number
required
string
Example: page_number=1

The current page number.

order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

optional The column to sort the results by.

search_param
string
Example: search_param={"courseName": "Course 1"}

optional The search query parameters.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Course 1",
      • "slug": "course-1",
      • "status": "active",
      • "display_status": "Active",
      • "categories": "Category 1",
      • "author": "John Doe",
      • "created_at": "05 Jun 2020 12:00 PM",
      • "stats": {
        },
      • "last24hCount": 2
      }
    ]
}

Get modules for a given membership

path Parameters
id
required
string
Example: 1

The ID of the portal.

query Parameters
page_size
required
string
Example: page_size=10

The number of records per page.

page_number
required
string
Example: page_number=1

The current page number.

order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

optional The column to sort the results by.

search_param
string
Example: search_param={"moduleName": "Module 1"}

optional The search query parameters.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Module 1",
      • "type": "assignment"
      }
    ]
}

Retrieve Page

Retrieves the details of a specified portal page by its ID. Returns the page's id, title, slug, content, and layout if found, otherwise returns an empty response.

path Parameters
id
required
integer
Example: 3

The ID of the portal page to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "About Us",
  • "slug": "about-us",
  • "content": "<p>Welcome to our page</p>",
  • "layout": "full_width"
}

Update Page

Updates an existing page associated with given portal.

path Parameters
id
required
integer
Example: 3

The ID of the portal page to retrieve.

Request Body schema: application/json
optional
title
required

The title of the page.

content
optional

The content of the page in JSON format.

Responses

Request samples

Content type
application/json
{
  • "title": "Home Page",
  • "content": "[{\"type\": \"text\", \"text\": \"<p>This is a sample page.</p>\"}]"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Page updated successfully"
}

Get pages for a given portal

path Parameters
portalId
required
string
Example: 1

The ID of the portal.

query Parameters
page_size
required
string
Example: page_size=10

The number of records per page.

page_number
required
string
Example: page_number=1

The current page number.

order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

optional The column to sort the results by.

search_param
integer
Example: search_param=0

optional The search query parameters.

type
integer
Example: type=0

optional The type of pages to retrieve.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "title": "Home Page",
      • "slug": "home-page",
      • "content": "This is the home page content",
      • "author": "John Doe",
      • "created_at": "2021-01-01 12:00:00"
      }
    ]
}

Save a new Portal Page

Validates and saves a new portal page with the provided title, content, and portal ID. The page is associated with the user creating it. Returns the ID of the newly created portal page along with a success message.

Request Body schema: application/json
required
title
required
string

The title of the portal page.

content
Array of strings

optional The content of the portal page, in JSON format.

portalId
required
integer

The ID of the portal to associate the page with.

Responses

Request samples

Content type
application/json
{
  • "title": "\"Welcome Page\"",
  • "content": [
    • {
      • "type": "text",
      • "text": "<p>Welcome to our portal.</p>"
      }
    ],
  • "portalId": 123
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Page saved successfully"
}

Soft Delete Page

To delete a page, you need to use this request. The pages will not be deleted permanently, it will be in draft mode. You can restore the page later. Returns page drafted(if multiple selected). (See Response)

Request Body schema: application/json
required
page_ids
required
Array of strings

All page IDs which needs to be drafted.

Responses

Request samples

Content type
application/json
{
  • "page_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "Page moved to draft successfully"
}

Hard Delete Page

Permanently deletes pages specified by the provided page IDs. Once deleted, these pages cannot be restored. Logs the activity for each deleted page.

Request Body schema: application/json
required
page_ids
required
Array of strings

List of page IDs to be deleted permanently.

Responses

Request samples

Content type
application/json
{
  • "page_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "Pages deleted permanently"
}

Restore Page

Restores the pages from draft mode to published mode. Logs the activity for each restored page.

Request Body schema: application/json
required
page_ids
required
Array of strings

List of page IDs to be restored.

Responses

Request samples

Content type
application/json
{
  • "page_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "Page restored successfully"
}

Get Portal Course Catalog

Returns the list of available courses (and learning paths, if any) for a given portal and user. Allows optional filtering by course name and course category.

Request Body schema: application/json
required
portalId
required
integer

The ID of the portal.

userId
required
integer

The ID of the user.

object

Optional search filters.

Responses

Request samples

Content type
application/json
{
  • "portalId": 12,
  • "userId": 45,
  • "search": [ ]
}

Response samples

Content type
application/json
{
  • "courses": [
    • {
      • "courseId": 101,
      • "contentName": "Effective Communication",
      • "isEnrolled": true,
      • "launchUrl": "yourportal/course/effective-communication/launch",
      • "categoryIds": [
        ]
      }
    ],
  • "learningPaths": [ ],
  • "categoryIds": [
    • 2,
    • 3
    ]
}

Retrieves the portal settings

query Parameters
domain
required
string
Example: domain='example.com'

The domain of the portal

Responses

Response samples

Content type
application/json
{
  • "portalCustomDomainEnabled": "yes|no",
  • "verifiedDomain": "yes|no",
  • "ipAddress": "127.0.0.1",
  • "enabledCustomDomain": "yes|no"
}

Enable or disable custom domain for portals

Request Body schema: application/json
required
isEnabled
required
boolean

Enable or disable custom domain for portals

Responses

Request samples

Content type
application/json
{
  • "isEnabled": true
}

Response samples

Content type
application/json
{
  • "message": "Portal Settings Updated Successfully."
}

Verify the custom domain for portals

query Parameters
string
required
string
Example: string=id

domain The custom domain to verify

Responses

Response samples

Content type
application/json
{
  • "is_success": true,
  • "message": "Domain Verified Successfully."
}

Add Portal Admins

Adds new or existing users as portal admins to the specified portal. This method handles:

  • Creating new users and assigning them admin roles.
  • Assigning existing users as admins.
  • Seat validation (restricted vs. unrestricted).
  • Permission assignment for admins.
  • Learner seat allocation sync with parent or current portal.
Request Body schema: application/json
required
portalId
required
integer

The ID of the portal where admins will be added.

portalAdmins
Array of strings

List of new portal admin user objects (each must contain email, optionally isLearner). Required if portalAdminType is "newPortalAdmin".

portalAdminPermissions
Array of strings

List of permission names to assign to portal admins.

isPortalAdminLearner
boolean

Indicates if the selected users are also learners.

selectedExUsers
Array of strings

List of existing user IDs to assign as portal admins. Required if portalAdminType is "existingUser".

portalAdminType
required
string

The type of portal admin being added. Either newPortalAdmin or existingUser.

Responses

Request samples

Content type
application/json
{
  • "portalId": 12,
  • "portalAdmins": [
    • "molestiae"
    ],
  • "portalAdminPermissions": [
    • "can_manage_courses",
    • "can_edit_settings"
    ],
  • "isPortalAdminLearner": true,
  • "selectedExUsers": [
    • 3,
    • 4,
    • 5
    ],
  • "portalAdminType": "newPortalAdmin"
}

Response samples

Content type
application/json
{
  • "message": "Portal Admin added successfully"
}

Add learners to a portal.

This endpoint allows adding new learners to a portal either manually, via bulk import, or by selecting existing users. It also supports enrolling learners in courses, learning paths, and memberships, with proper seat availability validation and email domain blocking.

Request Body schema: application/json
required
portalId
required
integer

The ID of the portal to which learners should be added.

learners
Array of strings

Optional array of learner objects if adding manually or via bulk import.

selectedCategoriesIds
Array of strings

Optional category IDs to assign to the learners.

enrollCoursesIds
Array of strings

Optional course IDs for enrollment.

enrollLearningPathIds
Array of strings

Optional learning path IDs.

enrollMembershipId
integer

Optional membership ID to assign.

selectExistingUsers
Array of strings

Optional array of existing user IDs to attach.

userAddedType
required
string

The method of adding users: 'addManually', 'bulkImport', or 'existingUser'.

Responses

Request samples

Content type
application/json
{
  • "portalId": 12,
  • "learners": [
    • "rerum"
    ],
  • "selectedCategoriesIds": [
    • 1,
    • 2
    ],
  • "enrollCoursesIds": [
    • 101,
    • 102
    ],
  • "enrollLearningPathIds": [
    • 201,
    • 202
    ],
  • "enrollMembershipId": 301,
  • "selectExistingUsers": [
    • 5,
    • 9
    ],
  • "userAddedType": "addManually"
}

Response samples

Content type
application/json
{}

Update the permissions of a portal admin

path Parameters
userId
required
string
Example: 1

User ID of the portal admin.

portalId
required
string
Example: 1

Portal ID where the user is an admin.

Request Body schema: application/json
required
portalAdminPermissions
required
Array of strings

The permissions for the portal admin.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "Permissions updated successfully"
}

Removes users from a given portal and its sub-portals based on the given user IDs and type.

Request Body schema: application/json
required
userIds
required
Array of strings

The IDs of the users to remove from the portal.

portalId
required
integer

The ID of the portal to remove the users from.

type
required
string

The type of user to remove, either 'learner' or 'portal_admin'.

Responses

Request samples

Content type
application/json
{
  • "userIds": [
    • "totam"
    ],
  • "portalId": 5,
  • "type": "dolore"
}

Response samples

Content type
application/json
{
  • "message": "Portal user removed successfully"
}

Update the status of a portal user

Request Body schema: application/json
required
userIds
required
Array of strings

The ids of the users

status
required
string

The status of the portal user

Responses

Request samples

Content type
application/json
{
  • "userIds": [
    • "repellat"
    ],
  • "status": "est"
}

Response samples

Content type
application/json
{
  • "message": "Portal user status updated successfully"
}

Get detailed portal information.

This endpoint retrieves detailed information about a specific portal, including branding, configuration settings, seat usage, sub-portals, and selected content (courses, paths, memberships).

query Parameters
portalId
required
integer
Example: portalId=42

The ID of the portal to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": 42,
  • "portalName": "My Portal",
  • "portalSlug": "my-portal",
  • "parentPortalId": null,
  • "referralCode": "ABCD1234",
  • "seatAccess": "limited",
  • "accessPermission": "invite_only",
  • "expiryMessage": "Your access has expired.",
  • "totalSeats": 100,
  • "totalSeatAccess": 100,
  • "expiryDate": "30-Dec-2025",
  • "brandColor": "#FF5733",
  • "bodyBackgroundColor": "#ffffff",
  • "bodyTextColor": "#000000",
  • "headerBackgroundColor": "#f5f5f5",
  • "selectedPrimaryLanguage": "en",
  • "customStyle": ".custom { color: red; }",
  • "customFont": "Roboto",
  • "customCode": "<script>console.log('custom');</script>",
  • "isActive": true,
  • "totalPortalAdmins": 5,
  • "totalLearner": 120,
  • "usedSeats": 80,
  • "availableSeats": 20,
  • "subPortalCount": 2,
  • "parentPortalSlug": null,
  • "parentPortalName": null,
  • "allowedEmails": [],
  • "portalCustomDomainEnabled": true,
  • "publicSelectedCourses": [
    • 101,
    • 102
    ],
  • "privateSelectedCourses": [
    • 201,
    • 202
    ],
  • "selectedPublicLearningPaths": [
    • 301,
    • 302
    ],
  • "selectedPublicLearningPathNames": [
    • "Beginner Path",
    • "Intermediate Path"
    ],
  • "selectedPrivateLearningPaths": [
    • 401
    ],
  • "selectedPrivateLearningPathNames": [
    • "Advanced Path"
    ],
  • "selectedPrivateMembership": 501,
  • "selectedPrivateMembershipName": "Gold Membership",
  • "selectedContent": {
    • "publicCourseIds": [
      • 101,
      • 102
      ],
    • "privateCourseIds": [
      • 201,
      • 202
      ],
    • "publicLearningPathIds": [
      • 301,
      • 302
      ],
    • "publicLearningPathNames": [
      • "Beginner Path",
      • "Intermediate Path"
      ],
    • "privateLearningPathIds": [
      • 401
      ],
    • "privateLearningPathNames": [
      • "Advanced Path"
      ],
    • "privateMembershipId": 501,
    • "privateMembershipName": "Gold Membership"
    },
  • "learnerDashboard": "dashboard"
}

Update a portal

Request Body schema: application/json
required
portalName
required
string

The name of the portal.

portalSlug
required
string

The slug of the portal.

totalSeatAccess
int|null

The total number of seats for the portal.

expiryDate
date|null

The date when the portal will expire.

expiryMessage
string|null

The message to be displayed when the portal expires.

accessPermission
string|null

The type of access for the portal.

seatAccess
string|null

The type of seat access for the portal.

logoImageUrl
string|null

The url of the logo image for the portal.

miniLogoImageUrl
string|null

The url of the mini logo image for the portal.

brandColor
string|null

The brand color of the portal.

bodyBackgroundColor
string|null

The background color of the portal's body.

bodyTextColor
string|null

The text color of the portal's body.

headerBackgroundColor
string|null

The background color of the portal's header.

selectedPrimaryLanguage
string|null

The primary language of the portal.

isActive
boolean|null

Whether the portal is active or not.

publicSelectedCourses
array|null

The courses that are selected as public courses.

privateSelectedCourses
array|null

The courses that are selected as private courses.

selectedPublicLearningPaths
array|null

The learning paths that are selected as public learning paths.

selectedPrivateLearningPaths
array|null

The learning paths that are selected as private learning paths.

selectedPrivateMembership
int|null

The membership that is selected as private membership.

customStyle
string|null

The custom CSS for the portal.

customFont
string|null

The custom font for the portal.

customCode
string|null

The custom code for the portal.

allowedEmails
string|null

The emails that are allowed to access the portal.

Responses

Request samples

Content type
application/json
{
  • "portalName": "et",
  • "portalSlug": "libero",
  • "totalSeatAccess": "veniam",
  • "expiryDate": "officia",
  • "expiryMessage": "nostrum",
  • "accessPermission": "ea",
  • "seatAccess": "sed",
  • "brandColor": "quo",
  • "bodyBackgroundColor": "vero",
  • "bodyTextColor": "sit",
  • "headerBackgroundColor": "perspiciatis",
  • "selectedPrimaryLanguage": "delectus",
  • "isActive": "illo",
  • "publicSelectedCourses": "est",
  • "privateSelectedCourses": "iste",
  • "selectedPublicLearningPaths": "alias",
  • "selectedPrivateLearningPaths": "numquam",
  • "selectedPrivateMembership": "nam",
  • "customStyle": "maiores",
  • "customFont": "natus",
  • "customCode": "laboriosam",
  • "allowedEmails": "architecto"
}

Response samples

Content type
application/json
{
  • "message": "Portal updated successfully"
}

Update the branding settings of a portal

path Parameters
portalId
required
string
Example: 1

Portal ID of the user.

Request Body schema: application/json
required
logoImageUrl
required
string

Logo image URL of the portal.

miniLogoImageUrl
required
string

Mini logo image URL of the portal.

brandColor
required
string

Brand color of the portal.

bodyBackgroundColor
required
string

Body background color of the portal.

bodyTextColor
required
string

Body text color of the portal.

headerBackgroundColor
required
string

Header background color of the portal.

selectedPrimaryLanguage
required
string

Selected primary language of the portal.

customStyle
required
string

Custom CSS for the portal.

customCode
required
string

Custom JavaScript code for the portal.

customFont
required
string

Custom font for the portal.

learnerDashboard
required
string

JSON object for learner dashboard.

Responses

Request samples

Content type
application/json
{
  • "logoImageUrl": "https://example.com/logo.png",
  • "miniLogoImageUrl": "https://example.com/mini-logo.png",
  • "brandColor": "#2e1e55",
  • "bodyBackgroundColor": "#f8f8f8",
  • "bodyTextColor": "#1b1e24",
  • "headerBackgroundColor": "#2e1e55",
  • "selectedPrimaryLanguage": "en",
  • "customStyle": "CSS code",
  • "customCode": "JavaScript code",
  • "customFont": "font family name",
  • "learnerDashboard": "{\"type\": \"page\", \"id\": 1} or {\"type\": \"menu\", \"id\": \"menu-name\"}"
}

Response samples

Content type
application/json
{
  • "message": "Portal branding updated successfully"
}

Add a sub portal to the given portal

path Parameters
portalId
required
string
Example: 1

Portal ID of the user.

Request Body schema: application/json
optional
subPortal
required

An array of sub portals.

Responses

Request samples

Content type
application/json
{
  • "subPortal": "[{\"name\": \"Sub Portal 1\", \"referralCode\": \"sp1\"}, {\"name\": \"Sub Portal 2\", \"referralCode\": \"sp2\"}]"
}

Response samples

Content type
application/json
{
  • "message": "Sub Portal added successfully"
}

Delete a portal

Request Body schema: application/json
required
portalId
required
integer

The ID of the portal.

Responses

Request samples

Content type
application/json
{
  • "portalId": 5
}

Response samples

Content type
application/json
{
  • "message": "Portal deleted successfully"
}

Delete multiple sub portals

path Parameters
ids
required
string
Example: 1,2,3

Comma separated sub portal IDs.

portalId
required
string
Example: 1

The parent portal ID.

Responses

Response samples

Content type
application/json
{
  • "message": "Sub Portals deleted successfully"
}

Save the menu items for the given portal. The menu items should be an array of objects with the following properties:

  • id: The ID of the menu item.
  • label: The label to display for the menu item.
  • icon: The icon to display for the menu item.
  • type: The type of the menu item. Can be "page" or "custom_link".
  • page_id: The ID of the page if the type is "page".
  • custom_link: The link to redirect to if the type is "custom_link".
  • css_class: The CSS class to apply to the menu item.
  • level: The level of the menu item.
  • items: An array of submenu items.
Request Body schema: application/json
required
portalId
required
integer

The ID of the portal.

menuList
required
Array of strings

An array of menu items.

Responses

Request samples

Content type
application/json
{
  • "portalId": 123,
  • "menuList": [
    • "voluptatum"
    ]
}

Response samples

Content type
application/json
{
  • "message": "Menu updated successfully"
}

Add users to learner list of the portal.

Request Body schema: application/json
required
userIds
required
Array of strings

The IDs of the users to add to learner list.

portalId
required
integer

The ID of the portal to add users to.

Responses

Request samples

Content type
application/json
{
  • "userIds": [
    • "similique"
    ],
  • "portalId": 17
}

Response samples

Content type
application/json
{
  • "message": "User updated successfully"
}

Update a user to portal admin

Request Body schema: application/json
required
userId
required
integer

The id of the user

portalId
required
integer

The id of the portal

portalAdminPermissions
required
Array of strings

The permissions for the portal admin

Responses

Request samples

Content type
application/json
{
  • "userId": 19,
  • "portalId": 1,
  • "portalAdminPermissions": [
    • "distinctio"
    ]
}

Response samples

Content type
application/json
{
  • "message": "User updated successfully"
}

Update the status of a given portal(s)

Request Body schema: application/json
required
ids
required
Array of strings

The IDs of the portals to update.

status
required
string

The status to set for the portals. Options: 'Active', 'InActive'.

Responses

Request samples

Content type
application/json
{
  • "ids": [
    • "illum"
    ],
  • "status": "earum"
}

Response samples

Content type
application/json
{
  • "message": "Status updated successfully"
}

Retrieve a paginated list of portals in a tabular format.

Fetches portals with optional filtering by status and portal name, and returns the results in a paginated format with sorting options. The function also provides the total and filtered records count.

query Parameters
page_size
required
string
Example: page_size=50

The number of items per page.

page_number
required
string
Example: page_number=1

The current page number.

order_by
string
Example: order_by={"colName":"created_at", "direction":"desc"}

Optional JSON for sorting.

search_param
string
Example: search_param={"status":"active", "portalName":"Example Portal"}

Optional JSON for filtering.

portalId
string
Example: portalId=velit

Optional The parent portal ID for filtering sub-portals.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 100,
  • "recordsFiltered": 20,
  • "records": [
    • {
      • "id": 1,
      • "name": "Portal Name",
      • "parentPortalId": "Parent Portal",
      • "referralCode": "ABC123",
      • "totalSeat": 50,
      • "usedSeat": 25,
      • "seatAccess": "full",
      • "status": "active",
      • "slug": "portal-name",
      • "portalAdmins": "Admin Name",
      • "portalAdminsCount": 3,
      • "created_by": "Creator Name",
      • "created_at": "Sep 10, 2023 10:00 AM",
      • "totalLearner": 10
      }
    ]
}

Lookup Portals

Retrieves portals based on the specified type, portal ID, and search term. If the portal ID is provided and not -1, it fetches sub-portals or reports/portals based on the type. If a search term is provided, it filters portals by name. Returns a list of portals with their ID, name, total seats, used seats, and available seats.

query Parameters
type
string
Example: type=subPortals

The type of lookup to perform (e.g., subPortals, reports, portals).

portalId
integer
Example: portalId=5

The portal ID to filter by (use -1 to skip filtering).

search_term
string
Example: search_term=Portal 1

The search term to filter portals by name.

user_id
integer
Example: user_id=1

The ID of the user performing the lookup.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Portal 1",
    • "totalSeats": 100,
    • "usedSeat": 50,
    • "availableSeats": 50
    }
]

Retrieves all the menus with all its associated items

query Parameters
portalId
integer
Example: portalId=1

The portal ID to filter menus by.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "name": "Main Menu",
    • "items": [
      • {
        },
      • {
        },
      • {
        },
      • {
        }
      ]
    },
  • {
    • "id": 2,
    • "name": "Top Bar Menu",
    • "items": [
      • {
        },
      • {
        }
      ]
    },
  • {
    • "id": 3,
    • "name": "Footer Menu",
    • "items": [ ]
    }
]

Get the permissions of a portal admin

path Parameters
id
required
string
Example: 1

User ID of the portal admin.

Responses

Page dropdown list

Returns a list of pages of the associated portal with their ID and Name based on the provided portal ID and search term. If a valid portal ID is provided, it filters pages associated with the portal. If no portal ID or an invalid one (e.g., -1) is given, it returns all pages.

query Parameters
portalId
integer
Example: portalId=5

The portal ID to filter pages by portal. Use -1 to skip portal filtering.

search_term
string
Example: search_term="Advanced"

The search term to filter pages by title.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "title": "Page 1"
    },
  • {
    • "id": 2,
    • "title": "Page 2"
    }
]

Retrieve the menu and pages for a specific portal.

This endpoint retrieves the list of pages associated with a given portal and the sidebar menu items for the portal user.

Request Body schema: application/json
required
portalId
required
integer

The ID of the portal.

Responses

Request samples

Content type
application/json
{
  • "portalId": 123
}

Response samples

Content type
application/json
{
  • "pages": [
    • {
      • "id": 1,
      • "title": "Home Page"
      },
    • {
      • "id": 2,
      • "title": "About Us"
      }
    ],
  • "menus": [
    • "Dashboard",
    • "My Profile",
    • "Settings"
    ]
}

Retrieve checkout details for a portal order

Request Body schema: application/json
optional
portalId
required

The ID of the portal.

qty
required

The quantity of the product to be purchased.

billingAddress
required

The customer billing address.

shippingAddress
required

The customer shipping address.

selectedBillingAddress
required

The customer selected billing address.

selectedShippingAddress
required

The customer selected shipping address.

isShippingSameAsBilling
required

Whether the shipping address is the same as the billing address.

shippingMethodId
required

The ID of the shipping method.

Responses

Request samples

Content type
application/json
{
  • "portalId": "dolore",
  • "qty": "laboriosam",
  • "billingAddress": "dolorum",
  • "shippingAddress": "sunt",
  • "selectedBillingAddress": "tempore",
  • "selectedShippingAddress": "animi",
  • "isShippingSameAsBilling": "in",
  • "shippingMethodId": "aliquid"
}

Response samples

Content type
application/json
{
  • "recurringItems": [ ],
  • "hasSubscriptionWithFreeTrial": false,
  • "hasSubscriptionProduct": false,
  • "productDetails": [ ],
  • "totalTax": 0,
  • "conditions": [ ],
  • "taxRates": [ ],
  • "taxSettings": { },
  • "total": 0,
  • "subtotal": 0,
  • "itemQuantity": 1,
  • "portalId": 1,
  • "currentPortalSeats": 0,
  • "cartErrors": {
    • "message": null,
    • "portalMessages": null
    }
}

Updates the current portal for a user

query Parameters
portalId
required
integer
Example: portalId=1

ID of the portal to set as current.

userId
integer
Example: userId=1

optional ID of the user to update the current portal for. Defaults to the ID of the authenticated user.

Responses

Response samples

Content type
application/json
{
  • "message": "Current portal updated successfully"
}

Retrieve Portal Details Report

Provides detailed report information for portals based on the specified parameters.

query Parameters
page_size
required
string
Example: page_size=10

The number of results per page.

page_number
required
string
Example: page_number=1

The current page number.

order_by
string
Example: order_by=doloremque

optional The column to sort the results by in the format {"colName": "name", "direction": "asc"}

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 100,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Portal 1",
      • "parentPortalName": "Parent Portal",
      • "totalSeat": 100,
      • "usedSeat": 50,
      • "status": "active",
      • "seatAccess": "open",
      • "portalUserIds": [
        ],
      • "portalAdminsCount": 2,
      • "created_by": "Admin User",
      • "created_at": "2023-01-01 12:00:00",
      • "portalExpireOn": "2024-01-01 12:00:00",
      • "totalLearner": 50,
      • "portalUserDetails": [
        ]
      }
    ]
}

Clone a portal and optionally its sub-portal.

This endpoint clones a portal and its associated data (such as branding, settings, etc.), including an optional sub-portal. A new referral code is generated for each cloned portal.

Request Body schema: application/json
required
portalId
required
integer

The ID of the portal to be cloned.

portalName
required
string

The name of the new cloned portal.

subPortals
boolean

Optional flag indicating whether to clone a sub-portal.

Responses

Request samples

Content type
application/json
{
  • "portalId": 5,
  • "portalName": "My Cloned Portal",
  • "subPortals": true
}

Response samples

Content type
application/json
{
  • "message": "Portal Cloned Successfully"
}

Powerpoint

A Powerpoint Module is used as course content. Helps to perform CRUD operation to and for Powerpoint modules.

Powerpoint Modules Tabular List

Returns all the powerpoint modules in a tabular list format with pagination. Filters can be applied using search parameters such as moduleCategoryIds, associatedCourse, and moduleName. Data can be sorted using order_by.

query Parameters
page_size
required
string
Example: page_size=50

The number of items per page.

page_number
required
string
Example: page_number=1

Current page number for pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

Optional JSON for sorting items by column.

search_param
string
Example: search_param={"moduleCategoryIds": [], "associatedCourse": "", "moduleName": ""}

Optional JSON for searching by moduleCategoryIds, associatedCourse, and moduleName.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 5,
  • "records": [
    • {
      • "id": 1,
      • "name": "Powerpoint Module 1",
      • "slug": "powerpoint-module-1",
      • "type": "powerpoint",
      • "icon": "<i class=\"el-icon-presentation\"></i>",
      • "author": "John Doe",
      • "showMappedCourses": false,
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "course_count": 2
      }
    ]
}

Create a new Powerpoint module

Creates a new Powerpoint module. Returns the ID of the newly created module.

query Parameters
name
required
string
Example: name=Getting Started

Name of the Powerpoint module.

viewer
required
string
Example: viewer=microsoft_office

microsoft_office, google_viewer.

content
string
Example: content=<p>This is the content for the module</p>

Content for the text modules that students will see.

url
required
string
Example: url=https://drive.google.com/file/d/0B5cbJMbHsJ1gc3RhcnRlcl9ma2Rhc2hlclYw/view?usp=sharing

URL or actual path of the Powerpoint module that students will see.

estimatedCompletion
integer
Example: estimatedCompletion=30

Estimated time in minutes that a student should take to complete this module.

estimationCompletedUnit
string
Example: estimationCompletedUnit=hour

Required if estimatedCompletion is set.

categories
Array of strings
Example: categories=1&categories=2&categories=3&categories=Category 1

of integers or strings List of categories that this module belongs to. If strings are provided, new categories will be created.

Responses

Response samples

Content type
application/json
{
  • "id": 6,
  • "message": "Module saved successfully"
}

Retrieve a Powerpoint Module

Retrieves a Powerpoint module by given id. Returns its details and associated courses.

path Parameters
id
required
string
Example: 6

The ID of the Powerpoint module.

Responses

Response samples

Content type
application/json
{}

Update Powerpoint Module

Updates the details of the specified powerpoint module. (See parameters) Powerpoint modules can be used in the course as course content/lesson.

Returns : successfull message

path Parameters
id
required
string
Example: 6

The ID of the Powerpoint module.

Request Body schema: application/json
required
id
required

The ID of the powerpoint module.

viewer
required

Viewer for the module.

name
required
string

Name of the powerpoint module.

content
required
string

Content for the powerpoint modules that students will see.

url
required
string

URL or actual path of the powerpoint module that students will see.

estimatedCompletion
integer

Estimated time in minutes that a student should take to complete this module.

estimationCompletedUnit
string

Required if estimatedCompletion is set.

categories
Array of strings

of integers or strings List of categories that this module belongs to. If strings are provided, new categories will be created.

Responses

Request samples

Content type
application/json
{
  • "id": "6",
  • "viewer": "<iframe src=\"https://view.officeapps.live.com/op/embed.aspx?src=https://example.com/powerpoint.pptx\" width=\"100%\" height=\"600px\"></iframe>",
  • "name": "My-powerpoint-lesson",
  • "content": "<p>This is the content for the module</p>",
  • "estimatedCompletion": 30,
  • "estimationCompletedUnit": "hour",
  • "categories": [
    • 1,
    • 2,
    • 3,
    • "Category 1"
    ]
}

Response samples

Content type
application/json
{
  • "message": "Module updated successfully"
}

Get Powerpoint Module Details

To get the details of a powerpoint module, you need to use this request. (See parameters)

path Parameters
registrationId
required
string
Example: 1

ID of the course registration.

moduleId
required
string
Example: 2

ID of the powerpoint module.

portalId
required
integer
Examples:
  • - When the value is omitted
  • 5 - When the value is present

Optional parameter. The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
{}

Retrieve Detailed Powerpoint Module Info

Retrieves details of a Powerpoint module for the current user. Returns related fields such as module name, slug, viewer type, URL, content, and time spent on the module.

query Parameters
moduleId
required
string
Example: moduleId=9

The ID of the Powerpoint module.

Responses

Response samples

Content type
application/json
{
  • "name": "Module Name",
  • "slug": "module-slug",
  • "viewer": "google_viewer",
  • "url": "//docs.google.com/viewer?url=...",
  • "content": "Module content here...",
  • "timeSpent": 120
}

Questions

Manage Questions. Questions can be added in the Quiz module for learners to answer. Helps to perform CRUD operations for and to questions.

Questions Tabular List

Returns all the questions in a tabular list format in paginated mode. You can apply filter using search_param via questionTypes, questionCategoryIds, quizModuleId and questionName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"questionTypes":[],"questionCategoryIds":[],"quizModuleId":"","questionName":""}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "title": "Question-1",
      • "type": "multiple_choice",
      • "display_type": "Multiple Choice",
      • "categories": "Category-1",
      • "author": "John Doe",
      • "created_at": "2021-01-01 12:00:00"
      }
    ]
}

Lookup for question types.

Returns an array of all available question types.

Responses

Response samples

Content type
application/json
{
  • "db_value": "multiple_choice",
  • "display_value": "Multiple Choice"
}

Lookup for questions.

Searches for questions based on a search term provided in the request. Returns a list of questions with their IDs and titles that match the search term. The response is formatted to include 'value' as the question ID and 'label' as the question title for each matching question.

query Parameters
search_term
required
string
Example: search_term=nobis

The term to search for in question titles.

Responses

Response samples

Content type
application/json
[
  • {
    • "value": 1,
    • "label": "Question Title 1"
    },
  • {
    • "value": 2,
    • "label": "Question Title 2"
    }
]

Quick Edit

Updates the details in bulk for a specified question. Parameters is provided which needs to be updated. (See Parameters)

Request Body schema: application/json
required
question_ids
required
Array of strings

All question IDs which needs to be updated.

author_id
integer

Update the instructor/Author for the selected questions.

categories_id
Array of strings

Update the categories of selected questions.

Responses

Request samples

Content type
application/json
{
  • "question_ids": [
    • 3,
    • 2
    ],
  • "author_id": 1,
  • "categories_id": [
    • 6
    ]
}

Response samples

Content type
application/json
{
  • "message": "Questions updated Successfully"
}

Creates a new question with the given details.

Validates the question details and stores the question in the database.

Request Body schema: application/json
required
title
required
string

Title of the question.

content
string

Content for the text modules that students will see.

type
required
string

Type of the question. Type options: multiple_choice, multiple_correct or short_answers.

hint
string

Hint for the question for students.

explanation
string

Explanation of the answer for students.

categories
Array of strings

Categories for the question.

options
Array of strings

Options and correct answer for this question.

matchPossibilities
string

Match possibilities for the question.

Responses

Request samples

Content type
application/json
{
  • "title": "Q1",
  • "content": "<p>This is the short content here</p>",
  • "type": "multiple_choice",
  • "hint": "SpaceX owner",
  • "explanation": "Elon owns Tesla car company",
  • "categories": [
    • 12,
    • 16
    ],
  • "options": [
    • "soluta"
    ],
  • "matchPossibilities": "{ \"item\": \"Apple\", \"match\": \"Fruit\" }"
}

Response samples

Content type
application/json
{
  • "id": 4,
  • "message": "Question saved successfully"
}

Retrieves the details of a specified question. Helps in fetching question using its ID. (See Parameters)

path Parameters
id
required
integer
Example: 2

ID of the question you want to fetch the details of.

Responses

Response samples

Content type
application/json
{
  • "id": 4,
  • "title": "Q1",
  • "content": "<p>This is the short content here</p>",
  • "hint": "SpaceX owner",
  • "explanation": "Elon owns Tesla car company",
  • "type": "multiple_choice",
  • "categories": [
    • 12,
    • 16
    ],
  • "options": [
    • {
      • "value": "Elon Musk",
      • "is_correct": true
      },
    • {
      • "value": "Jeff bezos",
      • "is_correct": false
      }
    ]
}

Update Question

Updates the details of a specified question. (See parameters) Questions can be used in the quizzes as quiz's content.

path Parameters
id
required
integer
Example: 2

ID of the question you want to fetch the details of.

Request Body schema: application/json
required
id
required

ID of the question you want to edit.

title
required

Title of the question.

content
string

Content for the text modules that students will see.

type
required

Type of the question. Type options: multiple_choice, multiple_correct or short_answers.

hint
string

Hint for the question for students.

explanation
string

Explanation of the answer for students.

options
required

Array of options and correct answer for this question.

categories
Array of strings

Categories of the question.

matchPossibilities
required
string

if type is match_answers.

Responses

Request samples

Content type
application/json
{
  • "id": "7",
  • "title": "Q1",
  • "content": "<p>This is the short content here<\\/p>",
  • "type": "multiple_choice",
  • "hint": "Hint here",
  • "explanation": "This is the explanation",
  • "options": "[{value: \\\"Elon Musk\\\", is_correct: true}, {value: \\\"Jeff bezos\\\", is_correct: false}]",
  • "categories": [
    • 3,
    • 4
    ],
  • "matchPossibilities": "Possibility 1, Possibility 2"
}

Response samples

Content type
application/json
{
  • "message": "Question updated successfully"
}

Delete question

To delete a question, you need to use this request. Returns number of question deleted(if multiple selected) and also not deleted. (See Response)

Request Body schema: application/json
required
delete_ids
required
Array of strings

All question IDs which needs to be deleted.

Responses

Request samples

Content type
application/json
{
  • "delete_ids": [
    • 1,
    • 12,
    • 15
    ]
}

Response samples

Content type
application/json
{
  • "message": "3 question(s) deleted 2 question(s) not deleted as it is used in quiz. Please remove the question(s) from the quiz and try again.",
  • "deletedQuestions": [
    • 1,
    • 2,
    • 3
    ],
  • "notDeletedQuestions": [
    • 5,
    • 6
    ],
  • "usedInPlaces": {
    • "Question Category-1": [
      • {
        }
      ],
    • "Question Category-2": [
      • {
        }
      ]
    }
}

Bulk upload questions from CSV file

Request Body schema: application/json
required
questionList
required
Array of strings

Question List. See the example request.

quizIds
required
Array of strings

Quiz Ids to which the questions should be added

quiztype
required
string

Type of quiz, new or existing

newQuiz
required
string

Name of the new quiz

Responses

Request samples

Content type
application/json
{
  • "questionList": [
    • "deserunt"
    ],
  • "quizIds": [
    • "at"
    ],
  • "quiztype": "non",
  • "newQuiz": "labore"
}

Response samples

Content type
application/json
{
  • "message": "Question(s) uploaded successfully",
  • "status": "success",
  • "title": "Success",
  • "errors": [
    • [
      • "Row #1 : Question Type is not correct.",
      • "Row #2 : Empty Title/Title too large(It must be under 500 characters).",
      • "Row #2 : Multiple Choice - Incorrect value in Correct_Answer column. Correct_Answer column must contain only Numbers(>0)"
      ]
    ],
  • "successfulRow": 4,
  • "skipped": 2,
  • "insertedQuestions": [
    • {
      • "id": 1,
      • "title": "Question1"
      },
    • {
      • "id": 2,
      • "title": "Question2"
      },
    • {
      • "id": 3,
      • "title": "Question3"
      },
    • {
      • "id": 4,
      • "title": "Question4"
      }
    ]
}

QuickBooks Integration

This controller handles all API interactions related to QuickBooks integration. * Endpoints in this controller are responsible for managing QuickBooks-specific operations, ensuring seamless integration between the system and QuickBooks.

Returns all the QuickBooks logs in a tabular list format in paginated mode.

path Parameters
id
required
string
Example: 50

ID of the QuickBooks action.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"entity": "order", "entityId": 10, "status": "success"}

For filtering records based on the columns provided in JSON format.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "event": "new_account_created",
      • "data": [ ],
      • "status": "success",
      • "errorMessage": "",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "showData": false
      }
    ]
}

Quizzes

A Quiz Module is a quiz used as course content. Helps to perform CRUD operation to and for quiz modules.

Quizzes Tabular List

Returns all the quizzes in a tabular list format with pagination. Filters can be applied using search parameters for associated courses and module names.

query Parameters
page_size
required
string
Example: page_size=50

The number of items per page.

page_number
required
string
Example: page_number=1

Current page number for pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

Optional JSON for sorting items by column.

search_param
string
Example: search_param={"associatedCourse": "", "moduleName": ""}

Optional JSON for searching by associatedCourse and moduleName.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 5,
  • "records": [
    • {
      • "id": 1,
      • "name": "Quiz 1",
      • "slug": "quiz-1",
      • "type": "quiz",
      • "totalQuestions": 5,
      • "icon": "<i class=\"el-icon-tickets\"></i>",
      • "author": "John Doe",
      • "showMappedCourses": false,
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "course_count": 2
      }
    ]
}

Creates a new Quiz Module.

Request Body schema: application/json
optional
name
required

The name of the quiz module.

content
string

The content of the quiz module.

type
required

The type of the quiz, either static or dynamic.

showCorrectAnswerOption
required

Whether to show correct answer. Options: always, never, not_till_retake_allowed.

shuffleQuestions
boolean

Whether to shuffle the questions.

forceSequential
boolean

Whether to force the questions sequential.

realTimeGrading
boolean

Whether to grade the quiz in real time.

noOfRetakesAllowed
integer

The number of retakes allowed. 0 means unlimited.

minimumPassingMarks
integer

The minimum passing marks.

questions
required_if:type,static

The questions to be included in the quiz.

questionCategories
required_if:type,dynamic

The categories of questions to be included in the quiz.

maxSpentHour
integer

The maximum time to be spent in hours.

maxSpentMinutes
integer

The maximum time to be spent in minutes.

estimatedCompletion
string

The estimated time to complete the quiz.

estimationCompletedUnit
string

The unit of estimated time to complete the quiz.

Responses

Request samples

Content type
application/json
{
  • "name": "nam",
  • "content": "aut",
  • "type": "eius",
  • "showCorrectAnswerOption": "dolorum",
  • "shuffleQuestions": false,
  • "forceSequential": false,
  • "realTimeGrading": true,
  • "noOfRetakesAllowed": 7,
  • "minimumPassingMarks": 18,
  • "questions": "vero",
  • "questionCategories": "praesentium",
  • "maxSpentHour": 5,
  • "maxSpentMinutes": 8,
  • "estimatedCompletion": "autem",
  • "estimationCompletedUnit": "qui"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Module saved successfully"
}

Get Quiz Module

Returns the details of the specified quiz module.

query Parameters
id
required
string
Example: id=6

ID of the quiz module.

Responses

Response samples

Content type
application/json
{
  • "id": 8,
  • "name": "Quiz-2",
  • "slug": "quiz-2",
  • "content": "<p>afegrshtdh</p>",
  • "type": "static",
  • "shuffleQuestions": true,
  • "forceSequential": true,
  • "realTimeGrading": true,
  • "showCorrectAnswerOption": "always",
  • "noOfRetakesAllowed": 3,
  • "minimumPassingMarks": null,
  • "questions": [
    • {
      • "id": 3,
      • "title": "Is red a color?"
      }
    ],
  • "questionCategories": [ ],
  • "maxSpentMinutes": "",
  • "maxSpentHour": ""
}

Update Quiz Module

Updates the details of a specified quiz module. This includes both static and dynamic types. Validates and processes the module details, including questions or question categories, and updates the associated database records accordingly.

Request Body schema: application/json
required
name
required
string

Name of the quiz module.

content
string

Content for the quiz module.

type
required
string

Type of the quiz, either 'static' or 'dynamic'.

showCorrectAnswerOption
required
string

Option to show correct answers: always, never, or not_till_retake_allowed.

shuffleQuestions
boolean

Shuffle the questions in the quiz.

forceSequential
boolean

Display questions in a fixed order.

realTimeGrading
boolean

Enable real-time grading.

noOfRetakesAllowed
integer

Maximum number of retakes allowed for the quiz. Maximum: 9999.

minimumPassingMarks
integer

Minimum percentage required to pass the quiz.

questions
Array of strings

required_if:type,static List of questions for static quizzes.

questionCategories
Array of strings

required_if:type,dynamic List of question categories for dynamic quizzes.

maxSpentHour
integer

Maximum hours allowed for the quiz. Minimum: 0.

maxSpentMinutes
integer

Maximum minutes allowed for the quiz. Minimum: 0.

estimatedCompletion
string

Estimated time to complete the quiz.

estimationCompletedUnit
string

Unit of estimated time to complete.

Responses

Request samples

Content type
application/json
{
  • "name": "Quiz-1",
  • "content": "<p>Quiz content</p>",
  • "type": "et",
  • "showCorrectAnswerOption": "qui",
  • "shuffleQuestions": true,
  • "forceSequential": true,
  • "realTimeGrading": false,
  • "noOfRetakesAllowed": 4,
  • "minimumPassingMarks": 4,
  • "questions": [
    • "voluptatem"
    ],
  • "questionCategories": [
    • "dolorum"
    ],
  • "maxSpentHour": 16,
  • "maxSpentMinutes": 11,
  • "estimatedCompletion": "00:30:00",
  • "estimationCompletedUnit": "minutes"
}

Response samples

Content type
application/json
{
  • "id": 5,
  • "message": "Module saved successfully"
}

Retrieves the details of the specified quiz module. Helps in fetching quiz module using module ID.

query Parameters
moduleId
required
string
Example: moduleId=1

ID of the module.

registrationId
required
string
Example: registrationId=2

ID of the course registration.

portalId
required
string
Example: portalId=3

ID of the portal.

Responses

Response samples

Content type
application/json
{
  • "name": "Quiz-2",
  • "slug": "quiz-2",
  • "content": "<p>afegrshtdh</p>",
  • "courseId": 6,
  • "courseName": "Course 1",
  • "courseSlug": "/course/1/launch",
  • "type": "static",
  • "shuffleQuestion": true,
  • "forceSequential": true,
  • "realTimeGrading": true,
  • "showCorrectAnswerOption": "always",
  • "minimumPassingMarks": null,
  • "maxTimer": "",
  • "maxRetakesAllowed": 0,
  • "min_time_spent": 0,
  • "questions": [ ],
  • "otherModules": [ ],
  • "launchCheck": {
    • "canbeLaunched": true,
    • "reason": ""
    },
  • "userId": 1,
  • "showInstructionButton": true,
  • "prevSlug": "",
  • "nextSlug": ""
}

Save the answer of the question in the quiz module

Saves the answer of the question in the quiz module. Updates the status of quiz to completed if student is finished the quiz and submits. (See Parameters)

query Parameters
questionId
required
string
Example: questionId=1

ID of the question is user is answering.

moduleStatusId
required
string
Example: moduleStatusId=10

ID of the Module status of the current quiz.

isAnswerSubmitted
required
string
Example: isAnswerSubmitted=true

boolean to check if answer is submitted or not.

markedAnswer
required
string
Example: markedAnswer=A

Answer marked by the user.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Answer saved successfully",
  • "isCorrect": true
}

Submits the quiz after attempting all the questions of the quiz. Updates the status of quiz to completed if student is finished the quiz and submits.

query Parameters
portalId
required
string
Example: portalId=1

The ID of the portal for the user.

questions
required
string
Example: questions=[{"id":1,"type":"multiple_choice","markedAnswer":"A"}]

An array of questions in the current quiz.

statusRowId
required
string
Example: statusRowId=10

The ID of the module status for the current quiz.

retakeCounter
required
string
Example: retakeCounter=2

The number of times the quiz has been retaken.

Responses

Response samples

Content type
application/json
{
  • "message": "Quiz Submitted Successfully",
  • "course_newly_completed": false
}

Get Quiz Module Results

Retrieves the quiz module results based on the status row ID specified.

query Parameters
statusRowId
required
string
Example: statusRowId=10

The ID of the status row.

studentId
required
string
Example: studentId=2

The ID of the student.

Responses

Response samples

Content type
application/json
{
  • "name": "Quiz 1",
  • "slug": "quiz-1",
  • "status": "Completed",
  • "questions": [
    • {
      • "id": 1,
      • "title": "Question 1",
      • "type": "Multiple Choice",
      • "content": "What is your question?",
      • "explanation": "This is the explanation",
      • "is_correct": true,
      • "marked_answer": "A",
      • "correct_answer": "A",
      • "created_at": "2020-03-03 10:30:00"
      }
    ],
  • "studentName": "John Doe",
  • "totalQuestions": 5,
  • "totalCorrect": 4,
  • "totalInCorrect": 1,
  • "minimumPassingAchieved": true,
  • "score": 80,
  • "percentAchieved": 80,
  • "showCorrectAnswerOption": true,
  • "courseCompleted": false,
  • "totalRetakeallowed": 3,
  • "attemptCount": 2,
  • "timeSpent": "00:30:00",
  • "minimumPassingMarks": 90,
  • "isRetakeAllowed": true
}

Quiz Lookup

Retrieves all the quiz modules. Helps while showing quiz names in form elements like dropdown. You can apply filters using search_term parameter. (See Response)

query Parameters
search_term
required
string
Example: search_term=molestiae

The name or substring of the quiz name to search for that module.

Responses

Response samples

Content type
application/json
[
  • {
    • "value": 1,
    • "label": "First-quiz"
    },
  • {
    • "value": 2,
    • "label": "Quiz-2"
    }
]

Returns the analysis details of a quiz, including the questions, options selected, percentages etc.

Request Body schema: application/json
required
page_size
required
integer

The number of records to return per page.

page_number
required
integer

The page number to return.

search_param
string

The search query to filter the results by.

quiz_id
required
integer

The id of the quiz module.

Responses

Request samples

Content type
application/json
{
  • "page_size": 17,
  • "page_number": 14,
  • "search_param": "aspernatur",
  • "quiz_id": 10
}

Response samples

Content type
application/json
{
  • "quizName": "Quiz Example",
  • "totalSubmissions": 5,
  • "questionDetails": [
    • {
      • "id": 1,
      • "name": "What is your name?",
      • "questionType": "Multiple Choice",
      • "correctOption": [
        ],
      • "optionsWithPercentage": {
        }
      },
    • {
      • "id": 2,
      • "name": "What is your age?",
      • "questionType": "Short Answer",
      • "correctOption": [ ],
      • "optionsWithPercentage": {
        }
      }
    ],
  • "totalQuestions": 5,
  • "recordsFiltered": 5,
  • "quizStatistics": {
    • "averageScore": 80,
    • "averageTimeSpent": "00:30:00",
    • "totalSubmissions": 5
    },
  • "averageTimeSpent": "00:30:00",
  • "totalAttempts": 10,
  • "headers": [
    • "optionName_1",
    • "markedPercentageOfOption_1",
    • "optionName_2",
    • "markedPercentageOfOption_2",
    • "optionName_3",
    • "markedPercentageOfOption_3"
    ]
}

Get the question submission details

Retrieves the question submission details based on the question ID and quiz ID specified.

query Parameters
quiz_id
required
string
Example: quiz_id=1

The ID of the quiz.

question_id
required
string
Example: question_id=1

The ID of the question.

page_size
required
string
Example: page_size=10

The number of records to be returned in a single page.

page_number
required
string
Example: page_number=1

The page number to be returned.

Responses

Response samples

Content type
application/json
{
  • "totalRecords": 100,
  • "records": [
    • {
      • "courseName": "Course 1",
      • "firstName": "John",
      • "lastName": "Doe",
      • "email": "[email protected]",
      • "questionType": "Multiple Choice",
      • "markedAnswer": "A",
      • "isCorrectResponse": "Yes"
      }
    ]
}

Downloads the quiz response as a PDF.

Generates a PDF file containing the details of the quiz response, including the name, retake information, time spent, questions, answers, and scores. The PDF is then returned as a downloadable file.

query Parameters
statusRowId
required
string
Example: statusRowId=consequuntur

The ID of the status row.

Responses

Send the quiz score achieved by the user to the LTI consumer.

query Parameters
statusRowId
required
string
Example: statusRowId=10

The ID of the status row.

userId
required
string
Example: userId=2

The ID of the user.

ltiRegistrationId
required
string
Example: ltiRegistrationId=1

The ID of the LTI registration.

courseId
required
string
Example: courseId=3

The ID of the course.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "message": "Score submitted successfully."
}

Get the quiz module content details

Retrieves the quiz module content details based on the quiz ID specified.

query Parameters
id
required
string
Example: id=1

The ID of the quiz.

name
required
string
Example: name=Quiz 1

The name of the quiz.

content
required
string
Example: content=Quiz 1 content

The content of the quiz.

type
required
string
Example: type=static

The type of the quiz.

shuffleQuestions
string
Example: shuffleQuestions=true

optional Whether to shuffle the questions or not.

forceSequential
string
Example: forceSequential=true

optional Whether to force sequential questions or not.

realTimeGrading
string
Example: realTimeGrading=true

optional Whether to enable real time grading or not.

slug
required
string
Example: slug=quiz-1

The slug of the quiz.

showCorrectAnswerOption
required
string
Example: showCorrectAnswerOption=always

The option to show correct answer.

noOfRetakesAllowed
required
string
Example: noOfRetakesAllowed=2

The number of retakes allowed.

questionCategories
required
string
Example: questionCategories=[{"categoryId": 1, "numOfQuestions": 2}]

The question categories.

questions
required
string
Example: questions=[{"id": 1, "title": "Question 1", "content": "Question 1 content", "type": "multiple_choice", "hint": "Hint 1", "explanation": "Explanation 1"}]

The questions.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Quiz 1",
  • "content": "Quiz 1 content",
  • "type": "static",
  • "shuffleQuestions": true,
  • "forceSequential": true,
  • "realTimeGrading": true,
  • "slug": "quiz-1",
  • "showCorrectAnswerOption": "always",
  • "noOfRetakesAllowed": 2,
  • "questionCategories": [
    • {
      • "categoryId": 1,
      • "numOfQuestions": 2
      }
    ],
  • "questions": [
    • {
      • "id": 1,
      • "title": "Question 1",
      • "content": "Question 1 content",
      • "type": "multiple_choice",
      • "hint": "Hint 1",
      • "explanation": "Explanation 1"
      }
    ]
}

Salesforce Integration

It allows you to track learner activity and progress in the LMS, and trigger changes in Salesforce data accordingly.

Salesforce Event Lookup

Retrieves all the events for the salesforce actions. Helps showing options in dropdowns elements

Responses

Response samples

Content type
application/json
{
  • "events": [
    • {
      • "db_value": "new_account_created",
      • "display_value": "New Account Created",
      • "crud_op": "Create",
      • "salesforce_crud": [
        ]
      },
    • {
      • "db_value": "account_updated",
      • "display_value": "Account Updated",
      • "crud_op": "Update",
      • "salesforce_crud": [
        ]
      },
    • {
      • "db_value": "course_enrolled",
      • "display_value": "Enrolled in a course",
      • "crud_op": "Update",
      • "salesforce_crud": [
        ]
      },
    • {
      • "db_value": "course_completed",
      • "display_value": "Course Completed",
      • "crud_op": "Update",
      • "salesforce_crud": [
        ]
      },
    • {
      • "db_value": "course_started",
      • "display_value": "Course Started",
      • "crud_op": "Update",
      • "salesforce_crud": [
        ]
      },
    • {
      • "db_value": "course_progress",
      • "display_value": "Course Progress Tracking",
      • "crud_op": "Update",
      • "salesforce_crud": [
        ]
      }
    ]
}

Field Lookup

Retrieves all the fields for the given object type - contact or custom_course_object. Helps showing options in dropdowns elements

query Parameters
type
required
string
Example: type=contact

The object type - contact or custom_course_object.

Responses

Response samples

Content type
application/json
{
  • "lms_fields": [
    • {
      • "db_value": "email"
      },
    • {
      • "db_value": "last_name"
      },
    • {
      • "db_value": "first_name"
      },
    • {
      • "db_value": "last_login_ip"
      },
    • {
      • "db_value": "is_disabled"
      }
    ],
  • "salesforce_fields": [
    • {
      • "db_value": "email"
      },
    • {
      • "db_value": "lastName"
      },
    • {
      • "db_value": "firstName"
      }
    ],
  • "courses": [
    • {
      • "id": 1,
      • "name": "Course 1"
      },
    • {
      • "id": 2,
      • "name": "Course 2"
      }
    ]
}

Tabular List

Retrieves all the salesforce integrations in a tabular list format in paginated mode. You can apply filter using search_param via events(salesforce integration events).

query Parameters
order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

For ordering items based on columns provided in JSON format.

search_param
integer
Example: search_param=0

for searching items based on field names.

page_size
required
string
Example: page_size=10

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "event": "course_enrolled",
      • "event_display_value": "Enrolled in a Course",
      • "object": "salesforce_contact",
      • "object_display_value": "Salesforce Contact",
      • "action": "created",
      • "author": "John Doe",
      • "created_at": "2021-01-01 12:00:00"
      }
    ]
}

Create Salesforce Action

To create a Salesforce Action, you need to use this request. Provide event, action and object and it will be created. (See parameters)

Request Body schema: application/json
required
event
required
string

Event for which you want to create action.

action
required
string

Action will be create of the event by default.

object
required
string

Select the object from the dropdown list from Salesforce contact.

Responses

Request samples

Content type
application/json
{
  • "event": "course_enrolled",
  • "action": "create.",
  • "object": "salesforce_contact"
}

Response samples

Content type
application/json
{
  • "message": "Action created Successfully"
}

Save Salesforce Mapping

Saves the mapping of salesforce mapping. Helps in saving salesforce mapping using its type. (See Parameters)

Request Body schema: application/json
optional
type
required

Type of the salesforce mapping you want to save the details of.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "is_success": true,
  • "message": "Mapping saved Successfully"
}

Retrieve Salesforce Mapping

Retrieves the details of the salesforce mapping. Helps in fetching salesforce mapping using its type. (See Parameters)

Request Body schema: application/json
optional
type
required

Type of the salesforce mapping you want to fetch the details of.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "type": "salesforce_course_and_registration_custom_object",
  • "courseFieldProperties": [ ],
  • "courseRegistrationFieldProperties": [ ],
  • "sfCustomObjectNames": [ ],
  • "isSyncCourseCompleted": true
}

Update Salesforce Action

Updates a Salesforce action based on the provided ID.

path Parameters
id
required
string
Example: 1

The ID of the Salesforce action to be updated.

Request Body schema: application/json
optional
event
required

The event of the Salesforce action.

action
required

The action of the Salesforce action.

object
required

The object of the Salesforce action.

Responses

Request samples

Content type
application/json
{
  • "event": "New Account Created",
  • "action": "create",
  • "object": "Salesforce Contact"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Salesforce updated successfully"
}

Delete Salesforce Action

To delete a Salesforce Action, you need to use this request. Provide id and it will be deleted. (See parameters)

path Parameters
id
required
string
Example: 3

ID of the salesforce action.

Responses

Response samples

Content type
application/json
{
  • "message": "Salesforce deleted successfully"
}

Retrieves Salesforce logs in a paginated format.

This function returns logs related to a specific Salesforce action identified by its ID. The logs are presented in a tabular format, allowing pagination and optional sorting.

path Parameters
id
required
string
Example: 50

The ID of the Salesforce action whose logs are to be retrieved.

query Parameters
page_size
required
string
Example: page_size=50

The number of items per page.

page_number
required
string
Example: page_number=1

The current page number for pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

Optional parameter for sorting items based on columns in JSON format.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 100,
  • "recordsFiltered": 50,
  • "records": [
    • {
      • "id": 1,
      • "event": "New Account Created",
      • "data": [ ],
      • "status": "success",
      • "display_status": "Success",
      • "errorMessage": "",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "showData": false
      }
    ]
}

SCORM Packages

SCORM packages can be used in course as course scorm module. Endpoints for managing SCORM Packages.

Tabular List

Retrieves all the SCORM packages in a tabular list format in paginated mode. You can apply filter using search_param via name(package name), scormTypes(scorm type).

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName": "name", "direction": "asc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"name": "my package", "scormTypes": ["SCORM 1.2", "xAPI"]}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{}

Retrieve scorm type lookup

Returns all the supported scorm types in a list format.

Responses

Get Scorm Package

Fetch the details of a specified scorm package. (See parameters) Scorm packages can be used in course as course content/lesson.

query Parameters
id
required
string
Example: id=1

ID of the scorm package you want to fetch the details of.

Responses

Response samples

Content type
application/json
{}

Deletes a scorm package.

path Parameters
delete_ids
required
string
Example: maiores

IDs of the scorm package you want to delete.

Responses

Response samples

Content type
application/json
{
  • "message": "1 package(s) deleted 0 package(s) not deleted as it is used in Module. Please remove the scorm Package from the module and try again."
}

Download a SCORM package

This endpoint downloads a SCORM package by ID. After download, the status is reset to "Not Started" and the download path is cleared. The file is automatically deleted after being sent.

Request Body schema: application/json
required
id
required
integer

The ID of the SCORM package to download.

Responses

Request samples

Content type
application/json
{
  • "id": 5
}

Export Scorm Package

Only admin, owner and staff can export the scorm package.

path Parameters
id
required
string
Example: in

ID of the scorm package you want to export.

Responses

Response samples

Content type
application/json
{
  • "status": "In Progress"
}

Returns the status of a scorm package.

path Parameters
id
required
string
Example: aperiam

ID of the scorm package.

Responses

Response samples

Content type
application/json
{
  • "status": "Not Started"
}

SCORMs

An SCORM Module is used as course content. Helps to perform CRUD operation to and for SCORM modules.

Get fake Tin Can state

Returns a JSON response of true.

path Parameters
modulesStatusId
required
integer
Example: 3

ID of the module status you want to update the Tin Can state of.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get fake Tin Can state

Returns a JSON response of true.

path Parameters
modulesStatusId
required
integer
Example: 3

ID of the module status you want to update the Tin Can state of.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get fake Tin Can state

Returns a JSON response of true.

path Parameters
modulesStatusId
required
integer
Example: 18

ID of the module status you want to update the Tin Can state of.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get TinCan (xAPI) state for a module in a course registration.

This endpoint retrieves the SCORM/xAPI state (like suspend_data or other tracking keys) for a specific module within a registered course. The state is retrieved based on the stateId and a given registration string.

query Parameters
stateId
required
string
Example: stateId=suspend_data

The key/state ID to retrieve (e.g., suspend_data).

activityId
required
string
Example: activityId=http://example.com/activity

The activity ID of the xAPI object.

registration
required
string
Example: registration=123|456|789

Pipe-separated values: registrationId|moduleId|packageId.

Responses

Response samples

Content type
application/json
{
  • "suspend_data": "c2Vzc2lvbl9zdGF0ZT0yMDE=",
  • "progress": "75%",
  • "lesson_status": "incomplete"
}

Update TinCan (xAPI) state for a module in a course registration.

This endpoint allows updating a SCORM/xAPI state value (e.g., suspend_data or lesson_status) for a specific module within a course registration. If a state already exists, it will be updated; otherwise, a new state record will be created.

query Parameters
stateId
required
string
Example: stateId=suspend_data

The key/state ID to update.

activityId
required
string
Example: activityId=http://example.com/activity

The activity ID of the xAPI object.

registration
required
string
Example: registration=123|456|789

Pipe-separated values: registrationId|moduleId|packageId.

Request Body schema: application/json
optional
string
required

Raw SCORM/xAPI value to store in the state.

Responses

Request samples

Content type
application/json
{
  • "string": "{\"score\":85,\"lesson_status\":\"completed\"}"
}

Response samples

Content type
application/json
true

Save TinCan (xAPI) statement for course progress tracking.

This endpoint accepts and stores xAPI statements sent by a learning module. It handles different types of verbs like attempted, completed, passed, failed, and answered, and processes scoring, progress, and interactions accordingly.

Request Body schema: application/json
required
verb
required
object

The verb of the xAPI statement.

object
object
required
object

The object of the statement containing details about the learning activity.

result
object

The result of the statement, such as scores and success.

timestamp
string

The timestamp of when the interaction happened.

Responses

Request samples

Content type
application/json
{
  • "context": {
    • "registration": "123|456|789|10"
    },
  • "object": [ ],
  • "result": {
    • "score": {
      • "raw": 90,
      • "max": 100
      },
    • "success": true,
    • "completion": true
    },
  • "timestamp": "2024-05-01T10:00:00Z"
}

Response samples

Content type
application/json
true

SCORM Modules Tabular List

Returns all the SCORM modules in a tabular list format in paginated mode. You can apply filter using search_param via moduleTypes(module type), associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"moduleTypes": ["scorm"],associatedCourse:"",moduleName:""}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "test",
      • "slug": "test",
      • "type": "scorm",
      • "icon": "<i class=\"el-icon-document\"></i>",
      • "author": "Aom Staff",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "course_count": 1
      }
    ]
}

Create SCORM Module

This function creates a new SCORM module with the provided details. It validates the request, saves module details, and associates categories.

Request Body schema: application/json
optional
name
required

The name of the SCORM module.

trackCompletion
required

Boolean indicating if the module should track completion.

scormPackageId
required

The ID of the SCORM package.

launchNewWindow
required

Boolean indicating if the module should launch in a new window.

categories
array|nullable

Array of category IDs or names associated with the module.

estimatedCompletion
int|nullable

Estimated time to complete the module in minutes.

estimationCompletedUnit
string|nullable

Unit of the estimated time to complete the module.

Responses

Request samples

Content type
application/json
{
  • "name": "New Scorm Module",
  • "trackCompletion": "true",
  • "scormPackageId": "1",
  • "launchNewWindow": "true",
  • "categories": "[1, \"New Category\"]",
  • "estimatedCompletion": "10",
  • "estimationCompletedUnit": "minutes"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Module saved successfully"
}

Update SCORM Module

This function updates an existing SCORM module with the provided details. It validates the request, saves module details, and associates categories.

Request Body schema: application/json
optional
id
required

The ID of the SCORM module you want to update.

name
required

The name of the SCORM module.

trackCompletion
required

Boolean indicating if the module should track completion.

launchNewWindow
required

Boolean indicating if the module should launch in a new window.

scormPackageId
required

The ID of the SCORM package.

categories
array|nullable

Array of category IDs or names associated with the module.

estimatedCompletion
int|nullable

Estimated time to complete the module in minutes.

estimationCompletedUnit
string|nullable

Unit of the estimated time to complete the module.

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "Updated Scorm Module",
  • "trackCompletion": "true",
  • "launchNewWindow": "true",
  • "scormPackageId": "1",
  • "categories": "[1, \"New Category\"]",
  • "estimatedCompletion": "10",
  • "estimationCompletedUnit": "minutes"
}

Response samples

Content type
application/json
{
  • "message": "Module updated successfully"
}

Get Scorm Module

Fetch the details of a specified scorm module. (See parameters) Scorm modules can be used in the course as course content/lesson.

query Parameters
id
required
string
Example: id=1

ID of the scorm module you want to fetch the details of.

Responses

Response samples

Content type
application/json
{}

Retrieve Detailed Scorm Module Info

Retrieves detailed information about a SCORM module including its name, slug, content, associated course details, SCORM URL, tracking and launching options, and more. It also handles the SCORM package versioning and generates authorization tokens for xAPI integration if applicable. The function checks and updates the module status, calculates time spent, and fetches SCORM keys for the module.

query Parameters
registrationId
required
string
Example: registrationId=16

ID of the course registration for which this module is attached.

moduleId
required
string
Example: moduleId=11

ID of the SCORM module.

portalId
string
Example: portalId=5

optional ID of the portal for course launch URL.

openInNewWindow
string
Example: openInNewWindow=true

optional If true, the module is launched in a new window.

Responses

Get scorm module report details

Returns the scorm module report details for the given module status id.

path Parameters
modulesStatusId
required
integer
Example: 12

ID of the module status you want to fetch the report of.

studentId
required
integer
Example: 9

ID of the student you want to fetch the report for.

Responses

Response samples

Content type
application/json
{
  • "moduleName": "Sample Scorm",
  • "moduleId": 1,
  • "score": 100,
  • "studentName": "Aom Staff",
  • "interactions": [
    • {
      • "slide": "1",
      • "question": "What is your name?",
      • "questionType": "text",
      • "studentResponse": "John Doe",
      • "correctResponse": "",
      • "result": "correct",
      • "time": "2022-01-01 12:00:00 PM"
      },
    • {
      • "slide": "2",
      • "question": "What is your email?",
      • "questionType": "text",
      • "studentResponse": "[email protected]",
      • "correctResponse": "",
      • "result": "correct",
      • "time": "2022-01-01 12:00:00 PM"
      }
    ],
  • "courseId": 1,
  • "courseName": "Sample Course"
}

Get TinCan (xAPI) report for a specific module attempt.

This endpoint retrieves the TinCan (xAPI) interaction report for a given learner's module status. It includes detailed interaction logs, score calculations, and context information for analysis.

query Parameters
modulesStatusId
required
integer
Example: modulesStatusId=42

The ID of the module status.

studentId
required
integer
Example: studentId=2

The ID of the student.

Responses

Response samples

Content type
application/json
{
  • "score": 90,
  • "studentName": "John Doe",
  • "moduleName": "Workplace Safety 101",
  • "interactions": [
    • {
      • "id": 123,
      • "modulesStatusId": 42,
      • "activity": "Completed",
      • "objectType": "Activity",
      • "objectName": "Introduction Slide",
      • "statementRaw": null,
      • "createdBy": 7,
      • "createdAt": "April 16, 2025 02:45 PM",
      • "message": "You completed 'Introduction Slide'"
      }
    ]
}

Generate SCORM report as PDF

This endpoint generates a PDF report of SCORM interactions and scores for a given module status ID. It includes question responses, time spent, score percentage, and interaction details. The PDF is returned as a downloadable file.

Request Body schema: application/json
required
modulesStatusId
required
integer

The ID of the module status for which the SCORM report is to be generated.

Responses

Request samples

Content type
application/json
{
  • "modulesStatusId": 42
}

Get scorm module content details

Returns the scorm module content details.

path Parameters
moduleId
required
integer
Example: 14

ID of the module you want to fetch the details of.

Responses

Response samples

Content type
application/json
{
  • "name": "Sample Scorm",
  • "slug": "sample-scorm",
  • "content": "Sample Scorm Content",
  • "version": "1.2",
  • "trackCompletion": true,
  • "scormKeys": {
    • "cmi.suspend_data": "",
    • "cmi.core.lesson_location": "",
    • "cmi.core.lesson_mode": "normal",
    • "cmi.mode": "normal",
    • "cmi.core.lesson_status": "incomplete",
    • "cmi.success_status": "",
    • "cmi.completion_status": "incomplete",
    • "cmi.core.student_id": 2,
    • "cmi.core.student_name": "Aom Staff",
    • "cmi.location": ""
    },
  • "timeSpent": "0h 0m"
}

Staffs

You can perform staff management tasks like creating, deleting and updating staffs.

Tabular List

Retrieves all the staffs in a tabular list format with pagination mode. You can apply filter using search_param via name or email.

query Parameters
page_size
required
string
Example: page_size=10

The number of the users you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"nameOrEmail":"John Doe","membershipId":1}

for searching items based on name, email.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 4,
  • "recordsFiltered": 4,
  • "records": [
    • {
      • "id": 4,
      • "first_name": "John",
      • "last_name": "Doe",
      • "email": "[email protected]",
      • "avatar": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"><circle cx=\"20\" cy=\"20\" r=\"20\" stroke=\"background\" stroke-width=\"0\" fill=\"#03A9F4\"/><text x=\"20\" y=\"20\" font-size=\"14\" fill=\"#FFFFFF\" alignment-baseline=\"middle\" text-anchor=\"middle\" dominant-baseline=\"central\">JD</text></svg>",
      • "user_type": "general",
      • "display_user_type": "General",
      • "created_at": "Aug 06, 2020 07:20 AM",
      • "last_login": "2 days ago"
      }
    ]
}

Retrieves detailed report for all staffs.

query Parameters
page_size
required
string
Example: page_size=10

Number of the result row you want in each page.

page_number
required
string
Example: page_number=1

Current Page number.

registered_between
string
Example: registered_between={"first_name":"John","last_name":"Doe"}

Returns search filtered data.

Responses

Response samples

Content type
application/json
{
  • "totalNotStarted": 1,
  • "totalInProgress": 0,
  • "totalCompleted": 0,
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "first_name": "John",
      • "last_name": "Doe",
      • "email": "[email protected]",
      • "user_type": "General",
      • "created_at": "Aug 09, 2020",
      • "last_login": "Oct 09, 2020"
      }
    ]
}

Creates a new staff member.

query Parameters
firstName
required
string
Example: firstName=John

First name of the staff.

lastName
required
string
Example: lastName=Doe

Last name of the staff.

email
required
string

Email of the staff.

password
required
string
Example: password=Nv10=80l^

Password for the staff. Must be at least 8 characters long and should not have been compromised according to the haveibeenpwned.com API.

staffPermissions
required
string
Example: staffPermissions=[1,2,3]

if userType is set to staff. Array of permission IDs to assign to the staff.

userType
required
string
Example: userType=staff

Type of the user to create.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Staff created successfully"
}

Retrieve Staff By ID

This endpoint returns the staff details based on the ID specified.

path Parameters
id
required
string
Example: 1

The ID of the staff.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "firstName": "John",
  • "lastName": "Doe",
  • "email": "[email protected]",
  • "lastLoggedIn": "2 hours ago",
  • "avatar": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 100 100\"><circle cx=\"50\" cy=\"50\" r=\"50\" stroke=\"background\" stroke-width=\"0\" fill=\"#03A9F4\" /><text x=\"50\" y=\"50\" font-size=\"40\" fill=\"#FFFFFF\" alignment-baseline=\"middle\" text-anchor=\"middle\" dominant-baseline=\"central\">JD</text></svg>",
  • "disabled": false,
  • "userType": "staff",
  • "currentLoggedUserType": "owner",
  • "membership": {
    • "id": 1,
    • "name": "Silver",
    • "expiryDate": null
    },
  • "customUserMetas": {
    • "full_name": {
      • "type": "text",
      • "label": "Full Name",
      • "submitted_value": "John Doe",
      • "placeholder_value": ""
      },
    • "user_type": {
      • "type": "dropdown",
      • "label": "User Type",
      • "submitted_value": 1,
      • "placeholder_value": "",
      • "option_label": [
        ],
      • "option_value": [
        ]
      }
    },
  • "internal_note": null
}

Update Staff/Owner details

path Parameters
id
required
string
Example: 1

The ID of the staff.

Request Body schema: application/json
optional
id
required

The ID of the staff to update.

firstName
required

First name of the staff.

lastName
required

Last name of the staff.

email
required

Email of the staff.

disabled
required

boolean whether the staff is disabled or not.

internal_note
optional

Internal note for the staff.

customUserMetas
optional

Custom user meta fields.

userType
required

Type of the user to update.

Responses

Request samples

Content type
application/json
{
  • "id": "2",
  • "firstName": "John",
  • "lastName": "Doe",
  • "email": "[email protected]",
  • "disabled": "0",
  • "internal_note": "This is a note.",
  • "customUserMetas": "{\"meta_key1\":{\"type\":\"text\",\"submitted_value\":\"value1\"},\"meta_key2\":{\"type\":\"checkbox\",\"submitted_value\":[1,2,3]}}",
  • "userType": "staff"
}

Response samples

Content type
application/json
{
  • "message": "Owner/Staff updated successfully"
}

Get Staff Permissions

Returns all permissions for the staff

path Parameters
id
required
integer
Examples:
  • - When the value is omitted
  • 16 - When the value is present

Optional parameter. The ID of the staff. Exmaple: 2

Responses

Response samples

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

Update Staff Permissions

Update the permissions of a staff member

path Parameters
id
required
string
Example: 1

The ID of the staff.

Request Body schema: application/json
required
permissions
required
Array of strings

The permissions for the staff.

Responses

Request samples

Content type
application/json
{
  • "permissions": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "Permissions updated successfully"
}

Subscription Products

A subscription product whose amount will be paid in subscriptions (in between intervals) by your learners. Helps in performing CRUD operations for and to subscription products.

Retrieve Subscription

To retrieve a subscription, you need to use this request. (See parameters)

Returns : success status and successfull message

query Parameters
id
required
string
Example: id=1

Subscription ID of the subscription.

Responses

Response samples

Content type
application/json
{
  • "status": "ACTIVE",
  • "endDate": "2020-10-01 00:00:00",
  • "nextPaymentDate": "2020-10-01 00:00:00",
  • "userName": "John Doe (#1 - [email protected])",
  • "paymentGatewayId": 1
}

Update Subscription

To update a subscription, you need to use this request. (See parameters) Subscription can be only created by purchasing subscription product.

Returns : success status and successfull message

query Parameters
id
required
string
Example: id=1

Subscription ID of the subscription.

Request Body schema: application/json
optional
status
required

Status of the subscription.

endDate
nullable

End date of the subscription.

nextPaymentDate
required

Next payment date of the subscription.

Responses

Request samples

Content type
application/json
{
  • "status": "ACTIVE",
  • "endDate": "2020-10-01 00:00:00",
  • "nextPaymentDate": "2020-10-01 00:00:00"
}

Response samples

Content type
application/json
{
  • "message": "Subscription updated successfully"
}

Retrieves the product details for a given subscription id.

Returns product title, price, and image url.

query Parameters
id
required
string
Example: id=laudantium

The subscription id whose product details you want to retrieve.

Responses

Response samples

Content type
application/json
{}

Retrieves the related orders of a given subscription id.

query Parameters
subscription_id
required
string
Example: subscription_id=recusandae

The subscription id whose related orders you want to retrieve.

page_size
required
string
Example: page_size=50

The amount of records to return per page.

page_number
required
string
Example: page_number=1

The page number of the records to return.

order_by
required
string
Example: order_by={"colName":"created_at", "direction": "desc"}

The order by parameters.

search_param
required
string
Example: search_param={"orderStatus": ["IN-PROGRESS", "COMPLETED"]}

The search parameters.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "total": 100,
      • "status": "IN-PROGRESS",
      • "relationship": "Parent Order",
      • "created_at": "Jan 01, 2021 12:00 AM"
      }
    ]
}

Create Subscription

Creates a new subscription based on an order, selected subscription products, and optional coupon/payment token.

Request Body schema: application/json
required
orderId
required
integer

The ID of the order containing the subscription products.

paymentToken
string

Optional token for payment processing.

productQuantity
required
object

A key-value pair of product IDs and their quantities.

Responses

Request samples

Content type
application/json
{
  • "orderId": 1001,
  • "paymentToken": "sk_test_abc123",
  • "productQuantity": {
    • "12": 1,
    • "15": 2
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Subscription has been created"
}

Tabular List

Retrieves all the subscriptions in a tabular list format with pagination mode. You can apply filter using search_param via productTitle, subscriptionStatus(active, cancelled, expired, on-hold), nameOrEmail and subscriptionOrderMonth.

query Parameters
page_size
required
string
Example: page_size=10

The number of the subscriptions you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"productTitle": "", "subscriptionStatus": ["ACTIVE", "CANCELLED"], "nameOrEmail": "[email protected]", "subscriptionOrderMonth": "2020-01"}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "user_name": "John Doe",
      • "user_id": 1,
      • "product": "Product 1",
      • "product_id": 1,
      • "subscription_price": "$10.00 / month",
      • "next_payment_date": "Jan 01, 2021 12:00 AM",
      • "status": "ACTIVE",
      • "created_at": "Jan 01, 2021 12:00 AM"
      }
    ]
}

Subscription Status Lookup

Retrieves all the statuses for a subscription the platform offers like Active, Cancelled, Expired, On-Hold. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "ACTIVE",
    • "display_value": "Active"
    },
  • {
    • "db_value": "CANCELLED",
    • "display_value": "Cancelled"
    },
  • {
    • "db_value": "EXPIRED",
    • "display_value": "Expired"
    },
  • {
    • "db_value": "ON-HOLD",
    • "display_value": "On-Hold"
    }
]

Quick Edit Subscriptions

Updates the status of the specified subscriptions in bulk.

Request Body schema: application/json
required
subscription_ids
required
Array of strings

The IDs of the subscriptions to be updated.

status
required
string

The new status to set for the subscriptions.

Responses

Request samples

Content type
application/json
{
  • "subscription_ids": [
    • 1,
    • 2
    ],
  • "status": "\"ACTIVE\""
}

Response samples

Content type
application/json
{
  • "message": "Subscriptions updated Successfully"
}

Process Subscription Action

Perform a specific action on the subscription like process renewal.

Request Body schema: application/json
required
id
required
integer

The ID of the subscription.

action
required
string

The action to perform on the subscription.

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "action": "PROCESS_RENEWAL"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Process Renewal Successfully completed"
}

Subscription Action Lookup

Retrieves all the actions that can be performed on a subscription like Process renewal. Helps showing options in form elements like dropdowns.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "PROCESS_RENEWAL",
    • "display_value": "Process renewal"
    },
  • {
    • "db_value": "CREATE_PENDING_RENEWAL_ORDER",
    • "display_value": "Create pending renewal order"
    }
]

Survey Modules

A survey module is a feedback module that you can add as course content to get learners feedback about your course(How they felt about course, ratings, etc). Helps in performing CRUD operation to and for survey modules.

Get paginated list of survey modules.

Returns a paginated, searchable, and sortable list of survey-type modules with metadata such as author, course mapping, and timestamps.

query Parameters
page_size
required
integer
Example: page_size=10

The number of records per page.

page_number
required
integer
Example: page_number=1

The current page number.

order_by
object
Example: colName=name&direction=asc

An object containing sorting preferences.

search_param
object
Example:

Optional search filters.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 52,
  • "recordsFiltered": 7,
  • "records": [
    • {
      • "id": 12,
      • "name": "Employee Feedback Survey",
      • "slug": "employee-feedback-survey",
      • "type": "survey",
      • "icon": "fa-poll",
      • "author": "Jane Smith",
      • "showMappedCourses": false,
      • "created_at": "April 15, 2025 03:20 PM",
      • "course_count": 3
      }
    ]
}

Creates a new survey module

Creates a new survey module using form fields provided in the request body.

Request Body schema: application/json
required
name
required
string

Name of the text module.

content
string

Content for the text modules that learners will see.

submitButtonText
required
string

Text for the submit button.

submitOption
required
string

Submission options for learners.

fields
required
Array of strings

Form fields inside the Survey form(like radio, dropdown, rating, text, textarea, etc).

Responses

Request samples

Content type
application/json
{
  • "name": "Feedback",
  • "content": "This is the short content here",
  • "submitButtonText": "Submit Survey",
  • "submitOption": "save_to_db",
  • "fields": [
    • {
      • "type": "text",
      • "label": "How you left",
      • "defaultValue": "",
      • "isRequired": false,
      • "optionLabel": [ ]
      },
    • {
      • "type": "rating",
      • "label": "How you rate us",
      • "defaultValue": "",
      • "isRequired": false,
      • "optionLabel": [ ]
      }
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Module saved successfully"
}

Update the specified survey module in storage.

Request Body schema: application/json
optional
id
required

The ID of the survey module.

name
required

The name of the survey module.

content
The

content of the survey module.

trackCompletion
boolean

Whether the module is being tracked(whether its finished or not) in course player.

estimatedCompletion
integer

The estimated time in minutes to complete the module.

estimationCompletedUnit
string

The unit of estimated completion time.

submitButtonText
string

The text for the submit button.

submitOption
string

The option on how to submit the form.

fields
Array of strings

Array of form fields.

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "Feedback",
  • "content": "A brief Description",
  • "trackCompletion": false,
  • "estimatedCompletion": 60,
  • "estimationCompletedUnit": "minutes",
  • "submitButtonText": "Submit Form",
  • "submitOption": "send_email",
  • "fields": [
    • "quos"
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Module updated successfully"
}

Retrieves the details of the specified survey module.

Retrieves the details of the specified survey module. Helps in fetching survey module using its ID. (See Parameters)

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Feedback",
  • "slug": "feedback",
  • "content": "A brief Description",
  • "redirect": null,
  • "trackCompletion": false,
  • "submitButtonText": "Submit Survey",
  • "submitOption": "save_to_db",
  • "fields": [
    • {
      • "id": 1,
      • "type": "text",
      • "label": "How you left",
      • "defaultValue": "",
      • "isRequired": false,
      • "optionLabel": [ ]
      },
    • {
      • "id": 2,
      • "type": "rating",
      • "label": "How you rate us",
      • "defaultValue": "",
      • "isRequired": false,
      • "optionLabel": [ ]
      }
    ]
}

Get Survey Module Details

Retrieves the details of a survey module including its name, slug, content, course information, track completion status, launch checks, and form field data for a specific course registration and module.

path Parameters
registrationId
required
string
Example: 1

The ID of the course registration.

moduleId
required
string
Example: 2

The ID of the survey module.

portalId
required
integer
Examples:
  • - When the value is omitted
  • 5 - When the value is present

Optional parameter. The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Mark Complete Survey Module

Updates the status of the survey module to completed. Changes the completion percentage to 100% and marks completed the survey module.

query Parameters
statusRowId
required
string
Example: statusRowId=4

ID of the ModuleStatus Row belongs to current survey module.

Responses

Response samples

Content type
application/json
{
  • "message": "Module Completed Successfully"
}

Get Student Response

Returns all the survey module user response of the course in a tabular list format in paginated mode. You can apply filter using search_param via name and scormType(version).

path Parameters
statusRowId
required
string
Example: totam

ID of the ModuleStatus Row belongs to current text module.

Responses

Response samples

Content type
application/json
{
  • "question": [
    • "How you felt",
    • "How you rate us"
    ],
  • "answer": [
    • "Awesome course it was",
    • "5"
    ]
}

Survey User Response

Retrieves all the survey modules user response of the course in a tabular list format in paginated mode. You can apply filter using search_param via name and scormType(version).

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"userName":""}

For searching items based on field names.

course_id
required
string
Example: course_id=4

Course ID for which you want to get user response.

portalId
required
string
Example: portalId=1

Portal ID for which you want to get user response.

type
required
string
Example: type=export

Type of the response.

Responses

Response samples

Content type
application/json
{
  • "headers": [
    • "student_id",
    • "student_name",
    • "student_email",
    • "first_name",
    • "last_name",
    • "email",
    • "submitted_on"
    ],
  • "form_data": [
    • {
      • "student_id": 1,
      • "student_name": "John Doe",
      • "student_email": "[email protected]",
      • "Question 1": "Answer 1",
      • "Question 2": "Answer 2",
      • "Submitted On": "10-Aug-2020"
      }
    ],
  • "form_id": [
    • 1,
    • 2
    ],
  • "course_name": "My Course Name"
}

Retrieves the count of the maximum number of the form submissions in a single form in a specified course.

Used to estimiate the number of seperate requests are needed to fetch all responses in chunks. (See response)

query Parameters
course_id
required
string
Example: course_id=4

Course ID for which you want to get user response.

Responses

Response samples

Content type
application/json
{
  • "max_form_data_count": 2
}

Survey Report

Retrieves a paginated list of courses along with their associated survey modules. The result can be filtered by course name or ID, and restricted to specific portals. The function also supports ordering of the result set based on specified columns.

query Parameters
page_size
required
string
Example: page_size=50

The number of items you want per page.

page_number
required
string
Example: page_number=1

The current page number in pagination.

order_by
string
Example: order_by={"colName":"name", "direction": "asc"}

JSON object for ordering items based on columns.

search_param
string
Example: search_param={"courseName":"Math", "courseId":1}

JSON object for searching courses by name or ID.

portalId
string
Example: portalId=2

Optional portal ID to restrict results to a specific portal and its sub-portals.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 100,
  • "recordsFiltered": 50,
  • "records": [
    • {
      • "id": 1,
      • "name": "Course Name",
      • "survey": [
        ],
      • "count": 10
      }
    ]
}

Get All Users’ Survey Responses by Course and Module

Retrieves paginated survey/form responses submitted by users for a specific module within a course. Supports search filtering, sub-portal filtering, and returns processed answers per question.

query Parameters
page_size
required
integer
Example: page_size=10

The number of records per page.

page_number
required
integer
Example: page_number=1

The current page number.

course_id
required
integer
Example: course_id=42

The ID of the course.

module_id
required
integer
Example: module_id=108

The ID of the module.

portalId
integer
Example: portalId=3

optional The ID of the portal to filter user responses by portal and sub-portals.

search_param
string
Example: search_param={"userName":"John"}

optional JSON-encoded object to filter by user name or email.

Responses

Response samples

Content type
application/json
{
  • "form_data": [
    • {
      • "submissions": [
        ],
      • "name": "John Doe",
      }
    ],
  • "courseName": "Introduction to Programming",
  • "moduleName": "Module 1: Basics",
  • "form_data_count": 1,
  • "recordsTotal": 10,
  • "recordsFiltered": 1
}

Saves the survey form submission data

Saves the survey form submission data and returns the id of the saved form submission

Request Body schema: application/json
required
content
required
string

Content of the text module.

form_id
required
integer

Form ID for which you want to save the form submission.

name
required
string

Name of the form.

form_fields
required
Array of strings

Form fields inside the Survey form(like radio, dropdown, rating, text, textarea, etc).

statusRowId
required

ID of the Module status of the current survey module.

Responses

Request samples

Content type
application/json
{
  • "content": "A brief Description",
  • "form_id": 1,
  • "name": "Feedback",
  • "form_fields": [
    • {
      • "type": "text",
      • "label": "How you left",
      • "submitted_value": "",
      • "options_label": [ ],
      • "options_value": [ ]
      },
    • {
      • "type": "rating",
      • "label": "How you rate us",
      • "submitted_value": 5,
      • "options_label": [ ],
      • "options_value": [ ]
      }
    ],
  • "statusRowId": "7"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Form saved successfully"
}

Text Modules

A Text Module is a lesson module used as course content. Helps to perform CRUD operation to and for Text modules.

Text Modules Tabular List

Returns all the text modules in a tabular list format in paginated mode. You can apply filter using search_param via moduleTypes(module type), associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"moduleTypes": ["text"],associatedCourse":"","moduleName":""}

for searching items based on field names.

Responses

Create Text Module

Creates a new text module. (See parameters)

Request Body schema: application/json
required
name
required

Name of the text module.

content
required
string

Content for the text modules that students will see.

trackCompletion
required
boolean

If true, the module is being tracked(whether its finished or not) in course player.

estimatedCompletion
string

Estimated time to complete in course player.

estimationCompletedUnit
string

Unit of estimated time to complete in course player.

categories
Array of strings

Categories to be added to the module.

Responses

Request samples

Content type
application/json
{
  • "name": "Getting Started",
  • "content": "<p>This is the updated short content here</p>",
  • "trackCompletion": true,
  • "estimatedCompletion": "00:30:00",
  • "estimationCompletedUnit": "minutes",
  • "categories": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Module saved successfully"
}

Get Text Module

Retrieves the details of the specified text module. Helps in fetching text module using module ID. (See Parameters) Returns : id, name, slug, content, trackCompletion, estimatedCompletion, estimationCompletedUnit and categories of the text module created.

path Parameters
id
required
string
Example: 6

ID of the text module.

Responses

Response samples

Content type
application/json
{
  • "id": 6,
  • "name": "Getting Started",
  • "slug": "getting-started",
  • "content": " ",
  • "trackCompletion": false,
  • "estimatedCompletion": null,
  • "estimationCompletedUnit": null,
  • "categories": [
    • 1,
    • 2,
    • 3
    ],
  • "courses": [
    • {
      • "course_id": 1,
      • "course_name": "Course Name"
      }
    ]
}

Update Text Module

Updates the details of the specified text module. (See parameters) Text modules can be used in the course as course content/lesson.

Returns : Successfull message

path Parameters
id
required
string
Example: 6

ID of the text module.

Request Body schema: application/json
required
name
required

Name of the text module.

content
required
string

Content for the text modules that students will see.

trackCompletion
required
boolean

If true, the module is being tracked(whether its finished or not) in course player.

estimatedCompletion
string

Estimated time to complete in course player.

estimationCompletedUnit
string

Unit of estimated time to complete in course player.

categories
Array of strings

Categories to be added to the module.

Responses

Request samples

Content type
application/json
{
  • "name": "My-text-lesson",
  • "content": "<p>This is the updated short content here</p>",
  • "trackCompletion": true,
  • "estimatedCompletion": "00:30:00",
  • "estimationCompletedUnit": "minutes",
  • "categories": [
    • 1,
    • 2,
    • 3
    ]
}

Response samples

Content type
application/json
{
  • "message": "Module updated successfully"
}

Get Text Module Details

To get the details of a text module, you need to use this request. (See parameters)

path Parameters
registrationId
required
string
Example: 1

ID of the course registration.

moduleId
required
string
Example: 2

ID of the text module.

portalId
required
integer
Examples:
  • - When the value is omitted
  • 5 - When the value is present

Optional parameter. The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Mark Complete Text Module

Updates the status of the text module to completed. Changes the completion percentage to 100% and marks completed the text module.

query Parameters
statusRowId
required
string
Example: statusRowId=4

ID of the ModuleStatus Row belongs to current text module.

Responses

Response samples

Content type
application/json
{
  • "is_success": true,
  • "message": "Module Completed Successfully",
  • "course_newly_completed": false
}

Retrieve Detailed Text Module Info for Membership content

Retrieves details of text module in depth for the same membership the current text module is attached to. Returns related fields value. (See Response)

query Parameters
moduleId
required
string
Example: moduleId=9

ID of the text module.

Responses

Response samples

Content type
application/json
{
  • "name": "Getting Started",
  • "slug": "getting-started",
  • "content": " ",
  • "trackCompletion": true,
  • "timeSpent": null
}

Users

You can perform user management tasks like creating, deleting and updating users.

Retrieve Custom User Fields that needs to be shown on the Registration page

Retrieves the details of pre saved Custom User Fields.

Responses

Response samples

Content type
application/json
{
  • "fields": {
    • "user_meta_key_1": {
      • "id": 1,
      • "type": "text",
      • "label": "Gender",
      • "defaultValue": null,
      • "isRequired": false,
      • "optionLabel": [ ],
      • "isFieldOnRegistrationPage": false,
      • "isFieldOnCertificate": true,
      • "includeInReportExports": [
        ]
      },
    • "user_meta_key_2": {
      • "id": 2,
      • "type": "textarea",
      • "label": "What is your home address",
      • "defaultValue": null,
      • "isRequired": true,
      • "optionLabel": [ ],
      • "isFieldOnRegistrationPage": true,
      • "isFieldOnCertificate": false,
      • "includeInReportExports": [ ]
      }
    }
}

Update the status of a webinar registration for the given user and course.

query Parameters
ids
required
string
Example: ids=[101, 102, 103]

array The IDs of the course registrations to update.

status
required
string
Example: status="approved"

string The new status of the webinar registration.

webinarId
required
string
Example: webinarId=55

int The ID of the webinar module.

portalId
required
string
Example: portalId=12

int The ID of the portal.

Responses

Response samples

Content type
application/json
{
  • "message": "Status Updated Successfully"
}

Update the notes for a webinar registration for the given user and course.

query Parameters
ids
required
string
Example: ids=[101, 102, 103]

array The IDs of the course registrations to update.

webinarId
required
string
Example: webinarId=55

int The ID of the webinar module.

portalId
required
string
Example: portalId=12

int The ID of the portal.

notes
required
string
Example: notes="This is a test note"

string The new notes of the webinar registration.

Responses

Response samples

Content type
application/json
{
  • "message": "Notes Updated Successfully"
}

Get the quizzes for a given user and portal.

query Parameters
user_id
required
string
Example: user_id=1

int The ID of the user.

searchPortalIds
required
string
Example: searchPortalIds=[1,2]

array The IDs of the portals to search in.

page_number
required
string
Example: page_number=1

int The page number.

page_size
required
string
Example: page_size=10

int The page size.

order_by
required
string
Example: order_by={"colName":"registered_on","direction":"desc"}

object The order by parameters.

search_param
required
string
Example: search_param={"nameOrEmail":"John Doe","status":[]}

object The search parameters.

Responses

Retrieves a list of portals for a given user.

query Parameters
userId
string
Example: userId=1

optional User ID to filter portals.

type
string
Example: type=checkout

optional The type of user to filter portals.

Responses

Response samples

Content type
application/json
{
  • "portals": [
    • {
      • "id": 1,
      • "name": "Portal 1",
      • "referralCode": "portal1",
      • "userType": "portal_admin",
      • "totalSeat": 100,
      • "subscriptionId": 1,
      • "parentPortalId": 1,
      • "slug": "portal-1"
      },
    • {
      • "id": 2,
      • "name": "Portal 2",
      • "referralCode": "portal2",
      • "userType": "portal_admin",
      • "totalSeat": 50,
      • "subscriptionId": 2,
      • "parentPortalId": 2,
      • "slug": "portal-2"
      }
    ],
  • "baseUrl": "http://example.com"
}

User Types

Retrieves all the user types in the system like admin, owner, staff, general.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "admin",
    • "display_name": "Admin"
    },
  • {
    • "db_value": "owner",
    • "display_name": "Owner"
    },
  • {
    • "db_value": "staff",
    • "display_name": "Staff"
    },
  • {
    • "db_value": "general",
    • "display_name": "General"
    }
]

Tabular List

Retrieves all the users in a tabular list format with pagination mode. You can apply filter using search_param via nameOrEmail, membershipId, userCategoryId.

query Parameters
page_size
required
string
Example: page_size=10

The number of the users you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"nameOrEmail":"John Doe","membershipId":1, "userCategoryId":1}

for searching items based on nameOrEmail, membershipId, userCategoryId.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 10,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 4,
      • "first_name": "John",
      • "last_name": "Doe",
      • "is_disabled": false,
      • "email": "[email protected]",
      • "avatar": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"><circle cx=\"20\" cy=\"20\" r=\"20\" stroke=\"background\" stroke-width=\"0\" fill=\"#03A9F4\" /><text x=\"20\" y=\"20\" font-size=\"14\" fill=\"#FFFFFF\" alignment-baseline=\"middle\" text-anchor=\"middle\" dominant-baseline=\"central\">JD</text></svg>",
      • "display_type": "General",
      • "created_at": "Aug 06, 2020 07:20 AM",
      • "last_login": "2 days ago",
      • "source": "default",
      • "portals": "Portal 1, Portal 2",
      • "user_category": "Category 1, Category 2"
      }
    ]
}

Retrieve Users By Type

Retrieves a list of users filtered by user type and optionally by portal ID.

query Parameters
userType
string
Example: userType=learner

The type of user to filter by.

portalId
string
Example: portalId=1

Optional. The ID of the portal to filter users by.

Responses

Response samples

Content type
application/json
{}

Enables enroll content for a user.

query Parameters
userId
required
string
Example: userId=1

int The ID of the user to enable enroll content for.

selectedCourseView
required
string
Example: selectedCourseView='grid'

string The view to enable for courses.

selectedLearningPathView
required
string
Example: selectedLearningPathView='list'

string The view to enable for learning paths.

selectedCourseViewMode
required
string
Example: selectedCourseViewMode='enroll'

string The mode to enable for courses.

selectedLearningPathViewMode
required
string
Example: selectedLearningPathViewMode='enroll'

string The mode to enable for learning paths.

type
required
string
Example: type='course'

string The type of content to enable. Must be either 'course' or 'learningPath'.

Responses

Response samples

Content type
application/json
{
  • "message": "Setting Updated Successfully"
}

Retrieve Users

Retrieves a list of users filtered by search term and optionally by portal ID and user type.

query Parameters
search_term
required
string
Example: search_term=John

The search term to search for users.

portalId
string
Example: portalId=1

optional The ID of the portal to filter users by.

userType
string
Example: userType=learner

optional The type of user to filter by.

remote_user_search
string
Example: remote_user_search=qui

optional Set to true to search for users globally. Set to false to search within the portal and its sub-portals.

Responses

Response samples

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

Creates a new user.

query Parameters
firstName
required
string
Example: firstName=John

First name of the user.

lastName
required
string
Example: lastName=Doe

Last name of the user.

email
required
string

Email of the user.

password
required
string
Example: password=h\*{P/tCM8u

Password for the user. Must be at least 8 characters long and should not have been compromised according to the haveibeenpwned.com API.

userCategory
string
Example: userCategory=[1,2,3]

optional Array of category IDs or names to assign to the user.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "User created successfully"
}

Bulk upload users from csv file

Request Body schema: application/json
required
userList
required
Array of strings

The list of user objects containing email, first_name, last_name, password, and other custom fields

selectedCourses
required
Array of strings

List of Course Ids to be enrolled

selectedLearningPaths
required
Array of strings

List of Learning Path Ids to be enrolled

membershipId
required
integer

Membership Id to be attached

portalId
required
integer

Portal Id to be attached

Responses

Request samples

Content type
application/json
{
  • "userList": [
    • "amet"
    ],
  • "selectedCourses": [
    • "officia"
    ],
  • "selectedLearningPaths": [
    • "dolorum"
    ],
  • "membershipId": 2,
  • "portalId": 1
}

Response samples

Content type
application/json
{
  • "message": "User(s) uploaded successfully",
  • "is_success": "true"
}

Retrieves the saved cards for a user.

query Parameters
userId
required
string
Example: userId=1

int The ID of the user to retrieve saved cards for.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 101,
    • "last4": "4242",
    • "payment_gateway_name": "Stripe",
    • "card_type": "Visa"
    },
  • {
    • "id": 102,
    • "last4": "1881",
    • "payment_gateway_name": "PayPal",
    • "card_type": "Mastercard"
    }
]

Deletes a saved card for a user.

query Parameters
paymentTokenId
required
string
Example: paymentTokenId=1

int The ID of the payment token to delete.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "message": "Card has been deleted."
}

Returns a sample file in JSON format which can be downloaded by the user and used as a template for bulk uploading users.

The sample file contains dummy data for the standard fields and the custom user fields that have been set up in the system. The dummy data is in a format that can be easily copied and pasted into the user's own CSV file. The first record in the sample file contains data for all the fields, while the subsequent records contain blank data. This is to make it easy for the user to see what data is required for each field.

Responses

Response samples

Content type
application/json
{
  • "headers": [
    • "email",
    • "first_name",
    • "last_name",
    • "password",
    • "custom_field_1",
    • "custom_field_2",
    • "custom_field_3"
    ],
  • "records": [
    • {
      • "email": "[email protected]",
      • "first_name": "Fake FName1",
      • "last_name": "Fake LName1",
      • "password": "Qwerty@123",
      • "custom_field_1": "Fake Custom Field 1 Value",
      • "custom_field_2": "Fake Custom Field 2 Value",
      • "custom_field_3": "Fake Custom Field 3 Value"
      },
    • {
      • "email": "[email protected]",
      • "first_name": "Fake FName2",
      • "last_name": "Fake LName2",
      • "password": "",
      • "custom_field_1": "",
      • "custom_field_2": "",
      • "custom_field_3": ""
      },
    • {
      • "email": "[email protected]",
      • "first_name": "Fake FName3",
      • "last_name": "Fake LName3",
      • "password": "",
      • "custom_field_1": "",
      • "custom_field_2": "",
      • "custom_field_3": ""
      }
    ]
}

Get blocked and allowed emails and domains for a given portal.

query Parameters
portalId
integer
Example: portalId=1

The ID of the portal to get the blocked and allowed emails and domains for. If not provided, will return the blocked emails and domains for the main site.

Responses

Response samples

Content type
application/json

Retrieve User By ID

This endpoint returns the user details based on the ID specified.

path Parameters
id
required
string
Example: 1

The ID of the user.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "firstName": "John",
  • "lastName": "Doe",
  • "email": "[email protected]",
  • "lastLoggedIn": "2 hours ago",
  • "avatar": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 100 100\"><circle cx=\"50\" cy=\"50\" r=\"50\" stroke=\"background\" stroke-width=\"0\" fill=\"#03A9F4\" /><text x=\"50\" y=\"50\" font-size=\"40\" fill=\"#FFFFFF\" alignment-baseline=\"middle\" text-anchor=\"middle\" dominant-baseline=\"central\">JD</text></svg>",
  • "disabled": false,
  • "userType": "staff",
  • "currentLoggedUserType": "owner",
  • "membership": {
    • "id": 1,
    • "name": "Silver",
    • "expiryDate": null
    },
  • "customUserMetas": {
    • "full_name": {
      • "type": "text",
      • "label": "Full Name",
      • "submitted_value": "John Doe",
      • "placeholder_value": ""
      },
    • "user_type": {
      • "type": "dropdown",
      • "label": "User Type",
      • "submitted_value": 1,
      • "placeholder_value": "",
      • "option_label": [
        ],
      • "option_value": [
        ]
      }
    },
  • "internal_note": null
}

Updates an existing user.

path Parameters
id
required
string
Example: 1

The ID of the user.

query Parameters
id
required
string
Example: id=1

User ID to update.

firstName
required
string
Example: firstName=John

First name of the user.

lastName
required
string
Example: lastName=Doe

Last name of the user.

email
required
string

Email of the user.

disabled
required
string
Example: disabled=0

boolean whether the user is disabled or not.

internal_note
string
Example: internal_note=This is a note.

optional Internal note for the user.

customUserMetas
string
Example: customUserMetas={"meta_key1":{"type":"text","submitted_value":"value1"},"meta_key2":{"type":"checkbox","submitted_value":[1,2,3]}}

optional Custom user meta fields.

userCategory
string
Example: userCategory=[1,2,3]

optional Array of category IDs or names to assign to the user.

Responses

Response samples

Content type
application/json
{
  • "message": "User updated successfully"
}

Update Membership

Updates the membership of a specified user. The membership will be revoked if the expired_at date is in the past. If the expired_at is not provided, the expired_at of the membership will be used.

path Parameters
id
required
string
Example: 1

The ID of the user.

Request Body schema: application/json
optional
id
required

The ID of the membership.

expired_at
nullable

The expired date for the user.

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "expired_at": "'2021-10-03 23:59:59'"
}

Updates the password of a user.

query Parameters
password
required
string
Example: password="MyP@ssw0rd"

New password for the user. Must be at least 8 characters long and should not have been compromised according to the haveibeenpwned.com API.

userId
required
string
Example: userId=1

ID of the user to update the password for.

Responses

Response samples

Content type
application/json
{
  • "message": "Password updated successfully"
}

Enrolled Courses

Retrieves all courses enrolled by a specified user. The response includes course status, completion percentage, last access date, and access status.

query Parameters
user_id
required
string
Example: user_id=1

ID of the user to retrieve enrolled courses for.

page_size
required
string
Example: page_size=10

Number of records to return per page.

page_number
required
string
Example: page_number=1

Current page number.

order_by
string
Example: order_by={"colName":"created_at","direction":"desc"}

optional Returns results in some order.

search_param
string
Example: search_param={"status":["Not Started","In Progress"],"nameOrEmail":"John Doe"}

optional Search parameters related to course.

portalId
required
string
Example: portalId=1

ID of the portal to filter courses by portal and sub-portals. Use -1 to skip portal filtering.

viewType
required
string
Example: viewType="self"

"self" or "manage". If "self", then only the enrolled courses of the requesting user are returned. If "manage", then all enrolled courses of users managed by the requesting user are returned.

manage_course
required
string
Example: manage_course=true

true or false. If true, then only courses with access type "manage" are returned. If false, then all courses are returned.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 50,
  • "recordsFiltered": 50,
  • "records": [
    • {
      • "id": 1,
      • "courseId": 1,
      • "featuredImageUrl": "https://example.com/course1.jpg",
      • "courseSlug": "course1",
      • "courseName": "Course 1",
      • "lastAccessed": "2 days ago",
      • "status": "Not Started",
      • "display_status": "Not Started",
      • "accessStatus": "Allowed",
      • "percentComplete": 0,
      • "courseStatus": "publish",
      • "registered_on": "Aug 09, 2020",
      • "started_on": "",
      • "completed_on": "",
      • "expire_on": "Never",
      • "isExpired": false,
      • "canRecertify": false,
      • "estimatedCompletionTime": "2 hours",
      • "certificate_count": 0,
      • "enableCourseRating": true,
      • "rating": 4.5
      }
    ],
  • "name": "John Doe",
  • "email": "[email protected]",
  • "userType": "learner",
  • "isLearner": true
}

Get courses enrolled by a user in a particular portal

Request Body schema: application/json
required
portalId
required
integer

The ID of the portal

page_size
required
integer

The number of records per page

page_number
required
integer

The page number

order_by
required
object

The order by object with colName and direction properties

search_param
required
object

The search object with name, categories, and status properties

Responses

Request samples

Content type
application/json
{
  • "portalId": 7,
  • "page_size": 17,
  • "page_number": 18,
  • "order_by": [ ],
  • "search_param": [ ]
}

Response samples

Content type
application/json
{
  • "courses": [
    • {
      • "courseId": 1,
      • "registrationId": 1,
      • "type": "course",
      • "contentName": "Course 1",
      • "rating": 4.5,
      • "enableCourseRating": true,
      • "launchUrl": "/portal/course/course-1/launch",
      • "canRecertify": true,
      • "isEnrolled": true,
      • "lastAccessed": "3 days ago",
      • "display_status": "In Progress",
      • "percentComplete": 20,
      • "isExpired": false,
      • "registered_on": "2021-01-01 00:00:00",
      • "estimatedCompletionTime": "3 hours",
      • "status": "In Progress"
      }
    ],
  • "totalRecords": 10,
  • "recordsFiltered": 10
}

Delete a user or multiple users

Deletes a specified user or multiple users in a single API call. Supports deleting users with or without enrollments. Does not delete users who have created courses or modules. Does not delete users who have portal access. Also deletes announcements, cart abandonment records, and user reviews associated with the user.

query Parameters
delete_ids
required
string
Example: delete_ids="[1,2,3]"

JSON string containing the IDs of the users to be deleted.

user_id
integer
Example: user_id=4

optional ID of the user. Defaults to the authenticated user if not provided.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "deletedStudents": [
    • {
      • "id": 2,
      • "name": "John Doe"
      },
    • {
      • "id": 3,
      • "name": "Jane Doe"
      }
    ],
  • "notDeletedStudents": [
    • {
      • "id": 1,
      • "name": "Adam Smith"
      }
    ],
  • "usedInCourses": {
    • "John Doe": [
      • {
        },
      • {
        }
      ]
    },
  • "usedAsCourseAuthors": {
    • "John Doe": [
      • {
        },
      • {
        }
      ]
    },
  • "usedAsModuleAuthors": {
    • "John Doe": [
      • {
        },
      • {
        }
      ]
    },
  • "usedInPortals": {
    • "John Doe": [
      • {
        },
      • {
        }
      ]
    }
}

Quick Edit

Updates user details in bulk based on the provided parameters. This function supports enabling/disabling users, enrolling users in courses and learning paths, and attaching users to memberships.

Request Body schema: application/json
required
user_ids
required
Array of strings

IDs of the users to be updated.

course_ids
Array of strings

Optional. IDs of the courses to enroll users in.

disabled
boolean

Optional. Whether to disable the users.

learning_path_ids
Array of strings

Optional. IDs of the learning paths to enroll users in.

enrollMembershipId
integer

Optional. ID of the membership to attach users to.

portalId
integer

Optional. ID of the portal for membership attachment.

Responses

Request samples

Content type
application/json
{
  • "user_ids": [
    • 1,
    • 2,
    • 3
    ],
  • "course_ids": [
    • 10,
    • 20
    ],
  • "disabled": true,
  • "learning_path_ids": [
    • 5,
    • 6
    ],
  • "enrollMembershipId": 2,
  • "portalId": 1
}

Response samples

Content type
application/json
{
  • "message": "Users updated Successfully"
}

Insert Address

Adds a new address for a specified user with the provided details. If the address is marked as default, it updates other addresses of the same type to not be default.

Request Body schema: application/json
required
fullName
required
string

Full Name of the user.

orgName
string

optional Organization Name.

orgVatId
string

optional Organization VAT ID.

addressLine1
required
string

Address line1 of the user.

addressLine2
string

optional Address line2 of the user.

zipcode
required
string

Zipcode of the user address.

city
required
string

City of the user address.

state
string

optional State of the user address.

country
required
string

Country of the user address.

isDefault
required
boolean

Is the address default for billing.

userId
required
integer

ID of the user for whom the address is being added.

type
required
string

Type of address.

billing_address_id
integer

optional Billing address ID if applicable.

Responses

Request samples

Content type
application/json
{
  • "fullName": "John Doe",
  • "orgName": "Acme Corp",
  • "orgVatId": "VAT12345",
  • "addressLine1": "Boring Street",
  • "addressLine2": "Awesome Colony",
  • "zipcode": "123456",
  • "city": "Mumbai",
  • "state": "NY",
  • "country": "US",
  • "isDefault": true,
  • "userId": 4,
  • "type": "billing",
  • "billing_address_id": 5
}

Response samples

Content type
application/json
{
  • "message": "Address added successfully"
}

Retrieve all billing addresses of a user

Retrieves all the billing addresses which are added by the specified user.

path Parameters
id
required
string
Example: 1

ID of the user address row from UsersAddress Model.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "isDefault": false,
    • "fullName": "John Doe",
    • "addressLine1": "Boring Street",
    • "addressLine2": "Awesome Colony",
    • "zipcode": "123456",
    • "city": "Mumbai",
    • "state": "MH",
    • "country": "IN"
    }
]

Get shipping address By ID.

Retrieves a list of all shipping addresses associated with a specific user ID.

path Parameters
id
required
integer
Example: 12

The ID of the user.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "isDefault": true,
    • "fullName": "John Doe",
    • "orgName": "Acme Inc.",
    • "orgVatId": "VAT123456",
    • "addressLine1": "123 Main St",
    • "addressLine2": "Suite 456",
    • "zipcode": "12345",
    • "city": "New York",
    • "state": "NY",
    • "country": "USA"
    }
]

Retrieve User Dashboard Statistics

Returns user's dashboard statistics which includes Total Courses, Completed Courses, In Progress Courses, Not Started Courses, and Time Spent.

query Parameters
user_id
required
string
Example: user_id=4

ID of the user.

portalId
required
string
Example: portalId=1

ID of the portal.

Responses

Response samples

Content type
application/json
{
  • "totalCourses": 10,
  • "completedCourses": 2,
  • "inProgressCourses": 3,
  • "notStartedCourses": 5,
  • "timeSpent": 12
}

Retrieve User Activities

Returns all activities performed by a specified user in a paginated format. Supports filtering, sorting, and context-based queries.

query Parameters
user_id
required
integer
Example: user_id=4

ID of the user. Defaults to the authenticated user if not provided.

page_size
required
integer
Example: page_size=10

Number of records per page.

page_number
required
integer
Example: page_number=1

Current page number.

order_by
string
Example: order_by={"colName":"created_at", "direction":"desc"}

optional JSON string to specify the column and direction for ordering.

search_param
string
Example: search_param={"courseCategoryIds":[],"courseName":"course-1","status":"In Progress"}

optional JSON string containing search parameters.

context
required
string
Example: context="admin"

The context for the activities.

portalId
required
integer
Example: portalId=1

The ID of the portal.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 15,
      • "verb": "ENROLLED",
      • "created_at": "Aug 09, 2020 10:27 AM",
      • "message": "John Doe is enrolled to course 1",
      • "course": "course 1"
      }
    ]
}

Retrieve User Orders

Returns all orders of a specified user in a paginated format. Supports filtering, sorting, and context-based queries.

query Parameters
user_id
required
integer
Example: user_id=4

ID of the user. Defaults to the authenticated user if not provided.

page_size
required
integer
Example: page_size=10

Number of records per page.

page_number
required
integer
Example: page_number=1

Current page number.

order_by
string
Example: order_by={"colName":"created_at", "direction":"desc"}

optional JSON string to specify the column and direction for ordering.

search_param
string
Example: search_param={"courseCategoryIds":[],"courseName":"course-1","status":"In Progress"}

optional JSON string containing search parameters.

context
required
string
Example: context="admin"

The context for the activities.

portalId
required
integer
Example: portalId=1

The ID of the portal.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 15,
      • "verb": "ENROLLED",
      • "created_at": "Aug 09, 2020 10:27 AM",
      • "message": "John Doe is enrolled to course 1",
      • "course": "course 1"
      }
    ]
}

Get user certificates.

Retrieves a paginated list of certificates for a specific user, with optional filtering, sorting, and portal-based context.

path Parameters
id
required
string
Example: 42

The ID of the user or "undefined" to use the authenticated user.

query Parameters
page_size
required
integer
Example: page_size=10

Number of records per page.

page_number
required
integer
Example: page_number=1

Page number to retrieve.

order_by
string
Example: order_by=[{"field":"issued_at","direction":"desc"}]

json Sort options in JSON format.

search_param
string
Example: search_param=[{"field":"title","value":"AWS"}]

json Search filters in JSON format.

return_type
string
Example: return_type="summary"

Optional return type.

portalId
integer
Example: portalId=3

Optional portal ID for context.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "title": "AWS Certified Solutions Architect",
    • "issued_at": "2023-08-01",
    • "valid_till": "2026-08-01",
    • "issuer": "Amazon",
    • "status": "active"
    }
]

Deletes a certificate issued to a user.

Request Body schema: application/json
required
id
required
integer

ID of the user certificate.

Responses

Request samples

Content type
application/json
{
  • "id": 1
}

Response samples

Content type
application/json
{
  • "message": "Certificate Deleted Successfully"
}

Update Certificate Issue and Expiry Dates

This API request is used to update the issue date and expiry date of a user's certificate.

Request Body schema: application/json
required
rowId
required
integer

ID of the user certificate row.

newIssueDate
required
string

New issue date of the certificate in Y-m-d H:i:s format.

newExpiryDate
required
string

New expiry date of the certificate in Y-m-d H:i:s format.

Responses

Request samples

Content type
application/json
{
  • "rowId": 1,
  • "newIssueDate": "2020-08-15 10:00:00",
  • "newExpiryDate": "2020-08-15 10:00:00"
}

Response samples

Content type
application/json
{
  • "message": "Date Updated Successfully"
}

Retrieves the default address of a user.

path Parameters
id
required
string
Example: 1

ID of the user.

query Parameters
type
string
Example: type=billing_address or shipping_address

optional Type of the address to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "isDefault": false,
  • "fullName": "John Doe",
  • "addressLine1": "Boring Street",
  • "addressLine2": "Awesome Colony",
  • "zipcode": "123456",
  • "city": "Mumbai",
  • "state": "MH",
  • "country": "IN"
}

Retrieves the address of a user by address ID.

path Parameters
id
required
string
Example: 1

ID of the address.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "isDefault": false,
  • "fullName": "John Doe",
  • "addressLine1": "Boring Street",
  • "addressLine2": "Awesome Colony",
  • "zipcode": "123456",
  • "city": "Mumbai",
  • "state": "MH",
  • "country": "IN"
}

Update a user's address.

path Parameters
id
required
string
Example: 1

ID of the address.

Request Body schema: application/json
optional
fullName
required

Full name of the user.

orgName
optional

Organization Name.

orgVatId
optional

Organization VAT ID.

addressLine1
required

Address Line 1.

addressLine2
optional

Address Line 2.

zipcode
required

Zipcode.

city
required

City.

state
optional

State.

country
required

Country.

isDefault
required

Whether the address is default or not.

userId
required

ID of the user.

Responses

Request samples

Content type
application/json
{
  • "fullName": "John Doe",
  • "orgName": "ABC Company",
  • "orgVatId": "1234567890",
  • "addressLine1": "Boring Street",
  • "addressLine2": "Awesome Colony",
  • "zipcode": "123456",
  • "city": "Mumbai",
  • "state": "MH",
  • "country": "IN",
  • "isDefault": "true",
  • "userId": "1"
}

Response samples

Content type
application/json
{
  • "message": "Address updated successfully"
}

Retrieves the detailed report for all courses of a user. Returned data contains information like total number of modules and number of courses in different status(In Progress, Not Started and Completed).

Example - [1,0]. You can use these data for graphs representation as well.

query Parameters
user_id
required
string
Example: user_id=1

ID of the user.

page_size
required
string
Example: page_size=50

The number of the submissions you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"registered_on","direction":"desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"nameOrEmail":"","status":[]}

For searching items based on students name or emaila and status of the course.

portalId
string
Example: portalId={"portalId":1}

For listing courses assigned to a specific portal.

searchPortalIds
string
Example: searchPortalIds={"searchPortalIds":[1,2]}

For listing courses assigned to multiple portals.

Responses

Response samples

Content type
application/json
{
  • "courseName": "course 1",
  • "featuredImage": null,
  • "recordsTotal": 3,
  • "totalNotStarted": 1,
  • "totalInProgress": 1,
  • "totalCompleted": 1,
  • "recordsFiltered": 3,
  • "records": [
    • {
      • "first_name": "Aom",
      • "last_name": "Staff",
      • "email": "[email protected]",
      • "status": "In Progress",
      • "percent_complete": 45,
      • "access_status": "Allowed",
      • "registered_on": "10-Aug-2020",
      • "started_on": "10-Aug-2020",
      • "completed_on": "",
      • "expire_on": "Never",
      • "last_accessed_on": "1 hour ago",
      • "percent_achieved": null,
      • "total_time_spent": "0h 20m",
      • "certifcate_issued": "No"
      },
    • {
      • "first_name": "Client",
      • "last_name": "Admin",
      • "email": "[email protected]",
      • "status": "Not Started",
      • "percent_complete": 0,
      • "access_status": "Allowed",
      • "registered_on": "09-Aug-2020",
      • "started_on": "",
      • "completed_on": "",
      • "expire_on": "12-Aug-2023",
      • "last_accessed_on": "Never",
      • "percent_achieved": null,
      • "total_time_spent": "0h 0m",
      • "certifcate_issued": "Yes"
      },
    • {
      • "first_name": "Demo",
      • "last_name": "Student",
      • "email": "[email protected]",
      • "status": "Completed",
      • "percent_complete": 50,
      • "access_status": "Allowed",
      • "registered_on": "03-Aug-2020",
      • "started_on": "03-Aug-2020",
      • "completed_on": "03-Aug-2020",
      • "expire_on": "Never",
      • "last_accessed_on": "6 days ago",
      • "percent_achieved": 0,
      • "total_time_spent": "0h 0m",
      • "certifcate_issued": "Yes"
      }
    ]
}

Retrieves a paginated report of users with custom user data.

query Parameters
page_size
required
string
Example: page_size=10

Number of the result row you want in each page.

page_number
required
string
Example: page_number=1

Current page number.

registered_between
required
string
Example: registered_between=["2023-01-01", "2023-12-31"]

Date range filter for user registration.

Responses

Retrieve User Subscriptions

Returns all subscriptions of a specified user in a paginated format. Supports filtering and sorting.

query Parameters
user_id
integer
Example: user_id=4

optional ID of the user. Defaults to the authenticated user if not provided.

page_size
required
integer
Example: page_size=10

Number of records per page.

page_number
required
integer
Example: page_number=1

Current page number.

order_by
string
Example: order_by={"colName":"created_at", "direction":"desc"}

optional JSON string to specify the column and direction for ordering.

search_param
string
Example: search_param={"status":"Active"}

optional JSON string containing search parameters.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 5,
  • "recordsFiltered": 5,
  • "records": [
    • {
      • "id": 1,
      • "subscription_name": "Premium Plan",
      • "status": "Active",
      • "start_date": "2023-01-01",
      • "end_date": "2023-12-31"
      }
    ]
}

Get all User Sources

Retrieves all the sources for a portal with pagination mode. You can apply filter using search_param via name or identifier.

query Parameters
portalId
required
string
Example: portalId=1

The id of the portal.

Responses

Response samples

Content type
application/json
{}

Creates a new portal for a given user.

query Parameters
portalId
integer
Example: portalId=5

The portal ID to filter by portal and sub-portals. Use -1 to skip portal filtering.

Request Body schema: application/json
required
userId
required
integer

The ID of the user to create the portal for.

portals
required
Array of strings

The array of portals to create. Each portal should contain "name", "referralCode", "totalSeat", "userType", "portalType", "status", "subscriptionId", "expiryDate", "expiryMessage", and "parentPortalId".

clonePortalAdmins
required
boolean

Whether to clone the portal admins or not.

cloneBrandingNotifications
required
boolean

Whether to clone the branding notifications or not.

Responses

Request samples

Content type
application/json
{
  • "userId": 12,
  • "portals": [
    • {
      • "name": "My New Portal",
      • "referralCode": "REF123",
      • "totalSeat": 50,
      • "userType": "admin",
      • "portalType": "education",
      • "status": "active",
      • "subscriptionId": 101,
      • "expiryDate": "2025-12-31",
      • "expiryMessage": "Subscription ends soon",
      • "parentPortalId": 1
      }
    ],
  • "clonePortalAdmins": true,
  • "cloneBrandingNotifications": false
}

Response samples

Content type
application/json
{
  • "message": "Portals created successfully"
}

Retrieves all learning paths for a given user.

query Parameters
user_id
required
string
Example: user_id=1

User ID to filter learning paths.

portalId
required
string
Example: portalId=-1

Portal ID to filter learning paths. If -1, it will return all learning paths.

viewType
required
string
Example: viewType=self

View type of the user.

page_size
required
string
Example: page_size=10

Number of records to return per page.

page_number
required
string
Example: page_number=1

Page number.

order_by
required
string
Example: order_by={"colName":"started_on","direction":"desc"}

Order by parameters.

search_param
required
string
Example: search_param={"status":["Not Started","In Progress"],"nameOrEmail":"John Doe"}

Search parameters related to learning path.

Responses

Response samples

Content type
application/json
{}

Retrieves learning paths associated with the portal, filtered by the search parameters.

path Parameters
portalId
required
string
Example: 1

Portal ID of the user.

query Parameters
page_size
required
string
Example: page_size=10

The number of results per page.

page_number
required
string
Example: page_number=1

The current page number.

order_by
string
Example: order_by={"colName": "name", "direction": "desc"}

optional The column to sort the results by.

search_param
string
Example: search_param={"name": "Learning Path 1", "status": ["registered", "started"]}

optional The search query parameters.

Responses

Response samples

Content type
application/json
{}

Retrieve Membership Content

Fetches and returns a paginated list of content available to a user through their membership. The content includes courses and modules, which can be filtered and sorted based on the input parameters.

query Parameters
page_size
required
integer
Example: page_size=10

Number of records per page.

page_number
required
integer
Example: page_number=1

Current page number.

order_by
string
Example: order_by={"colName":"created_at", "direction":"desc"}

optional JSON string specifying the column and direction for ordering.

search_param
string
Example: search_param={"type":"video", "nameOrDescription":"Introduction"}

optional JSON string containing search parameters.

portalId
required
integer
Example: portalId=1

ID of the portal for filtering membership content. Use -1 for default behavior.

viewType
required
string
Example: viewType="self"

Specifies the view type. "self" for personal view, others for different portal settings.

Responses

Response samples

Content type
application/json
{
  • "activeMembership": true,
  • "recordsTotal": 100,
  • "recordsFiltered": 10,
  • "records": [
    • {
      • "id": 1,
      • "name": "Course 1",
      • "slug": "course-1",
      • "type": "Course",
      • "description": "Course description",
      • "enrollButton": null,
      • "duration": "2 hours",
      • "user_id": [
        ],
      • "created_at": "2023-01-01"
      }
    ]
}

Custom User Field Type Lookup

Provides a list of available custom user field types. Each type is represented by a database value and a display value.

Responses

Response samples

Content type
application/json
[
  • {
    • "db_value": "text",
    • "display_value": "Text Field"
    },
  • {
    • "db_value": "textarea",
    • "display_value": "Text Area"
    },
  • {
    • "db_value": "date",
    • "display_value": "Date"
    },
  • {
    • "db_value": "radio",
    • "display_value": "Single Select"
    },
  • {
    • "db_value": "checkbox",
    • "display_value": "Multiple Select"
    },
  • {
    • "db_value": "dropdown",
    • "display_value": "Drop Down"
    }
]

Retrieve Custom User Fields that needs to be shown on the Registration page

Retrieves the details of pre saved Custom User Fields.

Responses

Response samples

Content type
application/json
{
  • "fields": [
    • {
      • "id": 1,
      • "type": "text",
      • "label": "How you left",
      • "defaultValue": null,
      • "isRequired": false,
      • "optionLabel": [ ],
      • "isFieldOnRegistrationPage": false,
      • "isFieldOnCertificate": true,
      • "includeInReportExports": [
        ]
      },
    • {
      • "id": 2,
      • "type": "textarea",
      • "label": "What is your home address",
      • "defaultValue": null,
      • "isRequired": true,
      • "optionLabel": [ ],
      • "isFieldOnRegistrationPage": true,
      • "isFieldOnCertificate": false,
      • "includeInReportExports": [ ]
      }
    ]
}

Update custom user fields.

Updates the details of the fields in "Custom User Fields" table. If the field is not present in the table, it will be added. If the field is not present in the request, it will be deleted from the table.

Request Body schema: application/json
required
fields
required
Array of strings

List of fields to be saved.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "message": "Fields updated successfully"
}

Lookup for custom user fields report exports

Retrieves a list of reports that custom user fields can be included in.

Responses

Checks if a custom user field can be deleted.

query Parameters
fieldToDelete
required
string
Example: fieldToDelete={"userMetaKey":"dob","label":"Date Of Birth","type":"date","isRequired":false,"optionsLabel":[]}. example: {"userMetaKey":"custom_field_1","label":"Custom Field 1","type":"text","isRequired":false,"optionsLabel":[]}

Field data in JSON format.

Responses

Response samples

Content type
application/json
{
  • "canDeleteField": true,
  • "message": "This field can not be deleted as some user data is associated with it. Please contact administrator.",
  • "certificateTemplates": [ ]
}

Retrieve the badges and the count of each badge a user has earned

path Parameters
id
required
string
Example: 1

The ID of the user.

Responses

Response samples

Content type
application/json
[
  • {
    • "id": 1,
    • "title": "Gold",
    • "badgeIconUrl": "/images/badges/Badge_1.png",
    • "points": 1,
    • "organizationId": 1,
    • "count": 3
    },
  • {
    • "id": 2,
    • "title": "Silver",
    • "badgeIconUrl": "/images/badges/Badge_2.png",
    • "points": 2,
    • "organizationId": 1,
    • "count": 1
    }
]

Get the leaderboard information for a user

path Parameters
id
required
string
Example: 1

The ID of the user.

Responses

Returns 2FA details for a user.

query Parameters
user_id
integer
Example: user_id=4

optional ID of the user.

Responses

Response samples

Content type
application/json
{
  • "is2FactorAuthActive": true,
  • "qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2UgTWF0aXZpY2FsIEJ1aWx0aW5nIChNaW5pbnNpemUpd2l0aCBHZW5lcmF0b3Igd2l0aCBQb3NpdGljIFRleHQgLSBDb3B5cmlnaHQgTmFtZSBmcm9tIHVuaXF1ZSBpZGVudGl0eQAAABh0RVh0VGh1bWI6OkRTVEVYUWhUQyBjb250ZW50LW1vc3QgdGh1bWIh4NApweCt4M6rAAAAAElFTkSuQmCC",
  • "string_code": "string code"
}

Prepares QR code for Two factor authentication.

Returns QR code, URI code and String code for users to authenticate themselves using their authenticator app.

Request Body schema: application/json
optional
user_id
integer

optional ID of the user.

Responses

Request samples

Content type
application/json
{
  • "user_id": 4
}

Response samples

Content type
application/json
{
  • "as_qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2UgTWF0aXZpY2FsIEJ1aWx0aW5nIChNaW5pbnNpemUpd2l0aCBHZW5lcmF0b3Igd2l0aCBQb3NpdGljIFRleHQgLSBDb3B5cmlnaHQgTmFtZSBmcm9tIHVuaXF1ZSBpZGVudGl0eQAAABh0RVh0VGh1bWI6OkRTVEVYUWhUQyBjb250ZW50LW1vc3QgdGh1bWIh4NApweCt4M6rAAAAAElFTkSuQmCC",
  • "as_uri": "otpauth://totp/AOM?secret=base32secret&issuer=AOM",
  • "as_string": "base32secret"
}

Confirms relation between AOM site and authenticator app for 2fa.

User need to provided secret code from authenticator app. It enables Two factor authentication feature in the system for users.

Request Body schema: application/json
required
user_id
integer

optional ID of the user.

secretCode
required
string

Secret code from users authenticator app.

qrCode
required
string

QR code generated by prepareTwoFactor method.

stringCode
required
string

String code generated by prepareTwoFactor method.

Responses

Request samples

Content type
application/json
{
  • "user_id": 4,
  • "secretCode": "123456",
  • "qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2UgTWF0aXZpY2FsIEJ1aWx0aW5nIChNaW5pbnNpemUpd2l0aCBHZW5lcmF0b3Igd2l0aCBQb3NpdGljIFRleHQgLSBDb3B5cmlnaHQgTmFtZSBmcm9tIHVuaXF1ZSBpZGVudGl0eQAAABh0RVh0VGh1bWI6OkRTVEVYUWhUQyBjb250ZW50LW1vc3QgdGh1bWIh4NApweCt4M6rAAAAAElFTkSuQmCC",
  • "stringCode": "base32secret"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "message": "Two Factor Authentication activated"
}

Disable Two Factor Authentication for a user.

Disables Two factor authentication feature in the system for users.

Request Body schema: application/json
optional
user_id
integer

optional ID of the user.

Responses

Request samples

Content type
application/json
{
  • "user_id": 4
}

Response samples

Content type
application/json
{
  • "message": "2factor authentication disabled successfully",
  • "qrcode": null,
  • "stringcode": null
}

Sends a reminder email to a user about their abandoned cart.

query Parameters
id
required
string
Example: id=1

int The ID of the cart abandonment detail to send the reminder for.

Responses

Response samples

Content type
application/json
{
  • "message": "Email send successfully"
}

Resend New Account Email

Resends a new account email to the user. If the user is not found, it will be ignored.

query Parameters
portalId
required
integer
Example: portalId=1

The Portal ID to which the user belongs.

user_id
integer
Example: user_id=1

string|array required The ID of the user who needs to receive a new account email.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "message": "New Password is created and New Account Email Sent."
}

Loads user consents based on pagination parameters.

query Parameters
page_size
required
integer
Example: page_size=10

The number of records to return per page.

page_number
required
integer
Example: page_number=1

The page number to return.

Responses

Response samples

Content type
application/json
{
  • "userConsents": [
    • {
      • "id": 101,
      • "consentDate": "2025-04-01T14:32:00Z",
      • "consentId": "CONSENT-XYZ123",
      • "country": "US",
      • "ipAddress": "192.168.1.15",
      • "status": "accepted",
      • "userId": 2001,
      • "userName": "johndoe",
      • "createdAt": "2025-04-01T14:32:00Z"
      },
    • {
      • "id": 102,
      • "consentDate": "2025-04-02T09:15:43Z",
      • "consentId": "CONSENT-ABC456",
      • "country": "DE",
      • "ipAddress": "203.0.113.45",
      • "status": "rejected",
      • "userId": 2002,
      • "userName": "janedoe",
      • "createdAt": "2025-04-02T09:15:43Z"
      }
    ],
  • "total": 50,
  • "recordsFiltered": 10
}

Videos

A Video Module is a lesson module used as course content. Helps to perform CRUD operation to and for Video modules.

Video Modules Tabular List

Returns all the video modules in a tabular list format in paginated mode. You can apply filter using search_param via associatedCourse(modules used in course) and moduleName.

query Parameters
page_size
required
string
Example: page_size=50

The number of the items you want for a page.

page_number
required
string
Example: page_number=1

Current page number in pagination.

order_by
string
Example: order_by={"colName":"created_at", "direction": "desc"}

For ordering items based on columns provided in JSON format.

search_param
string
Example: search_param={"associatedCourse":"","moduleName":""}

for searching items based on field names.

Responses

Response samples

Content type
application/json
{
  • "recordsTotal": 1,
  • "recordsFiltered": 1,
  • "records": [
    • {
      • "id": 1,
      • "name": "test",
      • "slug": "test",
      • "type": "video",
      • "icon": "<i class=\"el-icon-document\"></i>",
      • "author": "Aom Staff",
      • "created_at": "Aug 03, 2020 09:56 AM",
      • "course_count": 1
      }
    ]
}

Create Video Module

Creates a new video module with the provided details. (See parameters) Video modules can be used in the course as course content/lesson.

Returns : id of the video module created and success message

Request Body schema: application/json
required
name
required
string

Name of the video module.

content
string

Content for the video modules that students will see.

url
required
string

Url path for the video module.

provider
required
string

Provider of the video. Options: vimeo, in-house, youtube.

coverUrl
string

Cover url path for the video module.

trackCompletion
boolean

Whether the module is tracked for completion in the course player.

estimatedCompletion
string

Estimated time to complete in course player.

estimationCompletedUnit
string

Unit of estimated time to complete in course player.

disableForwardSeek
boolean

If true, students cannot skip forward in the video.

categories
Array of strings

Categories to associate with the module.

subtitleType
string

Type of subtitle in the video. Options: upload, nocaption.

interactions
Array of strings

Interactions to add in the video.

subtitles
Array of strings

Subtitles to add if subtitleType is 'upload'.

Responses

Request samples

Content type
application/json
{
  • "name": "My-video-lesson",
  • "content": "Brief Description",
  • "provider": "vimeo",
  • "trackCompletion": true,
  • "estimatedCompletion": "00:30:00",
  • "estimationCompletedUnit": "minutes",
  • "disableForwardSeek": true,
  • "categories": [
    • 1,
    • 2,
    • 3
    ],
  • "subtitleType": "upload",
  • "interactions": [
    • {
      • "type": "quiz",
      • "time": "00:05:00"
      }
    ],
  • "subtitles": [
    • {
      • "language": "en",
      • "subtitleContent": "Subtitle text"
      }
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "message": "Module saved successfully"
}

Video Module Details

Returns a video module details given its Id. This API is used by the course player to fetch the video module details while playing the course.

path Parameters
id
required
string
Example: 3

The id of the video module.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "test",
  • "slug": "test",
  • "content": "This is a test video module.",
  • "provider": "vimeo",
  • "disableForwardSeek": false,
  • "trackCompletion": false,
  • "estimatedCompletion": null,
  • "estimationCompletedUnit": null,
  • "subtitleType": "",
  • "subtitleFilePath": [
    • {
      • "language": "en",
      • "filePath": "/storage/vtt/en_1.vtt"
      }
    ],
  • "categories": [
    • 1,
    • 2
    ],
  • "courses": [
    • {
      • "course_id": 1,
      • "course_name": "My Course"
      }
    ],
  • "subtitleDetails": [
    • {
      • "subtitleContent": "This is a test subtitle.",
      • "language": "en"
      }
    ]
}

Update the specified video module in storage.

path Parameters
id
required
string
Example: 3

The id of the video module.

Responses

Response samples

Content type
application/json
{
  • "message": "Module updated successfully"
}

Video Module Details

Returns a video module details given its Id. This API is used by the course player to fetch the video module details while playing the course.

path Parameters
registrationId
required
string
Example: 1

The id of the registration.

moduleId
required
string
Example: 3

The id of the video module.

portalId
required
string
Example: 1

The id of the portal.

Responses

Response samples

Content type
application/json
{
  • "name": "test",
  • "slug": "test",
  • "content": "This is a test video module.",
  • "courseName": "My Course",
  • "courseSlug": "my-course",
  • "min_time_spent": 5,
  • "otherModules": [
    • {
      • "module_id": 1,
      • "module_name": "Module 1",
      • "module_slug": "module-1",
      • "display_order": 1
      },
    • {
      • "module_id": 2,
      • "module_name": "Module 2",
      • "module_slug": "module-2",
      • "display_order": 2
      }
    ],
  • "subtitleType": "",
  • "subtitleFilePath": [
    • {
      • "language": "en",
      • "filePath": "/storage/vtt/en_1.vtt"
      }
    ],
  • "launchCheck": {
    • "canbeLaunched": true,
    • "errDesc": ""
    },
  • "prevSlug": "module-1",
  • "nextSlug": "module-2",
  • "provider": "vimeo",
  • "disableForwardSeek": false,
  • "trackCompletion": false,
  • "interactions": [ ],
  • "courseStatus": "In Progress",
  • "status": "In Progress",
  • "statusRowId": 1,
  • "timeSpent": 0,
  • "lastWatchedTime": 0,
  • "isReady": true,
  • "course_newly_completed": false
}

Mark Complete Video Module

Updates the status of the video module to completed. Changes the completion percentage to 100% and marks completed the video module.

query Parameters
statusRowId
required
string
Example: statusRowId=4

ID of the ModuleStatus Row belongs to current video module.

videoDuration
required
string
Example: videoDuration=90

The duration of the video in seconds.

portalId
integer
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
{
  • "status": true,
  • "message": "Module completed successfully",
  • "course_newly_completed": false
}

Retrieve Detailed Video Module Info for Membership content

This function retrieves details of a video module, including its name, slug, content, provider, cover URL, and URL. It checks if the video is ready to be viewed, updates the time spent and last watched time, and indicates whether the video is part of membership content. If the video is not ready, an error message is included in the response.

query Parameters
moduleId
required
string
Example: moduleId=9

ID of the video module.

Responses

Response samples

Content type
application/json
{
  • "name": "Module Name",
  • "slug": "module-slug",
  • "content": "Content of the module",
  • "provider": "in-house",
  • "disableForwardSeek": false,
  • "trackCompletion": true,
  • "timeSpent": 120,
  • "lastWatchedTime": 30,
  • "isPartOfMembershipContent": true,
  • "isReady": true
}

Webinar Management API

This controller handles all API interactions related to webinar management within the platform. It provides endpoints for creating, updating, deleting, and retrieving webinar details, as well as managing attendee registrations, webinar sessions, and related content.

Endpoints in this controller are focused on managing the lifecycle of webinars, from setup to attendee interactions and webinar reporting.

Delete a webinar module

Deletes a webinar module and it's associated schedules.

query Parameters
webinarId
required
string
Example: webinarId=1

ID of the webinar module.

Responses

Response samples

Content type
application/json
{ }

Create a new webinar module with recurrence.

Request Body schema: application/json
required
attendanceThreshold
required
integer

The attendance threshold for the webinar. Must be between 0 and 100.

startDate
required
string

The start date of the webinar in the format 'Y-m-d'.

startTime
required
string

The start time of the webinar in the format 'H:i:s'.

endTime
required
string

The end time of the webinar in the format 'H:i:s'.

location
required
integer

The location id of the webinar.

instructor
required
integer

The instructor id of the webinar.

serviceProvider
required
string

The service provider for the webinar.

enableCloudRecording
required
boolean

Whether to enable cloud recording for the webinar.

allowDownload
required
boolean

Whether to allow download of the webinar.

meetingUrl
required
string

The meeting url for the webinar.

enableAutoAttendance
required
boolean

Whether to enable auto attendance for the webinar.

enableRecurrence
required
boolean

Whether to enable recurrence for the webinar.

frequency
required
string

The frequency of the recurrence.

interval
required
integer

The interval of the recurrence.

end
required
string

The end date of the recurrence in the format 'Y-m-d'.

webinarDays
required
integer

The number of days for the recurrence.

Responses

Request samples

Content type
application/json
{
  • "attendanceThreshold": 17,
  • "startDate": "rerum",
  • "startTime": "veniam",
  • "endTime": "numquam",
  • "location": 18,
  • "instructor": 12,
  • "serviceProvider": "quibusdam",
  • "enableCloudRecording": false,
  • "allowDownload": false,
  • "enableAutoAttendance": false,
  • "enableRecurrence": false,
  • "frequency": "error",
  • "interval": 6,
  • "end": "tenetur",
  • "webinarDays": 13
}

Response samples

Content type
application/json
{
  • "recurrenceWebinar": [
    • {
      • "startDate": "2020-01-01",
      • "endDate": "2020-01-01",
      • "startTime": "10:00:00",
      • "endTime": "11:00:00",
      • "location": 1,
      • "instructor": 1,
      • "showEdit": false,
      • "serviceProvider": "zoom",
      • "enableCloudRecording": true,
      • "allowDownload": true,
      • "enableAutoAttendance": true,
      • "attendanceThreshold": 80
      }
    ],
  • "message": "Webinar created successfully",
  • "status": "success"
}

Validate the webinar request.

Request Body schema: application/json
required
attendanceThreshold
required
integer

The attendance threshold for the webinar. Must be between 0 and 100.

startDate
required
string

The start date of the webinar in the format 'Y-m-d'.

startTime
required
string

The start time of the webinar in the format 'H:i:s'.

endTime
required
string

The end time of the webinar in the format 'H:i:s'.

Responses

Request samples

Content type
application/json
{
  • "attendanceThreshold": 8,
  • "startDate": "architecto",
  • "startTime": "sequi",
  • "endTime": "eveniet"
}

Response samples

Content type
application/json
{
  • "message": "Webinar updated successfully",
  • "status": "success"
}

Update a webinar for the given course

Request Body schema: application/json
required
course_id
required
integer

The ID of the course

id
required
integer

The ID of the webinar

webinarList
required
Array of strings

The webinar list

Responses

Request samples

Content type
application/json
{
  • "course_id": 4,
  • "id": 20,
  • "webinarList": [
    • "similique"
    ]
}

Response samples

Content type
application/json
{
  • "message": "Webinar updated successfully",
  • "status": "success"
}

Create a new webinar in the database.

Request Body schema: application/json
required
course_id
required
integer

The id of the course for which the webinar is being created.

webinarList
required
Array of strings

The array of webinars to be created, each containing the following:

Responses

Request samples

Content type
application/json
{
  • "course_id": 14,
  • "webinarList": [
    • "error"
    ]
}

Response samples

Content type
application/json
{
  • "message": "Webinar created successfully",
  • "status": "success"
}

Export attendance report for a given webinar

Request Body schema: application/json
required
webinarId
required
integer

The ID of the webinar

pageSize
required
integer

The page size of the report

pageNumber
required
integer

The page number of the report

portalId
required
integer

The ID of the portal

Responses

Request samples

Content type
application/json
{
  • "webinarId": 7,
  • "pageSize": 12,
  • "pageNumber": 16,
  • "portalId": 14
}

Response samples

Content type
application/json
{
  • "courseName": "Course Name",
  • "startDate": "2020-12-01 10:00:00",
  • "endDate": "2020-12-01 11:00:00",
  • "recordsTotal": 100,
  • "totalAttended": 50,
  • "totalNoShow": 20,
  • "totalCancelled": 10,
  • "totalPartiallyAttended": 20,
  • "records": [
    • {
      • "firstName": "John",
      • "lastName": "Doe",
      • "email": "[email protected]",
      • "status": "Attended",
      • "attendanceRecordingType": "Manual",
      • "notes": "Test notes",
      • "recordedAt": "2020-12-01 10:00:00"
      }
    ]
}

Webinars

A Webinar Module is used as course content. Helps to perform CRUD operation to and for Webinar modules.

Handle Zoom Webhook

Receives Zoom webhook events. When a meeting.ended event is received, it processes webinar attendance.

Request Body schema: application/json
required
event
required
string

The Zoom event type.

required
object

The payload object from Zoom.

Responses

Request samples

Content type
application/json
{
  • "event": "meeting.ended",
  • "payload": [ ]
}

Response samples

Content type
application/json
{
  • "message": "Event received"
}

Get Launch Details

Retrieves the launch details for the webinar modules. Returned data includes webinar provider name(like vimeo, zoom, big blue button, etc), whether webinar is created successfully or not, etc This information helps while launching the webinar for learners.

query Parameters
moduleId
required
string
Example: moduleId=12

ID of the webinar module.

portalId
integer
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
{}

Mark Complete Webinar Module

Updates the status of the webinar module to completed. Changes the completion percentage to 100% and marks completed the webinar module.

query Parameters
statusRowId
required
string
Example: statusRowId=4

ID of the ModuleStatus Row belongs to current webinar module.

portalId
integer
Example: portalId=5

The portal ID to filter users by portal and sub-portals. Use -1 to skip portal filtering.

Responses

Response samples

Content type
application/json
{
  • "message": "Module completed successfully",
  • "course_newly_completed": false
}