> ## Documentation Index
> Fetch the complete documentation index at: https://docs.drin.run/llms.txt
> Use this file to discover all available pages before exploring further.

# Add a suppression

> POST /v1/suppressions — manually block an address from receiving mail from this project.

Manually add an address to the project's block list. Once suppressed, any send to that address is dropped before it leaves the pipeline.

**`POST /v1/suppressions`**

## Body

<ParamField body="email" type="string" required>
  The address to suppress.
</ParamField>

<ParamField body="reason" type="string">
  Why it's being added. Manual additions are recorded as `manual`. Bounces and complaints are added automatically with `hard_bounce` / `complaint`.
</ParamField>

<Note>
  **Bounces and complaints are automatic.** Drin suppresses an address on its own when it hard-bounces or files a spam complaint. Use this endpoint for addresses you already know you should not contact.
</Note>

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.drin.run/v1/suppressions \
    -H "Authorization: Bearer $DRIN_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{ "email": "do-not-mail@example.com", "reason": "manual" }'
  ```

  ```typescript Node.js theme={null}
  import { DrinClient } from "@drin00/sdk";

  const drin = new DrinClient({ apiKey: process.env.DRIN_API_KEY });

  await drin.suppressions.create({
    email: "do-not-mail@example.com",
    reason: "manual",
  });
  ```
</CodeGroup>

## Response

Returns `201 Created` with the suppression entry. Adding an address that is already suppressed is safe and idempotent.

```json 201 Created theme={null}
{
  "email": "do-not-mail@example.com",
  "reason": "manual",
  "createdAt": "2026-06-02T17:30:00.000Z"
}
```
