RelayAPI

ListMonk API

Send newsletters via your self-hosted ListMonk instance using RelayAPI — cross-post social content to email subscribers.

Quick Reference

PropertyValue
Platform keylistmonk
Auth methodUsername + Password (Basic Auth)
Content formatHTML (plain text auto-wrapped)
SchedulingYes
AnalyticsNo

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

FieldTypeRequiredDescription
subjectstringNoEmail subject line. Falls back to first line of content.
list_idnumberNoListMonk list ID to send to. If omitted, uses the first list.
template_idnumberNoListMonk template ID.
content_htmlstringNoFull 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 templates

Automations

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)

NodeEndpointRequired fields
listmonk_add_subscriberPOST {instance_url}/api/subscribersemail, optional list_ids[] / name / attribs
listmonk_send_campaignPUT {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.

On this page

Submit an Issue
Requires a GitHub account.View repo