openapi: 3.0.0
info:
title: Tovuti REST API
version: 1.51.1
termsOfService: https://www.tovutilms.com/terms
contact:
name: Tovuti Support Page
url: http://www.tovutilms.com/help
email: support@tovutiteam.com
license:
name: Tovuti LMS End User License
url: https://www.tovutilms.com/end-user-license
servers:
- url: https://api.tovuti.io/api/v1
security:
- sanctumToken:
- "tovuti:all"
tags:
- name: Assignments
- name: Audit
- name: Awards
- name: Checklists
- name: Community Groups
- name: Courses
- name: Course Categories
- name: Course Progress
- name: Custom Fields
- name: Events
- name: Learning Paths
- name: Learning Path Categories
- name: Learning Path Subcategories
- name: Lessons
- name: Media Categories
- name: Media Items
- name: Meetings
- name: Objects
- name: Object Types
- name: Profile Fields
- name: Quizzes
- name: Subscriptions
- name: Surveys
- name: Teams
- name: Transactions
- name: Users
- name: User Groups
paths:
/audit/admin:
get:
tags:
- Audit
summary: Read Admin Audit Log
parameters:
- in: query
schema:
type: integer
name: cursor
description: Retrieve all log entries after this ID
- in: query
schema:
type: string
format: date
description: Limit results to log entries before this date
example: 2023-01-12
name: before
- in: query
schema:
type: string
format: date
description: Limit results to log entries after this date
example: 2023-01-12
name: after
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Audit"
/audit/auth:
get:
tags:
- Audit
summary: Read User Authentication log
parameters:
- in: query
schema:
type: integer
name: cursor
description: Retrieve all log entries after this ID
- in: query
schema:
type: string
format: date
description: Limit results to log entries before this date
example: 2023-01-12
name: before
- in: query
schema:
type: string
format: date
description: Limit results to log entries after this date
example: 2023-01-12
name: after
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/AuthAudit"
/assignment:
post:
tags:
- Assignments
summary: Create Assignment
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Assignment"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Assignment"
/assignment/{id}/:
get:
tags:
- Assignments
summary: Read Assignment
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Assignment"
patch:
tags:
- Assignments
summary: Update Assignment
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Assignment"
responses:
"200":
description: Successful Response.
content:
application/json: {}
delete:
tags:
- Assignments
summary: Delete Assignment
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/assignments:
get:
tags:
- Assignments
summary: Read Assignments
parameters:
- in: query
schema:
type: string
example: 1,2,3
name: assignmentIds
description: Comma separated list of assignment ids.
- in: query
name: startBefore
schema:
type: string
format: date
- in: query
name: startAfter
schema:
type: string
format: date
- in: query
name: endBefore
schema:
type: string
format: date
- in: query
name: endAfter
schema:
type: string
format: date
- in: query
name: dueBefore
schema:
type: string
format: date
- in: query
name: dueAfter
schema:
type: string
format: date
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/userIdsParam"
- in: query
$ref: "#/components/parameters/groupIdsParam"
- in: query
$ref: "#/components/parameters/teamIdsParam"
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Assignment"
/award:
post:
tags:
- Awards
summary: Create Award
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Award"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/award/{id}/:
get:
tags:
- Awards
summary: Read Award
parameters:
- in: path
name: id
required: true
schema:
type: integer
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Award"
patch:
tags:
- Awards
summary: Update Award
parameters:
- in: path
name: id
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Award"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Award"
delete:
tags:
- Awards
summary: Delete Award
parameters:
- in: path
name: id
required: true
schema:
type: integer
responses:
"200":
description: Successful Response.
content:
application/json: {}
/award/{id}/deleteEarned:
delete:
tags:
- Awards
summary: Delete Earned Awards
parameters:
- in: path
name: id
required: true
schema:
type: integer
responses:
"200":
description: Successful Response.
content:
application/json: {}
/awards:
get:
tags:
- Awards
summary: Read Awards
parameters:
- in: query
name: awardIds
schema:
type: string
- in: query
name: title
schema:
type: string
- in: query
name: type
schema:
type: string
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Award"
/awards/sync:
patch:
tags:
- Awards
summary: Sync Awards
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AwardSyncRequest"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/AwardSyncRequest"
/checklist:
post:
tags:
- Checklists
summary: Create Checklist
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Checklist"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Checklist"
/checklist/{id}:
get:
tags:
- Checklists
summary: Read Checklist
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Checklist"
patch:
tags:
- Checklists
summary: Update Checklist
description:
'Checklist items can be updated by passing the id of the checklist item in the patch, for example: { "id": "1689003604CWilGr", "title": "Updated Title" }.
If a checklist item needs to be deleted, include the delete flag and set it to true, for example: { "id": "1689003604CWilGr", "delete": true }.'
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Checklist"
responses:
"200":
description: Successful Response.
content:
application/json: {}
delete:
tags:
- Checklists
summary: Delete Checklist
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/checklists:
get:
tags:
- Checklists
summary: Read Checklists
parameters:
- in: query
schema:
type: string
description: Comma separated list of quiz ids.
example: 1,2,3
name: checklistIds
- in: query
schema:
type: string
example: ChecklistTitle
name: title
- in: query
name: dueBefore
schema:
type: string
format: date
- in: query
name: dueAfter
schema:
type: string
format: date
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Checklist"
/communityGroup:
post:
tags:
- Community Groups
summary: Create Community Group
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CommunityGroup"
responses:
"201":
description: Successful Response.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/CommunityGroup"
/communityGroup/{id}/:
get:
tags:
- Community Groups
summary: Read Community Group
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/CommunityGroup"
patch:
tags:
- Community Groups
summary: Update Community Group
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CommunityGroup"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/CommunityGroup"
delete:
tags:
- Community Groups
summary: Delete Community Group
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/communityGroups:
get:
tags:
- Community Groups
summary: Read Community Groups
parameters:
- name: id
in: query
schema:
type: integer
- name: name
in: query
schema:
type: string
- name: group_id
in: query
schema:
type: integer
description: A User group ID
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- name: published
in: query
schema:
type: boolean
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/CommunityGroup"
/course:
post:
tags:
- Courses
summary: Create Course
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Course"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/course/{id}/:
get:
tags:
- Courses
summary: Read Course
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/Course"
- type: object
properties:
locked:
type: integer
description: 0 - Course is Unlocked, 1 - Course is Locked
patch:
tags:
- Courses
summary: Update Course
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Course"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Course"
delete:
tags:
- Courses
summary: Delete Course
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/courses:
get:
tags:
- Courses
summary: Read Courses
parameters:
- name: courseIds
in: query
schema:
type: string
- name: title
in: query
schema:
type: string
- name: courses_sub_categories_ids
in: query
schema:
type: string
description: List of sub categories to search for.
example: "1,2,104"
- name: finalCourseSurveyId
in: query
schema:
type: integer
description: Id of the final course survey for this course.
- name: published
in: query
schema:
type: boolean
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- in: query
name: modifiedBefore
schema:
type: string
format: date
- in: query
name: modifiedAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
- name: modifyDate
in: query
description: Options include lt, gt, le, and ge for <, >, <=, and >=. Leave blank for =.
schema:
type: string
example: lt2022-16-15
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Course"
/courseCategory:
post:
tags:
- Course Categories
summary: Create Course Category
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CourseCategory"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/courseCategory/{id}/:
get:
tags:
- Course Categories
summary: Read Course Categories
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/CourseCategory"
patch:
tags:
- Course Categories
summary: Edit Course Category
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CourseCategory"
responses:
"200":
description: Successful Response.
content:
application/json: {}
delete:
tags:
- Course Categories
summary: Delete Course Category
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/courseCategories:
get:
tags:
- Course Categories
summary: Read Course Categories
parameters:
- name: courseCategoryIds
in: query
schema:
type: string
example: 1,2,3
- name: title
in: query
schema:
type: string
example: Course Title
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/CourseCategory"
/courseProgress:
post:
tags:
- Course Progress
summary: Create Course Progress
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CourseProgress"
responses:
"200":
description: Successfully created user course progress.
content:
application/json: {}
/courseProgress/{id}/:
get:
tags:
- Course Progress
summary: Read Course Progress
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Course progress record.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/CourseProgress"
patch:
tags:
- Course Progress
summary: Update Course Progress
parameters:
- in: path
name: id
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CourseProgress"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/CourseProgress"
delete:
tags:
- Course Progress
summary: Delete Course Progress
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successfully deleted user course progress.
content:
application/json: {}
/courseProgresses:
get:
tags:
- Course Progress
summary: Read Course Progresses
description: All parameters can be used in either the query or the request body.
parameters:
- in: query
name: user_id
schema:
type: integer
description: Search by user id.
- in: query
name: course_id
schema:
type: integer
description: Search by course id.
- in: query
name: lesson_id
schema:
type: integer
- in: query
name: startBefore
schema:
type: string
- in: query
name: startAfter
schema:
type: string
- in: query
name: lastActivityBefore
schema:
type: string
- in: query
name: lastActivityAfter
schema:
type: string
- in: query
name: completedBefore
schema:
type: string
- in: query
name: completedAfter
schema:
type: string
description: Search by lesson id.
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/CourseProgress"
/customField/{id}/:
get:
tags:
- Custom Fields
summary: Read Custom Field
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/CustomField"
/customFields:
get:
tags:
- Custom Fields
summary: Read Custom Fields
parameters:
- in: query
name: customFieldIds
schema:
type: string
- in: query
name: name
schema:
type: string
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: '#/components/schemas/User'
/event:
post:
tags:
- Events
summary: Create Event
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Event"
multipart/form-data:
schema:
$ref: "#/components/schemas/EventWithImage"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/event/{id}/:
get:
tags:
- Events
summary: Read Event
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Event"
post:
tags:
- Events
summary: Update Event.
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
multipart/form-data:
schema:
$ref: "#/components/schemas/EventWithImage"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Event"
patch:
tags:
- Events
summary: Update Event.
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Event"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/CourseProgress"
/event/{id}/register/:
post:
tags:
- Events
summary: Register for Event
description:
Only free events, with registration type = 0 or registration_type = 1 can be registered for at this time.
Users are registered as individuals. Users must already exist in the system in order to be registered for an event.
parameters:
- in: path
name: id
schema:
type: string
required: true
- in: query
name: userIds
required: true
schema:
type: array
items:
type: integer
example: [1620265, 1620266, 1620265]
responses:
"200":
description: Successful Response.
content:
application/json: {}
/event/{id}/checkin/:
post:
tags:
- Events
summary: Check Users into Event
parameters:
- in: path
name: id
schema:
type: string
required: true
- in: query
name: userIds
required: true
schema:
type: array
items:
type: integer
example: [1620265, 1620266, 1620265]
- in: query
name: cancel
schema:
type: boolean
description: if set to true, checked_in will be set to 0.
responses:
"200":
description: Successful Response.
content:
application/json: {}
/events:
get:
tags:
- Events
summary: Read - Events
parameters:
- in: query
name: eventIds
schema:
type: string
- in: query
name: title
schema:
type: string
- in: query
name: languages
schema:
type: string
description: Comma-separated list of languages. Event languages default to '*' which is all languages.
- in: query
name: startBefore
schema:
type: string
format: date
- in: query
name: startAfter
schema:
type: string
format: date
- in: query
name: endBefore
schema:
type: string
format: date
- in: query
name: endAfter
schema:
type: string
format: date
- in: query
name: registrationStartDateBefore
schema:
type: string
format: date
- in: query
name: registrationStartDateAfter
schema:
type: string
format: date
- in: query
name: cutoffDateBefore
schema:
type: string
format: date
- in: query
name: cutoffDateAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Event"
/locations:
get:
tags:
- Events
summary: Read - Locations
parameters:
- in: query
name: eventIds
schema:
type: string
- in: query
name: locationIds
schema:
type: string
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Location"
/learningPath:
post:
tags:
- Learning Paths
summary: Create a Learning Path
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPath"
multipart/form-data:
schema:
$ref: "#/components/schemas/LearningPathWithImage"
responses:
"201":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPath"
/learningPath/{id}:
get:
tags:
- Learning Paths
summary: Read Learning Path
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPath"
patch:
tags:
- Learning Paths
summary: Update Learning Path
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPath"
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPath"
post:
tags:
- Learning Paths
summary: Update Learning Path
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
multipart/form-data:
schema:
$ref: "#/components/schemas/LearningPathWithImage"
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPath"
delete:
tags:
- Learning Paths
summary: Delete Learning Path
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/learningPaths:
get:
tags:
- Learning Paths
summary: Read Learning Paths
parameters:
- name: title
in: query
schema:
type: string
example: All About Tovuti
description: ""
- name: id
in: query
schema:
type: integer
example: 1
- name: user
in: query
schema:
type: integer
example: 1
description: Show learning paths that include the given user id in the view permission
- name: usergroup
in: query
schema:
type: integer
example: 1
description: Show learning paths that include the given user group id in the view permission
- name: accesslevel
in: query
schema:
type: integer
example: 1
description: Show learning paths that include the given access level id in the view permission
- name: courses
in: query
schema:
type: string
example: 1,3
description: "Comma separated list of course IDs"
- name: tags
in: query
schema:
type: string
example: 1,3
description: "Comma separated list of Tag IDs"
- name: subcategories
in: query
schema:
type: string
example: 1,3
description: "Comma separated list of subcategory IDs"
- in: query
schema:
type: string
format: date
description: Limit results to those created before this date
example: 2023-01-12
name: createdBefore
- in: query
schema:
type: string
format: date
description: Limit results to those created after this date
example: 2023-01-12
name: createdAfter
- in: query
schema:
type: string
format: date
description: Limit results to those created modified this date
example: 2023-01-12
name: modifiedBefore
- in: query
schema:
type: string
format: date
description: Limit results to those created modified this date
example: 2023-01-12
name: modifiedAfter
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/LearningPath"
/learningPaths/tags:
get:
tags:
- Learning Paths
summary: Read Learning Path Tags
parameters:
- name: title
in: query
schema:
type: string
example: A title
description: ""
- name: id
in: query
schema:
type: integer
example: 1
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Tag"
/learningPathCategory:
post:
tags:
- Learning Path Categories
summary: Create a Learning Path Category
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathCategory"
responses:
"201":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathCategory"
/learningPathCategory/{id}:
get:
tags:
- Learning Path Categories
summary: Read Learning Path Category
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathCategory"
patch:
tags:
- Learning Path Categories
summary: Update Learning Path Category
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathCategory"
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathCategory"
delete:
tags:
- Learning Path Categories
summary: Delete Learning Path Category
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/learningPathCategories:
get:
tags:
- Learning Path Categories
summary: Read Learning Path Categories
parameters:
- name: title
in: query
schema:
type: string
example: All About Tovuti
description: ""
- name: id
in: query
schema:
type: integer
example: 1
- name: subcategories
in: query
schema:
type: string
example: 1,3
description: "Comma separated list of subcategory IDs"
- in: query
schema:
type: string
format: date
description: Limit results to those created before this date
example: 2023-01-12
name: createdBefore
- in: query
schema:
type: string
format: date
description: Limit results to those created after this date
example: 2023-01-12
name: createdAfter
- in: query
schema:
type: string
format: date
description: Limit results to those modified before this date
example: 2023-01-12
name: modifiedBefore
- in: query
schema:
type: string
format: date
description: Limit results to those modified after this date
example: 2023-01-12
name: modifiedAfter
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/LearningPathCategory"
/learningPathSubcategory:
post:
tags:
- Learning Path Subcategories
summary: Create a Learning Path Subcategory
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathSubcategory"
multipart/form-data:
schema:
$ref: "#/components/schemas/LearningPathSubcategoryWithImage"
responses:
"201":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathSubcategory"
/learningPathSubcategory/{id}:
get:
tags:
- Learning Path Subcategories
summary: Read Learning Path Subcategory
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathSubcategory"
patch:
tags:
- Learning Path Subcategories
summary: Update Learning Path Subcategory
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathSubcategory"
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathSubcategory"
post:
tags:
- Learning Path Subcategories
summary: Update Learning Path Subcategory
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
multipart/form-data:
schema:
$ref: "#/components/schemas/LearningPathSubcategoryWithImage"
responses:
"200":
description: Successful Response
content:
application/json:
schema:
$ref: "#/components/schemas/LearningPathSubcategory"
delete:
tags:
- Learning Path Subcategories
summary: Delete Learning Path Subcategory
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/learningPathSubcategories:
get:
tags:
- Learning Path Subcategories
summary: Read Learning Path Subcategories
parameters:
- name: title
in: query
schema:
type: string
example: All About Tovuti
description: ""
- name: id
in: query
schema:
type: integer
example: 1
- name: categories
in: query
schema:
type: string
example: 1,3
description: "Comma separated list of category IDs"
- name: learning_paths
in: query
schema:
type: string
example: 1,3
description: "Comma separated list of learning path IDs"
- in: query
schema:
type: string
format: date
description: Limit results to those created before this date
example: 2023-01-12
name: createdBefore
- in: query
schema:
type: string
format: date
description: Limit results to those created after this date
example: 2023-01-12
name: createdAfter
- in: query
schema:
type: string
format: date
description: Limit results to those created modified this date
example: 2023-01-12
name: modifiedBefore
- in: query
schema:
type: string
format: date
description: Limit results to those created modified this date
example: 2023-01-12
name: modifiedAfter
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/LearningPathSubcategory"
/lesson:
post:
tags:
- Lessons
summary: Create Lesson
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LessonInsert"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/lesson/{id}/:
get:
tags:
- Lessons
summary: Read Lesson
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Lesson"
patch:
tags:
- Lessons
summary: Update Lesson
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LessonInsert"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Lesson"
delete:
tags:
- Lessons
summary: Delete Lesson
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/lessons:
get:
tags:
- Lessons
summary: Read Lessons
parameters:
- name: courseTitle
in: query
schema:
type: string
example: All About Tovuti
description: ""
- in: query
$ref: "#/components/parameters/courseIdsParam"
- name: language
in: query
schema:
type: string
example: en-GB
description: ""
- name: lessonIds
in: query
schema:
type: string
example: 1,3
description: ""
- name: lessonTitle
in: query
schema:
type: string
example: About Tovuti
description: ""
- name: published
in: query
schema:
type: string
example: 0|1
description: ""
- name: modifyDate
in: query
description: Options include lt, gt, le, and ge for <, >, <=, and >=. Leave blank for =.
schema:
type: string
example: lt2022-16-15
- name: teacherName
in: query
schema:
type: string
example: Salomon Arthur
description: ""
- name: isFinalCourseSurvey
in: query
schema:
type: boolean
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- in: query
name: modifiedBefore
schema:
type: string
format: date
- in: query
name: modifiedAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Lesson"
/mediaCategory:
post:
tags:
- Media Categories
summary: Create Media Category
requestBody:
content:
multipart/form-data:
schema:
$ref: "#/components/schemas/MediaCategory"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/mediaCategory/{id}/:
get:
tags:
- Media Categories
summary: Read Media Category
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/MediaCategory"
patch:
tags:
- Media Categories
summary: Update Media Category
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/MediaCategory"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/MediaCategory"
delete:
tags:
- Media Categories
summary: Delete Media Category
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/mediaCategories:
get:
tags:
- Media Categories
summary: Read Media Categories
parameters:
- name: title
in: query
schema:
type: string
example: category name
description: ""
- name: mediaCategoryIds
in: query
schema:
type: string
example: 1,3
description: ""
- name: published
in: query
schema:
type: string
example: 0|1
description: ""
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/MediaCategory"
/mediaItem:
post:
tags:
- Media Items
summary: Create Media Item
requestBody:
content:
multipart/form-data:
schema:
$ref: "#/components/schemas/MediaItem"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/mediaItem/{id}/:
post:
tags:
- Media Items
summary: Update Media Item With File Upload
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
multipart/form-data:
schema:
$ref: "#/components/schemas/MediaItem"
responses:
"200":
description: Successful Response.
content:
application/json: {}
get:
tags:
- Media Items
summary: Read Media Item
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/MediaItem"
patch:
tags:
- Media Items
summary: Update Media Item Without File Upload
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/MediaItemNoData"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/MediaItem"
delete:
tags:
- Media Items
summary: Delete Media Item
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/mediaItems:
get:
tags:
- Media Items
summary: Read Media Items
parameters:
- name: title
in: query
schema:
type: string
example: my video
description: ""
- name: mediaItemIds
in: query
schema:
type: string
example: 1,3
description: ""
- name: published
in: query
schema:
type: string
example: 0|1
description: ""
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/MediaItem"
/meeting:
post:
tags:
- Meetings
summary: Create Meeting
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Meeting"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Meeting"
/meeting/{id}/:
get:
tags:
- Meetings
summary: Update Meeting
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Meeting"
patch:
tags:
- Meetings
summary: Update Meeting
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Meeting"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Meeting"
delete:
tags:
- Meetings
summary: Delete Meeting
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/meetings:
get:
tags:
- Meetings
summary: Read Meetings
parameters:
- in: query
name: meetingIds
schema:
type: string
- in: query
name: meetingName
schema:
type: string
- in: query
name: meetingType
schema:
type: string
example: tovuti|zoom|webex|gotomeeting|google|joinme|other
- in: query
schema:
type: string
name: dateBefore
- in: query
schema:
type: string
name: dateAfter
- in: query
schema:
type: string
name: createdBefore
- in: query
schema:
type: string
name: createdAfter
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Meeting"
/object:
post:
tags:
- Objects
summary: Create Object
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Object"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/object/{id}/:
get:
tags:
- Objects
summary: Read Object
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Object"
patch:
tags:
- Objects
summary: Update Object
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Object"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Object"
delete:
tags:
- Objects
summary: Delete Object
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/objects:
get:
tags:
- Objects
summary: Read Objects
parameters:
- name: title
in: query
schema:
type: string
example: MyOrganization
description: ""
- in: query
$ref: "#/components/parameters/customFieldsParam"
- in: query
name: objectIds
schema:
type: string
example: 1,2,3
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Object"
/objectType:
post:
tags:
- Object Types
summary: Create Object Type
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ObjectType"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/objectType/{id}/:
get:
tags:
- Object Types
summary: Read Object Type
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/ObjectType"
patch:
tags:
- Object Types
summary: Update Object Type
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ObjectType"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/ObjectType"
delete:
tags:
- Object Types
summary: Delete Object Type
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/objectTypes:
get:
tags:
- Object Types
summary: Read Object Types
parameters:
- name: title
in: query
schema:
type: string
example: MyOrganization
description: ""
- in: query
name: objectTypeIds
schema:
type: string
example: 3,4,5
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/ObjectType"
/profileField:
post:
tags:
- Profile Fields
summary: Create Custom Profile Field
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileField"
responses:
"201":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileField"
/profileField/{id}/:
get:
tags:
- Profile Fields
summary: Read Custom Profile Field
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileField"
patch:
tags:
- Profile Fields
summary: Update Custom Profile Field
parameters:
- in: path
name: id
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileField"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileField"
delete:
tags:
- Profile Fields
summary: Delete Custom Profile Field
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/profileFields:
get:
tags:
- Profile Fields
summary: Read Custom Profile Fields
parameters:
- in: query
name: profileFieldIds
schema:
type: string
description: A comma separated list of profile field ids
example: 10,80,219
- in: query
name: name
schema:
type: string
- in: query
name: type
schema:
type: string
enum: [text, textarea, select, list, radio, checkbox, country, gender, email, time, date, url, birthdate]
example: '[text, textarea, select, list, radio, checkbox, country, gender, email, time, date, url, birthdate]'
- in: query
name: visibility
schema:
type: string
example: '[personal, all, admin]'
enum: [personal, all, admin]
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileField'
/profileFields/group:
post:
tags:
- Profile Fields
summary: Create Custom Profile Field Group
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileFieldGroup"
responses:
"201":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileFieldGroup"
/profileFields/group/{id}/:
get:
tags:
- Profile Fields
summary: Read Custom Profile Field Group
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileFieldGroup"
patch:
tags:
- Profile Fields
summary: Update Custom Profile Field Group
parameters:
- in: path
name: id
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileFieldGroup"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/ProfileFieldGroup"
delete:
tags:
- Profile Fields
summary: Delete Custom Profile Field Group
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/profileFields/groups:
get:
tags:
- Profile Fields
summary: Read Custom Profile Field Groups
parameters:
- in: query
name: name
schema:
type: string
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileFieldGroup'
/profileFields/userGroupMapping:
post:
tags:
- Profile Fields
summary: Create Custom Profile Field Mapping
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroupMapping"
responses:
"201":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroupMappingResponse"
/profileFields/userGroupMapping/{id}/:
get:
tags:
- Profile Fields
summary: Read Custom Profile Field Mapping
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroupMappingResponse"
patch:
tags:
- Profile Fields
summary: Update Custom Profile Field Mapping
parameters:
- in: path
name: id
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroupMapping"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroupMappingResponse"
delete:
tags:
- Profile Fields
summary: Delete Custom Profile Field Mapping
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/profileFields/userGroupMappings:
get:
tags:
- Profile Fields
summary: Read Custom Profile Field Mappings
parameters:
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: '#/components/schemas/UserGroupMappingResponse'
/quiz:
post:
tags:
- Quizzes
summary: Create Quiz
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Quiz"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/quiz/{id}/:
get:
tags:
- Quizzes
summary: Read Quiz
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Quiz"
patch:
tags:
- Quizzes
summary: Update Quiz
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Quiz"
responses:
"200":
description: Successful Response.
content:
application/json: {}
delete:
tags:
- Quizzes
summary: Delete Quiz
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/quizzes:
get:
tags:
- Quizzes
summary: Read Quizzes
parameters:
- in: query
schema:
type: string
description: Comma separated list of quiz ids.
example: 1,2,3
name: quizIds
- in: query
schema:
type: string
description: Comma separated list of course ids.
example: 1,2,3
name: courseIds
- in: query
schema:
type: string
description: Comma separated list of lesson ids.
example: 1,2,3
name: lessonIds
- in: query
schema:
type: string
name: title
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- in: query
name: modifiedBefore
schema:
type: string
format: date
- in: query
name: modifiedAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Quiz"
/reports/checklists:
get:
tags:
- Reports
summary: Get metrics on number of checklists started and completed
description: |
Requires a date range (maximum 1 year), groupBy is optional.
For example
`?groupBy=usergroup` will result in
```
{
"18": {
"group_title": "Usergroup A",
"started_count": 42,
"completed_count": 12
}
}
```
parameters:
- in: query
name: groupBy
schema:
type: string
example: user, usergroup, checklist
- in: query
name: startDate
schema:
type: string
example: 2024-01-01
required: true
- in: query
name: endDate
schema:
type: string
example: 2024-12-01
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
oneOf:
- $ref: "#/components/schemas/ReportsChecklists"
- $ref: "#/components/schemas/ReportsChecklistsGroupedByUser"
- $ref: "#/components/schemas/ReportsChecklistsGroupedByUsergroup"
- $ref: "#/components/schemas/ReportsChecklistsGroupedByChecklist"
/reports/courses:
get:
tags:
- Reports
summary: Get metrics on number of courses started and completed
description: |
Requires a date range (maximum 1 year), groupBy is optional.
For example
`?groupBy=usergroup` will result in
```
{
"18": {
"group_title": "Usergroup A",
"started_count": 42,
"completed_count": 12
}
}
```
parameters:
- in: query
name: groupBy
schema:
type: string
example: user, usergroup, course
- in: query
name: startDate
schema:
type: string
example: 2024-01-01
required: true
- in: query
name: endDate
schema:
type: string
example: 2024-12-01
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
oneOf:
- $ref: "#/components/schemas/ReportsCourses"
- $ref: "#/components/schemas/ReportsCoursesGroupedByUser"
- $ref: "#/components/schemas/ReportsCoursesGroupedByUsergroup"
- $ref: "#/components/schemas/ReportsCoursesGroupedByCourse"
/reports/users:
get:
tags:
- Reports
summary: Get metrics on number of active users and user logins
parameters:
- in: query
name: groupBy
schema:
type: string
example: usergroup
- in: query
name: startDate
schema:
type: string
example: 2024-01-01
required: true
- in: query
name: endDate
schema:
type: string
example: 2024-12-01
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
oneOf:
- $ref: "#/components/schemas/ReportsUsers"
- $ref: "#/components/schemas/ReportsUsersGroupedByUsergroup"
/submitQuiz:
post:
tags:
- Quizzes
summary: Submit quiz answers
requestBody:
content:
application/json:
schema:
type: object
$ref: "#/components/schemas/QuizResponsePayload"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/QuizResult"
/subscription:
post:
tags:
- Subscriptions
summary: Create Subscription
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Subscription"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Subscription"
/subscription/{id}/:
get:
tags:
- Subscriptions
summary: Read Subscription
#TODO add parameters for updating user groups
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Subscription"
patch:
tags:
- Subscriptions
summary: Edit Subscription
#TODO add parameters for updating user groups
parameters:
- in: path
name: id
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Subscription"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Subscription"
delete:
tags:
- Subscriptions
summary: Delete Subscription
#TODO add parameters for updating user groups
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/subscriptions:
get:
tags:
- Subscriptions
summary: Read Subscriptions
parameters:
- in: query
name: subscriptionIds
schema:
type: string
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Subscription"
/subscription/{id}/subscribe/:
post:
tags:
- Subscriptions
summary: Subscribe User(s) to a Subscription Plan
description: Only free subscriptions are supported at this time. Users must already exist in the system in order to subscribe.
parameters:
- in: path
name: id
schema:
type: string
required: true
- in: query
name: userIds
required: true
schema:
type: array
items:
type: integer
example: [1620265, 1620266, 1620265]
responses:
"200":
description: Successful Response.
content:
application/json: {}
/subscription/{id}/unsubscribe/:
post:
tags:
- Subscriptions
summary: Unsubscribe User(s) from a Subscription Plan
description: Only free subscriptions are supported at this time.
parameters:
- in: path
name: id
schema:
type: string
required: true
- in: query
name: userIds
required: true
schema:
type: array
items:
type: integer
example: [1620265, 1620266, 1620265]
responses:
"200":
description: Successful Response.
content:
application/json: {}
/survey/{id}:
get:
tags:
- Surveys
summary: Read Survey
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Survey"
/surveyResponse:
post:
tags:
- Surveys
summary: Create Survey Response
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SurveyResponse"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/surveyResponses:
get:
tags:
- Surveys
summary: Read Survey Responses
parameters:
- in: query
name: userId
schema:
type: integer
- in: query
name: surveyId
schema:
type: integer
- in: query
name: lessonId
schema:
type: integer
- in: query
name: activityId
schema:
type: string
- in: query
name: eventId
schema:
type: integer
- in: query
name: questionId
schema:
type: string
- in: query
name: archived
schema:
type: boolean
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/SurveyResponse"
post:
tags:
- Surveys
summary: Create Survey Responses
requestBody:
content:
application/json:
schema:
type: object
properties:
responses:
type: array
items:
$ref: "#/components/schemas/SurveyResponse"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/team:
post:
tags:
- Teams
summary: Create User Team
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Team"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/team/{id}/:
get:
tags:
- Teams
summary: Read User Team
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: '#/components/schemas/Team'
patch:
tags:
- Teams
summary: Update User Team
parameters:
- in: path
name: id
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Team"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/Team"
delete:
tags:
- Teams
summary: Delete User Team
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/teams:
get:
tags:
- Teams
summary: Read User Teams
parameters:
- in: query
$ref: "#/components/parameters/teamIdsParam"
- in: query
name: title
schema:
type: string
- in: query
name: member_type
schema:
type: string
enum: [individuals, groups]
example: individuals, groups
- in: query
name: createdBefore
schema:
type: string
format: date
- in: query
name: createdAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/Team"
/transactions:
get:
tags:
- Transactions
summary: Read Transactions
parameters:
- in: query
name: id
schema:
type: integer
- in: query
name: axsTransactionId
schema:
type: integer
- in: query
name: productName
schema:
type: string
- in: query
name: productType
schema:
type: string
- in: query
name: transactorName
schema:
type: string
- in: query
name: transactorId
schema:
type: integer
- in: query
name: transactorType
schema:
type: string
- in: query
name: purchaserId
schema:
type: integer
- in: query
name: purchaserName
schema:
type: string
- in: query
name: payInstrumentName
schema:
type: string
- in: query
name: payInstrumentType
schema:
type: string
- in: query
name: orderAmount
schema:
type: number
- in: query
name: exitStatus
schema:
type: string
- in: query
name: transactionType
schema:
type: string
- in: query
name: before
schema:
type: string
format: date
- in: query
name: after
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: object
/user:
post:
tags:
- Users
summary: Create User
description: userTeamIds can only be assigned for teams with member_type = 'individuals'.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserPayload"
responses:
"200":
description: Successfully created users.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/User"
/user/{id}/:
get:
tags:
- Users
summary: Read User
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successfully created user
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/User"
patch:
tags:
- Users
summary: Update User
description: UserTeamIds can only be assigned for teams with member_type = 'individuals'.
parameters:
- in: path
name: id
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserPayload"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/User"
delete:
tags:
- Users
summary: Delete User
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successfully deleted users.
content:
application/json: {}
/user/{id}/communityGroups:
get:
tags:
- Users
summary: Read User Community Groups
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/CommunityGroupIds"
patch:
tags:
- Users
summary: Update User Community Groups
parameters:
- in: path
name: id
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CommunityGroupIds"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/CommunityGroupIds"
/user/{id}/awards:
get:
tags:
- Users
summary: Read User's Earned Awards
parameters:
- in: path
name: id
schema:
type: integer
required: true
- in: query
$ref: "#/components/parameters/awardTitleParam"
- in: query
$ref: "#/components/parameters/awardTypeParam"
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/AwardEarned"
/user/{userId}/award/{awardId}:
patch:
tags:
- Users
summary: Update a user's earned award
parameters:
- in: path
name: userId
schema:
type: integer
required: true
- in: path
name: awardId
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AwardEarned"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/AwardEarned"
/user/{id}/courseProgress:
get:
tags:
- Users
summary: Read User Course Progress
parameters:
- in: path
name: id
schema:
type: integer
required: true
- in: query
name: lessonId
description: Filter by Lesson Id.
schema:
type: integer
- in: query
name: courseId
description: Filter by Course Id.
schema:
type: integer
- in: query
name: archived
description: If true, show only archived data.
schema:
type: boolean
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/UserCourseProgress"
/users:
get:
tags:
- Users
summary: Read Users
description: All parameters can be used in either the query or the request body.
parameters:
- in: query
$ref: "#/components/parameters/userIdsParam"
- in: query
name: name
schema:
type: string
description: Search by user name.
- in: query
name: email
schema:
type: string
description: Search by user email.
- in: query
name: status
schema:
type: string
description: Search by user status (active/disabled) status.
- in: query
$ref: "#/components/parameters/objectIdsParam"
- in: query
name: objectTitle
schema:
type: integer
description: Search Object Title associated to user.
- in: query
name: registeredBefore
schema:
type: string
format: date
- in: query
name: registeredAfter
schema:
type: string
format: date
- in: query
name: lastVisitedBefore
schema:
type: string
format: date
- in: query
name: lastVisitedAfter
schema:
type: string
format: date
- in: query
$ref: "#/components/parameters/groupIdsParam"
- in: query
$ref: "#/components/parameters/teamIdsParam"
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
- in: query
$ref: "#/components/parameters/customFieldsParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/User"
/users/awards:
get:
tags:
- Users
summary: Read User Awards
parameters:
- in: query
$ref: "#/components/parameters/userNameParam"
- in: query
$ref: "#/components/parameters/awardTitleParam"
- in: query
$ref: "#/components/parameters/awardTypeParam"
- in: query
$ref: "#/components/parameters/userIdsParam"
- in: query
$ref: "#/components/parameters/groupIdsParam"
- in: query
$ref: "#/components/parameters/teamIdsParam"
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/AwardEarned"
/users/awards/{id}:
delete:
tags:
- Users
summary: Delete User Awards
parameters:
- in: path
schema:
type: integer
name: id
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
example: {"success": "AwardEarned id = {$id} deleted"}
/users/checklistProgress:
get:
tags:
- Users
summary: Read User Checklist Progress
parameters:
- in: query
$ref: "#/components/parameters/userNameParam"
- in: query
$ref: "#/components/parameters/userIdsParam"
- in: query
$ref: "#/components/parameters/groupIdsParam"
- in: query
$ref: "#/components/parameters/teamIdsParam"
- in: query
name: archived
description: If true, show only archived data.
schema:
type: boolean
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/ChecklistProgress"
/users/courseProgress:
get:
tags:
- Users
summary: Read User Course Progress
parameters:
- in: query
$ref: "#/components/parameters/courseTitleParam"
- in: query
$ref: "#/components/parameters/courseEnabledParam"
- in: query
$ref: "#/components/parameters/userNameParam"
- in: query
$ref: "#/components/parameters/userIdsParam"
- in: query
$ref: "#/components/parameters/groupIdsParam"
- in: query
$ref: "#/components/parameters/teamIdsParam"
- in: query
name: archived
description: If true, show only archived data.
schema:
type: boolean
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
- in: query
name: startedBefore
schema:
type: string
format: date
- in: query
name: startedAfter
schema:
type: string
format: date
- in: query
name: lastActivityBefore
schema:
type: string
- in: query
name: lastActivityAfter
schema:
type: string
- in: query
name: completedBefore
schema:
type: string
- in: query
name: completedAfter
schema:
type: string
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/CourseProgress"
/users/events:
get:
tags:
- Users
summary: Read Events
parameters:
- in: query
$ref: "#/components/parameters/userNameParam"
- in: query
$ref: "#/components/parameters/eventTitleParam"
- in: query
$ref: "#/components/parameters/userIdsParam"
- in: query
$ref: "#/components/parameters/groupIdsParam"
- in: query
$ref: "#/components/parameters/teamIdsParam"
- in: query
$ref: "#/components/parameters/eventIdsParam"
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/EventRegistration"
/users/quizResults:
get:
tags:
- Users
summary: Read Quizzes / Surveys
parameters:
- in: query
name: ids
schema:
type: string
description: Comma separated list of ids for the quiz result.
- in: query
name: quizIds
schema:
type: string
description: Comma separated list of quiz ids.
- in: query
$ref: "#/components/parameters/userNameParam"
- in: query
$ref: "#/components/parameters/userIdsParam"
- in: query
$ref: "#/components/parameters/groupIdsParam"
- in: query
$ref: "#/components/parameters/teamIdsParam"
- in: query
name: archived
description: If true, show only archived data.
schema:
type: boolean
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
- in: query
name: lessonId
schema:
type: integer
- in: query
name: submittedBefore
schema:
type: string
- in: query
name: submittedAfter
schema:
type: string
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/QuizResult"
/users/sendWelcomeEmail:
post:
tags:
- Users
summary: Send Welcome Emails. When sending the Welcome Email, a new system-generated password will be sent and, upon logging in, the user will be prompted to reset their password.
parameters:
- in: query
name: userIds
required: true
schema:
type: array
items:
type: integer
example: [1620265, 1620266, 1620265]
- in: query
name: require_password_reset
type: boolean
description: Defaults to true, if not explicitly set
responses:
"200":
description: Successful Response.
content:
application/json: {}
/userGroup:
post:
tags:
- User Groups
summary: Create User Group
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroup"
responses:
"200":
description: Successful Response.
content:
application/json: {}
/userGroup/{id}/:
get:
tags:
- User Groups
summary: Read User Group
parameters:
- in: path
name: id
schema:
type: integer
required: true
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroup"
patch:
tags:
- User Groups
summary: Update User Group
parameters:
- in: path
name: id
schema:
type: integer
required: true
requestBody:
content:
application/json:
schema:
type: object
$ref: "#/components/schemas/UserGroup"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroup"
delete:
tags:
- User Groups
summary: Delete User Group
description: Delete a User Group via API.
parameters:
- in: path
name: id
schema:
type: string
required: true
responses:
"200":
description: Successful Response.
content:
application/json: {}
/userGroups:
get:
tags:
- User Groups
summary: Read User Groups
parameters:
- in: query
$ref: "#/components/parameters/groupIdsParam"
- in: query
$ref: "#/components/parameters/userIdsParam"
- in: query
name: title
schema:
type: string
description: Search by title of the user group.
- in: query
name: lft
schema:
type: integer
description: Start of range that contains descendant user groups. Required if lft is present. See https://en.wikipedia.org/wiki/Nested_set_model for more info.
- in: query
name: rgt
schema:
type: integer
description: Start of range that contains descendant user groups. Required if lft is present.
- in: query
name: parentId
schema:
type: integer
- in: query
$ref: "#/components/parameters/pageParam"
- in: query
$ref: "#/components/parameters/pageSizeParam"
responses:
"200":
description: Successful Response.
content:
application/json:
schema:
type: object
allOf:
- $ref: "#/components/schemas/PageData"
properties:
data:
type: array
items:
$ref: "#/components/schemas/UserGroup"
components:
parameters:
awardTitleParam:
name: awardTitle
in: query
description: Award title.
schema:
type: string
example: King of Sales
awardTypeParam:
name: awardType
in: query
description: Award type.
schema:
type: string
example: certificate
courseEnabledParam:
name: courseEnabled
in: query
description: Course is enabled? (0 for false 1 for true).
schema:
type: integer
example: 1
courseIdsParam:
name: courseIds
in: query
description: Course Ids.
schema:
type: string
example: 3,4,6
courseTitleParam:
name: courseTitle
in: query
description: Course Title.
schema:
type: string
example: Quantum gravity 101
customFieldsParam:
name: customFields
in: query
description: |
When querying custom fields you can use either field_id or title to specify the field value you want to query. % wildcard can be used in value key.
For example: "https://api.tovuti.io/api/v1/users?customFields[0][field_id]=44&customFields[0][value]=73958"
schema:
type: array
items:
$ref: "#/components/schemas/CustomFieldValue"
eventIdsParam:
name: eventIds
in: query
description: Comma separated list of event ids
schema:
type: string
example: 1,2,3
eventTitleParam:
name: eventTitle
in: query
description: Event title.
schema:
type: string
example: The concept of art
groupIdsParam:
name: groupIds
in: query
description: Comma separated list of group ids.
schema:
type: string
example: 8,50,51
objectIdsParam:
name: objectIds
in: query
description: Comma separated list of object ids.
schema:
type: string
example: 8,50,51
pageParam:
name: page
in: query
description: Page number.
example: 1
schema:
type: integer
pageSizeParam:
name: pageSize
in: query
description: Page size, allowed values are 25,50,100,250.
example: 50
schema:
type: integer
teamIdsParam:
name: teamIds
in: query
description: Comma separated list of team ids.
schema:
type: string
example: 1,2,3
userIdsParam:
name: userIds
in: query
description: Comma separated list of user ids.
schema:
type: string
example: 1719918,1719907,1719901
userNameParam:
name: userName
in: query
description: User name.
schema:
type: string
example: Jack Sparrow
responses:
IllegalInput:
description: Illegal input for operation.
GeneralError:
description: General Error.
content:
application/json:
schema:
$ref: "#/components/schemas/GeneralError"
NotFound:
description: Entity not found.
securitySchemes:
sanctumToken:
type: http
scheme: bearer
schemas:
Assignment:
type: object
required:
- title
properties:
id:
type: integer
readOnly: true
example: 1
title:
type: string
type:
type: string
description: Set to 'recommended' for courses in this assignment to show up as recommended or 'assigned' for courses to show up as assigned.
example: recommended|assigned
assignment_type:
type: string
description: Set to 'courses' for courses or 'learningpaths' for learning paths.
example: courses|learningpaths
course_ids:
type: array
items:
type: integer
description: Required if assignment_type is "courses"
learning_path_ids:
type: array
items:
type: integer
description: Required if assignment_type is "learningpaths"
usergroups:
type: array
items:
type: integer
user_ids:
type: array
items:
type: integer
users:
readOnly: true
type: array
items:
type: object
properties:
id:
type: integer
example: 1620265
username:
type: string
example: johndoe
email:
type: string
example: john@doe.com
name:
type: string
example: John Doe
free:
type: boolean
description: If true, the assignment is free.
start_date:
type: string
format: date
end_date:
type: string
format: date
due_date:
type: string
format: date
days_to_complete:
type: integer
readOnly: true
assignment_filter_type:
type: string
description: Filter type ( users or groups ).
example: groups
team_id:
type: integer
dynamic_due_dates_enabled:
type: boolean
description: Only works for Learning Path Assignments
dynamic_due_date_number:
type: integer
description: Required if dynamic_due_dates_enabled is true
dynamic_due_date_unit:
type: string
enum: [minute, hour, day, month, year]
example: '[minute, hour, day, month, year]'
description: Required if dynamic_due_dates_enabled is true
created_by:
type: integer
readOnly: true
created_on:
type: string
format: date
readOnly: true
modified_by:
type: integer
readOnly: true
modified_on:
type: string
format: date
readOnly: true
Audit:
type: object
properties:
id:
readOnly: true
type: integer
action:
readOnly: true
type: string
date:
readOnly: true
type: string
format: date
user:
readOnly: true
type: object
properties:
id:
type: integer
example: 1620265
username:
type: string
example: johndoe
email:
type: string
example: john@doe.com
name:
type: string
example: John Doe
ip_address:
readOnly: true
type: string
target_item_id:
readOnly: true
type: integer
description: The ID of the record that was acted on, if there is one
changes:
readOnly: true
type: array
items:
type: object
properties:
field_name:
type: string
before:
type: string
after:
type: string
supplemental_data:
readOnly: true
type: object
description: Any additional info stored by the audit log for this action
AuthAudit:
type: object
properties:
id:
readOnly: true
type: integer
action:
readOnly: true
type: string
date:
readOnly: true
type: string
format: date
user:
readOnly: true
type: object
properties:
id:
type: integer
example: 1620265
username:
type: string
example: johndoe
email:
type: string
example: john@doe.com
name:
type: string
example: John Doe
Award:
type: object
required:
- title
- type
properties:
id:
type: integer
readOnly: true
example: 1
title:
type: string
example: Badge of Awesomeness
type:
type: string
description: Can be badge, certificate, or milestone.
example: badge|certificate|milestone
description:
type: string
example: This badge is awesome!
enabled:
type: boolean
status:
type: string
description: Either 'active' or 'disabled'.
example: active|disabled
expiration_type:
type: string
description: Type of time period after which the certificate will expire. Possible values are "year", "month", "week", "day".
example: year|month|week|day
expiration_classification:
type: string
description: Type of award expiration. Possible values are "static", "dynamic", "none".
example: static|dynamic|none
expiration_date:
type: string
format: date
description: Date of static award expiration
example: '2024-01-01 16:08:08'
expiration_amount:
type: integer
description: The number of [expiration_type]s that will need to pass before this award expires.
requirement_type:
type: string
description: Set this to "assigned" to assign the certificate to a specific user or set of users, or set to "conditional" to only award the certificate after a specific set of requirements are met.
example: conditional|assigned
user_can_lose_badge:
type: boolean
description: If true if the user will be able to lose their award.
certificate_id:
type: integer
description: The certificate template this award is associated with. Only used if type = 'certificate'.
requirements_all:
type: boolean
description: Only needed when requirement_type is set to "conditional". Set this to true if all requirements must be met, or false if any subset of them can be met to award the certificate.
user_list:
type: array
items:
type: integer
description: Array of user ids to assign the award to, only used when award type = "assigned".
usergroup_actions:
type: boolean
description: If set to true, add the users who were awarded the certificate to usergroups.
add_usergroups:
type: array
items:
type: integer
description: Array of user group ids to add award recipients to.
remove_usergroups:
type: array
items:
type: integer
description: Array of user group ids to remove award recipients from.
points_actions:
type: boolean
description: If set to true, points are awarded upon attainment of the award.
points_category:
type: integer
description: Id of points category that points should be assigned under.
points:
type: integer
description: The number of points to be awarded on certificate attainment.
requirements:
type: array
items:
$ref: "#/components/schemas/AwardRequirement"
AwardEarned:
type: object
properties:
award_id:
type: integer
description: The primary key of the award_earned record. Important, this is NOT the ID of the award itself
readOnly: true
user_id:
type: integer
readOnly: true
badge_id:
type: integer
description: The ID of the award. Can be used on the /award/{id} endpoint to pull more info. Works for badges, certificates, and milestones
readOnly: true
date_earned:
type: string
pattern: ^(\d{4})\-(0\d|1[012])\-(0\d|[12]\d|3[01])\s([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$
date_expires:
type: string
format: date
readOnly: true
award_title:
type: string
readOnly: true
award_type:
type: string
readOnly: true
user_name:
type: string
readOnly: true
AwardRequirement:
type: object
properties:
requirement_active:
type: boolean
description: Set this to true to enable the requirement, false to disable it.
requirement_type:
type: string
description: Set this to "category", "course", "lesson", "usergroup", "accesslevel" or "event".
example: category|course|lesson|usergroup|accesslevel|event
requirement_completion:
type: string
description: Defines whether any or all [requirement_type]s are required to be completed in order for this award to be assigned.
example: any|all
required_category:
type: array
items:
type: integer
description: An array of course category ids used when requirement_type = "category".
required_course:
type: array
items:
type: integer
description: An array of course ids used when requirement_type = "course".
required_lesson:
type: array
items:
type: integer
description: An array of lesson ids used when requirement_type = "lesson".
usergroup:
type: array
items:
type: integer
description: An array of user group ids used when requirement_type = "usergroup".
accesslevel:
type: array
items:
type: integer
description: An array of access level ids used when requirement_type = "accesslevel".
required_event:
type: array
items:
type: integer
description: An array of event ids sed when requirement_type = "event".
required_event_action:
type: string
description: Set this to "registered" or "checkin" when using the "event" requirement type. This will require the user to be either registered or checked in to whichever events are given as part of the requirement.
example: registered|checkin
AwardSyncRequest:
type: object
properties:
success:
readOnly: true
type: string
award_id:
type: integer
user_id:
type: integer
Checklist:
type: object
properties:
id:
type: integer
readOnly: true
example: 1
title:
type: string
description:
type: string
enabled:
type: boolean
due_date:
type: string
format: date
access_type:
type: string
example: none|access|user|list
userlist:
type: array
items:
type: integer
usergroup:
type: array
items:
type: integer
accesslevel:
type: array
items:
type: integer
is_sequential:
type: boolean
items:
type: array
items:
$ref: "#/components/schemas/ChecklistItem"
show_tooltip:
type: boolean
due_date_type:
type: string
example: dynamic|fixed|none
description: dynamic - Due date is Dynamically Based from the date that they first received any of the assigned user groups. (requires Access Restriction Type to be set as User Group), fixed - Set scheduled Due Date. none - No due date.
checklist_due_dynamic_number:
type: integer
description: Number of [checklist_due_dynamic_unit]s until this checklist is due.
example: 5
checklist_due_dynamic_unit:
type: string
example: day|week|month|year
description: Unit of time used for 'dynamic' due date type.
ChecklistItem:
type: object
properties:
id:
type: string
example: 1634694593n29Uo7
readOnly: true
type:
type: string
description: Describes on which event this checklist item will be considered completed.
example: course_completion|lesson_completion|certificate_awarded|badge_awarded|event_registration|event_checkin|watched_video|milestone_awarded|custom
icon:
type: string
example: lizicon-1-TEP-Connect-Icon-15
title:
type: string
instructions:
type: string
due_date_type:
type: string
example: dynamic|fixed|none
description: Dynamic due date type is based on time passed since the user was assigned to the usergroup this checklist is assigned to. Fixed is an exact date.
item_due_dynamic_number:
type: string
description: The number of [item_due_dynamic_unit] that describe the due date of this checklist item. Only used when due_date_type = dynamic.
item_due_dynamic_unit:
type: string
example: day|week|month|year
description: The unit of time used for [item_due_dynamic_number] Only used when due_date_type = dynamic.
due_date:
type: string
format: date
description: Only used when due_date_type = fixed.
course_id:
type: integer
example: The id of the course for the course_completion item type.
lesson_id:
type: integer
example: The id of the lesson for the lesson_completion item type.
milestone_id:
type: integer
example: The id of the milestone for the milestone_awarded item type
certificate_id:
type: integer
example: The id of the certificate for the certificate_awarded item type
badge_id:
type: integer
example: The id of the badge for the badge_awarded item type
event_id:
type: integer
example: The id of the event for the event_registration or event_checkin item types
media_id:
type: integer
example: The id of the watched_video for the watched_video item type
link:
type: string
completion_type:
type: string
example: auto|admin|user
description: If set to 'auto', the checklist will complete when the course/lesson/certificate/badge/event/media is completed. If set to 'admin' only an admin user can mark this item complete. If set to 'user' any user can mark this item complete.
points_category:
type: integer
example: 1
description: The id of the points category that points will be assigned to.
points:
type: integer
description: The number of points awarded when this item is completed.
required_for_completion:
type: boolean
description: If false the checklist item is not factored into the completion % for the list.
group:
type: integer
description: The grouping of this checklist item. Items in the same group will have the same group number
ChecklistProgress:
type: object
properties:
user_id:
type: integer
readOnly: true
checklist_id:
type: integer
readOnly: true
item_id:
type: integer
readOnly: true
item_type:
type: string
readOnly: true
completed:
type: boolean
readOnly: true
date:
type: string
format: date
readOnly: true
due_date:
type: string
format: date
readOnly: true
archive_date:
type: string
format: date
readOnly: true
title:
type: string
readOnly: true
type:
type: string
readOnly: true
due_date_type:
type: string
readOnly: true
completion_type:
type: boolean
readOnly: true
CommunityGroup:
type: object
required:
- name
- published
- enable_user_groups
properties:
id:
type: integer
readOnly: true
name:
type: string
published:
type: boolean
enable_user_groups:
type: boolean
owner_id:
type: integer
readOnly: true
description:
type: string
users:
type: array
items:
type: integer
user_groups:
type: array
items:
type: integer
created:
type: array
items:
type: string
format: date
CommunityGroupIds:
type: object
properties:
community_groups:
type: array
items:
type: integer
Course:
type: object
required:
- title
- slug
- coursescategory_id
properties:
id:
type: integer
readOnly: true
title:
type: string
example: MyCourse
slug:
type: string
description: Unique URI for use in Search Engine Friendly urls.
pattern: "[a-z-]+"
coursescategory_id:
type: integer
format: int64
description: Id of the course category this course belongs to.
courses_sub_categories_ids:
type: array
items:
type: integer
description: Comma-separated list of course category ids that this course belongs to.
description:
type: string
short_description:
type: string
image:
type: string
video_url:
type: string
featured_course:
type: boolean
price:
type: number
format: float
available_to_purchase:
type: boolean
enabled:
type: boolean
registrants:
readOnly: true
type: array
items:
type: integer
external_link:
type: string
format: url
final_course_survey:
type: object
properties:
id:
type: integer
survey_title:
type: string
survey_instructions:
type: string
content_expires:
type: boolean
expiration_date:
type: string
format: date
custom_id:
type: string
required_for_completion:
type: boolean
customFields:
type: array
description: When assigning customFields either a field_id or title can be provided. It is recommended to use the field_id in case there is a field name with a duplicate title.
items:
$ref: "#/components/schemas/CustomFieldValue"
lessons:
type: number
format: int
readOnly: true
description: The number of lessons in the course.
ordering:
type: number
format: int
readOnly: true
description: Used when displaying multiple courses.
view_access_type:
type: string
example: none|list|user|access
description: Visibility Permission Type.
register_access_type:
type: string
example: none|list|user|access
description: Registration Permission Type.
view_access_groups:
type: array
items:
type: integer
description: array of group ids. Required if view_access_type is user.
view_access_users:
type: array
items:
type: integer
description: array of user ids. Required if view_access_type is list.
view_access_levels:
type: array
items:
type: integer
description: array of access level ids. Required if view_access_type is access.
register_access_groups:
type: array
items:
type: integer
description: array of group ids. Required if register_access_type is user.
register_access_users:
type: array
items:
type: integer
description: array of user ids. Required if register_access_type is list.
register_access_levels:
type: array
items:
type: integer
description: array of access level ids. Required if register_access_type is access.
multilingual_overrides:
type: object
items:
type: object
description: 'An object with multilingual override data in the form { "fr": { "use": 1, "title": "French Title", ...} }. Overrides are only included if enabled (use = 1).'
use_library_content:
type: boolean
description: Specifies if a SCORM (or bizlibrary) package is used for this course
library_content_type:
type: string
description: Either 'bizlibrary' or 'scorm'
bizlibrary_content_title:
type: string
bizlibrary_content_id:
type: string
scorm_id:
type: integer
scorm_title:
type: string
locked:
type: integer
use_due_date:
type: boolean
readOnly: true
hard_due_date:
type: boolean
readOnly: true
due_date_type:
type: string
readOnly: true
description: static|dynamic
example: static|dynamic
due_static_date:
type: string
format: date
readOnly: true
due_dynamic_number:
type: integer
readOnly: true
due_dynamic_unit:
type: string
readOnly: true
description: minute|hour|day|week|month|year
example: minute|hour|day|week|month|year
open_date:
type: string
format: date
readOnly: true
close_date:
type: string
format: date
readOnly: true
visible_before_open:
type: boolean
readOnly: true
visible_after_close:
type: boolean
readOnly: true
CourseCategory:
type: object
required:
- title
- slug
properties:
id:
type: integer
readOnly: true
title:
type: string
parent_id:
type: integer
description: The id of the parent course category. 0 for no parent.
slug:
type: string
description: Unique URI for use in Search Engine Friendly urls.
pattern: "[a-z-]+"
enabled:
type: boolean
view_access_type:
type: string
example: none|list|user|access
description: Visibility Permission Type.
view_access_groups:
type: array
items:
type: integer
description: array of group ids. Required if view_access_type is user.
view_access_users:
type: array
items:
type: integer
description: array of user ids. Required if view_access_type is list.
view_access_levels:
type: array
items:
type: integer
description: array of access level ids. Required if view_access_type is access.
multilingual_overrides:
type: object
items:
type: object
description: 'An object with multilingual override data in the form { "fr": { "use": 1, "title": "French Title", ...} } . Overrides are only included if enabled (use = 1).'
CourseProgress:
type: object
properties:
user_id:
type: integer
course_id:
type: integer
language:
type: string
example: en-GB
lessons_completed_list:
type: array
items:
type: integer
lessons_total_list:
type: array
items:
type: integer
score:
type: number
progress:
type: number
format: float
date_started:
type: string
format: date
date_last_activity:
type: string
format: date
date_completed:
type: string
format: date
date_due:
type: string
format: date
archive_date:
type: string
format: date
CustomField:
type: object
description: Custom fields are user defined fields that can be used in the user registration forms and/or subscription registration forms.
properties:
id:
type: integer
readOnly: true
type:
type: string
example: "group|gender|birthdate|textarea|text|url|date|list|radio|checkbox|email|time"
ordering:
type: integer
description: This column is used to define which group a custom field is in. For example a group with ordering = 1 would have fields in it with ordering = 2 or 3. Then another group could start at 4 with child fields with ordering id = 5 or 6.
published:
type: integer
description: If a custom field is not published, it will not be available to be used in any registration or subscription forms.
min:
type: integer
max:
type: integer
name:
type: string
tips:
type: string
visible:
type: integer
required:
type: integer
searchable:
type: integer
registration:
type: integer
options:
type: string
description: List of options separated by newlines. Used for list, radio, and checkbox types.
example: option_one\noption_two\noption_three
fieldcode:
type: string
description: Unique key used for field.
params:
type: object
description: Params contains type-specific configuration for custom fields. Some options are alternate registration_text to use as the field label in the registration form, date range and format etc.
example:
{
"registration_text": "",
"display": "date",
"readonly": "0",
"maxrange": "1",
"minrange": "1",
"date_format": "1",
}
CustomFieldValue:
type: object
properties:
field_id:
type: integer
readOnly: true
title:
type: string
readOnly: true
type:
type: string
readOnly: true
value:
type: string
readOnly: true
Event:
type: object
required:
- title
- event_date
- alias
properties:
id:
type: integer
readOnly: true
example: 1
parent_id:
description: When creating a recurring event several 'child' events are created, each with a date and title based on the recurring settings and the title of the parent event. If an event has parent_id = 0 then it is a parent and may or may not have children.
type: integer
category_id:
type: integer
location_id:
type: integer
title:
type: string
example: My Event
registration_type:
type: integer
example: 0
description: 0 - Both Individual and Group Registration, 1 - Only Individual Registration, 2 - Only Group Registration, 3 - Disable Registration.
view_access:
type: array
items:
type: integer
description: ids of the groups that can view this course.
example: [1]
registration_access:
type: array
items:
type: integer
description: ids of the groups that can register for this course.
example: [1]
event_date:
type: string
format: date
event_end_date:
type: string
format: date
short_description:
type: string
description:
type: string
individual_price:
type: number
format: float
event_capacity:
type: integer
created_by:
type: integer
description: User id.
example: 1620265
readOnly: true
cut_off_date:
type: string
format: date
description: Registration end date.
published:
type: boolean
featured:
type: boolean
registration_start_date:
type: string
format: date
description: Registration start date.
alias:
type: string
description: Unique URI for use in Search Engine Friendly urls
pattern: '[a-z-]+'
example: my-event
language:
type: string
enable_auto_reminder:
type: boolean
description: If set to 'true' registrants will get auto reminder emails for this event.
image:
type: string
timezone:
type: string
virtual_classroom_id:
type: string
example: B0C4D939-AF12-43D8-82B3-0A68D423F894
readOnly: true
virtual_classroom_uri:
type: string
description: uri of virtual classroom that can be used for linking directly to virtual classroom
readOnly: true
EventWithImage:
type: object
required:
- title
- event_date
- alias
properties:
id:
type: integer
readOnly: true
example: 1
parent_id:
description: When creating a recurring event several 'child' events are created, each with a date and title based on the recurring settings and the title of the parent event. If an event has parent_id = 0 then it is a parent and may or may not have children.
type: integer
category_id:
type: integer
location_id:
type: integer
title:
type: string
example: My Event
registration_type:
type: integer
example: 0
description: 0 - Both Individual and Group Registration, 1 - Only Individual Registration, 2 - Only Group Registration, 3 - Disable Registration.
view_access:
type: array
items:
type: integer
description: ids of the groups that can view this course.
registration_access:
type: array
items:
type: integer
description: ids of the groups that can register for this course.
event_date:
type: string
format: date
event_end_date:
type: string
format: date
short_description:
type: string
description:
type: string
individual_price:
type: number
format: float
event_capacity:
type: integer
created_by:
type: integer
description: User id.
example: 1620265
readOnly: true
cut_off_date:
type: string
format: date
description: Registration end date.
published:
type: boolean
featured:
type: boolean
registration_start_date:
type: string
format: date
description: Registration start date.
alias:
type: string
description: Unique URI for use in Search Engine Friendly urls.
pattern: "[a-z-]+"
language:
type: string
enable_auto_reminder:
type: boolean
description: If set to 'true' registrants will get auto reminder emails for this event.
image:
type: string
format: binary
description: Supported file types - jpg,png,jpeg,gif. Maximum size 10MB.
EventRegistration:
type: object
properties:
event_id:
type: integer
user_id:
type: integer
group_id:
type: integer
first_name:
type: string
last_name:
type: string
organization:
type: string
address:
type: string
address2:
type: string
city:
type: string
state:
type: string
country:
type: string
zip:
type: string
phone:
type: string
fax:
type: string
email:
type: string
number_registrants:
type: integer
total_amount:
type: number
discount_amount:
type: number
amount:
type: number
register_date:
type: string
format: date
payment_date:
type: string
format: date
payment_method:
type: string
transaction_id:
type: string
axs_trxn_id:
type: integer
comment:
type: string
published:
type: boolean
cart_id:
type: integer
payment_processing_fee:
type: number
late_fee:
type: number
notified:
type: boolean
checked_in:
type: boolean
coupon_usage_calculated:
type: boolean
checked_in_count:
type: integer
deposit_amount:
type: number
payment_status:
type: integer
coupon_id:
type: integer
check_coupon:
type: boolean
tax_amount:
type: number
registration_code:
type: string
params:
type: object
is_reminder_sent:
type: boolean
is_deposit_payment_reminder_sent:
type: boolean
process_deposit_payment:
type: boolean
deposit_payment_transaction_id:
type: integer
deposit_payment_axs_trxn_id:
type: integer
user_ip:
type: string
deposit_payment_method:
type: integer
is_group_billing:
type: boolean
language:
type: string
invoice_number:
type: integer
cancel_date:
type: string
format: date
original_event_id:
type: integer
GeneralError:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
LearningPath:
type: object
required:
- title
properties:
id:
type: integer
readOnly: true
title:
type: string
slug:
type: string
readOnly: true
published:
type: boolean
description:
type: string
courses:
type: array
items:
type: integer
optional_courses:
type: array
items:
type: integer
subcategories:
type: array
items:
type: integer
tags:
type: array
items:
type: integer
view_access_type:
type: string
example: none|list|user|access
description: Visibility Permission Type.
register_access_type:
type: string
example: none|list|user|access
description: Registration Permission Type.
view_access_groups:
type: array
items:
type: integer
description: array of group ids. Required if view_access_type is user.
view_access_users:
type: array
items:
type: integer
description: array of user ids. Required if view_access_type is list.
view_access_levels:
type: array
items:
type: integer
description: array of access level ids. Required if view_access_type is access.
register_access_groups:
type: array
items:
type: integer
description: array of group ids. Required if register_access_type is user.
register_access_users:
type: array
items:
type: integer
description: array of user ids. Required if register_access_type is list.
register_access_levels:
type: array
items:
type: integer
description: array of access level ids. Required if register_access_type is access.
created_by:
type: integer
readOnly: true
created_on:
type: string
format: date
readOnly: true
modified_by:
type: integer
readOnly: true
modified_on:
type: string
format: date
readOnly: true
LearningPathWithImage:
type: object
required:
- title
properties:
id:
type: integer
readOnly: true
title:
type: string
slug:
type: string
readOnly: true
published:
type: boolean
description:
type: string
courses:
type: array
items:
type: integer
subcategories:
type: array
items:
type: integer
tags:
type: array
items:
type: integer
image:
type: string
format: binary
description: Supported file types - jpg,png,jpeg,gif. Maximum size 10MB.
view_access_type:
type: string
example: none|list|user|access
description: Visibility Permission Type.
register_access_type:
type: string
example: none|list|user|access
description: Registration Permission Type.
view_access_groups:
type: array
items:
type: integer
description: array of group ids. Required if view_access_type is user.
view_access_users:
type: array
items:
type: integer
description: array of user ids. Required if view_access_type is list.
view_access_levels:
type: array
items:
type: integer
description: array of access level ids. Required if view_access_type is access.
register_access_groups:
type: array
items:
type: integer
description: array of group ids. Required if register_access_type is user.
register_access_users:
type: array
items:
type: integer
description: array of user ids. Required if register_access_type is list.
register_access_levels:
type: array
items:
type: integer
description: array of access level ids. Required if register_access_type is access.
created_by:
type: integer
readOnly: true
created_on:
type: string
format: date
readOnly: true
modified_by:
type: integer
readOnly: true
modified_on:
type: string
format: date
readOnly: true
LearningPathCategory:
type: object
required:
- title
properties:
id:
type: integer
readOnly: true
title:
type: string
slug:
type: string
readOnly: true
published:
type: boolean
subcategories:
type: array
items:
type: integer
created_by:
type: integer
readOnly: true
created_on:
type: string
format: date
readOnly: true
modified_by:
type: integer
readOnly: true
modified_on:
type: string
format: date
readOnly: true
access_type:
type: string
example: none|access|user|list
userlist:
type: array
items:
type: integer
usergroup:
type: array
items:
type: integer
accesslevel:
type: array
items:
type: integer
LearningPathSubcategory:
type: object
required:
- title
properties:
id:
type: integer
readOnly: true
title:
type: string
slug:
type: string
readOnly: true
published:
type: boolean
description:
type: string
categories:
type: array
items:
type: integer
learning_paths:
type: array
items:
type: integer
created_by:
type: integer
readOnly: true
created_on:
type: string
format: date
readOnly: true
modified_by:
type: integer
readOnly: true
modified_on:
type: string
format: date
readOnly: true
access_type:
type: string
example: none|access|user|list
userlist:
type: array
items:
type: integer
usergroup:
type: array
items:
type: integer
accesslevel:
type: array
items:
type: integer
LearningPathSubcategoryWithImage:
type: object
required:
- title
properties:
id:
type: integer
readOnly: true
title:
type: string
slug:
type: string
readOnly: true
published:
type: boolean
description:
type: string
categories:
type: array
items:
type: integer
image:
type: string
format: binary
description: Supported file types - jpg,png,jpeg,gif. Maximum size 10MB.
learning_paths:
type: array
items:
type: integer
created_by:
type: integer
readOnly: true
created_on:
type: string
format: date
readOnly: true
modified_by:
type: integer
readOnly: true
modified_on:
type: string
format: date
readOnly: true
access_type:
type: string
example: none|access|user|list
userlist:
type: array
items:
type: integer
usergroup:
type: array
items:
type: integer
accesslevel:
type: array
items:
type: integer
Lesson:
type: object
properties:
lesson_id:
type: integer
title:
type: string
description: Title of Lesson.
example: Introduction to Quantum Physics
image:
type: string
description: Image URL.
example: http://example.com/image.jpg
description:
type: string
description: Lesson description.
example: Lesson description text
lesson_type:
type: integer
description: Lesson Type.
example: 0 - Public, 1 - Access Only
language:
type: string
description: Language code.
example: en-GB|pt-BR
lesson_gating:
type: integer
description: Lesson Gating Status, read only, 1 if enabled, 0 if disabled.
published:
type: boolean
description: Lesson publish status.
example: true|false
quiz_prerequisite_setting:
type: string
description: Unlock after quiz.
example: true|false
award_points:
type: string
description: Number of Award points.
example: 10000
prerequisite_quizzes:
type: array
items:
type: object
example: [{ "quiz_id": 1, "lesson_quiz": 10 }]
teacher:
type: object
description: Simplified teacher object.
course:
type: object
properties:
course_id:
type: integer
title:
type: string
ordering:
type: integer
activities:
type: object
items:
type: object
created_on:
type: string
format: style
ordering:
type: integer
is_final_course_survey:
type: boolean
use_library_content:
type: boolean
description: Specifies if a SCORM (or bizlibrary) package is used for this course
library_content_type:
type: string
description: Either 'bizlibrary' or 'scorm'
bizlibrary_content_title:
type: string
bizlibrary_content_id:
type: string
scorm_required:
type: boolean
scorm_id:
type: integer
scorm_title:
type: string
LessonInsert:
type: object
required:
- title
properties:
title:
type: string
description: Title of Lesson.
example: Introduction to Quantum Physics
image:
type: string
description: Image URL.
example: http://example.com/image.jpg
description:
type: string
description: Lesson description.
example: Lesson description text
lesson_type:
type: integer
description: Lesson Type.
example: 0 - Public, 1 - Access Only
language:
type: string
description: Language code.
example: en-GB|pt-BR
published:
type: boolean
description: Lesson publish status.
example: true|false
quiz_prerequisite_setting:
type: string
description: Unlock after quiz.
example: true|false
award_points:
type: string
description: Number of Award points.
example: 10000
prerequisite_quizzes:
type: object
example: [1, 2, 4]
teacher_id:
type: integer
description: Teacher ID.
course_id:
type: integer
description: Course ID.
Location:
type: object
properties:
id:
type: integer
name:
type: string
example: Tovuti Headquarters
address:
type: string
example: 775 S Rivershore Ln \#120, Eagle, ID 83616, USA
city:
type: string
example: Eagle
state:
type: string
example: Idaho
zip:
type: integer
example: 83616
country:
type: string
example: United States
lat:
type: number
format: float
example: 43.687440
description: Latitude.
long:
type: number
format: float
example: -116.354894
description: Longitude.
published:
type: boolean
example: true
user_id:
type: integer
description: User that created the location.
language:
type: string
example: en-GB
layout:
type: string
description: Possible values are '', table, timeline.
MediaCategory:
type: object
required:
- title
- published
- access_type
properties:
id:
type: integer
readOnly: true
example: 2
parent_id:
type: integer
example: 5
description: id of the parent media category.
title:
type: string
maxLength: 255
example: My Category
page_title:
type: string
maxLength: 255
example: text
description:
type: string
maxLength: 4000
example: This is descriptive text
published:
type: boolean
example: true
access_type:
type: string
example: none|list|user|access
usergroup:
type: array
items:
type: integer
description: array of group ids.
userlist:
type: array
items:
type: integer
description: array of user ids.
accesslevel:
type: array
items:
type: integer
description: array of access level ids.
MediaItem:
type: object
required:
- title
- published
- media_type
- access_type
properties:
id:
type: integer
readOnly: true
example: 2
title:
type: string
maxLength: 255
example: My Video
speaker:
type: string
maxLength: 255
example: Jim Bob
description:
type: string
maxLength: 4000
example: This is descriptive text
published:
type: boolean
example: true
go_live_date:
type: string
format: date
example: YYYY-mm-dd
archive_date:
type: string
format: date
example: YYYY-mm-dd
use_expiration:
type: boolean
example: false
custom_id:
type: string
example: ABC123
expiration_date:
type: string
format: date
example: YYYY-mm-dd
category:
type: integer
example: 5
subcategory:
type: integer
example: 6
media_type:
type: string
example: video|audio|pdf|link
video_type:
type: string
example: mp4|youtube|screencast|facebook|vimeo
description: Required if media_type is video.
source:
type: string
format: binary
description: audio file, video file, or pdf. Required if media_type is video, audio, or PDF.
thumbnail_image:
type: string
format: binary
description: Supported file types - jpg,png,jpeg,gif.
cover_image:
type: string
format: binary
description: Supported file types - jpg,png,jpeg,gif.
youtube_id:
type: string
example: DOWDNBu9DkU
description: ID of youtube video or full url. Required if video_type is youtube.
screencast_id:
type: string
example: DOWDNBu9DkU
description: Required if video_type is screencast.
facebook_url:
type: string
example: DOWDNBu9DkU
description: Required if video_type is facebook.
vimeo_id:
type: string
example: DOWDNBu9DkU
description: ID of vimeo video or full url. Required if video_type is vimeo.
interactive_source:
type: string
example: http://something.com
description: must be a full URL. Required if media_type is link.
access_type:
type: string
example: none|list|user|access
description: Visibility Permission Type.
access_purchase_type:
type: string
example: none|list|user|access
description: Access Permission Type.
usergroup:
type: array
items:
type: integer
description: array of group ids. Required if access_type is user.
userlist:
type: array
items:
type: integer
description: array of user ids. Required if access_type is list.
accesslevel:
type: array
items:
type: integer
description: array of access level ids. Required if access_type is access.
usergroup_purchase_register:
type: array
items:
type: integer
description: array of group ids. Required if access_purchase_type is user.
userlist_purchase_register:
type: array
items:
type: integer
description: array of user ids. Required if access_purchase_type is list.
accesslevel_purchase_register:
type: array
items:
type: integer
description: array of access level ids. Required if access_purchase_type is access.
tags:
type: array
items:
type: string
created_on:
type: string
format: date
example: YYYY-mm-dd
MediaItemNoData:
type: object
required:
- title
- published
- media_type
- access_type
properties:
id:
type: integer
readOnly: true
example: 2
title:
type: string
maxLength: 255
example: My Video
speaker:
type: string
maxLength: 255
example: Jim Bob
description:
type: string
maxLength: 4000
example: This is descriptive text
published:
type: boolean
example: true
go_live_date:
type: string
format: date
example: YYYY-mm-dd
archive_date:
type: string
format: date
example: YYYY-mm-dd
use_expiration:
type: boolean
example: false
custom_id:
type: string
example: ABC123
expiration_date:
type: string
format: date
example: YYYY-mm-dd
category:
type: integer
example: 5
subcategory:
type: integer
example: 6
media_type:
type: string
example: video|audio|pdf|link
video_type:
type: string
example: mp4|youtube|screencast|facebook|vimeo
description: Required if media_type is video.
youtube_id:
type: string
example: DOWDNBu9DkU
description: ID of youtube video or full url. Required if video_type is youtube.
screencast_id:
type: string
example: JnD7uBZDI0Z
description: Required if video_type is screencast.
facebook_url:
type: string
example: https://facebook.com/johnd
description: Required if video_type is facebook.
vimeo_id:
type: string
example: https://vimeo.com/johndoe
description: ID of vimeo video or full url. Required if video_type is vimeo.
interactive_source:
type: string
example: http://interactivesource.com
description: must be a full URL. Required if media_type is link.
access_type:
type: string
example: none|list|user|access
description: Visibility Permission Type.
access_purchase_type:
type: string
example: none|list|user|access
description: Access Permission Type.
usergroup:
type: array
items:
type: integer
description: array of group ids. Required if access_type is user.
userlist:
type: array
items:
type: integer
description: array of user ids. Required if access_type is list.
accesslevel:
type: array
items:
type: integer
description: array of access level ids. Required if access_type is access.
usergroup_purchase_register:
type: array
items:
type: integer
description: array of group ids. Required if access_purchase_type is user.
userlist_purchase_register:
type: array
items:
type: integer
description: array of user ids. Required if access_purchase_type is list.
accesslevel_purchase_register:
type: array
items:
type: integer
description: array of access level ids. Required if access_purchase_type is access.
tags:
type: array
items:
type: string
Meeting:
type: object
required:
- meetingName
- meetingType
- date
- timezone
properties:
id:
type: integer
readOnly: true
meetingId:
type: string
example: 2391AFB0-0893-4850-9208-D7505685BE1F
readOnly: true
meetingName:
type: string
meetingType:
type: string
example: tovuti|zoom|webex|gotomeeting|google|joinme|other
creator:
type: integer
readOnly: true
maxParticipants:
type: integer
description: Max participants. -1 is unlimited.
description:
type: string
date:
type: string
format: datetime
timezone:
type: string
example: "America/New_York"
access_type:
type: string
example: none|access|user|list
hosts:
type: array
items:
type: integer
externalUrl:
type: string
format: url
readOnly: true
moderatorPW:
type: string
readOnly: true
attendeePW:
type: string
readOnly: true
record:
type: boolean
description: If set to true, the meeting will be recorded.
duration:
type: integer
enabled:
type: boolean
userlist:
type: array
items:
type: integer
description: An array of user ids with access. Required access_type = 'users'.
accesslevel:
type: array
items:
type: integer
description: An array of access level ids with access. Required access_type = 'accesslevel'.
usergroup:
type: array
items:
type: integer
description: An array of usergroup ids with access. Required access_type = 'groups'.
attendees:
type: array
items:
type: integer
description: User ids of attendees for this meeting.
readOnly: true
Object:
type: object
properties:
id:
type: integer
readOnly: true
example: 2
title:
type: string
example: MyOrganization
type_id:
type: integer
example: id of ObjectType
user_portal:
type: integer
description: id of user portal for user portal override setting.
description:
type: string
enabled:
type: boolean
image:
type: string
customFields:
type: array
description: When assigning customFields either a field_id or title can be provided. It is recommended to use the field_id in case there is a field name with a duplicate title.
items:
$ref: "#/components/schemas/CustomFieldValue"
ObjectType:
type: object
properties:
id:
type: integer
readOnly: true
example: 2
title:
type: string
example: Organization
enabled:
type: boolean
example: true
ObjectsValue:
type: object
properties:
id:
type: integer
title:
type: string
PageData:
type: object
properties:
current_page:
type: integer
description: The current page.
example: 1
from:
type: integer
description: The start of the range for the page.
example: 1
to:
type: integer
description: The end of the range for the page.
example: 25
per_page:
type: integer
description: The number of items per page.
example: 10
first_page_url:
type: string
description: A URI to the first page.
format: url
example: http://{domain}/api/{endpoint}?page=1
next_page_url:
type: string
description: A URI to the next page.
format: url
example: http://{domain}/api/{endpoint}?page=1
prev_page_url:
type: string
description: A URI to the previous page.
format: url
example: http://{domain}/api/endpoint}?page=1
ProfileField:
type: object
required:
- type
- enabled
- name
- visibility
- required
- searchable
- registration
- readonly
properties:
id:
type: integer
readOnly: true
example: 10
type:
type: string
enum: [text, textarea, select, list, radio, checkbox, country, gender, email, time, date, url, birthdate]
example: '[text, textarea, select, list, radio, checkbox, country, gender, email, time, date, url, birthdate]'
ordering:
type: integer
readOnly: true
enabled:
type: boolean
name:
type: string
visibility:
type: string
example: '[personal, all, admin]'
enum: [personal, all, admin]
required:
type: boolean
searchable:
type: boolean
input_type:
type: string
example: '[text,password]'
enum: [text,password]
registration:
type: boolean
description: If true, the field is available on the registration form
registration_text:
type: string
description: Text that appears on the registration page, alongside the field
readonly:
type: boolean
min_characters:
type: integer
description: Used by input types [text, textarea, email, url]
max_characters:
type: integer
description: Used by input types [text, textarea, email, url]
max_length:
type: integer
description: Used by input types [text, url]
style:
type: string
description: Used by input types [text, textarea, select, list, radio, checkbox, date, url]
options:
type: array
items:
type: string
description: Used by input types [select, list, radio, checkbox]. Note, country and gender have pre-defined options and cannot be changed
size:
type: integer
description: Used by input types [select]
domains_whitelist:
type: array
items:
type: string
description: Used by input types [email]
domains_blacklist:
type: array
items:
type: string
description: Used by input types [email]
date_range_max:
type: string
format: date
description: Used by input types [date, birthdate]
example: 2009-09-01
date_range_min:
type: string
format: date
description: Used by input types [date, birthdate]
example: 2009-09-01
date_format:
type: string
description: |
Used by input types [date, birthdate]. 8 date format characters are available. Dates can be separated with spaces, commas, hyphens, orslashes. Example date is January 2, 2000.
Y - Full numeric representation of a year, e.g. 2000
y - Last two digits of the year, e.g. 00
M - Abbreviated month name, three letters, e.g. Jan
m - Numeric representation of a month, with leading zeroes, e.g. 01
D - Abbreviated day of the month, e.g. Sun
d - Numeric day of the month, e.g. 01
F - Full month name, e.g. January
l - Full weekday name e.g. Sunday
date_type:
type: string
enum: [date,age]
example: '[date,age]'
description: Used by input types [date, birthdate]
fieldcode:
type: string
readOnly: true
UserGroupMappingResponse:
type: object
properties:
id:
type: integer
readOnly: true
title:
type: string
example: "Employees of Company X"
field_id:
type: integer
example: 1
field_name:
type: string
example: "Role"
field_values:
type: array
items:
type: string
example: ["employee", "administrator", "manager"]
group_ids:
type: array
items:
type: integer
example: [2570, 199, 52]
UserGroupMapping:
type: object
required:
- group_ids
properties:
id:
type: integer
readOnly: true
title:
type: string
example: "Employees of Company X"
group_ids:
type: array
items:
type: integer
example: [1, 2, 3]
field_id:
type: integer
example: 1
field_values:
type: array
items:
type: string
example: ["employee", "administrator", "manager"]
ProfileFieldGroup:
type: object
required:
- enabled
- name
- visibility
properties:
id:
type: integer
readOnly: true
example: 10
enabled:
type: boolean
name:
type: string
visibility:
type: string
example: '[personal, all, admin]'
enum: [personal, all, admin]
Quiz:
type: object
required:
- title
- slug
- required_score
properties:
id:
type: integer
readOnly: true
example: 1
title:
type: string
example: MyQuiz
slug:
type: string
description: Unique URI for use in Search Engine Friendly urls.
pattern: "[a-z-]+"
image:
type: string
format: uri
tries:
type: integer
description: Number of attempts users have to complete the quiz.
remaining_retries:
type: integer
description: Remaining tries.
description:
type: string
example: This is my quiz
course_id:
type: integer
description: Course id of the course this quiz is assigned to.
lesson_id:
type: integer
description: Lesson id of the lesson this quiz is assigned to.
created_by:
type: integer
description: User id of the user who created this quiz.
readOnly: true
created_on:
type: string
format: date
readOnly: true
required_score:
type: number
description: Required score in percentage.
example: 75
type:
type: string
example: quiz|survey
created_before:
type: string
format: date
readOnly: true
created_after:
type: string
format: date
readOnly: true
completion_message:
type: string
example: Quiz Completed!
pass_message:
type: string
example: Congratulations, you passed!
fail_message:
type: string
example: Quiz Failed, minimum score is 75%
questions:
type: array
items:
$ref: "#/components/schemas/QuizQuestion"
allow_retries:
type: boolean
duration:
type: integer
description: Time limit for the quiz in minutes. Must be in the range 0-100.
show_overlay:
type: boolean
show_answers:
type: boolean
missed_question_only:
type: boolean
description: Maps to Allow to Retake Only Incorrect Answers toggle in LMS.
quiz_result:
type: array
items:
type: object
properties:
quizresult_id:
type: integer
point:
type: integer
total_marks:
type: integer
user_id:
type: integer
example: 1625627
quizquestion_id:
type: integer
course_id:
type: integer
lesson_id:
type: integer
enabled:
type: integer
ordering:
type: integer
date:
type: string
format: datetime
answers:
type: string
archive_date:
type: string
format: date
QuizQuestion:
type: object
required:
- title
- answer1
- answer2
- correctAnswer
properties:
title:
type: string
example: "Why did foo bar?"
media:
type: string
format: uri
answer1:
type: string
example: "Because baz"
answer2:
type: string
example: "Because couldn't solve fizzbuzz"
answer3:
type: string
example: "Because bar foo"
answer4:
type: string
example: "All of the above"
correctAnswer:
type: integer
description: Index of the correct answer. 0 - answer1 , 1 - answer2, etc.
QuizResponsePayload:
type: object
required:
- user_id
- quiz_id
- course_id
- answers
properties:
user_id:
type: integer
example: 1714926
quiz_id:
type: integer
example: 1234
lesson_id:
type: integer
example: 1234
course_id:
type: integer
example: 1234
answers:
type: array
items:
type: integer
example: [0, 2, 1]
QuizResult:
type: object
properties:
id:
type: integer
readOnly: true
user_id:
type: integer
readOnly: true
quiz_id:
type: integer
format: int64
readOnly: true
answers:
type: array
items:
type: integer
readOnly: true
submitted_date:
type: string
format: date
readOnly: true
submitted_before:
type: string
format: date
readOnly: true
submitted_after:
type: string
format: date
readOnly: true
elapsed:
type: integer
readOnly: true
total_questions:
type: integer
readOnly: true
number_correct:
type: integer
readOnly: true
score:
type: number
readOnly: true
passed:
type: boolean
readOnly: true
quiz:
readOnly: true
type: object
$ref: "#/components/schemas/Quiz"
ReportsChecklists:
type: object
properties:
started_count:
type: number
completed_count:
type: number
ReportsChecklistsGroupedByUsergroup:
type: object
properties:
userGroupId:
type: object
example: 1
properties:
group_title:
type: string
description: The title of the group
started_count:
type: number
completed_count:
type: number
ReportsChecklistsGroupedByUser:
type: object
properties:
userId:
type: object
properties:
displayName:
type: string
description: The display name of the user
started_count:
type: number
completed_count:
type: number
ReportsChecklistsGroupedByChecklist:
type: object
properties:
checklistId:
type: object
example: 1
properties:
checklist_title:
type: string
description: The title of the checklist
started_count:
type: number
completed_count:
type: number
ReportsCourses:
type: object
properties:
started_count:
type: number
completed_count:
type: number
ReportsCoursesGroupedByUsergroup:
type: object
properties:
userGroupId:
type: object
example: 1
properties:
group_title:
type: string
description: The title of the group
started_count:
type: number
completed_count:
type: number
ReportsCoursesGroupedByUser:
type: object
properties:
userId:
type: object
example: 1
properties:
display_name:
type: string
description: The display name of the user
started_count:
type: number
completed_count:
type: number
ReportsCoursesGroupedByCourse:
type: object
properties:
courseId:
type: object
example: 1
properties:
course_title:
type: string
description: The course title
started_count:
type: number
completed_count:
type: number
ReportsUsers:
type: object
properties:
login_count:
type: number
active_count:
type: number
ReportsUsersGroupedByUsergroup:
type: object
properties:
groupId:
type: object
example: 1
properties:
group_title:
type: string
description: The title of the group
login_count:
type: number
completed_count:
type: number
Subscription:
type: object
required:
- title
properties:
id:
type: integer
readOnly: true
example: 1
title:
type: string
published:
type: boolean
private:
type: boolean
featured:
type: boolean
default_sub_length:
type: string
description: Default length of the subscription period. Valid values are 1-15D, 1-12M, and 1-5Y
example: 1D
default_initial_amount:
type: number
description: Amount of money (in USD) that the subscription will cost on signup.
format: float
default_amount:
type: number
description: Amount of money (in USD) that the subscription will cost when the subscription period length has elapsed and the subscription is renewed.
format: float
usergroups:
type: array
items:
type: integer
description: Array of user groups for which this subscription will be available.
description_html:
type: string
description: Plain text or HTML-formatted description that describes the subscription.
description_type:
type: string
description: Description type.
Survey:
type: object
required:
- title
properties:
id:
type: integer
readOnly: true
example: 1
title:
type: string
example: MySurvey
description:
type: string
example: This is my survey
questions:
type: array
items:
type: object
properties:
id:
type: string
readOnly: true
example: 1624487827DHmcGo
question_type:
type: string
description: Possible values are textbox, textarea, multiplechoice, multiplechoice_multiselect, and likert.
example: multiplechoice
question:
type: string
example: What is love?
multiple_choice_options:
type: string
description: Newline separated list of options for multiplechoice and multiplechoice_multiselect question types.
example: Baby\r\ndon't\r\nhurt\r\nme
params:
type: object
properties:
likert_labels:
type: string
description: Possible values are 'custom' or 'default'.
label_1:
type: string
example: Strongly Disagree
label_2:
type: string
example: Disagree
label_3:
type: string
example: Undecided
label_4:
type: string
example: Agree
label_5:
type: string
example: Strongly Agree
label_6:
type: string
label_7:
type: string
label_8:
type: string
label_9:
type: string
label_10:
type: string
label_11:
type: string
rating_number:
type: string
description: Likert scale number, possible values are 5, 7, or 11.
example: 0
rating_direction:
type: string
description: Controls the display of likert labels in quiz. Possible values are 'vertical' or 'horizontal'.
custom_completed_message:
type: string
description: Toggle for using either the default or user provided completion message. Possible values are 'custom' or 'default'.
completed_message:
type: string
description: If custom_completed_message = custom then this message is used.
enabled:
type: boolean
description: Defines the published (also called enabled) status of the survey.
modified_date:
type: string
example: "2022-12-06 12:54:43"
created_on:
type: string
example: "2022-12-06 12:54:43"
created_by:
type: integer
readOnly: true
SurveyResponse:
type: object
required:
- survey_id
- user_id
- question_id
- question_type
- question
- answer
properties:
id:
type: integer
readOnly: true
example: 1
survey_id:
type: integer
user_id:
type: integer
description: id of the user that submitted the response.
example: 1623570
lesson_id:
type: integer
description: id of the lesson that this survey was submitted in.
activity_id:
type: string
description: id of the corresponding lesson student activity used to complete the survey, it should be one of the activities inside lesson with id = lesson_id.
example: 1656638001Xehtvk
event_id:
type: integer
description: id of the event that this survey was completed as a part of. Surveys are either completed inside lessons or events.
question_id:
type: integer
example: 1659494905ZHLhxu
question_type:
type: string
description: the question type can be likert, multiplechoice, multiplechoice_multiselect, textbox or textarea.
question:
type: string
example: Rate your learning experience on a scale from 1-5
answer:
type: string
example: 5
score:
type: integer
description: Used for question_type = likert, the corresponding likert score for the selected response.
Tag:
type: object
properties:
id:
type: integer
readOnly: true
title:
type: string
readOnly: true
enabled:
type: boolean
readOnly: true
Team:
type: object
required:
- title
- member_type
properties:
id:
type: integer
readOnly: true
example: 1
title:
type: string
example: MyUserTeam
member_type:
type: string
description: Possible values are 'individuals' or 'groups'.
example: groups
description:
type: string
example: Team description
enabled:
type: boolean
example: true
description: Same as 'published'
team_lead:
type: array
items:
type: integer
description: Set of user ids. Users with ids in this set are team leads.
user_ids:
type: array
items:
type: integer
description: Set of user ids. Users with these ids will be added as team members. Only used when member_type = 'individuals'.
user_groups:
type: array
items:
type: integer
description: Set of user group ids. Users in these groups will be added as team members. Only used when member_type = 'groups'.
date_created:
type: string
format: date
readOnly: true
allow_adding_users:
type: boolean
description: If set to 'true' team leads will be able to add users to teams they are leaders of.
allow_removing_users_from_team:
type: boolean
description: If set to 'true' team leads will be able to remove users from teams they are leaders of.
allow_removing_users_from_system:
type: boolean
description: If set to 'true' team leads will be able to delete users in their team completely.
allow_managing_users_groups:
type: boolean
description: If set to 'true' team leads will be able to add or remove usergroups that are a part of the teams they are leaders of.
assignable_user_groups:
type: array
items:
type: integer
description: Set of user group ids that team leads can assign members to.
allow_assigning_courses:
type: boolean
description: If set to 'true' team leads will be able to assign team members to course in assignable_course_ids.
assignable_course_ids:
type: array
items:
type: integer
description: Set of course ids that team leads can enroll team members in.
allow_assigning_events:
type: boolean
description: If set to 'true' team leads will be able to register team members for events.
allow_assigning_learning_paths:
type: boolean
description: If set to 'true' team leads will be able to assign learning paths to teanm members.
assignable_learning_path_ids:
type: array
items:
type: integer
description: Set of learning path ids that team leads can enroll team members in.
User:
type: object
required:
- name
- username
- email
- password
properties:
id:
type: integer
format: int64
readOnly: true
example: 1714926
name:
type: string
example: John Doe
username:
type: string
example: johndoe
email:
type: string
example: johndoe@gmail.com
password:
type: string
example: password100
writeOnly: true
userGroupIds:
type: array
items:
type: integer
description: Ids of usergroups this user belongs to.
userTeamIds:
type: array
items:
type: integer
description: Ids of userteams this user belongs to. userTeamIds can only be assigned for teams with member_type = 'individuals'.
enrolledCourseIds:
type: array
items:
type: integer
requireReset:
type: boolean
description: If 'true' the user will be required to reset their password on their next login.
registerDate:
readOnly: true
type: string
format: date
lastvisitDate:
readOnly: true
type: string
format: date
customFields:
type: array
description: When assigning customFields either a field_id or title can be provided. It is recommended to use the field_id in case there is a field name with a duplicate title.
items:
$ref: "#/components/schemas/CustomFieldValue"
objects:
type: array
description: Array of Objects associated to user.
items:
$ref: "#/components/schemas/ObjectsValue"
accessLevels:
readOnly: true
type: array
items:
type: integer
status:
type: string
description: The current enabled/disabled status of the user. Possible values are active or disabled.
example: active
UserCourseProgress:
type: object
properties:
user_id:
type: integer
readOnly: true
course_id:
type: integer
language:
type: string
lessons_completed_list:
type: array
items:
type: integer
lessons_total_list:
type: array
items:
type: integer
score:
type: number
progress:
type: number
format: float
date_started:
type: string
format: date
date_last_activity:
type: string
format: date
date_completed:
type: string
format: date
date_due:
type: string
format: date
started_before:
type: string
format: date
started_after:
type: string
format: date
last_activity_before:
type: string
format: date
last_activity_after:
type: string
format: date
completed_before:
type: string
format: date
completed_after:
type: string
format: date
archive_date:
type: string
format: date
lessons:
type: object
description: Lessons list.
example:
{
"activities":
[
{
"activity_id": "1619209659BqkVD2",
"user_id": "User ID",
"activity_name": "Name",
"activity_type": "interactive",
"student_response": "Recorded student response for activity",
"activity_status": "in progress",
},
],
}
UserGroup:
type: object
properties:
id:
type: integer
readOnly: true
example: 2
title:
type: string
example: MyUserGroup
parent_id:
type: integer
description: User group id of the parent group.
example: 1
userIds:
type: array
items:
type: integer
description: User ids of users that are in this group.
links:
type: object
readOnly: true
properties:
parent_url:
type: string
children_url:
type: string
descendants_url:
type: string
lft:
type: integer
description: Start of range that contains descendant user groups. See https://en.wikipedia.org/wiki/Nested_set_model for more info.
readOnly: true
rgt:
type: integer
description: End of range that contains descendant user groups. See https://en.wikipedia.org/wiki/Nested_set_model for more info.
readOnly: true
UserPayload:
type: object
required:
- name
- username
- email
- password
properties:
id:
type: integer
format: int64
readOnly: true
example: 1714926
name:
type: string
example: John Doe
username:
type: string
example: johndoe
email:
type: string
example: johndoe@gmail.com
password:
type: string
example: password100
writeOnly: true
userGroupIds:
type: array
items:
type: integer
description: Ids of usergroups this user belongs to.
userTeamIds:
type: array
items:
type: integer
description: Ids of userteams this user belongs to. userTeamIds can only be assigned for teams with member_type = 'individuals'.
enrolledCourseIds:
type: array
items:
type: integer
requireReset:
type: boolean
description: If 'true' the user will be required to reset their password on their next login.
registerDate:
readOnly: true
type: string
format: date
lastvisitDate:
readOnly: true
type: string
format: date
customFields:
type: array
description: When assigning customFields either a field_id or title can be provided. It is recommended to use the field_id in case there is a field name with a duplicate title.
items:
$ref: "#/components/schemas/CustomFieldValue"
objectIds:
type: array
description: Array of Objects Ids.
items:
type: integer
accessLevels:
readOnly: true
type: array
items:
type: integer
status:
type: string
enum: [active, disabled]
example: '[active, disabled]'