Unsubscribe links

RFC 8058-compliant unsubscribe headers on every send.

wemail injects an RFC 8058-compliant List-Unsubscribe header on every send, plus an optional in-body link you can place anywhere via {{unsubscribe_url}}.

Per-recipient unsubscribes are logged as unsubscribed events and added to your suppression list automatically. Provide a custom landing page by setting unsubscribe_url in workspace settings.

Code examples

cURL
curl -G https://api.wemail.io/v3/events \
  -H "Authorization: Bearer afn_live_…" \
  --data-urlencode "tag=welcome" \
  --data-urlencode "event=delivered" \
  --data-urlencode "since=2026-05-01"
Node.js
const events = await wemail.events.list({
  tag: "welcome",
  event: "delivered",
  since: "2026-05-01",
});
for (const e of events) console.log(e.recipient, e.timestamp);
Python
events = wemail.events.list(tag="welcome", event="delivered", since="2026-05-01")
PHP
$events = $wemail->events->list(['tag' => 'welcome', 'event' => 'delivered']);
Ruby
events = wemail.events.list(tag: "welcome", event: "delivered")
Go
events, _ := client.Events.List(ctx, &wemail.EventParams{Tag: "welcome", Event: "delivered"})
Java
wemail.events().list(EventParams.builder().tag("welcome").event("delivered").build());
.NET
var events = await wemail.Events.ListAsync(new EventParams { Tag = "welcome", Event = "delivered" });
ResponseExample response
{
  "items": [
    {
      "id": "evt_01HBYE7Q…",
      "type": "delivered",
      "message_id": "msg_01HBYE7K9Z4PMQDR3W",
      "recipient": "alex@example.com",
      "timestamp": "2026-05-10T09:42:21.000Z",
      "tags": ["welcome", "v2"],
      "metadata": null,
      "created_at": "2026-05-10T09:42:21.412Z"
    }
  ],
  "has_more": true,
  "next_cursor": "2026-05-10T09:42:21.000Z|evt_01HBYE7Q…",
  "total_count": 1842
}