KosmoKrator

other

Moosend Lua API for KosmoKrator Agents

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

7 functions 5 read 2 write API key auth

Lua Namespace

Agents call this integration through app.integrations.moosend.*. Use lua_read_doc("integrations.moosend") 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.

Moosend — Lua API Reference

list_mailing_lists

List all mailing lists in your Moosend account.

Parameters

NameTypeRequiredDescription
limitintegernoMaximum number of mailing lists to return (default: 10).
offsetintegernoOffset for pagination (default: 0).

Example

local result = app.integrations.moosend.list_mailing_lists({
  limit = 20,
  offset = 0
})

for _, list in ipairs(result.MailingLists) do
  print(list.Name .. " (ID: " .. list.ID .. ") — " .. list.ActiveMemberCount .. " active subscribers")
end

get_mailing_list

Get detailed information about a specific mailing list.

Parameters

NameTypeRequiredDescription
idstringyesThe mailing list ID.

Example

local result = app.integrations.moosend.get_mailing_list({
  id = "abc123-def456"
})

local list = result.MailingList
print("List: " .. list.Name)
print("Active subscribers: " .. list.ActiveMemberCount)
print("Unsubscribed: " .. list.UnsubscribedMemberCount)

create_mailing_list

Create a new mailing list in Moosend.

Parameters

NameTypeRequiredDescription
namestringyesThe name for the new mailing list.

Example

local result = app.integrations.moosend.create_mailing_list({
  name = "Newsletter Subscribers"
})

print("Created list with ID: " .. result.MailingList.ID)

list_subscribers

List subscribers for a specific mailing list. Supports filtering by status and pagination.

Parameters

NameTypeRequiredDescription
list_idstringyesThe mailing list ID to retrieve subscribers for.
limitintegernoMaximum number of subscribers to return (default: 10).
pageintegernoPage number for pagination (default: 1).
statusstringnoFilter by status: "Subscribed", "Unsubscribed", "Bounced", "Removed".

Example

local result = app.integrations.moosend.list_subscribers({
  list_id = "abc123-def456",
  limit = 50,
  page = 1,
  status = "Subscribed"
})

for _, sub in ipairs(result.Subscribers) do
  print(sub.Email .. " — " .. (sub.Name or "N/A"))
end

add_subscriber

Add a new subscriber to a Moosend mailing list.

Parameters

NameTypeRequiredDescription
list_idstringyesThe mailing list ID to add the subscriber to.
emailstringyesThe subscriber’s email address.
namestringnoThe subscriber’s name.

Example

local result = app.integrations.moosend.add_subscriber({
  list_id = "abc123-def456",
  email = "[email protected]",
  name = "Jane Doe"
})

print("Added subscriber ID: " .. result.Subscriber.ID)

list_campaigns

List all email campaigns in your Moosend account. Supports filtering by status and pagination.

Parameters

NameTypeRequiredDescription
limitintegernoMaximum number of campaigns to return (default: 10).
pageintegernoPage number for pagination (default: 1).
statusstringnoFilter by status: "Sent", "Draft", "Scheduled", "Sending".

Example

local result = app.integrations.moosend.list_campaigns({
  limit = 20,
  page = 1,
  status = "Sent"
})

for _, campaign in ipairs(result.Campaigns) do
  print(campaign.Name .. " — Subject: " .. campaign.Subject .. " — Status: " .. campaign.Status)
end

get_current_user

Get the current authenticated Moosend user. Useful as a health check to verify API connectivity.

Parameters

None.

Example

local result = app.integrations.moosend.get_current_user({})

print("User: " .. result.User.Email)
print("Account: " .. result.User.Company)

Multi-Account Usage

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

-- Default account (always works)
app.integrations.moosend.function_name({...})

-- Explicit default (portable across setups)
app.integrations.moosend.default.function_name({...})

-- Named accounts
app.integrations.moosend.work.function_name({...})
app.integrations.moosend.personal.function_name({...})

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

Raw agent markdown
# Moosend — Lua API Reference

## list_mailing_lists

List all mailing lists in your Moosend account.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Maximum number of mailing lists to return (default: 10). |
| `offset` | integer | no | Offset for pagination (default: 0). |

### Example

```lua
local result = app.integrations.moosend.list_mailing_lists({
  limit = 20,
  offset = 0
})

for _, list in ipairs(result.MailingLists) do
  print(list.Name .. " (ID: " .. list.ID .. ") — " .. list.ActiveMemberCount .. " active subscribers")
end
```

---

## get_mailing_list

Get detailed information about a specific mailing list.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | string | yes | The mailing list ID. |

### Example

```lua
local result = app.integrations.moosend.get_mailing_list({
  id = "abc123-def456"
})

local list = result.MailingList
print("List: " .. list.Name)
print("Active subscribers: " .. list.ActiveMemberCount)
print("Unsubscribed: " .. list.UnsubscribedMemberCount)
```

---

## create_mailing_list

Create a new mailing list in Moosend.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `name` | string | yes | The name for the new mailing list. |

### Example

