REST API for External Systems
listmonk’s comprehensive REST API allows full programmatic control.API Authentication
All API endpoints (except public ones) require authentication:Core API Endpoints
The API is defined incmd/handlers.go:101-219.
Subscribers
Lists
Campaigns
Public API Endpoints
listmonk provides public endpoints for subscription forms and archives (defined incmd/handlers.go:258-263).
Public Lists
Get all public lists:cmd/public.go:123-144
Public Subscription
Subscribe via API:has_optin: true- Subscriber needs to confirm (double opt-in lists)has_optin: false- Immediately subscribed (single opt-in lists)
cmd/public.go:516-529
Custom Subscription Forms
Create custom subscription forms on your website.HTML Form Example
cmd/public.go:452-512
JavaScript Form Example
React Component Example
Subscriber Import from External Sources
Import subscribers programmatically from external systems.Import API Endpoints
Defined incmd/handlers.go:147-150:
Import CSV Data
Import from API Response
Pull subscribers from external API and import:Webhook Integrations
listmonk supports incoming webhooks for bounces and can trigger outbound webhooks via custom messengers.Bounce Webhooks
Receive bounce notifications from email providers.Supported Providers
Fromcmd/bounce.go:130-224:
- Amazon SES -
/webhooks/service/ses - SendGrid -
/webhooks/service/sendgrid - Postmark -
/webhooks/service/postmark - ForwardEmail -
/webhooks/service/forwardemail
Custom Webhooks via Messengers
Use postback messengers to send campaign data to external webhooks.Configure Postback Messenger
Use in Campaign
When creating a campaign, select the webhook messenger. listmonk will POST campaign data to your endpoint.Zapier / Make.com Integration Patterns
Integrate listmonk with automation platforms.Zapier Webhook Integration
Make.com Scenario Example
HTTP Request to listmonk
Add HTTP module:
- Method: POST
- URL:
https://your-listmonk.com/api/subscribers - Headers:
- Body:
Common Automation Workflows
Sync CRM to listmonk
Sync CRM to listmonk
Scenario: When a contact is added to your CRM, add them to listmonk
- CRM webhook triggers on new contact
- Extract email, name, custom fields
- POST to
/api/subscriberswith mapped data - Subscribe to appropriate lists based on CRM tags
E-commerce Purchase Follow-up
E-commerce Purchase Follow-up
Scenario: Subscribe customers to post-purchase campaign
- Order completed webhook from e-commerce platform
- Extract customer email and purchase data
- POST to
/api/subscriberswith purchase attributes - Subscribe to “Customers” list
- Trigger transactional email via
/api/tx
Form Submission to Multiple Lists
Form Submission to Multiple Lists
Scenario: Website form subscribes to different lists based on interests
- Form submission triggers webhook
- Parse selected interests/topics
- Map interests to listmonk list UUIDs
- POST to
/api/public/subscriptionwith list_uuids array
Unsubscribe Sync
Unsubscribe Sync
Scenario: When user unsubscribes from listmonk, update external CRM
- Custom script monitors listmonk unsubscribes via API
- Detect status changes to “unsubscribed”
- POST to CRM API to update contact status
- Log sync for audit trail
Integration Examples
WordPress Integration
Django Integration
Shopify Webhook
Subscriber Data Sync
Keep subscriber data in sync with external systems.Bidirectional Sync Pattern
API Client Libraries
Use these community libraries to integrate with listmonk:- Python: listmonk-python
- Go: Use the official models and HTTP client
- JavaScript/TypeScript: Create custom client using fetch/axios
- PHP: Create custom client using Guzzle