Skip to content

Admin email suppression list

GET
/api/v1/admin/suppressions
curl --request GET \
--url https://api.deploybase.eu/api/v1/api/v1/admin/suppressions \
--header 'Authorization: <Authorization>'

Every address deploybase will not send to, newest activity first, with the reason (hard_bounce or complaint) and when it was first and last seen. The table is global by design — a bounce is a fact about the address and about our shared sending reputation, not about one team.

page
integer

Page number (default 1)

page_size
integer

Page size, 1-100 (default 20)

OK

Media type application/json
object
data
meta
object
request_id
string
timestamp
string
trace_id
string
data
object
page
integer
page_size

PageSize echoes the applied size, which may be the default rather than what was asked for.

integer
suppressions
Array<object>
object
email

Email is stored lowercased; the database enforces it (email_suppressions_email_lowercase). The send-time filter matches lowercased inputs, so a mixed-case row would be a suppression that never fires.

string
first_seen_at

FirstSeenAt is never updated, so “how long has this address been dead” stays answerable.

string
id
string
last_seen_at

LastSeenAt advances on every repeat event, which is how an operator tells a stale entry from one that is still actively bouncing.

string
reason

Reason is SuppressionReasonHardBounce or SuppressionReasonComplaint. A complaint upgrades an existing hard_bounce row; the downgrade never happens (see the Upsert CASE).

string
smtp_response

SMTPResponse is the remote server’s text, when the event carried one. Third-party free text: shown to operators, never parsed to make a decision.

string
source_message_id

SourceMessageID is the Lettermint message id of the send that produced the event, so one suppression can be traced back to the mail that caused it.

string
total

Total is the unpaginated count, so the dashboard can page and badge without a second call.

integer
Example generated
{
"data": {
"page": 1,
"page_size": 1,
"suppressions": [
{
"email": "example",
"first_seen_at": "example",
"id": "example",
"last_seen_at": "example",
"reason": "example",
"smtp_response": "example",
"source_message_id": "example"
}
],
"total": 1
},
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Bad Request

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Unauthorized

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Forbidden

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Internal Server Error

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Service Unavailable

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}