```lua
local result = app.integrations.moosend.create_mailing_list({
  name = "Newsletter Subscribers"
})

print("Created list with ID: " .. result.MailingList.ID)
```

---

## list_subscribers

List subscribers for a specific mailing list. Supports filtering by status and pagination.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `list_id` | string | yes | The mailing list ID to retrieve subscribers for. |
| `limit` | integer | no | Maximum number of subscribers to return (default: 10). |
| `page` | integer | no | Page number for pagination (default: 1). |
| `status` | string | no | Filter by status: `"Subscribed"`, `"Unsubscribed"`, `"Bounced"`, `"Removed"`. |

### Example

```lua
local result = app.integrations.moosend.list_subscribers({
  list_id = "abc123-def456",
  limit = 50,
  page = 1,
  status = "Subscribed"
})

for _, sub in ipairs(result.Subscribers) do
  print(sub.Email .. " — " .. (sub.Name or "N/A"))
end
```

---

## add_subscriber

Add a new subscriber to a Moosend mailing list.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `list_id` | string | yes | The mailing list ID to add the subscriber to. |
| `email` | string | yes | The subscriber's email address. |
| `name` | string | no | The subscriber's name. |

### Example

```lua
local result = app.integrations.moosend.add_subscriber({
  list_id = "abc123-def456",
  email = "[email protected]",
  name = "Jane Doe"
})

print("Added subscriber ID: " .. result.Subscriber.ID)
```

---

## list_campaigns

List all email campaigns in your Moosend account. Supports filtering by status and pagination.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Maximum number of campaigns to return (default: 10). |
| `page` | integer | no | Page number for pagination (default: 1). |
| `status` | string | no | Filter by status: `"Sent"`, `"Draft"`, `"Scheduled"`, `"Sending"`. |

### Example

```lua
local result = app.integrations.moosend.list_campaigns({
  limit = 20,
  page = 1,
  status = "Sent"
})

for _, campaign in ipairs(result.Campaigns) do
  print(campaign.Name .. " — Subject: " .. campaign.Subject .. " — Status: " .. campaign.Status)
end
```

---

## get_current_user

Get the current authenticated Moosend user. Useful as a health check to verify API connectivity.

### Parameters

None.

### Example

```lua
local result = app.integrations.moosend.get_current_user({})

print("User: " .. result.User.Email)
print("Account: " .. result.User.Company)
```

---

## Multi-Account Usage

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

```lua
-- Default account (always works)
app.integrations.moosend.function_name({...})

-- Explicit default (portable across setups)
app.integrations.moosend.default.function_name({...})

-- Named accounts
app.integrations.moosend.work.function_name({...})
app.integrations.moosend.personal.function_name({...})
```

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

Metadata-Derived Lua Example

local result = app.integrations.moosend.moosend_list_mailing_lists({
  limit = 1,
  offset = 1
})
print(result)

Functions

moosend_list_mailing_lists

List all mailing lists in your Moosend account. Returns list IDs, names, and subscriber counts.

Operation
Read read
Full name
moosend.moosend_list_mailing_lists
ParameterTypeRequiredDescription
limit integer no Maximum number of mailing lists to return (default: 10).
offset integer no Offset for pagination (default: 0).

moosend_get_mailing_list

Get detailed information about a specific mailing list in Moosend, including subscriber counts and settings.

Operation
Read read
Full name
moosend.moosend_get_mailing_list
ParameterTypeRequiredDescription
id string yes The mailing list ID.

moosend_create_mailing_list

Create a new mailing list in Moosend. Returns the newly created list with its ID.

Operation
Write write
Full name
moosend.moosend_create_mailing_list
ParameterTypeRequiredDescription
name string yes The name for the new mailing list.

moosend_list_subscribers

List subscribers for a specific mailing list in Moosend. Supports filtering by status and pagination.

Operation
Read read
Full name
moosend.moosend_list_subscribers
ParameterTypeRequiredDescription
list_id string yes The mailing list ID to retrieve subscribers for.
limit integer no Maximum number of subscribers to return (default: 10).
page integer no Page number for pagination (default: 1).
status string no Filter by subscriber status: "Subscribed", "Unsubscribed", "Bounced", "Removed".

moosend_add_subscriber

Add a new subscriber to a Moosend mailing list. Requires an email address; name is optional.

Operation
Write write
Full name
moosend.moosend_add_subscriber
ParameterTypeRequiredDescription
list_id string yes The mailing list ID to add the subscriber to.
email string yes The subscriber's email address.
name string no The subscriber's name (optional).

moosend_list_campaigns

List all email campaigns in your Moosend account. Supports filtering by status and pagination.

Operation
Read read
Full name
moosend.moosend_list_campaigns
ParameterTypeRequiredDescription
limit integer no Maximum number of campaigns to return (default: 10).
page integer no Page number for pagination (default: 1).
status string no Filter by campaign status: "Sent", "Draft", "Scheduled", "Sending".

moosend_get_current_user

Get the current authenticated Moosend user. Useful as a health check to verify API connectivity.

Operation
Read read
Full name
moosend.moosend_get_current_user
ParameterTypeRequiredDescription
No parameters.