Academy

Manage courses, enrollments, and training programs. Create learning content, enroll employees or external users, and track completion progress.


GET/v1/academy/courses

List courses

Retrieve a paginated list of all courses.

Optional parameters

  • Name
    status
    Type
    string
    Description

    Filter by status: draft, published, archived.

  • Name
    category
    Type
    string
    Description

    Filter by course category.

  • Name
    limit
    Type
    integer
    Description

    Maximum number of records to return.

Request

GET
/v1/academy/courses
curl https://api.umbraerp.com/v1/academy/courses \
  -H "Authorization: Bearer <your_access_token>"

Response

{
  "result": "success",
  "courses": [
    {
      "id": "course_001",
      "title": "Onboarding Essentials",
      "description": "[PLACEHOLDER: course description]",
      "status": "published",
      "category": "Onboarding",
      "duration_hours": 4,
      "enrollment_count": 25,
      "created_at": "2026-01-10T08:00:00Z"
    }
  ],
  "total_count": 1
}

POST/v1/academy/courses

Create course

Create a new course in the academy.

Required attributes

  • Name
    title
    Type
    string
    Description

    Course title.

  • Name
    description
    Type
    string
    Description

    Course description.

Optional attributes

  • Name
    category
    Type
    string
    Description

    Course category.

  • Name
    duration_hours
    Type
    number
    Description

    Estimated duration in hours.

  • Name
    status
    Type
    string
    Description

    Initial status: draft or published (default: draft).

Request

POST
/v1/academy/courses
curl -X POST https://api.umbraerp.com/v1/academy/courses \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Onboarding Essentials",
    "description": "Introduction to company policies and tools",
    "category": "Onboarding",
    "duration_hours": 4,
    "status": "published"
  }'

Response

{
  "result": "success",
  "course_id": "course_001",
  "message": "Course created successfully."
}

GET/v1/academy/courses/:id

Get course

Retrieve details of a specific course, including modules and enrollment stats.

Request

GET
/v1/academy/courses/course_001
curl https://api.umbraerp.com/v1/academy/courses/course_001 \
  -H "Authorization: Bearer <your_access_token>"

POST/v1/academy/courses/:id/enroll

Enroll user

Enroll a user in a course.

Required attributes

  • Name
    user_id
    Type
    string
    Description

    The user ID to enroll.

Request

POST
/v1/academy/courses/course_001/enroll
curl -X POST https://api.umbraerp.com/v1/academy/courses/course_001/enroll \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "emp_001"
  }'

Response

{
  "result": "success",
  "enrollment_id": "enr_001",
  "message": "User enrolled successfully."
}

GET/v1/academy/enrollments

List enrollments

Retrieve all enrollments, optionally filtered by course or user.

Optional parameters

  • Name
    course_id
    Type
    string
    Description

    Filter by course ID.

  • Name
    user_id
    Type
    string
    Description

    Filter by user ID.

  • Name
    status
    Type
    string
    Description

    Filter by status: enrolled, in_progress, completed.

Request

GET
/v1/academy/enrollments
curl https://api.umbraerp.com/v1/academy/enrollments \
  -H "Authorization: Bearer <your_access_token>"

Response

{
  "result": "success",
  "enrollments": [
    {
      "id": "enr_001",
      "course_id": "course_001",
      "user_id": "emp_001",
      "status": "in_progress",
      "progress": 60,
      "enrolled_at": "2026-02-01T09:00:00Z"
    }
  ]
}

Was this page helpful?