ListMonk API
Send newsletters via your self-hosted ListMonk instance using RelayAPI — cross-post social content to email subscribers.
Quick Reference
| Property | Value |
|---|---|
| Platform key | listmonk |
| Auth method | Username + Password (Basic Auth) |
| Content format | HTML (plain text auto-wrapped) |
| Scheduling | Yes |
| Analytics | No |
Your ListMonk instance must be accessible via HTTPS on a public URL. Private/internal URLs are blocked for security.
Before You Start
You need your ListMonk instance URL, admin username, and password.
Connect
curl -X POST https://api.relayapi.dev/v1/connect/listmonk \
-H "Authorization: Bearer $RELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instance_url": "https://listmonk.example.com",
"username": "admin",
"password": "your-password"
}'Send a Campaign
curl -X POST https://api.relayapi.dev/v1/posts \
-H "Authorization: Bearer $RELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Newsletter content...",
"targets": ["acc_listmonk123"],
"scheduled_at": "now",
"target_options": {
"listmonk": {
"subject": "Weekly Digest",
"list_id": 1,
"template_id": 2
}
}
}'target_options Fields
| Field | Type | Required | Description |
|---|---|---|---|
subject | string | No | Email subject line. Falls back to first line of content. |
list_id | number | No | ListMonk list ID to send to. If omitted, uses the first list. |
template_id | number | No | ListMonk template ID. |
content_html | string | No | Full HTML body. If omitted, plain text is auto-wrapped. |
Discovery
List your ListMonk lists and templates:
GET /v1/accounts/{id}/lists # Returns ListMonk subscriber lists
GET /v1/accounts/{id}/templates # Returns ListMonk email templatesAutomations
Listmonk is self-hosted — the instance URL + API user live on socialAccounts.metadata as instance_url / api_user. Auth is Basic (user + API token).
Send nodes (destination-only)
| Node | Endpoint | Required fields |
|---|---|---|
listmonk_add_subscriber | POST {instance_url}/api/subscribers | email, optional list_ids[] / name / attribs |
listmonk_send_campaign | PUT {instance_url}/api/campaigns/{id}/status body {status: "running"} | campaign_id |
No inbound Listmonk triggers — use it as a downstream destination from other-platform triggers.
Found something wrong? Help us improve this page.