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
| Parameter | Type | Required | Description |
|---|---|---|---|
emails | array | Required | 1–1,000 addresses to remove from this list. |
Responses
| Status | Description |
|---|---|
200 | { removed, not_found } (counts after in-batch dedupe). |
400 | Validation error (empty or >1,000 emails). |
429 | Rate 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()