# Suppression events

> Suppressions created, updated or deleted.



## suppression.created

> Sent when you add an address to the suppression list through the API, a CSV import, or an automation step.

# suppression.created

Sent when a suppression is added with [Create a suppression](/docs/api-reference/suppressions/create/), a CSV import in the dashboard, or an automation's **Add to suppressions** step. Suppressions that Emailit adds automatically after bounces and complaints don't send this event; listen for [`email.bounced`](/docs/webhooks/events/email/bounced/) and [`email.complained`](/docs/webhooks/events/email/complained/) instead.

Webhook requests carry a JSON array of events like this one; see [Webhook requests](/docs/webhooks/webhook-requests/).

```json
{
  "event_id": "evt_2xLc9Rr4Tn6Wb1Qm8Ks3Vf0Hd7a",
  "type": "suppression.created",
  "object": {
    "id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
    "object": "suppression",
    "email": "ada@example.com",
    "type": "recipient",
    "reason": "manual",
    "created_at": "2026-10-01T09:30:12.481000+00:00",
    "keep_until": null
  },
  "data": {
    "object": {
      "id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
      "object": "suppression",
      "email": "ada@example.com",
      "type": "recipient",
      "reason": "manual",
      "created_at": "2026-10-01T09:30:12.481000+00:00",
      "keep_until": null
    }
  }
}
```

## Fields

- `event_id` (string): Event ID (`evt_…`). A retried request carries the same ID, so use it to skip events you already handled. You can also look the event up with [Retrieve an event](/docs/api-reference/events/get/).

- `type` (string): Always `suppression.created`.

- `object` (object): The suppression the event describes. Its fields are listed below.

- `data.object` (object): The same object again, in the shape that the [Events API](/docs/api-reference/events/get/) returns in `data`.

### Suppression object

- `id` (string): Suppression ID (`sup_…`).

- `object` (string): Always `suppression`.

- `email` (string): Suppressed address, in lowercase.

- `type` (string): `recipient`, `bounce`, `complaint` or `unsubscribe`. Only `recipient` suppressions stop API and SMTP sends; campaigns skip every type.

- `reason` (string | null): Reason for the suppression.

- `created_at` (string): When the suppression was created, in ISO 8601 with a UTC offset.

- `keep_until` (string | null): When the suppression expires, or `null` if it's permanent.

---
Source: https://emailit.com/docs/webhooks/events/suppression/suppression-created/

## suppression.updated

> Sent when a suppression changes, for example its type, reason or expiry date. Includes the updated suppression.

# suppression.updated

Sent when a suppression changes with [Update a suppression](/docs/api-reference/suppressions/update/).

Webhook requests carry a JSON array of events like this one; see [Webhook requests](/docs/webhooks/webhook-requests/).

```json
{
  "event_id": "evt_2xLc9Rr4Tn6Wb1Qm8Ks3Vf0Hd7a",
  "type": "suppression.updated",
  "object": {
    "id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
    "object": "suppression",
    "email": "ada@example.com",
    "type": "recipient",
    "reason": "Asked to pause invoices until January",
    "created_at": "2026-10-01T09:30:12.481000+00:00",
    "keep_until": "2027-01-01T00:00:00.000000+00:00"
  },
  "data": {
    "object": {
      "id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
      "object": "suppression",
      "email": "ada@example.com",
      "type": "recipient",
      "reason": "Asked to pause invoices until January",
      "created_at": "2026-10-01T09:30:12.481000+00:00",
      "keep_until": "2027-01-01T00:00:00.000000+00:00"
    }
  }
}
```

## Fields

- `event_id` (string): Event ID (`evt_…`). A retried request carries the same ID, so use it to skip events you already handled. You can also look the event up with [Retrieve an event](/docs/api-reference/events/get/).

- `type` (string): Always `suppression.updated`.

- `object` (object): The suppression the event describes. Its fields are listed below.

- `data.object` (object): The same object again, in the shape that the [Events API](/docs/api-reference/events/get/) returns in `data`.

### Suppression object

- `id` (string): Suppression ID (`sup_…`).

- `object` (string): Always `suppression`.

- `email` (string): Suppressed address, in lowercase.

- `type` (string): `recipient`, `bounce`, `complaint` or `unsubscribe`. Only `recipient` suppressions stop API and SMTP sends; campaigns skip every type.

- `reason` (string | null): Reason for the suppression.

- `created_at` (string): When the suppression was created, in ISO 8601 with a UTC offset.

- `keep_until` (string | null): When the suppression expires, or `null` if it's permanent.

---
Source: https://emailit.com/docs/webhooks/events/suppression/suppression-updated/

## suppression.deleted

> Sent when you delete a suppression so the address can receive email again. The payload is the deleted suppression.

# suppression.deleted

Sent when a suppression is deleted with [Delete a suppression](/docs/api-reference/suppressions/delete/). An expired suppression stays in the list and doesn't send this event, and neither does an automation's **Remove from suppressions** step.

Webhook requests carry a JSON array of events like this one; see [Webhook requests](/docs/webhooks/webhook-requests/).

```json
{
  "event_id": "evt_2xLc9Rr4Tn6Wb1Qm8Ks3Vf0Hd7a",
  "type": "suppression.deleted",
  "object": {
    "id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
    "object": "suppression",
    "email": "ada@example.com",
    "type": "recipient",
    "reason": "manual",
    "created_at": "2026-10-01T09:30:12.481000+00:00",
    "keep_until": null
  },
  "data": {
    "object": {
      "id": "sup_2xL1c8NqT4pWm6Rb0YsKd3HvF9e",
      "object": "suppression",
      "email": "ada@example.com",
      "type": "recipient",
      "reason": "manual",
      "created_at": "2026-10-01T09:30:12.481000+00:00",
      "keep_until": null
    }
  }
}
```

## Fields

- `event_id` (string): Event ID (`evt_…`). A retried request carries the same ID, so use it to skip events you already handled. You can also look the event up with [Retrieve an event](/docs/api-reference/events/get/).

- `type` (string): Always `suppression.deleted`.

- `object` (object): The suppression the event describes. Its fields are listed below.

- `data.object` (object): The same object again, in the shape that the [Events API](/docs/api-reference/events/get/) returns in `data`.

### Suppression object

- `id` (string): Suppression ID (`sup_…`).

- `object` (string): Always `suppression`.

- `email` (string): Suppressed address, in lowercase.

- `type` (string): `recipient`, `bounce`, `complaint` or `unsubscribe`. Only `recipient` suppressions stop API and SMTP sends; campaigns skip every type.

- `reason` (string | null): Reason for the suppression.

- `created_at` (string): When the suppression was created, in ISO 8601 with a UTC offset.

- `keep_until` (string | null): When the suppression expires, or `null` if it's permanent.

---
Source: https://emailit.com/docs/webhooks/events/suppression/suppression-deleted/
