Custody
Every hash, log entry and export is written to infrastructure in your own account. There is no shared tenant and no vendor copy.
Self-hosted suppression list management
OptOutManager collects unsubscribes from every source, stores them hashed in your own database, and hands them to the mailers and partners who need them. You install it in your own cloud account and pay for it once.
Opt-outs in
Your infrastructure
Hashed lists out
01 Why self-host
It holds the addresses of people who unsubscribed, complained or bounced, across every brand you send for. You are expected to keep it accurate for years, and to share it with every partner who mails on your behalf.
Put that list in a hosted service and another company holds a copy, another set of staff can reach it, and another contract decides what happens to it. OptOutManager takes the third party out. The software runs where your other systems run, under the access rules you already have.
Every hash, log entry and export is written to infrastructure in your own account. There is no shared tenant and no vendor copy.
You pay once for the license. After that, the only bills are the ones from your own cloud provider.
You choose the region, the retention period, the network rules and the backup schedule. Access goes to the people you grant it to.
02 What it does
Opt-outs arrive from ESP webhooks, one-click unsubscribe headers, hosted opt-out pages, CSV uploads and the API. Each one is normalised and recorded once per list.
Addresses are hashed on arrival in three formats, so each partner gets the one their platform accepts. Keeping the raw address is a per-list choice and is off unless you turn it on.
Every change produces a new numbered version of the list. Partners pull the full file, or only what was added since the version they already hold.
Partners fetch lists through the API, receive them over SFTP on a schedule, or send their own addresses to the scrub endpoint and get back the ones to drop.
Every download, sign-in and change is logged with who did it and from where. Seed addresses planted in each download show when a suppression file has been mailed.
03 API
Partners post the addresses they plan to mail and get an answer in the same request. Larger files go through as an asynchronous job. Nobody has to download the whole list to check a handful of records.
/api/v1POST /api/v1/campaigns/42/scrub
Authorization: Bearer <partner-key>
Content-Type: application/json
{
"emails": [
"[email protected]",
"[email protected]"
]
}
{
"results": [
{ "email": "[email protected]", "suppressed": true },
{ "email": "[email protected]", "suppressed": false }
],
"summary": { "total": 2, "suppressed": 1, "clean": 1 }
}
04 Hosted or self-hosted
| A hosted suppression service | OptOutManager | |
|---|---|---|
| Where records are stored | The vendor’s cloud account | Your database and your bucket |
| Who can reach them | You, the vendor’s staff and their sub-processors | Only the people you grant access |
| Data residency | Whichever regions the vendor offers | Any region or data centre you choose |
| How you pay | Monthly, usually by record count or volume | Once, for the license |
| If the vendor changes course | You migrate on their timeline | Your installation keeps running |
| Vendor review | Another data processor to assess and contract with | Software inside your own environment |
05 Requirements
A Linux server, a MySQL database and an S3 bucket are enough. If you already run workloads on AWS, every part has a managed equivalent.
06 Questions
No. The application runs in your environment and writes to your database and your storage bucket. We have no login to your installation and it does not report back to us.
As a one-time purchase. There is no monthly fee and no charge per record. Pricing depends on the shape of your deployment, so ask us for a quote.
Almost certainly. Partners can pull files through the API, have them pushed to their SFTP server on a schedule, download them from a portal, or scrub their own lists against yours without ever holding your file.
Yes. The API issues a signed unsubscribe URL for each recipient, ready for the List-Unsubscribe and List-Unsubscribe-Post headers described in RFC 8058. A click in the mailbox is recorded without a confirmation page.
Yes. Lists belong to brands, and each brand can share different lists with different partners. A global opt-out list and a suppressed-domains list apply across all of them.
You do, as with any software you host. It needs the same care as a small internal web application: backups of the database and bucket, and updates applied when you choose to apply them.
Tell us roughly how many records, brands and partners you manage, and where you plan to host. We will reply with a quote.