Skip to main content
POST
/
api
/
public
/
v1
/
training
/
courses
Create training course
curl --request POST \
  --url https://app.msportal.ai/api/public/v1/training/courses \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "<string>",
  "courseType": "<string>",
  "description": "<string>",
  "courseCategory": "<string>",
  "companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "isMandatory": true,
  "passingScore": 50,
  "duration": 2,
  "maxAttempts": 2,
  "expiresAfterDays": 2,
  "youtubeUrl": "<string>",
  "artworkUrl": "<string>"
}
'
{
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "title": "<string>",
    "description": "<string>",
    "courseType": "<string>",
    "courseCategory": "<string>",
    "isMandatory": true,
    "passingScore": 123,
    "duration": 123,
    "maxAttempts": 123,
    "expiresAfterDays": 123,
    "artworkUrl": "<string>",
    "youtubeUrl": "<string>",
    "isGlobal": true,
    "company": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "<string>"
    },
    "enrollmentCount": 123,
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "scormUrl": "<string>",
    "metadata": {}
  }
}

Authorizations

Authorization
string
header
required

Use your API key as a Bearer token. API keys can be generated in Settings → Integrations → API Access.

Body

application/json
title
string
required

Course title (required)

Required string length: 1 - 200
courseType
string
required

Course type (required)

Required string length: 1 - 50
description
string

Course description

Maximum string length: 5000
courseCategory
string

Course category

Maximum string length: 100
companyId
string<uuid>

Company ID (for company-specific courses)

isMandatory
boolean

Whether completion is mandatory

passingScore
number

Required passing score

Required range: 0 <= x <= 100
duration
number

Duration in minutes

Required range: x >= 1
maxAttempts
number

Maximum attempts allowed

Required range: x >= 1
expiresAfterDays
number

Certificate validity in days

Required range: x >= 1
youtubeUrl
string<uri>

YouTube video URL

artworkUrl
string<uri>

Artwork/thumbnail URL

Response

Course created

data
object
required