Bulk remove suppressions

Remove up to 1,000 suppression entries in one call.

The bulk counterpart of DELETE /v3/suppressions/{type}/{address}: pass up to 1,000 addresses and get back how many were removed vs not found. Addresses are deduplicated and lowercased before matching.

POST /v3/suppressions/{type}/bulk.delete

Body parameters

ParameterTypeRequiredDescription
emailsarrayRequired1–1,000 addresses to remove from this list.

Responses

StatusDescription
200{ removed, not_found } (counts after in-batch dedupe).
400Validation error (empty or >1,000 emails).
429Rate limit exceeded (10 bulk calls/minute).

Code examples

cURL
curl -X POST https://api.wemail.io/v3/suppressions/{type}/bulk.delete \
  -H "Authorization: Bearer afn_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "emails": [ "bounce@example.com", "optout@example.com" ] }'
Node.js
const res = await fetch("https://api.wemail.io/v3/suppressions/{type}/bulk.delete", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.WEMAIL_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ "emails": [ "bounce@example.com", "optout@example.com" ] }),
});
const data = await res.json();
Python
import os, requests

r = requests.post(
    "https://api.wemail.io/v3/suppressions/{type}/bulk.delete",
    headers={"Authorization": f"Bearer {os.environ['WEMAIL_API_KEY']}"},
    json={ "emails": [ "bounce@example.com", "optout@example.com" ] },
)
data = r.json()