Suppressions
Suppressions
Suppressions prevent Lettermint from sending to recipients that should not receive more email. They protect deliverability, honor recipient choices, and help enforce compliance decisions.
Reasons
| Reason | API value | Created by |
|---|---|---|
| Hard bounce | hard_bounce | Lettermint after permanent delivery failure |
| Spam complaint | spam_complaint | Lettermint after a recipient reports spam |
| Unsubscribe | unsubscribe | Hosted unsubscribe and unsubscribe workflows |
| Manual | manual | Dashboard or Team API |
The suppression reason is unsubscribe. The webhook event for a recipient unsubscribe is message.unsubscribed.
Scopes
| Scope | Applies to | Required ID |
|---|---|---|
| Team | All projects and routes in the team | None |
| Project | All routes in one project | project_id |
| Route | One route | route_id |
Higher-level suppressions take precedence. A team-level suppression blocks sends across all projects and routes.
Suppressions table with reason, scope, route, project, and created date.
Add suppressions
You can add one address or up to 1000 addresses in one Team API request.
Add suppression dialog with email, reason, and scope.
List recent suppressions
Use date filters when polling for suppressions that were created or updated during a window. Date-only values include the full day.
Remove suppressions
Users with the matching team or project suppression permission can remove team-, project-, and route-scoped suppressions from the dashboard. Team API clients with write:suppressions access can remove them as well. Spam complaint removal requests are assessed first and may require support review; the suppression remains active until the request is approved.
Suppression webhooks
Transactional and broadcast routes can send a webhook whenever an individual suppression affecting them is added or removed:
suppression.addedsuppression.removed
Each entry produces its own event, including entries added through a bulk request. Route-scoped suppressions notify webhooks on that route, project-scoped suppressions notify webhooks on every route in the project, and team-scoped suppressions notify webhooks on every route in the team. Global-scope suppressions do not emit these events, and inbound routes do not support them.
A removal event is sent only after the suppression is actually deleted. Requests that remain pending for manual review do not emit suppression.removed.
See Webhook events for payloads and field definitions.
Next steps
- Email activity - Inspect suppressed message events
- Routes - Understand route-level lists
- Webhook events - Synchronize suppression changes affecting a route
- Team API reference - Review suppression endpoints