# Unsubscribes

> How people opt out of campaigns, what the unsubscribe link and headers do, where unsubscribes appear in reports, and how to manage opt-outs yourself.

This page explains how recipients unsubscribe from your campaigns, what Emailit adds to every campaign email so they can, and how you can see and change opt-outs yourself. It also covers how unsubscribes relate to transactional email.

## Three ways to stop a campaign

Emailit checks three things before it sends a campaign email. Each one is a different kind of opt-out:

| Level | Stored on | Set by | Stops |
| --- | --- | --- | --- |
| **Audience subscription** | The subscriber (`subscribed: false`) | The recipient's unsubscribe link, or you | Campaigns to that audience. The unsubscribe link turns off every audience the contact is on. |
| **Marketing status** | The contact (`unsubscribed: true`) | You, from the Contacts list or the API | Campaigns to every audience. |
| **Suppression** | The suppression list | Bounces, complaints, automations, or you | Campaigns, and with type `recipient` also every other email. See [Suppressions](/docs/suppressions/). |

## Unsubscribe links in campaign emails

### Headers added for you

Every campaign email includes these headers, with a link unique to the recipient and the campaign:

```text
List-Unsubscribe: <unsubscribe link>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
```

`List-Unsubscribe-Post` marks the link as one-click ([RFC 8058](https://www.rfc-editor.org/rfc/rfc8058)). Mailbox providers such as Gmail and Yahoo use these headers to show their own **Unsubscribe** button next to the sender name, and they expect them from bulk senders. You don't need to add or configure anything.

### The link in your content

Put a visible unsubscribe link in every campaign as well, with the `{{unsubscribe_url}}` merge tag:

```html
<p>
  You're receiving this because you subscribed to Acme news.
  <a href="{{unsubscribe_url}}">Unsubscribe</a>
</p>
```

- In the **Dragit** editor, insert it as a link: `{{unsubscribe_url}}` is listed with the special links.
- In the **Rich-text** editor, type `@` and pick **Unsubscribe URL**.
- In the **HTML** editor, type the tag yourself, exactly as `{{unsubscribe_url}}`, with no spaces inside the braces.

The **Send** step of the campaign wizard checks for the tag and shows "Missing unsubscribe link!" when it's not in the HTML. Emailit doesn't block the send, but anti-spam laws such as CAN-SPAM and GDPR, and the bulk sender rules of Gmail and Yahoo, expect a working unsubscribe link in marketing email.

In [test sends](/docs/campaigns/test-and-schedule/#send-a-test), the link points to a test address and doesn't unsubscribe anyone.

## The unsubscribe page

When a recipient opens their unsubscribe link, Emailit shows a hosted page and unsubscribes them right away. No confirmation click is needed.

- **They leave every audience.** The contact's subscription is turned off in every audience it belongs to, not only the ones the campaign went to. The contact itself and its marketing status don't change.
- **They can say why.** The page asks "Tell us why you're unsubscribing" with the options **Not interested**, **Too many emails**, **Never signed up**, **This is a spam** and **Other**. Answering is optional.
- **They can undo it.** **Resubscribe** turns their subscription back on in every audience they belong to and shows "Resubscribe successful!".

The page doesn't offer a preference center: people can't pick which audiences to stay on. If you need that, link to a page on your own site and update their subscriptions with the API.

Each unsubscribe sends one `email.unsubscribed` event and a [`subscriber.updated`](/docs/webhooks/events/subscriber/) event for each audience. A resubscribe sends `email.resubscribed` and `subscriber.updated`. Receive them with [webhooks](/docs/webhooks/) to sync opt-outs to your own systems. See [Event types](/docs/webhooks/event-types/).

## Unsubscribes in campaign reports

Unsubscribes made through the link are recorded against the campaign that sent it:

- The **Unsubscribed** card on the campaign's **Overview** shows the count and the share of sent emails.
- The **Unsubscribes** tab lists each one with **Email**, **First name**, **Last name**, **Reason**, **IP address** and **Unsubscribed At**. Search it, or filter by reason or date.
- The PDF report includes an **Unsubscribe reasons** breakdown.

The **Reason** column shows the reason recorded with the unsubscribe, when there is one. Recorded reasons appear as **Manual**, **Unsubscribe Link** or **Complaint**.

Unsubscribes you make yourself in the dashboard or the API change the subscription, but they aren't linked to a campaign and don't appear in these reports. See [Campaign reports](/docs/campaigns/reports/).

## Complaints

When a recipient marks a campaign email as spam and their mailbox provider reports it back, the email's status becomes **Complained** and, with the default automatic suppression settings, the address is added to your suppression list with type `complaint`. Campaigns skip suppressed addresses, so the person gets no further campaigns. See [Bounces and complaints](/docs/deliverability/bounces-and-complaints/).

## Manage opt-outs yourself

### In the dashboard

| To | Do this |
| --- | --- |
| Unsubscribe or resubscribe someone in one audience | On the contact page, open the audience's row menu and select **Unsubscribe** or **Resubscribe**. Or on the audience page, select **Edit** and switch **Subscribed**. |
| Stop all campaigns to some contacts | On **Email Marketing → Contacts**, select them and use **Actions > Unsubscribe**. **Resubscribe** reverses it. |
| Find everyone who opted out | Filter the Contacts list by **Unsubscribed**, or filter an audience's subscribers by **Subscribed**. |
| Stop every email to an address | Add it under **Email API → Suppressions** with type `recipient`. |

### With the API

Unsubscribe from one audience by updating the subscriber. You can use the email address instead of the `sub_` ID:

```bash
curl https://api.emailit.com/v2/audiences/aud_5hJ2kL8mNp4Qr/subscribers/ada@example.com \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "subscribed": false }'
```

Set the marketing status of up to 100 contacts at once with the `unsubscribe` or `resubscribe` [bulk action](/docs/api-reference/contacts/bulk/), or of one contact with `unsubscribed` on [Update a contact](/docs/api-reference/contacts/update/):

```bash
curl https://api.emailit.com/v2/contacts/bulk \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "action": "unsubscribe", "ids": ["con_2kq8Vt4xLm7Rz", "con_9fW3pQ1nBc6Yt"] }'
```

To export your opt-outs, list contacts with `unsubscribed=true` or subscribers with `subscribed=false`. See [List contacts](/docs/api-reference/contacts/list/) and [List subscribers](/docs/api-reference/audiences/subscribers/list/).

## Transactional email and unsubscribes

Unsubscribes and marketing status only control campaigns. Emails you send with the [Email API](/docs/email-api/) or [SMTP](/docs/smtp/), and emails sent by [automations](/docs/automations/), still go out to people who unsubscribed. That's intended: receipts, password resets and account notices must keep working.

Keep it that way by sending only transactional content through those channels. A few things to know:

- `{{unsubscribe_url}}` is a campaign merge tag. It isn't filled in for API, SMTP or automation emails, and those emails don't get the `List-Unsubscribe` headers automatically.
- If you send marketing-style email outside campaigns, include your own unsubscribe link and honor it, for example by [adding a suppression](/docs/suppressions/manage/) when someone opts out.
- To stop all email to an address, transactional included, add a suppression with type `recipient`.

> **Tip:** Process opt-outs that reach you by other routes, such as a reply asking to be removed, the same day. Unsubscribing the contact or adding a suppression takes effect for the next campaign immediately.

## Related

  - [Merge tags](/docs/campaigns/merge-tags/): Every tag you can use in campaigns, including the unsubscribe link.
  - [Suppressions](/docs/suppressions/): Block an address from all sending.

---
Source: https://emailit.com/docs/audiences/unsubscribes/
