# List suppressed email addresses

`GET /v1/suppressions`

Requires an API key with the `suppressions:read` scope. [About keys and scopes](/docs/api/authentication)

Admin, or a key with `suppressions:read`. Every blocked email address in the workspace, newest first, whether or not a contact still exists for it. Sends to these addresses are skipped. Filter by `email` to check one address exactly (normalised as stored), or by `q` to match any part of the address.

## Query parameters

- `limit` (integer, optional, min > 0, max 100, default `20`)
- `cursor` (string, optional, 1–2048 characters)
- `email` (string, optional) — One address, matched trimmed and without case: is it blocked?
- `q` (string, optional, 1–320 characters) — Case-insensitive part of the address.
- `reason` (string, optional, one of `manual`, `imported`, `unsubscribed`, `bounced`, `complained`, `complained_transactional`) — Only blocks with this reason.

## Returns

Returns `200 OK`. Otherwise returns an error; [Errors](/docs/api/errors) lists every code and which to retry.

- `id` (string, required, uuid)
- `channel` (string, required, one of `email`)
- `address` (string, required)
- `reason` (string, required) — Why it is blocked: `bounced`, `complained`, `complained_transactional`, `unsubscribed`, `manual` or `imported`.
- `removable` (boolean, required) — True for `manual` and `imported`; bounces, complaints and unsubscribes cannot be removed.
- `createdAt` (string, required, date-time)

## Example

```bash
curl https://api.kirora.io/v1/suppressions \
  -H "Authorization: Bearer $KIRORA_API_KEY"
```

Response `200`:

```json
{
  "data": [
    {
      "id": "018f2a4e-6b1c-7d3e-9f40-37386ae05a6b",
      "channel": "email",
      "address": "address_example",
      "reason": "reason_example",
      "removable": true,
      "createdAt": "2030-03-14T09:30:00Z"
    }
  ],
  "meta": {
    "pagination": {
      "limit": 1,
      "nextCursor": "nextCursor_example"
    }
  }
}
```
