Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
twilio avatar

Twilio Sendgrid Suppressions

  • 102 installs
  • 26 repo stars
  • Updated July 29, 2026
  • twilio/ai

How to query, interpret, and safely manage SendGrid email suppressions (bounces, blocks, spam reports, unsubscribes) via API to debug delivery issues and implement compliant unsubscribe flows.

About

SendGrid suppressions protect sender reputation by automatically preventing delivery to addresses that have bounced, reported spam, or unsubscribed. This skill covers seven suppression types (hard bounces, soft bounces, blocks, spam reports, invalid emails, global unsubscribes, and group unsubscribes), when and how to safely remove them, and category-based unsubscribe management via ASM groups. Hard bounces immediately suppress; soft bounces trigger automatic retries. Deletion allows re-sending but risks reputation damage if the underlying issue persists. ASM groups enable recipients to unsubscribe from specific categories rather than all email. Auto-purge and address allow lists provide configuration options but require careful consideration to avoid bypassing legitimate suppressions.

  • Manage 7 suppression types via REST APIs with hard/soft bounce distinction
  • ASM suppression groups enable category-based unsubscribe flows without global blocks
  • Safe removal requires business reason confirmation to protect sender reputation
  • Auto-purge and allow lists available but dangerous if misused
  • Soft bounces auto-retry; hard bounces immediately suppress and damage reputation if re-sent

Twilio Sendgrid Suppressions by the numbers

  • 102 all-time installs (skills.sh)
  • +6 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #2,990 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

twilio-sendgrid-suppressions capabilities & compatibility

