Today’s production release of SparkPost provides Suppression and unsubscribe functionality via a shiny new Email Suppression List API.

Why Do I Need This and How Does it Work?

Protecting your sender reputation is essential to maximizing your email deliverability. Many inbox providers, e.g. Yahoo, Gmail, Hotmail/, or AOL, opt to limit or refuse message traffic based on it. Continuing to send messages to invalid email addresses or to recipients who no longer want to receive your emails can negatively impact your sender reputation. By maintaining an up-to-date suppression list, you can avoid sending unwanted messages. A suppression list — or exclusion list, as it is sometimes called — is a list of recipient email addresses to which you do NOT want to send email.

SparkPost supports two types of email suppression lists: one (available via the Suppression List API) is specifically for your account, and a global suppression list. Message Systems maintains a global suppression list across all customers. NOTE: The Global Suppression List data is not accessible via the Email Suppression List API.

When a message is injected either using SMTP or HTTP, SparkPost will check the email address against the account-specific and global suppression lists. If an email address for a recipient matches an address on the list, that message will be rejected for delivery by SparkPost automatically.

How are Recipients added to Suppression Lists?

  • Spam Complaints / FeedBack Loops (FBLs): When a recipient clicks the “this is spam” button provided by the ISP, the ISP sends a Spam Complaint or FBL message to SparkPost. SparkPost will automatically add the recipient’s email address to your suppression list.
  • Hard Bounces: When messages bounce, the ISP will include a message that lets the sender know whether it was a “Soft Bounce” or a “Hard Bounce”. A “Soft Bounce” is a temporary error or delay indicating that the message was set to a valid recipient address, while a “Hard Bounce” indicates that the message was sent to an invalid email address that should not be retried. SparkPost will automatically add any email address associated with a “Hard Bounce” to your email suppression list.
  • Unsubscribe Requests: Recipients can request to be unsubscribed by clicking the SparkPost-provided unsubscribe link in the message or by using the List-Unsubscribe header. SparkPost will automatically add the recipient’s email address to the email suppression list.
  • Compliance Team: Recipients can contact Message Systems and request that they no longer receive messages from a particular sender. Protecting our customers’ brands and maintaining high deliverability across all Message Systems’ accounts is of the utmost importance. Message Systems’ Compliance Team ensures that we’re acting as a good sender within the email community across all our customers and takes requests of recipients very seriously. If a request is received, the Compliance Team will add the recipient’s email address to that sender’s suppression list.
  • Suppression List API: Using the REST API, you can insert/update a single entry or multiple entries in your suppression list, check the suppression status for a specific recipient, or remove a recipient from your suppression list. For more information, see the SparkPost Suppression List API.

How to Implement Link Unsubscribe Feature

The link unsubscribe features is easy to implement, simply add a link in your email in the following format:


That’s it. When users click on this link to unsubscribe, your webhook consumer will receive a link_unsubscribe event and that recipient will be added to your Suppression List.

How to Implement List-Unsubscribe Feature

The list unsubscribe features is baked into every message delivered by SparkPost by default. If you would like to know how to use this feature in your applications, read our user guide: Using Unsubscribe Events

Transactional vs. Non-Transactional Messages

SparkPost gives you the option to treat Transactional messages (such as password resets and shipping notifications) and non-Transactional messages (such as Marketing offers and newsletters) differently for the purpose of suppressing recipients. For example, you likely do not want to suppress recipients from your password reset messages, but do want to honor their request to stop receiving Marketing offers. By default, SparkPost treats your messages as non-Transactional. Designate any Template or Transmission as “Transactional” to bi-pass the Suppression List. Keep in mind — if you designate all your email as Transactional and recipients either opt-out or click “this is spam” but messages continue to go those recipients — your deliverability may suffer as a result. So think about what messages truly deserve to go no matter what vs. your recipients’ desire to opt-out of and designate accordingly.

For an example implementation, check out our user guide: Using Unsubscribe Events