KosmoKrator

education

Litmos Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Litmos KosmoKrator integration.

7 functions 6 read 1 write API key auth

Lua Namespace

Agents call this integration through app.integrations.litmos.*. Use lua_read_doc("integrations.litmos") inside KosmoKrator to discover the same reference at runtime.

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Litmos LMS — Lua API Reference

list_users

List users in your Litmos organization.

Parameters

NameTypeRequiredDescription
limitintegernoNumber of users per page (default: 100, max: 1000)
pageintegernoPage number for pagination (default: 1)
searchstringnoSearch term to filter users by name or email

Examples

-- List first 50 users
local result = app.integrations.litmos.list_users({
  limit = 50,
  page = 1
})

-- Search for a user
local result = app.integrations.litmos.list_users({
  search = "john"
})

for _, user in ipairs(result) do
  print(user.Id .. ": " .. user.FirstName .. " " .. user.LastName .. " (" .. user.Email .. ")")
end

get_user

Get detailed information about a specific Litmos user.

Parameters

NameTypeRequiredDescription
idstringyesThe Litmos user ID

Example

local user = app.integrations.litmos.get_user({ id = "abc123" })
print(user.FirstName .. " " .. user.LastName)
print("Email: " .. user.Email)
print("Status: " .. user.Active)

create_user

Create a new user in Litmos.

Parameters

NameTypeRequiredDescription
FirstNamestringyesThe user’s first name
LastNamestringyesThe user’s last name
EmailstringyesThe user’s email address
UserNamestringyesThe user’s login username

Example

local user = app.integrations.litmos.create_user({
  FirstName = "Jane",
  LastName = "Doe",
  Email = "[email protected]",
  UserName = "janedoe"
})
print("Created user: " .. user.Id)

list_courses

List courses in your Litmos organization.

Parameters

NameTypeRequiredDescription
limitintegernoNumber of courses per page (default: 100, max: 1000)
pageintegernoPage number for pagination (default: 1)
searchstringnoSearch term to filter courses by name

Examples

-- List all courses
local result = app.integrations.litmos.list_courses({
  limit = 100,
  page = 1
})

-- Search for a course
local result = app.integrations.litmos.list_courses({
  search = "onboarding"
})

for _, course in ipairs(result) do
  print(course.Id .. ": " .. course.Name)
end

get_course

Get detailed information about a specific Litmos course.

Parameters

NameTypeRequiredDescription
idstringyesThe Litmos course ID

Example

local course = app.integrations.litmos.get_course({ id = "course-456" })
print("Course: " .. course.Name)
print("Description: " .. (course.Description or "N/A"))
print("Active: " .. tostring(course.Active))

list_teams

List teams in your Litmos organization.

Parameters

NameTypeRequiredDescription
limitintegernoNumber of teams per page (default: 100, max: 1000)
pageintegernoPage number for pagination (default: 1)

Example

local result = app.integrations.litmos.list_teams({
  limit = 50,
  page = 1
})

for _, team in ipairs(result) do
  print(team.Id .. ": " .. team.Name)
end

get_current_user

Get the profile of the currently authenticated Litmos user.

Parameters

None.

Example

local me = app.integrations.litmos.get_current_user({})
print("Logged in as: " .. me.FirstName .. " " .. me.LastName)
print("Email: " .. me.Email)

Multi-Account Usage

If you have multiple Litmos accounts configured, use account-specific namespaces:

-- Default account (always works)
app.integrations.litmos.list_users({...})

-- Explicit default (portable across setups)
app.integrations.litmos.default.list_users({...})

-- Named accounts
app.integrations.litmos.production.list_users({...})
app.integrations.litmos.staging.list_users({...})

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# Litmos LMS — Lua API Reference

## list_users

List users in your Litmos organization.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Number of users per page (default: 100, max: 1000) |
| `page` | integer | no | Page number for pagination (default: 1) |
| `search` | string | no | Search term to filter users by name or email |

### Examples

```lua
-- List first 50 users
local result = app.integrations.litmos.list_users({
  limit = 50,
  page = 1
})

-- Search for a user
local result = app.integrations.litmos.list_users({
  search = "john"
})

for _, user in ipairs(result) do
  print(user.Id .. ": " .. user.FirstName .. " " .. user.LastName .. " (" .. user.Email .. ")")
end
```

---

## get_user

Get detailed information about a specific Litmos user.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | string | yes | The Litmos user ID |

### Example

```lua
local user = app.integrations.litmos.get_user({ id = "abc123" })
print(user.FirstName .. " " .. user.LastName)
print("Email: " .. user.Email)
print("Status: " .. user.Active)
```

---

## create_user

