docs

Concepts

Streams

Keep receipts and password resets apart from announcements, so a spam report on one never blocks the other.

Every API key has a type, called its stream. Choose it when you create the key under API keys. It cannot be changed afterwards, so create a second key if you need both.

Stream For A spam report
Transactional (default) Mail a person needs because of something they did: receipts, password resets, alerts. Blocks the address on every key.
Broadcast Mail people opted into and can leave, such as announcements and product updates. Blocks the address on broadcast keys only.

A hard bounce always blocks the address everywhere, in both streams, because the address does not exist.

Why it matters#

Without streams, one person unsubscribing angrily from an announcement would also stop their password reset emails. With streams, a spam report on broadcast mail only stops more broadcast mail to that address. Their receipts and resets keep arriving.

The stream comes from the key that sends the message, not from anything in the request, so SMTP and the HTTP API behave the same way.

Suppression scopes#

Each entry on the Suppressions page shows its scope:

  • All mail: blocked on every key.
  • Broadcast only: blocked on broadcast keys. Transactional mail still goes through.

When you block an address by hand, you choose the scope.

Broadcast keys count toward the same plan cap and the same automatic pause as any other key. Streams organise your list. They do not exempt mail from the acceptable use policy: send only to people who asked for it, and keep cold outreach and purchased lists out.