KosmoKrator

other

Mailer Send Lua API for KosmoKrator Agents

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

7 functions 6 read 1 write API token auth

Lua Namespace

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

MailerSend — Lua API Reference

list_messages

List email messages from your MailerSend account.

Parameters

NameTypeRequiredDescription
limitintegernoMax results per page (default: 25)
pageintegernoPage number (default: 1)

Example

local result = app.integrations["mailer-send"].list_messages({
  limit = 10,
  page = 1
})

for _, msg in ipairs(result.data or {}) do
  print(msg.id .. ": " .. (msg.subject or "(no subject)"))
end

get_message

Get detailed information about a specific email message.

Parameters

NameTypeRequiredDescription
idstringyesThe unique message ID

Example

local result = app.integrations["mailer-send"].get_message({
  id = "msg_abc123"
})

print("Status: " .. result.data.status)
print("Subject: " .. result.data.subject)

send_email

Send an email through MailerSend.

Parameters

NameTypeRequiredDescription
fromobjectyesSender with email and name keys
toarrayyesArray of recipient objects with email and optional name
subjectstringyesEmail subject line
htmlstringnoHTML body content
textstringnoPlain text body content

Example

local result = app.integrations["mailer-send"].send_email({
  from = {
    email = "[email protected]",
    name = "Acme Corp"
  },
  to = {
    { email = "[email protected]", name = "John Doe" }
  },
  subject = "Welcome to Acme!",
  html = "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
  text = "Welcome! Thanks for signing up."
})

print("Message ID: " .. result.data.message_id)

list_templates

List email templates from your MailerSend account.

Parameters

NameTypeRequiredDescription
limitintegernoMax results per page (default: 25)
pageintegernoPage number (default: 1)

Example

local result = app.integrations["mailer-send"].list_templates({
  limit = 20
})

for _, tpl in ipairs(result.data or {}) do
  print(tpl.id .. ": " .. tpl.name)
end

list_domains

List sending domains configured in your MailerSend account.

Parameters

NameTypeRequiredDescription
limitintegernoMax results per page (default: 25)
pageintegernoPage number (default: 1)
verifiedbooleannoFilter by verification status

Example

local result = app.integrations["mailer-send"].list_domains({
  limit = 50,
  verified = true
})

for _, domain in ipairs(result.data or {}) do
  print(domain.name .. " - verified: " .. tostring(domain.verified))
end

list_recipients

List recipients (contacts) from your MailerSend account.

Parameters

NameTypeRequiredDescription
limitintegernoMax results per page (default: 25)
pageintegernoPage number (default: 1)

Example

local result = app.integrations["mailer-send"].list_recipients({
  limit = 50,
  page = 1
})

for _, rcpt in ipairs(result.data or {}) do
  print(rcpt.email .. " - " .. (rcpt.name or ""))
end

get_current_user

Verify MailerSend API connectivity and token validity.

Parameters

None.

Example

local result = app.integrations["mailer-send"].get_current_user({})

if result.status == "connected" then
  print("MailerSend API is reachable!")
end

Multi-Account Usage

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

-- Default account (always works)
app.integrations["mailer-send"].list_messages({})

-- Explicit default (portable across setups)
app.integrations["mailer-send"].default.list_messages({})

-- Named accounts
app.integrations["mailer-send"].production.list_messages({})
app.integrations["mailer-send"].staging.list_messages({})

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

Raw agent markdown
# MailerSend — Lua API Reference

## list_messages

List email messages from your MailerSend account.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Max results per page (default: 25) |
| `page` | integer | no | Page number (default: 1) |

### Example

```lua
local result = app.integrations["mailer-send"].list_messages({
  limit = 10,
  page = 1
})

for _, msg in ipairs(result.data or {}) do
  print(msg.id .. ": " .. (msg.subject or "(no subject)"))
end
```

---

## get_message

Get detailed information about a specific email message.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | string | yes | The unique message ID |

### Example

```lua
local result = app.integrations["mailer-send"].get_message({
  id = "msg_abc123"
})

print("Status: " .. result.data.status)
print("Subject: " .. result.data.subject)
```

---

## send_email

Send an email through MailerSend.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `from` | object | yes | Sender with `email` and `name` keys |
| `to` | array | yes | Array of recipient objects with `email` and optional `name` |
| `subject` | string | yes | Email subject line |
| `html` | string | no | HTML body content |
| `text` | string | no | Plain text body content |

### Example

```lua
local result = app.integrations["mailer-send"].send_email({
  from = {
    email = "[email protected]",
    name = "Acme Corp"
  },
  to = {
    { email = "[email protected]", name = "John Doe" }
  },
  subject = "Welcome to Acme!",
  html = "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
  text = "Welcome! Thanks for signing up."
})

print("Message ID: " .. result.data.message_id)
```

