---
title: "List suppressions"
method: GET
path: "/v1/suppressions"
tags: ["Suppressions"]
---

# List suppressions

`GET /v1/suppressions`

## Request

- Base URL: `https://api.volanea.com`
- URL: `https://api.volanea.com/v1/suppressions`
- Auth: HTTP bearer

The do-not-send list, newest first, cursor-paginated. Filter by `reason` to separate hard bounces from complaints, unsubscribes, and manual blocks.

Every send checks this list first, and a suppressed recipient comes back inside a 200 as `{ to, skipped: "suppressed" }` rather than as an error — so a caller reading `messages` as "delivered" counts suppressions as successes.

To ask about a single address rather than page the whole list, use `GET /v1/suppressions/check`.

## Query parameters

- `cursor` string
- `limit` integer
- `reason` 'hard_bounce' | 'complaint' | 'manual' | 'unsubscribe'

## Response `200`

A page of suppressions.

- object
  - `data` Suppression[], required
    - `suppressionId` string, required
    - `projectId` string
    - `email` string, email, required
    - `reason` 'hard_bounce' | 'complaint' | 'manual' | 'unsubscribe', required
    - `source` string, nullable
    - `createdAt` string, date-time, required
  - `nextCursor` string, nullable, required: Opaque token. Pass back as `cursor` verbatim to fetch the next page; `null` when there are no more rows.

## Other responses

- `401`: Missing or invalid API key.
- `422`: Request validation failed (code `validation_error`, 422).

---

[API](https://skmtc.dev/volanea/apis/volanea-api.md) · [All operations](https://skmtc.dev/volanea/apis/volanea-api/llms.txt) · [OpenAPI document](https://skmtc.dev/volanea/apis/volanea-api/revisions/9e187ae84fda?raw)
