suppressed. The list is the account’s, so an address suppressed from one application is suppressed for all of them. It is on Email → Suppressed in the console.
Why an address is there
Each row also says where it came from: a bounce or complaint, by hand, from a file, from the API, or from the sending service’s own list.
Adding addresses
From Email → Suppressed → Add addresses, by the account owner, an admin or a developer of the application:- Paste up to 1,000 addresses, one a line.
- Upload a CSV file of up to 50,000 addresses and 5 MB, at most 10 files a day. The column named
email,e-mailoraddressis read, else the first column; commas, semicolons and tabs all work as separators. The list shows the file’s progress, then how many were added, already there, and not valid.
email.suppressions.create with { "addresses": [...] }, up to 1,000 a call. It answers 201 with added, existing and the invalid entries by position.
Downloading the list
Download the list gives a CSV of the addresses with their reason, source and date. A cell that a spreadsheet would read as a formula is written as text.Lifting an address
Lifting an address lets e-mail reach it again.- A bounce or a manual entry is lifted as it is.
- A complaint is lifted with a reason: its owner asked to receive your mail again, the message was reported by mistake, or another reason in a short note (10 to 500 characters). If the same address complains again, only Tawked’s team can lift it.
email.suppressions.delete, with reason (recipient_asked, reported_by_mistake, or other with a note) for a complaint. A member who reaches only some applications lifts only the rows of those applications. A lift lets e-mail reach the address again, so it is consequential: a token with approvals turned on answers HTTP 428 with the error approval_required first, and the lift runs once the request is approved (see Person in the loop).
By API
A live key with the explicitemail:manage manages the list from your code; one with email:read reads it:
The list blocks sending account-wide, so a lookup never says “not suppressed” for an address this application cannot send to: an entry it may not see (another application’s, or the team’s) answers
{ "suppressed": true, "visible": false, "lift": "team_only" } when looked up by its address (by its id it is 404 not_found), and a lift of it answers 403 suppression_team_only. The suppression.added and suppression.removed webhooks follow each change.
Errors
Every addition and lift is kept in the account’s history; lifts are kept for 400 days.