---

## list_templates

List email templates from your MailerSend account.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Max results per page (default: 25) |
| `page` | integer | no | Page number (default: 1) |

### Example

```lua
local result = app.integrations["mailer-send"].list_templates({
  limit = 20
})

for _, tpl in ipairs(result.data or {}) do
  print(tpl.id .. ": " .. tpl.name)
end
```

---

## list_domains

List sending domains configured in your MailerSend account.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Max results per page (default: 25) |
| `page` | integer | no | Page number (default: 1) |
| `verified` | boolean | no | Filter by verification status |

### Example

```lua
local result = app.integrations["mailer-send"].list_domains({
  limit = 50,
  verified = true
})

for _, domain in ipairs(result.data or {}) do
  print(domain.name .. " - verified: " .. tostring(domain.verified))
end
```

---

## list_recipients

List recipients (contacts) from your MailerSend account.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Max results per page (default: 25) |
| `page` | integer | no | Page number (default: 1) |

### Example

```lua
local result = app.integrations["mailer-send"].list_recipients({
  limit = 50,
  page = 1
})

for _, rcpt in ipairs(result.data or {}) do
  print(rcpt.email .. " - " .. (rcpt.name or ""))
end
```

---

## get_current_user

Verify MailerSend API connectivity and token validity.

### Parameters

None.

### Example

```lua
local result = app.integrations["mailer-send"].get_current_user({})

if result.status == "connected" then
  print("MailerSend API is reachable!")
end
```

---

## Multi-Account Usage

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

```lua
-- Default account (always works)
app.integrations["mailer-send"].list_messages({})

-- Explicit default (portable across setups)
app.integrations["mailer-send"].default.list_messages({})

-- Named accounts
app.integrations["mailer-send"].production.list_messages({})
app.integrations["mailer-send"].staging.list_messages({})
```

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

Metadata-Derived Lua Example

local result = app.integrations.mailer_send.mailer_send_list_messages({
  limit = 1,
  page = 1
})
print(result)

Functions

mailer_send_list_messages

List email messages from your MailerSend account. Returns a paginated list of sent messages with their IDs, subjects, and statuses.

Operation
Read read
Full name
mailer-send.mailer_send_list_messages
ParameterTypeRequiredDescription
limit integer no Maximum number of messages to return per page (default: 25).
page integer no Page number for pagination (default: 1).

mailer_send_get_message

Get detailed information about a specific email message by its ID. Returns the full message object including status, recipients, subject, and content.

Operation
Read read
Full name
mailer-send.mailer_send_get_message
ParameterTypeRequiredDescription
id string yes The unique message ID.

mailer_send_send_email

Send an email through the MailerSend API. Requires a sender (from), one or more recipients (to), and a subject. Optionally provide HTML and/or plain text content.

Operation
Write write
Full name
mailer-send.mailer_send_send_email
ParameterTypeRequiredDescription
from object yes Sender object with "email" (required) and "name" (required) keys, e.g. {"email": "[email protected]", "name": "Acme Corp"}.
to array yes Array of recipient objects, each with "email" (required) and optional "name" keys, e.g. [{"email": "[email protected]", "name": "John"}].
subject string yes The email subject line.
html string no HTML body content for the email.
text string no Plain text body content for the email.

mailer_send_list_templates

List email templates available in your MailerSend account. Returns template IDs, names, and types for use when sending templated emails.

Operation
Read read
Full name
mailer-send.mailer_send_list_templates
ParameterTypeRequiredDescription
limit integer no Maximum number of templates to return per page (default: 25).
page integer no Page number for pagination (default: 1).

mailer_send_list_domains

List sending domains configured in your MailerSend account. Returns domain names, verification statuses, and related settings.

Operation
Read read
Full name
mailer-send.mailer_send_list_domains
ParameterTypeRequiredDescription
limit integer no Maximum number of domains to return per page (default: 25).
page integer no Page number for pagination (default: 1).
verified boolean no Filter domains by verification status. Pass true for verified only, false for unverified only.

mailer_send_list_recipients

List recipients (contacts) from your MailerSend account. Returns recipient emails, names, and subscription statuses.

Operation
Read read
Full name
mailer-send.mailer_send_list_recipients
ParameterTypeRequiredDescription
limit integer no Maximum number of recipients to return per page (default: 25).
page integer no Page number for pagination (default: 1).

mailer_send_get_current_user

Verify MailerSend API connectivity by fetching a minimal list of domains. Use this as a health check to confirm the API token is valid and the service is reachable.

Operation
Read read
Full name
mailer-send.mailer_send_get_current_user
ParameterTypeRequiredDescription
No parameters.