# Topics

> Subscription categories within a sending domain. Contacts choose which topics they receive; a campaign can target a single topic.

A **topic** is a category of mail within one of your sending **domains** — for example “Product updates” or “Weekly newsletter”. Topics give your contacts finer-grained control: a contact can opt out of one kind of email on a hosted **preference page** instead of unsubscribing from everything you send. A contact can belong to **multiple topics**.

> **Note:** Topics are the more deliverability-friendly alternative to all-or-nothing unsubscribes: letting a contact drop a single topic keeps them on your list for the mail they still want. They differ from [segments](https://www.sendping.co/docs/segments/overview) — segments are your private filters for organizing contacts, while topics are user-facing preferences your contacts manage themselves.

## Default subscription: opt-in vs opt-out

When you create a topic you choose its **default subscription** — how contacts start out relative to it:

| Default | Behavior |
| --- | --- |
| **Opt-in** | Every contact receives this topic unless they have explicitly unsubscribed from it. |
| **Opt-out** | No contact receives this topic unless they have explicitly subscribed to it. |

> **Warning:** The default subscription is fixed at creation and **cannot be changed later**. Pick it carefully — to switch a topic between opt-in and opt-out you would have to create a new topic.

## Visibility: public vs private

Each topic also has a **visibility** that controls whether it appears on the contact’s preference page:

| Visibility | Who sees it on the preference page |
| --- | --- |
| **Public** | All contacts can see and toggle the topic. |
| **Private** | Only contacts who are already opted in to the topic can see it. |

Unlike the default subscription, a topic’s **name**, **description**, and **visibility** can be edited after creation.

## How topics affect sending

- A [campaign](https://www.sendping.co/docs/campaigns/managing) may target a single topic via `topic_id`.
- So may a single send: [`POST /emails`](https://www.sendping.co/docs/api/emails-send) accepts `topic_id` too.
- When either does, the send skips any recipient who is not subscribed to that topic (per its opt-in/opt-out default and the recipient’s own choices) — on top of the audience-wide unsubscribe and the account suppression list.
- Topics never override compliance: a contact who unsubscribed from the whole audience is never emailed, regardless of topic.

## A topic send always carries an opt-out

Setting `topic_id` marks a send as **subscription mail**, so SendPing gives every recipient a way to leave — the same two mechanisms a campaign gets, added automatically:

- an **unsubscribe footer** in the HTML body (skipped if your body already carries a SendPing unsubscribe link, e.g. via the `{{{SENDPING_UNSUBSCRIBE_URL}}}` merge tag), and
- an RFC 8058 **`List-Unsubscribe`** header with **`List-Unsubscribe-Post`** for native one-click unsubscribe.

The link is minted **per recipient**, so each `to`/`cc`/`bcc` address receives its own copy with only its own opt-out link. The recipient does not need to be a contact — a topic opt-out can be recorded against a bare email address, which is what makes `topic_id` safe to use for mail sent to addresses that are not on your list.

> **Note:** The scope of the opt-out is **that one topic** — never a global unsubscribe. The address keeps receiving your other topics, your campaigns, and your transactional mail; only later sends carrying the same `topic_id` skip it. Conversely, a send **without** a `topic_id` is transactional and carries **no** unsubscribe footer or header at all: an unsubscribe writes a suppression that blocks every later send to the address, so SendPing never puts one on a receipt or a password reset. See [Unsubscribe links](https://www.sendping.co/docs/emails/unsubscribe).

Both kinds of opt-out are listed together in the dashboard under **Audiences → Topics → View opt-outs**: contacts who turned the topic off on their preference page, and email addresses that used the unsubscribe link on a topic send.

> **Note:** The audience-wide **Subscribed** status is the master switch. If a contact’s global `unsubscribed` flag is `true`, they receive nothing — even from a topic they are opted in to. Only when the global status is subscribed do per-topic subscriptions decide what they receive. See [Managing unsubscribed contacts](https://www.sendping.co/docs/audiences/unsubscribed).

## The preference page

Each per-contact unsubscribe link resolves to a hosted preference page where the contact can:

- unsubscribe from one or more individual **topics** (and keep receiving the rest), or
- unsubscribe from **everything** you send (this flips their global `unsubscribed` flag and stops all campaigns).

The page lists every **public** topic; **private** topics appear only for contacts already opted in to them. Include the link in a campaign with the `{{{SENDPING_UNSUBSCRIBE_URL}}}` merge tag.

The unsubscribe link on a **topic send** is different: it names the topic being left and offers only that choice — no “unsubscribe from everything” box — because a topic link is not consent to stop the sender’s account and transactional mail.
