API reference
Suppressions
Addresses we won't send to, and why.
All requests go to https://api.padimail.app with Authorization: Bearer <your key>. Try these in the interactive reference with a pm_test_ key.
List suppressions
GET/v1/suppressions
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
limit | integer | No | Page size, 1 to 100. Default 50. |
after | string | No | Return items after this ID (the next value of the previous page). |
before | string | No | Return items before this ID. |
address | string | No | Search by address. |
reason | "bounce" | "complaint" | "unsubscribe" | "manual" | "invalid" | No |
Example
import { PadiMail } from "@padimail/node";
const pm = new PadiMail(process.env.PADIMAIL_API_KEY);
const result = await pm.suppressions.list({ reason: "bounce" });Response 200
{
"data": [
{
"id": "sup_01JBX7Q3F6ZK0Q9W1Y2R3T4V5S",
"object": "suppression",
"address": "ada@example.com",
"reason": "bounce",
"stream": "transactional",
"source_email_id": "em_01JBX7Q3F6ZK0Q9W1Y2R3T4V5S",
"created_at": "2026-10-27T13:05:09Z",
"expires_at": "2026-10-27T13:05:09Z"
}
],
"has_more": false,
"next": "string"
}Suppress an address (reason manual)
POST/v1/suppressions
Body
| Field | Type | Required | Notes |
|---|---|---|---|
address | string (email) | Yes | |
stream | "transactional" | "marketing" | null | No | Leave out to suppress the address on every stream. |
Send an Idempotency-Key header to make retries safe. The Node SDK adds one for you.
Example
import { PadiMail } from "@padimail/node";
const pm = new PadiMail(process.env.PADIMAIL_API_KEY);
const result = await pm.suppressions.create({ address: "ada@example.com" });Response 200
{
"id": "sup_01JBX7Q3F6ZK0Q9W1Y2R3T4V5S",
"object": "suppression",
"address": "ada@example.com",
"reason": "bounce",
"stream": "transactional",
"source_email_id": "em_01JBX7Q3F6ZK0Q9W1Y2R3T4V5S",
"created_at": "2026-10-27T13:05:09Z",
"expires_at": "2026-10-27T13:05:09Z"
}Remove a suppression (not for complaints)
DELETE/v1/suppressions/{id}
Path parameters
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | Yes |
Example
import { PadiMail } from "@padimail/node";
const pm = new PadiMail(process.env.PADIMAIL_API_KEY);
const result = await pm.suppressions.remove("sup_01JBX7Q3F6ZK0Q9W1Y2R3T4V5S");Response 200
{ "id": "string", "object": "string", "deleted": true }Was this page helpful?