# Subscriber events

> Contacts added to, changed in, added back to or removed from an audience.



## subscriber.created

> Sent when a contact is added to an audience, through the API, the dashboard, or a contact created with audiences.

# subscriber.created

Sent when a contact is added to an audience with [Add a subscriber](/docs/api-reference/audiences/subscribers/add/), or when you create or update a contact with `audiences`. Adding a contact that had unsubscribed from the audience sends [`subscriber.updated`](/docs/webhooks/events/subscriber/updated/) and [`subscriber.resubscribed`](/docs/webhooks/events/subscriber/resubscribed/) 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": "subscriber.created",
  "object": {
    "id": "sub_2xLj6Fa1Vu8Br3Xg5Cq0Nh7Ow2j",
    "object": "subscriber",
    "subscribed": true,
    "subscribed_at": "2026-09-20T14:22:09.418302+00:00",
    "unsubscribed_at": null,
    "audience": {
      "id": "aud_2xLi5Ez0Ut7Aq2Wf4Bp9Mg6Nv1i",
      "name": "Newsletter"
    },
    "contact": {
      "id": "con_2xLf5Jk1Xs7Nc2Ur8Zo3Ld6Pt0a",
      "email": "ada@example.com",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "custom_fields": {
        "company": "Analytical Engines"
      }
    },
    "created_at": "2026-09-20T14:22:09.418302+00:00"
  },
  "data": {
    "object": {
      "id": "sub_2xLj6Fa1Vu8Br3Xg5Cq0Nh7Ow2j",
      "object": "subscriber",
      "subscribed": true,
      "subscribed_at": "2026-09-20T14:22:09.418302+00:00",
      "unsubscribed_at": null,
      "audience": {
        "id": "aud_2xLi5Ez0Ut7Aq2Wf4Bp9Mg6Nv1i",
        "name": "Newsletter"
      },
      "contact": {
        "id": "con_2xLf5Jk1Xs7Nc2Ur8Zo3Ld6Pt0a",
        "email": "ada@example.com",
        "first_name": "Ada",
        "last_name": "Lovelace",
        "custom_fields": {
          "company": "Analytical Engines"
        }
      },
      "created_at": "2026-09-20T14:22:09.418302+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 `subscriber.created`.

- `object` (object): The subscriber 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`.

### Subscriber object

- `id` (string): Subscriber ID (`sub_…`). A subscriber is one contact's membership in one audience.

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

- `subscribed` (boolean): Whether the contact is subscribed to the audience.

- `subscribed_at` (string | null): When the contact subscribed, or `null`.

- `unsubscribed_at` (string | null): When the contact unsubscribed, or `null`.

- `audience` (object): `id` and `name` of the audience.

- `contact` (object): The contact: `id`, `email`, `first_name`, `last_name` and `custom_fields`.

- `created_at` (string): When the contact was added to the audience, in ISO 8601 with a UTC offset.

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

## subscriber.updated

> Sent when a subscriber changes, including when the contact unsubscribes from or rejoins an audience.

# subscriber.updated

Sent when a subscriber changes: you update it with [Update a subscriber](/docs/api-reference/audiences/subscribers/update/), the contact unsubscribes or resubscribes, or a contact that had unsubscribed is added to the audience again. When the change comes from an unsubscribe or resubscribe, `previous` holds the old values.

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

```json
{
  "event_id": "evt_2xLc9Rr4Tn6Wb1Qm8Ks3Vf0Hd7a",
  "type": "subscriber.updated",
  "object": {
    "id": "sub_2xLj6Fa1Vu8Br3Xg5Cq0Nh7Ow2j",
    "object": "subscriber",
    "subscribed": false,
    "subscribed_at": "2026-09-20T14:22:09.418302+00:00",
    "unsubscribed_at": "2026-10-01T10:02:14.000000+00:00",
    "audience": {
      "id": "aud_2xLi5Ez0Ut7Aq2Wf4Bp9Mg6Nv1i",
      "name": "Newsletter"
    },
    "contact": {
      "id": "con_2xLf5Jk1Xs7Nc2Ur8Zo3Ld6Pt0a",
      "email": "ada@example.com",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "custom_fields": {
        "company": "Analytical Engines"
      }
    },
    "updated_at": "2026-10-01T10:02:14.307000+00:00",
    "created_at": "2026-09-20T14:22:09.418302+00:00",
    "previous": {
      "subscribed": true,
      "unsubscribed_at": null
    }
  },
  "data": {
    "object": {
      "id": "sub_2xLj6Fa1Vu8Br3Xg5Cq0Nh7Ow2j",
      "object": "subscriber",
      "subscribed": false,
      "subscribed_at": "2026-09-20T14:22:09.418302+00:00",
      "unsubscribed_at": "2026-10-01T10:02:14.000000+00:00",
      "audience": {
        "id": "aud_2xLi5Ez0Ut7Aq2Wf4Bp9Mg6Nv1i",
        "name": "Newsletter"
      },
      "contact": {
        "id": "con_2xLf5Jk1Xs7Nc2Ur8Zo3Ld6Pt0a",
        "email": "ada@example.com",
        "first_name": "Ada",
        "last_name": "Lovelace",
        "custom_fields": {
          "company": "Analytical Engines"
        }
      },
      "updated_at": "2026-10-01T10:02:14.307000+00:00",
      "created_at": "2026-09-20T14:22:09.418302+00:00",
      "previous": {
        "subscribed": true,
        "unsubscribed_at": 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 `subscriber.updated`.

- `object` (object): The subscriber 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`.

### Subscriber object

- `id` (string): Subscriber ID (`sub_…`). A subscriber is one contact's membership in one audience.

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

- `subscribed` (boolean): Whether the contact is subscribed to the audience.

- `subscribed_at` (string | null): When the contact subscribed, or `null`.

- `unsubscribed_at` (string | null): When the contact unsubscribed, or `null`.

- `audience` (object): `id` and `name` of the audience.

- `contact` (object): The contact: `id`, `email`, `first_name`, `last_name` and `custom_fields`.

- `updated_at` (string): When the subscriber was last updated, in ISO 8601 with a UTC offset.

- `created_at` (string): When the contact was added to the audience.

- `previous` (object): Old values, included when the contact unsubscribed or resubscribed: `subscribed` and `unsubscribed_at`. Omitted for other changes.

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

## subscriber.resubscribed

> Sent when you add a contact back to an audience they had unsubscribed from. Not part of the dashboard event list.

# subscriber.resubscribed

Sent when you add a contact to an audience they had unsubscribed from, with [Add a subscriber](/docs/api-reference/audiences/subscribers/add/). Emailit also sends [`subscriber.updated`](/docs/webhooks/events/subscriber/updated/) with the same subscriber.

`subscriber.resubscribed` isn't in the dashboard's event list. You receive it on webhooks that have `all_events` turned on, or by adding it to `events` with [Update a webhook](/docs/api-reference/webhooks/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": "subscriber.resubscribed",
  "object": {
    "id": "sub_2xLj6Fa1Vu8Br3Xg5Cq0Nh7Ow2j",
    "object": "subscriber",
    "subscribed": true,
    "subscribed_at": "2026-10-01T10:02:14.307000+00:00",
    "unsubscribed_at": null,
    "audience": {
      "id": "aud_2xLi5Ez0Ut7Aq2Wf4Bp9Mg6Nv1i",
      "name": "Newsletter"
    },
    "contact": {
      "id": "con_2xLf5Jk1Xs7Nc2Ur8Zo3Ld6Pt0a",
      "email": "ada@example.com",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "custom_fields": {
        "company": "Analytical Engines"
      }
    },
    "updated_at": "2026-10-01T10:02:14.307000+00:00",
    "created_at": "2026-09-20T14:22:09.418302+00:00",
    "resubscribed": true
  },
  "data": {
    "object": {
      "id": "sub_2xLj6Fa1Vu8Br3Xg5Cq0Nh7Ow2j",
      "object": "subscriber",
      "subscribed": true,
      "subscribed_at": "2026-10-01T10:02:14.307000+00:00",
      "unsubscribed_at": null,
      "audience": {
        "id": "aud_2xLi5Ez0Ut7Aq2Wf4Bp9Mg6Nv1i",
        "name": "Newsletter"
      },
      "contact": {
        "id": "con_2xLf5Jk1Xs7Nc2Ur8Zo3Ld6Pt0a",
        "email": "ada@example.com",
        "first_name": "Ada",
        "last_name": "Lovelace",
        "custom_fields": {
          "company": "Analytical Engines"
        }
      },
      "updated_at": "2026-10-01T10:02:14.307000+00:00",
      "created_at": "2026-09-20T14:22:09.418302+00:00",
      "resubscribed": true
    }
  }
}
```

## 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 `subscriber.resubscribed`.

- `object` (object): The subscriber 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`.

### Subscriber object

- `id` (string): Subscriber ID (`sub_…`). A subscriber is one contact's membership in one audience.

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

- `subscribed` (boolean): Whether the contact is subscribed to the audience.

- `subscribed_at` (string | null): When the contact subscribed, or `null`.

- `unsubscribed_at` (string | null): When the contact unsubscribed, or `null`.

- `audience` (object): `id` and `name` of the audience.

- `contact` (object): The contact: `id`, `email`, `first_name`, `last_name` and `custom_fields`.

- `updated_at` (string): When the subscriber was last updated, in ISO 8601 with a UTC offset.

- `created_at` (string): When the contact was added to the audience.

- `resubscribed` (boolean): Always `true`.

---
Source: https://emailit.com/docs/webhooks/events/subscriber/subscriber-resubscribed/

## subscriber.deleted

> Sent when a contact is removed from an audience, including when the contact itself is deleted.

# subscriber.deleted

Sent when a contact is removed from an audience: with [Delete a subscriber](/docs/api-reference/audiences/subscribers/delete/), when you change a contact's `audiences`, or when you delete the contact. The payload is the subscriber as it was before removal.

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

```json
{
  "event_id": "evt_2xLc9Rr4Tn6Wb1Qm8Ks3Vf0Hd7a",
  "type": "subscriber.deleted",
  "object": {
    "id": "sub_2xLj6Fa1Vu8Br3Xg5Cq0Nh7Ow2j",
    "object": "subscriber",
    "subscribed": true,
    "subscribed_at": "2026-09-20T14:22:09.418302+00:00",
    "unsubscribed_at": null,
    "audience": {
      "id": "aud_2xLi5Ez0Ut7Aq2Wf4Bp9Mg6Nv1i",
      "name": "Newsletter"
    },
    "contact": {
      "id": "con_2xLf5Jk1Xs7Nc2Ur8Zo3Ld6Pt0a",
      "email": "ada@example.com",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "custom_fields": {
        "company": "Analytical Engines"
      }
    },
    "updated_at": "2026-09-20T14:22:09.418302+00:00",
    "created_at": "2026-09-20T14:22:09.418302+00:00"
  },
  "data": {
    "object": {
      "id": "sub_2xLj6Fa1Vu8Br3Xg5Cq0Nh7Ow2j",
      "object": "subscriber",
      "subscribed": true,
      "subscribed_at": "2026-09-20T14:22:09.418302+00:00",
      "unsubscribed_at": null,
      "audience": {
        "id": "aud_2xLi5Ez0Ut7Aq2Wf4Bp9Mg6Nv1i",
        "name": "Newsletter"
      },
      "contact": {
        "id": "con_2xLf5Jk1Xs7Nc2Ur8Zo3Ld6Pt0a",
        "email": "ada@example.com",
        "first_name": "Ada",
        "last_name": "Lovelace",
        "custom_fields": {
          "company": "Analytical Engines"
        }
      },
      "updated_at": "2026-09-20T14:22:09.418302+00:00",
      "created_at": "2026-09-20T14:22:09.418302+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 `subscriber.deleted`.

- `object` (object): The subscriber 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`.

### Subscriber object

- `id` (string): Subscriber ID (`sub_…`). A subscriber is one contact's membership in one audience.

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

- `subscribed` (boolean): Whether the contact is subscribed to the audience.

- `subscribed_at` (string | null): When the contact subscribed, or `null`.

- `unsubscribed_at` (string | null): When the contact unsubscribed, or `null`.

- `audience` (object): `id` and `name` of the audience.

- `contact` (object): The contact: `id`, `email`, `first_name`, `last_name` and `custom_fields`.

- `updated_at` (string): When the subscriber was last updated, in ISO 8601 with a UTC offset.

- `created_at` (string): When the contact was added to the audience.

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