---
title: "Suppressions"
description: "`suppressions.list`, `listAll`, `iterate`, `get`, `add` and `remove`."
url: "https://openemail.uk/docs/sdk/suppressions"
area: "SDK"
category: "Mailbox"
---

# Suppressions

`suppressions.list`, `listAll`, `iterate`, `get`, `add` and `remove`.

## Every method

**suppressions.ts**

```
const complaints = await openemail.suppressions.listAll({ reason: 'complaint' })

const row = await openemail.suppressions.add({ email: 'noreply@example.com' })

if (row.removable) await openemail.suppressions.remove(row.id)
```

The addresses this workspace will not send to: hard bounces and complaints, recorded as they happen, and any address blocked by hand. A send to one is refused for that recipient before anything leaves. Reading needs `settings:read` and changing needs `settings:write`, the scopes the Blocked addresses screen is gated on.

> `add` answers with the row whether it was new or already there. `remove` refuses a hard bounce with 409 `suppression_not_removable`, which `removable` tells you ahead of time. A key limited to particular addresses or domains can read the list and cannot change it.
