Skip to content

MailerAddSuppression

POST mailer/suppression

Adds an address to the suppression list of the brand. Suppressed addresses are refused in MailerSendEmail before the provider is contacted.

This list is what protects the sending domain. Mailbox providers count bounces and complaints: writing again to an address that already answered "no such mailbox" pushes the bounce rate up, and at some point the provider starts filing all mail from the domain as spam — including confirmation codes to real customers.

Access Control

Allowed roles: admin, leader. The entry belongs to the brand of the caller.

Request

POST https://{broker_domain}/mailer/suppression
{
  "email": "[email protected]",
  "reason": "HARD_BOUNCE",
  "description": "Mailbox does not exist"
}
{
  "command": "MailerAddSuppression",
  "extID": "1",
  "data": {
    "email": "[email protected]",
    "reason": "HARD_BOUNCE",
    "description": "Mailbox does not exist"
  }
}
const res = await platform.MailerAddSuppression({
  email: "[email protected]",
  reason: "HARD_BOUNCE",
  description: "Mailbox does not exist"
});

Request Data

Field Type Required Description
email string Yes Address to suppress
reason enum No Why it is suppressed: HARD_BOUNCE, BLOCK, COMPLAINT, UNSUBSCRIBE, MANUAL. Default MANUAL
description string No Free-form explanation, up to 512 characters
expiresAt string No YYYY-MM-DD HH:mm:ss. Empty means it never expires

Behavior

  • The address is stored in lower case and compared case-insensitively. By RFC the local part is case-sensitive, but no mail server uses that: a bounce for [email protected] must also block [email protected].
  • The reason decides the scope. COMPLAINT and UNSUBSCRIBE block only MARKETING — a spam complaint about a promotion is not a refusal to receive login codes. HARD_BOUNCE, BLOCK and MANUAL block everything.
  • A soft bounce (a full mailbox) is deliberately not added: it is temporary, and suppressing it would lose a valid recipient.
  • Hard bounces and complaints reported by provider webhooks land here automatically — this method is for the manual and imported cases.

Response Data

created: false means an existing entry was updated instead. A stronger reason wins: a hard bounce over an unsubscribe, never the other way round.

{
  "id": 31,
  "brand": "default",
  "email": "[email protected]",
  "domain": "example.com",
  "reason": "HARD_BOUNCE",
  "source": "CRM",
  "description": "Mailbox does not exist",
  "emailId": null,
  "expiresAt": null,
  "createdAt": "2026-08-24 13:44:02",
  "created": true
}

Errors

Code Error Description
400 INVALID_EMAIL_ADDRESS Address cannot be parsed
400 VALIDATION_ERROR Unknown reason value