Suppression Lists
Suppression lists prevent sending to addresses that should not receive messages. You can manage suppressions through the Dashboard or the API.
Types
| Reason | Description |
|---|---|
| Hard Bounce | Address that permanently failed delivery |
| Complaint | User marked email as spam |
| Unsubscribe | User opted out via unsubscribe link |
| Manual | Address manually added by your team |
Viewing Suppressions
Via Dashboard
- Navigate to Suppression List in the sidebar
- Browse all suppressed addresses with search and filtering
- Filter by suppression reason (bounce, complaint, unsubscribe, manual)
- View the date each address was added
Via API
curl "https://api.zyphr.dev/v1/suppressions?page=1&per_page=25" \
-H "X-API-Key: zy_live_your_key"
const { data: suppressions } = await zyphr.suppressions.list({
page: 1,
perPage: 25,
});
Adding Suppressions
Via Dashboard
- Navigate to Suppression List in the sidebar
- Click Add Suppression
- Enter the email address
- Select the reason (manual, bounce, complaint, unsubscribe)
- Optionally add a note
- Click Add
For bulk additions, use the Import button to upload a CSV file of email addresses.
Via API
# Add a single suppression
curl -X POST https://api.zyphr.dev/v1/suppressions \
-H "X-API-Key: zy_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"reason": "manual"
}'
# Bulk add suppressions
curl -X POST https://api.zyphr.dev/v1/suppressions/bulk \
-H "X-API-Key: zy_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"emails": [
{ "email": "user1@example.com", "reason": "manual" },
{ "email": "user2@example.com", "reason": "manual" }
]
}'
// Add a single suppression
await zyphr.suppressions.add({
email: 'user@example.com',
reason: 'manual',
});
// Bulk add
await zyphr.suppressions.addBulk({
emails: [
{ email: 'user1@example.com', reason: 'manual' },
{ email: 'user2@example.com', reason: 'manual' },
],
});
Checking Suppression Status
Via API
curl https://api.zyphr.dev/v1/suppressions?email=user@example.com \
-H "X-API-Key: zy_live_your_key"
const result = await zyphr.suppressions.check({
email: 'user@example.com',
});
if (result.suppressed) {
console.log(`Suppressed: ${result.reason}`);
}
Removing Suppressions
Via Dashboard
- Navigate to Suppression List
- Find the email address (use search)
- Click the Remove button on the entry
- Confirm the removal
Via API
curl -X DELETE https://api.zyphr.dev/v1/suppressions/user@example.com \
-H "X-API-Key: zy_live_your_key"
await zyphr.suppressions.remove({
email: 'user@example.com',
});
caution
Removing an address from the suppression list means they will start receiving messages again. For hard bounces, the address may still fail delivery. For complaint removals, monitor closely to protect your sending reputation.
Automatic Handling
Zyphr automatically adds addresses to suppression lists when:
- Hard bounce received — Address is permanently undeliverable
- Spam complaint received — User marked email as spam
- User clicks unsubscribe link — User opts out of emails
These automatic suppressions protect your sending reputation and ensure compliance with email best practices.