-
Notifications
You must be signed in to change notification settings - Fork 0
Suppressions
Greg Svoboda edited this page Mar 4, 2026
·
1 revision
Suppression management is done through ServerClient. You will need a server API token.
import postmark
client = postmark.ServerClient("your-server-token")Suppressions are scoped to a message stream (e.g. "outbound" or "broadcast").
Fetch all suppressed addresses for a message stream.
import asyncio
async def main():
suppressions = await client.suppressions.dump("outbound")
print(f"Total suppressions: {len(suppressions)}")
for s in suppressions:
print(f" {s.email_address}")
print(f" Reason: {s.suppression_reason.value}")
print(f" Origin: {s.origin.value}")
print(f" Created: {s.created_at}")
asyncio.run(main())from datetime import date
from postmark.models.suppressions import SuppressionReason
async def main():
suppressions = await client.suppressions.dump(
"outbound",
suppression_reason=SuppressionReason.HARD_BOUNCE,
from_date=date(2024, 1, 1),
to_date=date(2024, 12, 31),
)Available SuppressionReason values: HARD_BOUNCE, SPAM_COMPLAINT, MANUAL_SUPPRESSION, UNSUBSCRIBE
Add email addresses to a suppression list for a given stream. A maximum of 50 addresses can be submitted per call.
import asyncio
async def main():
results = await client.suppressions.create(
"outbound",
["user@example.com", "other@example.com"],
)
for r in results:
print(f" {r.email_address}: {r.status}")
if r.message:
print(f" {r.message}")
asyncio.run(main())Remove addresses from a suppression list. A maximum of 50 addresses can be submitted per call.
import asyncio
async def main():
results = await client.suppressions.delete(
"outbound",
["user@example.com"],
)
for r in results:
print(f" {r.email_address}: {r.status}")
if r.message:
print(f" {r.message}")
asyncio.run(main())