Listmonk
@shrug/listmonkv2026.10.29.1
01README
listmonk (v6.2.0) REST API behavior — a typed swamp primitive for driving a listmonk deployment, not exec/curl wrappers.
Status: in development.
One behavior type (@shrug/listmonk), one deployment per instance.
Routine methods authenticate as a SCOPED operational api user
(apiUser/apiToken, vaulted); the Super Admin credential is only supplied
at provision time as method arguments. Every write is gated behind dryRun
(default true); campaign sends carry an additional per-call gate.
Methods (by phase)
- Phase 0 (read) —
health(GET /api/profile token probe),sync(secret-free snapshot: profile, lists, masked settings, subscriber/campaign counts; each section fault-tolerant). - Phase 0.5 (auth bootstrap) —
provisionApiUser(mint a least-privilege api user + token, writing the token to the sensitiveapiCredentialresource so swamp vaults it),rotateApiToken(destructive delete+recreate). - Phase 1 (settings) —
applySettings(GET-merge-PUT, SMTP password preservation),reconcileSettings(declarative per-key drift of the DECLARED desired settings, convergent-on-declared, secrets redacted),getSettings,setSmtpServers,testSmtp,reloadApp. - Phase 2 (lists) —
upsertList(find-by-name then POST/partial-PUT, always sends tags),deleteList,listLists/findListByName,getList. - Phase 3 (subscribers) —
importSubscribers(async global-singleton: reset, multipart upload, poll, scan logs),upsertSubscriber,manageSubscriberLists,querySubscribers,deleteSubscriber. - Phase 4 (campaigns, sends hard-gated) —
createCampaign(always draft),updateCampaign,setCampaignStatus,sendCampaign,scheduleCampaign,pauseCampaign/cancelCampaign,testCampaign, template CRUD, previews, stats. ( = hard approval + dryRun default.)
Auth contract
Authorization: token <apiUser>:<apiToken> (literal "token", NOT bearer);
never send a Cookie header (it shadows Authorization and 403s). Unauth /
insufficient-perm => HTTP 403 (not 401).
02Behaviors
@shrug/listmonkv2026.10.29.1listmonk.ts
03Stats
A
100 / 100
Downloads
0
Archive size
68.9 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Docs keep secrets in a vault1/1earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License2/2earned
- Verified public repository2/2earned
04Platforms
05Labels