Capabilities
query suppression lists by type (bounces, blocks · remove individual suppression records with busin · create and manage asm suppression groups · view group level unsubscribe status · configure auto purge schedules and address allow · diagnose delivery failures via suppression statu · implement category based unsubscribe flows
Use cases
debugging · email · api development
Pricing
Bring your own API key
From the docs

What twilio-sendgrid-suppressions says it does

Suppressions prevent SendGrid from sending to addresses that have bounced, reported spam, or unsubscribed. They protect your sender reputation but can also block legitimate re-sends if not managed cor
SKILL.md Overview
Hard bounces (permanent) immediately suppress the address. Soft bounces (temporary) trigger retries — SendGrid will retry delivery before eventually suppressing if the issue persists.
SKILL.md Suppression Types
Deleting suppression records (especially spam reports) allows re-sending to addresses that previously complained. Always confirm with the user before removal and document the business reason.
SKILL.md Managing Suppressions
npx skills add https://github.com/twilio/ai --skill twilio-sendgrid-suppressions

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs102
repo stars26
Last updatedJuly 29, 2026
Repositorytwilio/ai

What it does

Debug SendGrid delivery failures and manage email suppressions (bounces, blocks, spam reports, unsubscribes) via API.

Who is it for?

Debugging email delivery issues, implementing unsubscribe workflows, managing sender reputation, building category-based preference centers, remediating bounce/block/spam-report lists.

Skip if: Mass email campaigns (use Mail Send skill), SMTP configuration, Twilio Email API (comms.twilio.com), or bypassing suppressions without sender verification.

When should I use this skill?

Emails are not delivering, building unsubscribe UX, implementing category-based preferences, auditing sender reputation, or removing suppression records with user consent.

What you get

Developers can confidently diagnose SendGrid delivery failures, remove suppressions with business justification, and build unsubscribe flows using ASM groups without damaging sender reputation.

  • Python code to list suppressions by type
  • Python code to remove individual suppression records
  • ASM group creation and configuration

By the numbers

  • 7 suppression types managed via REST API
  • Hard bounces suppress immediately; soft bounces retry before suppression
  • Auto-purge configurable from 1 to 3,650 days

Files

SKILL.mdMarkdownGitHub ↗

Overview

Suppressions prevent SendGrid from sending to addresses that have bounced, reported spam, or unsubscribed. They protect your sender reputation but can also block legitimate re-sends if not managed correctly.

---

Suppression Types

TypeEndpointWhat triggers itAuto-added?
Hard Bounces/v3/suppression/bouncesPermanent delivery failure (invalid mailbox, domain doesn't exist)Yes
Soft BouncesNo management API — automatic retry onlyTemporary failure (mailbox full, server down) — SendGrid auto-retries before suppressingYes, after repeated failures
Blocks/v3/suppression/blocksTemporary rejection by receiving server (reputation, policy, content)Yes
Spam Reports/v3/suppression/spam_reportsRecipient marks email as spamYes
Invalid Emails/v3/suppression/invalid_emailsMalformed email addressYes
Global Unsubscribes/v3/suppression/unsubscribesRecipient unsubscribes from all emailYes
Group Unsubscribes (ASM)/v3/asm/groups/{id}/suppressionsRecipient unsubscribes from a categoryYes

Hard vs Soft bounces: Hard bounces (permanent) immediately suppress the address. Soft bounces (temporary) trigger retries — SendGrid will retry delivery before eventually suppressing if the issue persists.

---

Managing Suppressions

List bounces (Python)

import os, requests

headers = {"Authorization": f"Bearer {os.environ['SENDGRID_API_KEY']}"}
response = requests.get("https://api.sendgrid.com/v3/suppression/bounces", headers=headers)
for bounce in response.json():
    print(f"{bounce['email']}: {bounce.get('reason', 'unknown')}")

Remove a bounce (Python)

requests.delete(f"https://api.sendgrid.com/v3/suppression/bounces/{email}", headers=headers)
Caution: Deleting suppression records (especially spam reports) allows re-sending to addresses that previously complained. Always confirm with the user before removal and document the business reason.

---

ASM Suppression Groups

Use suppression groups for category-based unsubscribes (e.g., "Marketing", "Transactional", "Product Updates"). Recipients can unsubscribe from one category without being suppressed from all email.

Create a group:

requests.post("https://api.sendgrid.com/v3/asm/groups",
    headers={**headers, "Content-Type": "application/json"},
    json={"name": "Marketing Emails", "description": "Promotional offers and updates"})

Send with a suppression group: Include asm.group_id in your Mail Send request. Recipients see a "manage preferences" link instead of a global unsubscribe.

---

Auto-Purge (Bounce & Block Cleanup)

Configure automatic purge schedules in Console > Settings > Mail Settings > Purge Bounces & Blocks:

  • Soft Bounces: Auto-purge after N days (1–3,650 days)
  • Hard Bounces: Auto-purge after N days (1–3,650 days)

Caution: Enabling auto-purge without a business reason allows re-sending to previously bounced addresses, which damages sender reputation. Do not use as a workaround to force delivery.

---

Address Allow List

Console > Settings > Mail Settings > Address Allow List allows specific email addresses or domains to bypass all suppressions. Useful for internal testing addresses.

Use with extreme caution — never allowlist domains you don't control (e.g., gmail.com), and never use to bypass spam report suppressions.

---

CANNOT

  • Suppressions are global by default — A bounce or spam report on ANY email suppresses the address from ALL future sends. Use ASM groups to scope unsubscribes.
  • Removing a suppression does not fix the underlying issue — Deleting a bounce record lets you retry, but the mailbox is likely still invalid. Re-sending to hard bounces damages sender reputation.
  • Cannot prevent spam report suppressions — When a recipient marks you as spam, the suppression is automatic and cannot be overridden.
  • Cannot bulk-remove suppressions by domain — Must remove individually by email address via API.

---

Next Steps

  • Send email: twilio-sendgrid-email-send
  • Delivery tracking: twilio-sendgrid-webhooks
  • Account setup: twilio-sendgrid-account-setup

Related skills

FAQ

What is the difference between a hard bounce and a soft bounce?

Hard bounces are permanent delivery failures (invalid mailbox, domain doesn't exist) and immediately suppress the address. Soft bounces are temporary failures (mailbox full, server down) and trigger automatic retries by SendGrid before eventually suppressing if the issue persists

Can I remove a suppression record and resend to that address?

Yes, but only with documented business reason and user consent. Deletion via DELETE /v3/suppression/bounces/{email} allows retry, but if the underlying issue (invalid mailbox, spam complaint) still exists, re-sending damages sender reputation. Never bypass spam report suppression

What are ASM suppression groups and when should I use them?

ASM groups enable category-based unsubscribes (e.g., Marketing, Transactional, Product Updates). Recipients unsubscribe from one category without being suppressed from all email. Include asm.group_id in Mail Send requests. Use when you have multiple email categories and want fine

Backend & APIssupportmonitoring

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.