# GET/POST /api/v1/suppressions

Auth: Bearer

HTML: https://cooperemail.com/docs/reference/suppressions

## Summary

Account suppression list. A permanent bounce (Status 5.x.x) or a complaint adds the recipient with reason bounce or complaint. POST {address} adds reason manual and returns 201, or 200 when that address is already listed. GET returns {object:"list", data:[{object:"suppression", address, reason, source_message_id, created_at}]}. A bad address is 400 invalid_address. Requires list_read or list_write. An inbox-scoped key receives 403 permission_denied. Agent sends, replies, forwards, and task replies to a listed address return 403 recipient_suppressed and nothing is sent, stored, or counted. Only Action failed with Status 5.x.x suppresses, and only an address that was a To, Cc, or Bcc of the matched message. A 4.x.x report is a delayed delivery event and does not bounce or suppress. A 2.x.x report is ignored. A text body is not a bounce. Receive block and allow lists still apply to the report. Owner confirmation and progress mail are not checked.

## Request

```json
{
  "address": "ada@example.com"
}
```

## Response

The OpenAPI document does not declare a JSON response schema for this call. The summary is the contract.

## Errors

- HTTP 400 invalid_address
- HTTP 403 permission_denied
- HTTP 403 recipient_suppressed

The live `message` is the sentence for that code. Branch on `code`.

```json
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_address",
    "docs_url": "https://cooperemail.com/docs#invalid_address"
  }
}
```

## Idempotency

This route does not document Idempotency-Key or client_id.
