---
title: "openemail suppressions"
description: "Every command in this namespace, with its arguments, flags and examples."
url: "https://openemail.uk/docs/cli/reference/suppressions"
area: "CLI"
category: "Reference"
---

# openemail suppressions

Every command in this namespace, with its arguments, flags and examples.

## Commands

### `openemail suppressions list`

List one page of the suppression list

```bash
openemail suppressions list [flags]
```

Resolves one page of the addresses this workspace will not send to, newest first: every address that bounced hard, complained, or was added by hand.

A send to a suppressed address is refused for that recipient before anything leaves, and a message whose recipients are all suppressed fails outright. The list belongs to the whole workspace, so a key limited to some addresses reads all of it, and a row names the recipient, never which of your addresses sent to it.

`removable` says whether `remove` will take the address off. A hard bounce is permanent here, because the address could not take mail. A complaint or a manual entry can be removed.

Add `--all` to walk every page: a table on a terminal, one JSON object per line when piped or with `--ndjson`, and one `{ items, hasMore, nextCursor }` document with `--json`. `--max <n>` stops after that many items.

- Scopes: `settings:read`.
- Needs a sign-in.
- Aliases: `ls`.

**Flags**

- `--q <value>`: Searches the address, the reason and the detail. Words match loosely, and a close spelling is tried when nothing matches exactly.
- `--reason <value>`: Keeps one kind: `bounce`, `complaint` or `manual`.
- `--limit <n>` (default `25`): Page size, from 1 to 100. The server defaults to 25.
- `--cursor <value>`: The `nextCursor` of the previous page. Leave it out for the first page.
- `--all`: Fetch every page and stream the items as they arrive.
- `--max <n>`: Stop after this many items. Implies `--all`.
- `--ndjson`: Print every item as one JSON object per line. Implies `--all`

**Examples**

```bash
openemail suppressions list
```

With optional flags

```bash
openemail suppressions list --reason complaint
```

Walk every page and stop after 100 items

```bash
openemail suppressions list --all --max 100
```

One JSON object per line when piped

```bash
openemail suppressions list --all > suppressions.ndjson
```

Also available in: API [`GET /suppressions`](https://openemail.uk/docs/api/reference/suppressions#get-suppressions); SDK [`suppressions.list()`](https://openemail.uk/docs/sdk/reference/suppressions#list).

### `openemail suppressions get`

Read one suppressed address by id

```bash
openemail suppressions get <id> [flags]
```

Resolves one row of the suppression list: the address, why it is there, the detail the bounce or complaint carried, whether it can be removed and when it was added.

- Scopes: `settings:read`.
- Needs a sign-in.
- Aliases: `show`, `view`.

**Arguments**

- `<id>` (required): The id from `list`.

**Examples**

```bash
openemail suppressions get 7b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e
```

Print the raw JSON

```bash
openemail suppressions get 7b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e --json
```

Also available in: API [`GET /suppressions/{id}`](https://openemail.uk/docs/api/reference/suppressions#get-suppressions-id); SDK [`suppressions.get()`](https://openemail.uk/docs/sdk/reference/suppressions#get).

### `openemail suppressions add`

Stop sending to an address

```bash
openemail suppressions add --email <value> [flags]
openemail suppressions add --data <json|@file|-> [flags]
```

Puts an address on the suppression list by hand, with `reason: 'manual'`, so no address in the workspace sends to it again until it is removed. It is the Block an address control on the Blocked addresses screen.

Adding an address that is already there changes nothing: the server answers 200 with the row it already holds, whatever its reason, where a new entry answers 201. Either way you get the row back. A new entry fires `suppression.added` to the webhooks that asked for it.

- Scopes: `settings:write`.
- Needs a sign-in.
- Aliases: `new`, `create`.

**Flags**

- `--email <value>`: The address to stop sending to. It is trimmed and lower cased. Required, here or in `--data`.
- `--data <json|@file|->`: The whole `body` as JSON, inline, from a file with @path, or - for standard input. Flags override its keys.

**Examples**

```bash
openemail suppressions add --email noreply@example.com
```

Read the whole body from a JSON file

```bash
openemail suppressions add --data @suppression.json
```

Also available in: API [`POST /suppressions`](https://openemail.uk/docs/api/reference/suppressions#post-suppressions); SDK [`suppressions.add()`](https://openemail.uk/docs/sdk/reference/suppressions#add).

### `openemail suppressions remove`

Allow mail to an address again

```bash
openemail suppressions remove <id> [flags]
```

Takes an address off the suppression list, so mail may go to it again. It is Allow again on the Blocked addresses screen, and it fires `suppression.removed`.

Only a complaint or a manual entry can be removed. A hard bounce answers 409 `suppression_not_removable` and stays, because the address could not take mail: check it is spelled right and send to the corrected one instead.

- Scopes: `settings:write`.
- Needs a sign-in.
- Asks you to confirm.
- Aliases: `rm`, `del`, `delete`.

**Arguments**

- `<id>` (required): The id from `list`.

**Examples**

```bash
openemail suppressions remove 7b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e
```

Skip the confirmation, for scripts

```bash
openemail suppressions remove 7b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e --yes
```

Also available in: API [`DELETE /suppressions/{id}`](https://openemail.uk/docs/api/reference/suppressions#delete-suppressions-id); SDK [`suppressions.remove()`](https://openemail.uk/docs/sdk/reference/suppressions#remove).
