Admin email suppression list
const url = 'https://api.deploybase.eu/api/v1/api/v1/admin/suppressions';const options = {method: 'GET', headers: {Authorization: '<Authorization>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “ Query Parameters ”Page number (default 1)
Page size, 1-100 (default 20)
Responses
Section titled “ Responses ”OK
object
object
object
PageSize echoes the applied size, which may be the default rather than what was asked for.
object
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.
FirstSeenAt is never updated, so “how long has this address been dead” stays answerable.
LastSeenAt advances on every repeat event, which is how an operator tells a stale entry from one that is still actively bouncing.
Reason is SuppressionReasonHardBounce or SuppressionReasonComplaint. A complaint upgrades an existing hard_bounce row; the downgrade never happens (see the Upsert CASE).
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.
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.
Total is the unpaginated count, so the dashboard can page and badge without a second call.
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
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Unauthorized
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Forbidden
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Internal Server Error
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Service Unavailable
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}