> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brudcast.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Suppressions and unsubscribes

> The email addresses Brudcast won't send to, why each one is there, and what changes when someone unsubscribes.

export const Screenshot = ({id, src, srcDark, alt, caption}) => {
  if (!src) {
    return <Placeholder id={id} kind="screenshot" label="Screenshot coming soon" description={alt} icon={<ImageIcon />} />;
  }
  return <figure className="brd-media" data-media-id={id}>
      <img className="brd-media-frame block dark:hidden" src={src} alt={alt} />
      <img className="brd-media-frame hidden dark:block" src={srcDark || src} alt={alt} />
      {caption && <figcaption className="brd-media-caption">{caption}</figcaption>}
    </figure>;
};

The suppression list is the set of email addresses your organization will not send to. Campaigns,
API sends and SMTP relay mail all skip a suppressed address, whichever sending domain the mail
comes from.

<Screenshot id="ss-contacts-suppressions-hero" alt="The Suppressions page with Suppressed, Hard Bounces and Spam Complaints counts above the list of addresses" />

## Why addresses are suppressed

Most addresses land here on their own. Sending to a mailbox that has rejected you, or to someone who
reported you as spam, damages your sending reputation, so Brudcast stops it for you.

| Reason        | Label               | How it's added                                                         |
| ------------- | ------------------- | ---------------------------------------------------------------------- |
| `hard_bounce` | **Hard bounce**     | Automatically, when the receiving server rejects a message permanently |
| `complaint`   | **Spam complaint**  | Automatically, when the recipient marks a message as spam              |
| `invalid`     | **Invalid address** | By you, for an address you know doesn't work                           |
| `manual`      | **Added manually**  | By you, for any other reason                                           |

Soft bounces, the temporary kind, don't suppress an address.

The **Added By** column shows where each entry came from: **Automatic**, **API**, **Dashboard** or
**Import**.

<Note>
  The suppression list covers email addresses only. SMS opt-outs are handled separately; see
  [SMS overview](/channels/sms/overview).
</Note>

## Find an address

Type the **full** email address into the search box. Search matches whole addresses only, not part
of one: addresses are stored encrypted, so there's nothing to match a fragment against.

Use the **All reasons** filter to show one reason at a time.

## Suppress an address

<Steps>
  <Step title="Open the dialog">
    Go to **Contacts > Suppressions** and select **Suppress Address**.
  </Step>

  <Step title="Enter the address and a reason">
    Enter the **Email address** and choose **Added manually** or **Invalid address** as the
    **Reason**.
  </Step>

  <Step title="Confirm">
    Select **Suppress Address**. From now on no campaign, API or SMTP send reaches it.
  </Step>
</Steps>

Suppressing an address also cancels any signup-form confirmation still waiting for that address.

If the address is already on the list, adding it again keeps the original entry and its reason.
A manual add never overwrites a recorded hard bounce or complaint.

## Remove an address

Select the bin icon on the address's row, then **Remove**. The address starts receiving campaigns
and API sends again.

<Warning>
  Removing an address that hard-bounced or complained puts your sender reputation at risk. It's
  suppressed again on the next bounce or complaint. Only remove one when you have a reason to
  believe the problem is fixed, such as the recipient asking to be sent to again.
</Warning>

When you remove a hard bounce or complaint, the matching email address on your contacts goes back
to **Unverified**.

Removing an entry doesn't undo an unsubscribe. A contact who unsubscribed keeps the email status
**Suppressed** on their record, and campaigns keep skipping them. See
[Unsubscribes and consent](#unsubscribes-and-consent).

## Unsubscribes and consent

Suppression and unsubscribing are different mechanisms. Suppression protects your sending
reputation after a bounce or a complaint. An unsubscribe records a choice the person made.

An unsubscribe is **organization-wide**, not limited to the list the campaign went to. Someone who
unsubscribes is asking to stop hearing from you, not to be moved to your other list. Campaign emails
carry the link, and you can place it yourself with the `{{unsubscribe_url}}` merge tag. It opens a
page where the person confirms with a button, so mail scanners that follow links can't unsubscribe
anyone by accident. When they confirm:

* every list they're subscribed to changes to **Unsubscribed**
* every email address on their contact changes to **Suppressed**, which campaigns skip
* any signup-form confirmation still waiting for them is cancelled
* their activity shows **Unsubscribed from** with the campaign's name

For SMS, texting an opt-out keyword such as STOP changes that number to **Opted Out** on every
contact in your organization that holds it. Campaigns stop sending to it, and you aren't charged for
skipped messages. The person opts back in by texting an opt-in keyword. See
[SMS overview](/channels/sms/overview).

### Consent records

When someone joins a list through a signup form, Brudcast writes a consent record in the same step
that subscribes them, so one never exists without the other. See
[Double opt-in and consent](/forms/create-a-form#double-opt-in-and-consent) for what the record
holds and how long its wording survives.

### Re-subscribing someone

An unsubscribe is an instruction from the person, so it's hard to undo by accident.

| What you do                                      | List membership                  | Email status                                       |
| ------------------------------------------------ | -------------------------------- | -------------------------------------------------- |
| Add them to a list                               | **Subscribed** again             | Stays **Suppressed**, so campaigns still skip them |
| They sign up again through a form                | **Subscribed** once they confirm | Stays **Suppressed**                               |
| Remove their address from the suppression list   | No change                        | Stays **Suppressed**                               |
| Set the email address's `status` through the API | No change                        | Whatever you set                                   |

The only way to make an unsubscribed address receive campaigns again is to update the email
identity's `status` through the API. Only do that when the person has asked to hear from you again,
and keep a record of their request.

## When a contact is deleted

Deleting a contact doesn't lift the suppression on their address. Brudcast keeps the entry so
the address stays blocked, but erases the address itself from it. The row then shows `-` in the
**Email Address** column.

## Related

<Columns cols={2}>
  <Card title="Bounces, complaints and suppression" icon="shield-check" href="/deliverability/bounces-complaints-and-suppression">
    How bounces and complaints are classified.
  </Card>

  <Card title="Create a form" icon="clipboard-pen" href="/forms/create-a-form#double-opt-in-and-consent">
    Collect consent you can prove.
  </Card>

  <Card title="Platform API" icon="code" href="/api-reference/introduction">
    Read and write suppressions from your own systems.
  </Card>
</Columns>