Create a new user in Litmos.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `FirstName` | string | yes | The user's first name |
| `LastName` | string | yes | The user's last name |
| `Email` | string | yes | The user's email address |
| `UserName` | string | yes | The user's login username |

### Example

```lua
local user = app.integrations.litmos.create_user({
  FirstName = "Jane",
  LastName = "Doe",
  Email = "[email protected]",
  UserName = "janedoe"
})
print("Created user: " .. user.Id)
```

---

## list_courses

List courses in your Litmos organization.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Number of courses per page (default: 100, max: 1000) |
| `page` | integer | no | Page number for pagination (default: 1) |
| `search` | string | no | Search term to filter courses by name |

### Examples

```lua
-- List all courses
local result = app.integrations.litmos.list_courses({
  limit = 100,
  page = 1
})

-- Search for a course
local result = app.integrations.litmos.list_courses({
  search = "onboarding"
})

for _, course in ipairs(result) do
  print(course.Id .. ": " .. course.Name)
end
```

---

## get_course

Get detailed information about a specific Litmos course.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | string | yes | The Litmos course ID |

### Example

```lua
local course = app.integrations.litmos.get_course({ id = "course-456" })
print("Course: " .. course.Name)
print("Description: " .. (course.Description or "N/A"))
print("Active: " .. tostring(course.Active))
```

---

## list_teams

List teams in your Litmos organization.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Number of teams per page (default: 100, max: 1000) |
| `page` | integer | no | Page number for pagination (default: 1) |

### Example

```lua
local result = app.integrations.litmos.list_teams({
  limit = 50,
  page = 1
})

for _, team in ipairs(result) do
  print(team.Id .. ": " .. team.Name)
end
```

---

## get_current_user

Get the profile of the currently authenticated Litmos user.

### Parameters

None.

### Example

```lua
local me = app.integrations.litmos.get_current_user({})
print("Logged in as: " .. me.FirstName .. " " .. me.LastName)
print("Email: " .. me.Email)
```

---

## Multi-Account Usage

If you have multiple Litmos accounts configured, use account-specific namespaces:

```lua
-- Default account (always works)
app.integrations.litmos.list_users({...})

-- Explicit default (portable across setups)
app.integrations.litmos.default.list_users({...})

-- Named accounts
app.integrations.litmos.production.list_users({...})
app.integrations.litmos.staging.list_users({...})
```

All functions are identical across accounts — only the credentials differ.

Metadata-Derived Lua Example

local result = app.integrations.litmos.litmos_list_users({
  limit = 1,
  page = 1,
  search = "example_search"
})
print(result)

Functions

litmos_list_users

List users in your Litmos organization. Returns user IDs, names, emails, and status. Supports pagination and search.

Operation
Read read
Full name
litmos.litmos_list_users
ParameterTypeRequiredDescription
limit integer no Number of users to return per page (default: 100, max: 1000).
page integer no Page number for pagination (default: 1).
search string no Search term to filter users by name or email.

litmos_get_user

Get detailed information about a specific Litmos user by their ID, including profile data, course assignments, and team memberships.

Operation
Read read
Full name
litmos.litmos_get_user
ParameterTypeRequiredDescription
id string yes The Litmos user ID.

litmos_create_user

Create a new user in Litmos. Requires a first name, last name, email address, and username for login.

Operation
Write write
Full name
litmos.litmos_create_user
ParameterTypeRequiredDescription
FirstName string yes The user's first name.
LastName string yes The user's last name.
Email string yes The user's email address.
UserName string yes The user's login username.

litmos_list_courses

List courses in your Litmos organization. Returns course IDs, names, descriptions, and status. Supports pagination and search.

Operation
Read read
Full name
litmos.litmos_list_courses
ParameterTypeRequiredDescription
limit integer no Number of courses to return per page (default: 100, max: 1000).
page integer no Page number for pagination (default: 1).
search string no Search term to filter courses by name.

litmos_get_course

Get detailed information about a specific Litmos course by its ID, including modules, description, and completion settings.

Operation
Read read
Full name
litmos.litmos_get_course
ParameterTypeRequiredDescription
id string yes The Litmos course ID.

litmos_list_teams

List teams in your Litmos organization. Returns team IDs, names, and description. Supports pagination.

Operation
Read read
Full name
litmos.litmos_list_teams
ParameterTypeRequiredDescription
limit integer no Number of teams to return per page (default: 100, max: 1000).
page integer no Page number for pagination (default: 1).

litmos_get_current_user

Get the profile of the currently authenticated Litmos user. Useful for verifying API credentials and identifying the connected account.

Operation
Read read
Full name
litmos.litmos_get_current_user
ParameterTypeRequiredDescription
No parameters.