Skip to content

API — Unsubscribe (Newsletters)

Newsletter and mailing list management via List-Unsubscribe headers.


Scan newsletters

POST /api/unsubscribe/:accountId/scan 🔒

Launches an asynchronous scan of List-Unsubscribe headers in the account's emails.

Response 202

json
{ "jobId": "scan_unsubscribe-123", "message": "Scan enqueued" }

GET /api/unsubscribe/:accountId/newsletters 🔒

Synchronous scan (for smaller mailboxes). Returns the list of detected newsletters directly.

Response 200

json
[
  {
    "sender": "newsletter@example.com",
    "count": 42,
    "totalSizeBytes": 1234567,
    "unsubscribeUrl": "https://example.com/unsubscribe",
    "lastDate": "2026-03-15T10:00:00Z"
  }
]

List messages from a sender

GET /api/unsubscribe/:accountId/newsletters/:senderEmail/messages 🔒

Retrieves all message IDs from a given newsletter sender.

Response 200

json
{
  "messageIds": ["msg-1", "msg-2", "msg-3"],
  "count": 3
}

Delete newsletter emails

POST /api/unsubscribe/:accountId/newsletters/:senderEmail/delete 🔒

Bulk deletes all emails from a newsletter sender (via BullMQ job).

Body

json
{ "permanent": false }
FieldDefaultDescription
permanentfalsefalse = trash, true = permanent deletion

Response 202

json
{ "jobId": "bulk_operation-456", "count": 42 }