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

# Suppressions

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

## Every method

**suppressions.py**

```
from openemail import openemail

complaints = openemail.suppressions.list_all(reason='complaint')

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

if row['removable']:
    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.

## Reference

- [`suppressions.list()`](https://openemail.uk/docs/python/reference/suppressions#list): full reference
- [`suppressions.list_all()`](https://openemail.uk/docs/python/reference/suppressions#listAll): full reference
- [`suppressions.iterate()`](https://openemail.uk/docs/python/reference/suppressions#iterate): full reference
- [`suppressions.get()`](https://openemail.uk/docs/python/reference/suppressions#get): full reference
- [`suppressions.add()`](https://openemail.uk/docs/python/reference/suppressions#add): full reference
- [`suppressions.remove()`](https://openemail.uk/docs/python/reference/suppressions#remove): full reference
