3 operations. Guide: Send email with the API. Requests and responses are JSON with snake_case fields; authenticate with Authorization: Bearer <api key>. The examples assume a client built as in SDKs and the command line.

List suppressed addresses

GET /v1/suppressions

Operation listSuppressions, SDK minket.suppressions.list. Keys: full access. Test keys work on test-mode data.

Parameters

NameInTypeRequiredDescription
limitqueryintegerno Default 20.
afterquerystringnoA UUID.
beforequerystringnoA UUID.
emailquerystringno
reasonqueryone of "hard_bounce", "complaint", "unsubscribe", "one_click", "manual", "sunset", "imported"no
streamqueryone of "transactional", "marketing"noTransactional mail is one-to-one and expected; marketing mail goes to lists and must carry List-Unsubscribe.

Response

200 Success: object.

FieldTypeRequiredDescription
object"list"yes
dataarray of Suppressionyes
data[].idstringyesA UUID.
data[].object"suppression"yes
data[].project_idstringyesA UUID.
data[].emailstringyes
data[].streamone of "transactional", "marketing", null or nullyesTransactional mail is one-to-one and expected; marketing mail goes to lists and must carry List-Unsubscribe.
data[].reasonone of "hard_bounce", "complaint", "unsubscribe", "one_click", "manual", "sunset", "imported"yes
data[].sourcestringyes
data[].email_idstring or nullyesA UUID.
data[].created_atstring (date-time)yesAn ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z.
data[].expires_atstring (date-time) or nullyesAn ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z.
has_morebooleanyes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.

Examples

curl
curl https://api.minket.com/v1/suppressions \
  -H "Authorization: Bearer $MINKET_API_KEY"

Suppress an address

POST /v1/suppressions

Operation createSuppression, SDK minket.suppressions.create. Keys: full access. Test keys work on test-mode data.

Request body

FieldTypeRequiredDescription
emailstringyesAn email address without display name.
streamone of "transactional", "marketing", null or nullnoTransactional mail is one-to-one and expected; marketing mail goes to lists and must carry List-Unsubscribe. Default null.
reasonone of "manual", "imported"noDefault "manual".

Response

201 Created: Suppression.

FieldTypeRequiredDescription
idstringyesA UUID.
object"suppression"yes
project_idstringyesA UUID.
emailstringyes
streamone of "transactional", "marketing", null or nullyesTransactional mail is one-to-one and expected; marketing mail goes to lists and must carry List-Unsubscribe.
reasonone of "hard_bounce", "complaint", "unsubscribe", "one_click", "manual", "sunset", "imported"yes
sourcestringyes
email_idstring or nullyesA UUID.
created_atstring (date-time)yesAn ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z.
expires_atstring (date-time) or nullyesAn ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z.

Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.

Examples

curl
curl -X POST https://api.minket.com/v1/suppressions \
  -H "Authorization: Bearer $MINKET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"jane@example.com"}'

Remove a suppression

DELETE /v1/suppressions/{id}

Hard bounces and complaints should stay suppressed; removing them is audited.

Operation deleteSuppression, SDK minket.suppressions.delete. Keys: full access. Test keys work on test-mode data.

Parameters

NameInTypeRequiredDescription
idpathstringyesA UUID.

Response

200 Success: object.

FieldTypeRequiredDescription
object"suppression"yes
idstringyes
deletedtrueyes

Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.

Examples

curl
curl -X DELETE https://api.minket.com/v1/suppressions/019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b \
  -H "Authorization: Bearer $MINKET_API_KEY"

Updated