productivity
MailerSend Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the MailerSend KosmoKrator integration.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.
Call Lua from the Headless CLI
Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic
MailerSend workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.mailer_send.mailersendaddblocklistrecipients({}))' --json kosmo integrations:lua --eval 'print(docs.read("mailer-send"))' --json
kosmo integrations:lua --eval 'print(docs.read("mailer-send.mailersendaddblocklistrecipients"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local mailer_send = app.integrations.mailer_send
local result = mailer_send.mailersendaddblocklistrecipients({})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.mailer_send, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.mailer_send.default.* or app.integrations.mailer_send.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need MailerSend, use the narrower mcp:lua command.
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json 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
Namespace: app.integrations["mailer-send"]
This integration uses the MailerSend API V1 with bearer-token authentication. The API returns MailerSend’s native JSON response shapes, commonly data, links, and meta for list endpoints.
Official API reference: https://developers.mailersend.com/api/v1/
Coverage
The integration exposes tools for:
- Email sending: single email and bulk email.
- Messages, templates, domains, DNS records, verification, and domain recipients.
- Activity and analytics by date, country, user-agent, and reading environment.
- Recipients and suppression lists for hard bounces, spam complaints, unsubscribes, and on-hold entries.
- Webhooks and inbound email routes.
- SMTP users for sending domains.
Sending Email
local result = app.integrations["mailer-send"].send_email({
from = {email = "noreply@example.test", name = "Example"},
to = {
{email = "ada@example.test", name = "Ada"}
},
subject = "Welcome",
html = "<p>Hello Ada</p>",
text = "Hello Ada",
tags = {"onboarding"},
personalization = {
{
email = "ada@example.test",
data = {first_name = "Ada"}
}
}
})
For batches, pass an array of full MailerSend email payloads:
local bulk = app.integrations["mailer-send"].send_bulk_email({
messages = {
{
from = {email = "noreply@example.test", name = "Example"},
to = {{email = "ada@example.test"}},
subject = "Batch 1",
text = "Hello"
}
}
})
Domains
local domains = app.integrations["mailer-send"].list_domains({
limit = 25,
page = 1,
verified = true
})
local dns = app.integrations["mailer-send"].get_domain_dns_records({
domain_id = "domain_123"
})
local status = app.integrations["mailer-send"].get_domain_verification_status({
domain_id = "domain_123"
})
Domain writes include create_domain, delete_domain, and update_domain_settings.
Activity And Analytics
MailerSend activity endpoints require a domain and a Unix timestamp range. Analytics data is retained by MailerSend for a limited period.
local activity = app.integrations["mailer-send"].list_activities({
domain_id = "domain_123",
date_from = 1778112000,
date_to = 1778198400,
event = {"sent", "delivered"},
limit = 25
})
local by_date = app.integrations["mailer-send"].get_analytics_by_date({
date_from = 1778112000,
date_to = 1778198400,
event = {"sent", "delivered", "opened"},
group_by = "days"
})
Open analytics tools are available for country, user-agent, and reading environment.
Suppressions
local bounces = app.integrations["mailer-send"].list_hard_bounces({
domain_id = "domain_123",
limit = 25
})
app.integrations["mailer-send"].add_unsubscribes({
domain_id = "domain_123",
recipients = {"user@example.test"}
})
Deletion tools accept ids or all = true where the upstream endpoint supports bulk deletion.
Webhooks And Inbound Routes
local webhook = app.integrations["mailer-send"].create_webhook({
domain_id = "domain_123",
name = "Events",
url = "https://example.test/hooks/mailersend",
events = {"activity.sent", "activity.delivered"},
enabled = true
})
local route = app.integrations["mailer-send"].create_inbound_route({
domain_id = "domain_123",
name = "Support replies",
domain_enabled = true,
inbound_domain = "inbound.example.test",
inbound_priority = 10,
catch_filter = {type = "catch_all", filters = {}},
match_filter = {type = "match_all", filters = {}},
forwards = {
{type = "webhook", value = "https://example.test/hooks/inbound"}
}
})
SMTP Users
local smtp_users = app.integrations["mailer-send"].list_smtp_users({
domain_id = "domain_123"
})
Use SMTP user write tools for setup automation only; generated credentials are sensitive and should not be logged.
Multi-Account Usage
app.integrations["mailer-send"].list_messages({})
app.integrations["mailer-send"].default.list_messages({})
app.integrations["mailer-send"].production.list_domains({})
All account namespaces expose the same tools; only credentials differ.
Raw agent markdown
# MailerSend - Lua API Reference
Namespace: `app.integrations["mailer-send"]`
This integration uses the MailerSend API V1 with bearer-token authentication. The API returns MailerSend's native JSON response shapes, commonly `data`, `links`, and `meta` for list endpoints.
Official API reference: https://developers.mailersend.com/api/v1/
## Coverage
The integration exposes tools for:
- Email sending: single email and bulk email.
- Messages, templates, domains, DNS records, verification, and domain recipients.
- Activity and analytics by date, country, user-agent, and reading environment.
- Recipients and suppression lists for hard bounces, spam complaints, unsubscribes, and on-hold entries.
- Webhooks and inbound email routes.
- SMTP users for sending domains.
## Sending Email
```lua
local result = app.integrations["mailer-send"].send_email({
from = {email = "noreply@example.test", name = "Example"},
to = {
{email = "ada@example.test", name = "Ada"}
},
subject = "Welcome",
html = "<p>Hello Ada</p>",
text = "Hello Ada",
tags = {"onboarding"},
personalization = {
{
email = "ada@example.test",
data = {first_name = "Ada"}
}
}
})
```
For batches, pass an array of full MailerSend email payloads:
```lua
local bulk = app.integrations["mailer-send"].send_bulk_email({
messages = {
{
from = {email = "noreply@example.test", name = "Example"},
to = {{email = "ada@example.test"}},
subject = "Batch 1",
text = "Hello"
}
}
})
```
## Domains
```lua
local domains = app.integrations["mailer-send"].list_domains({
limit = 25,
page = 1,
verified = true
})
local dns = app.integrations["mailer-send"].get_domain_dns_records({
domain_id = "domain_123"
})
local status = app.integrations["mailer-send"].get_domain_verification_status({
domain_id = "domain_123"
})
```
Domain writes include `create_domain`, `delete_domain`, and `update_domain_settings`.
## Activity And Analytics
MailerSend activity endpoints require a domain and a Unix timestamp range. Analytics data is retained by MailerSend for a limited period.
```lua
local activity = app.integrations["mailer-send"].list_activities({
domain_id = "domain_123",
date_from = 1778112000,
date_to = 1778198400,
event = {"sent", "delivered"},
limit = 25
})
local by_date = app.integrations["mailer-send"].get_analytics_by_date({
date_from = 1778112000,
date_to = 1778198400,
event = {"sent", "delivered", "opened"},
group_by = "days"
})
```
Open analytics tools are available for country, user-agent, and reading environment.
## Suppressions
```lua
local bounces = app.integrations["mailer-send"].list_hard_bounces({
domain_id = "domain_123",
limit = 25
})
app.integrations["mailer-send"].add_unsubscribes({
domain_id = "domain_123",
recipients = {"user@example.test"}
})
```
Deletion tools accept `ids` or `all = true` where the upstream endpoint supports bulk deletion.
## Webhooks And Inbound Routes
```lua
local webhook = app.integrations["mailer-send"].create_webhook({
domain_id = "domain_123",
name = "Events",
url = "https://example.test/hooks/mailersend",
events = {"activity.sent", "activity.delivered"},
enabled = true
})
local route = app.integrations["mailer-send"].create_inbound_route({
domain_id = "domain_123",
name = "Support replies",
domain_enabled = true,
inbound_domain = "inbound.example.test",
inbound_priority = 10,
catch_filter = {type = "catch_all", filters = {}},
match_filter = {type = "match_all", filters = {}},
forwards = {
{type = "webhook", value = "https://example.test/hooks/inbound"}
}
})
```
## SMTP Users
```lua
local smtp_users = app.integrations["mailer-send"].list_smtp_users({
domain_id = "domain_123"
})
```
Use SMTP user write tools for setup automation only; generated credentials are sensitive and should not be logged.
## Multi-Account Usage
```lua
app.integrations["mailer-send"].list_messages({})
app.integrations["mailer-send"].default.list_messages({})
app.integrations["mailer-send"].production.list_domains({})
```
All account namespaces expose the same tools; only credentials differ. local result = app.integrations.mailer_send.mailersendaddblocklistrecipients({})
print(result) Functions
mailersendaddblocklistrecipients Read
Mailersendaddblocklistrecipients
- Lua path
app.integrations.mailer_send.mailersendaddblocklistrecipients- Full name
mailer-send.mailersendaddblocklistrecipients
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendaddunsubscribes Read
Mailersendaddunsubscribes
- Lua path
app.integrations.mailer_send.mailersendaddunsubscribes- Full name
mailer-send.mailersendaddunsubscribes
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendcreatedomain Read
Mailersendcreatedomain
- Lua path
app.integrations.mailer_send.mailersendcreatedomain- Full name
mailer-send.mailersendcreatedomain
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendcreateinboundroute Read
Mailersendcreateinboundroute
- Lua path
app.integrations.mailer_send.mailersendcreateinboundroute- Full name
mailer-send.mailersendcreateinboundroute
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendcreatesmtpuser Read
Mailersendcreatesmtpuser
- Lua path
app.integrations.mailer_send.mailersendcreatesmtpuser- Full name
mailer-send.mailersendcreatesmtpuser
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendcreatewebhook Read
Mailersendcreatewebhook
- Lua path
app.integrations.mailer_send.mailersendcreatewebhook- Full name
mailer-send.mailersendcreatewebhook
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersenddeletedomain Read
Mailersenddeletedomain
- Lua path
app.integrations.mailer_send.mailersenddeletedomain- Full name
mailer-send.mailersenddeletedomain
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersenddeleteinboundroute Read
Mailersenddeleteinboundroute
- Lua path
app.integrations.mailer_send.mailersenddeleteinboundroute- Full name
mailer-send.mailersenddeleteinboundroute
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersenddeleteonhold Read
Mailersenddeleteonhold
- Lua path
app.integrations.mailer_send.mailersenddeleteonhold- Full name
mailer-send.mailersenddeleteonhold
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersenddeletesmtpuser Read
Mailersenddeletesmtpuser
- Lua path
app.integrations.mailer_send.mailersenddeletesmtpuser- Full name
mailer-send.mailersenddeletesmtpuser
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersenddeletetemplate Read
Mailersenddeletetemplate
- Lua path
app.integrations.mailer_send.mailersenddeletetemplate- Full name
mailer-send.mailersenddeletetemplate
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersenddeleteunsubscribes Read
Mailersenddeleteunsubscribes
- Lua path
app.integrations.mailer_send.mailersenddeleteunsubscribes- Full name
mailer-send.mailersenddeleteunsubscribes
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersenddeletewebhook Read
Mailersenddeletewebhook
- Lua path
app.integrations.mailer_send.mailersenddeletewebhook- Full name
mailer-send.mailersenddeletewebhook
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetactivity Read
Mailersendgetactivity
- Lua path
app.integrations.mailer_send.mailersendgetactivity- Full name
mailer-send.mailersendgetactivity
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetanalyticsbydate Read
Mailersendgetanalyticsbydate
- Lua path
app.integrations.mailer_send.mailersendgetanalyticsbydate- Full name
mailer-send.mailersendgetanalyticsbydate
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetanalyticsopensbycountry Read
Mailersendgetanalyticsopensbycountry
- Lua path
app.integrations.mailer_send.mailersendgetanalyticsopensbycountry- Full name
mailer-send.mailersendgetanalyticsopensbycountry
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetanalyticsopensbyreadingenvironment Read
Mailersendgetanalyticsopensbyreadingenvironment
- Lua path
app.integrations.mailer_send.mailersendgetanalyticsopensbyreadingenvironment- Full name
mailer-send.mailersendgetanalyticsopensbyreadingenvironment
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetanalyticsopensbyuseragent Read
Mailersendgetanalyticsopensbyuseragent
- Lua path
app.integrations.mailer_send.mailersendgetanalyticsopensbyuseragent- Full name
mailer-send.mailersendgetanalyticsopensbyuseragent
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_current_user Write
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.
- Lua path
app.integrations.mailer_send.get_current_user- Full name
mailer-send.mailer_send_get_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetdomain Read
Mailersendgetdomain
- Lua path
app.integrations.mailer_send.mailersendgetdomain- Full name
mailer-send.mailersendgetdomain
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetdomaindnsrecords Read
Mailersendgetdomaindnsrecords
- Lua path
app.integrations.mailer_send.mailersendgetdomaindnsrecords- Full name
mailer-send.mailersendgetdomaindnsrecords
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetdomainverificationstatus Read
Mailersendgetdomainverificationstatus
- Lua path
app.integrations.mailer_send.mailersendgetdomainverificationstatus- Full name
mailer-send.mailersendgetdomainverificationstatus
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetinboundroute Read
Mailersendgetinboundroute
- Lua path
app.integrations.mailer_send.mailersendgetinboundroute- Full name
mailer-send.mailersendgetinboundroute
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_message Write
Get detailed information about a specific email message by its ID. Returns the full message object including status, recipients, subject, and content.
- Lua path
app.integrations.mailer_send.get_message- Full name
mailer-send.mailer_send_get_message
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The unique message ID. |
mailersendgetrecipient Read
Mailersendgetrecipient
- Lua path
app.integrations.mailer_send.mailersendgetrecipient- Full name
mailer-send.mailersendgetrecipient
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetsmtpuser Read
Mailersendgetsmtpuser
- Lua path
app.integrations.mailer_send.mailersendgetsmtpuser- Full name
mailer-send.mailersendgetsmtpuser
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgettemplate Read
Mailersendgettemplate
- Lua path
app.integrations.mailer_send.mailersendgettemplate- Full name
mailer-send.mailersendgettemplate
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendgetwebhook Read
Mailersendgetwebhook
- Lua path
app.integrations.mailer_send.mailersendgetwebhook- Full name
mailer-send.mailersendgetwebhook
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendlistactivities Read
Mailersendlistactivities
- Lua path
app.integrations.mailer_send.mailersendlistactivities- Full name
mailer-send.mailersendlistactivities
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendlistdomainrecipients Read
Mailersendlistdomainrecipients
- Lua path
app.integrations.mailer_send.mailersendlistdomainrecipients- Full name
mailer-send.mailersendlistdomainrecipients
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_domains Write
List sending domains configured in your MailerSend account. Returns domain names, verification statuses, and related settings.
- Lua path
app.integrations.mailer_send.list_domains- Full name
mailer-send.mailer_send_list_domains
| Parameter | Type | Required | Description |
|---|---|---|---|
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. |
mailersendlisthardbounces Read
Mailersendlisthardbounces
- Lua path
app.integrations.mailer_send.mailersendlisthardbounces- Full name
mailer-send.mailersendlisthardbounces
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendlistinboundroutes Read
Mailersendlistinboundroutes
- Lua path
app.integrations.mailer_send.mailersendlistinboundroutes- Full name
mailer-send.mailersendlistinboundroutes
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_messages Write
List email messages from your MailerSend account. Returns a paginated list of sent messages with their IDs, subjects, and statuses.
- Lua path
app.integrations.mailer_send.list_messages- Full name
mailer-send.mailer_send_list_messages
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Maximum number of messages to return per page (default: 25). |
page | integer | no | Page number for pagination (default: 1). |
mailersendlistonhold Read
Mailersendlistonhold
- Lua path
app.integrations.mailer_send.mailersendlistonhold- Full name
mailer-send.mailersendlistonhold
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_recipients Write
List recipients (contacts) from your MailerSend account. Returns recipient emails, names, and subscription statuses.
- Lua path
app.integrations.mailer_send.list_recipients- Full name
mailer-send.mailer_send_list_recipients
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Maximum number of recipients to return per page (default: 25). |
page | integer | no | Page number for pagination (default: 1). |
mailersendlistsmtpusers Read
Mailersendlistsmtpusers
- Lua path
app.integrations.mailer_send.mailersendlistsmtpusers- Full name
mailer-send.mailersendlistsmtpusers
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendlistspamcomplaints Read
Mailersendlistspamcomplaints
- Lua path
app.integrations.mailer_send.mailersendlistspamcomplaints- Full name
mailer-send.mailersendlistspamcomplaints
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_templates Write
List email templates available in your MailerSend account. Returns template IDs, names, and types for use when sending templated emails.
- Lua path
app.integrations.mailer_send.list_templates- Full name
mailer-send.mailer_send_list_templates
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Maximum number of templates to return per page (default: 25). |
page | integer | no | Page number for pagination (default: 1). |
mailersendlistunsubscribes Read
Mailersendlistunsubscribes
- Lua path
app.integrations.mailer_send.mailersendlistunsubscribes- Full name
mailer-send.mailersendlistunsubscribes
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendlistwebhooks Read
Mailersendlistwebhooks
- Lua path
app.integrations.mailer_send.mailersendlistwebhooks- Full name
mailer-send.mailersendlistwebhooks
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
bulk_email Write
Send multiple email payloads through the MailerSend bulk email endpoint.
- Lua path
app.integrations.mailer_send.bulk_email- Full name
mailer-send.mailer_send_send_bulk_email
| Parameter | Type | Required | Description |
|---|---|---|---|
messages | array | yes | Array of MailerSend email payloads. |
email Write
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.
- Lua path
app.integrations.mailer_send.email- Full name
mailer-send.mailer_send_send_email
| Parameter | Type | Required | Description |
|---|---|---|---|
from | object | yes | Sender object with "email" (required) and "name" (required) keys, e.g. {"email": "noreply@example.com", "name": "Acme Corp"}. |
to | array | yes | Array of recipient objects, each with "email" (required) and optional "name" keys, e.g. [{"email": "user@example.com", "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. |
template_id | string | no | Optional MailerSend template ID. |
personalization | array | no | Optional personalization objects. |
tags | array | no | Optional message tags. |
reply_to | object | no | Optional reply-to object with email and name. |
cc | array | no | Optional CC recipient objects. |
bcc | array | no | Optional BCC recipient objects. |
attachments | array | no | Optional MailerSend attachment objects. |
send_at | integer | no | Optional Unix timestamp for scheduled sending. |
in_reply_to | string | no | Optional Message-ID this email replies to. |
mailersendupdatedomainsettings Read
Mailersendupdatedomainsettings
- Lua path
app.integrations.mailer_send.mailersendupdatedomainsettings- Full name
mailer-send.mailersendupdatedomainsettings
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendupdateinboundroute Read
Mailersendupdateinboundroute
- Lua path
app.integrations.mailer_send.mailersendupdateinboundroute- Full name
mailer-send.mailersendupdateinboundroute
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendupdatesmtpuser Read
Mailersendupdatesmtpuser
- Lua path
app.integrations.mailer_send.mailersendupdatesmtpuser- Full name
mailer-send.mailersendupdatesmtpuser
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
mailersendupdatewebhook Read
Mailersendupdatewebhook
- Lua path
app.integrations.mailer_send.mailersendupdatewebhook- Full name
mailer-send.mailersendupdatewebhook
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||