Skip to content
Docs

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

subscriber.created

Sent when a contact is added to an audience with Add a subscriber, or when you create or update a contact with audiences. Adding a contact that had unsubscribed from the audience sends subscriber.updated and subscriber.resubscribed instead.

Webhook requests carry a JSON array of events like this one; see Webhook requests.

Fields

event_idstring

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.

typestring

Always subscriber.created.

objectobject

The subscriber the event describes. Its fields are listed below.

data.objectobject

The same object again, in the shape that the Events API returns in data.

Subscriber object

idstring

Subscriber ID (sub_…). A subscriber is one contact’s membership in one audience.

objectstring

Always subscriber.

subscribedboolean

Whether the contact is subscribed to the audience.

subscribed_atstring | null

When the contact subscribed, or null.

unsubscribed_atstring | null

When the contact unsubscribed, or null.

audienceobject

id and name of the audience.

contactobject

The contact: id, email, first_name, last_name and custom_fields.

created_atstring

When the contact was added to the audience, in ISO 8601 with a UTC offset.

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"
    }
  }
}

subscriber.updated

Sent when a subscriber changes: you update it with Update a subscriber, 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.

Fields

event_idstring

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.

typestring

Always subscriber.updated.

objectobject

The subscriber the event describes. Its fields are listed below.

data.objectobject

The same object again, in the shape that the Events API returns in data.

Subscriber object

idstring

Subscriber ID (sub_…). A subscriber is one contact’s membership in one audience.

objectstring

Always subscriber.

subscribedboolean

Whether the contact is subscribed to the audience.

subscribed_atstring | null

When the contact subscribed, or null.

unsubscribed_atstring | null

When the contact unsubscribed, or null.

audienceobject

id and name of the audience.

contactobject

The contact: id, email, first_name, last_name and custom_fields.

updated_atstring

When the subscriber was last updated, in ISO 8601 with a UTC offset.

created_atstring

When the contact was added to the audience.

previousobject

Old values, included when the contact unsubscribed or resubscribed: subscribed and unsubscribed_at. Omitted for other changes.

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
      }
    }
  }
}

subscriber.resubscribed

Sent when you add a contact to an audience they had unsubscribed from, with Add a subscriber. Emailit also sends 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.

Webhook requests carry a JSON array of events like this one; see Webhook requests.

Fields

event_idstring

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.

typestring

Always subscriber.resubscribed.

objectobject

The subscriber the event describes. Its fields are listed below.

data.objectobject

The same object again, in the shape that the Events API returns in data.

Subscriber object

idstring

Subscriber ID (sub_…). A subscriber is one contact’s membership in one audience.

objectstring

Always subscriber.

subscribedboolean

Whether the contact is subscribed to the audience.

subscribed_atstring | null

When the contact subscribed, or null.

unsubscribed_atstring | null

When the contact unsubscribed, or null.

audienceobject

id and name of the audience.

contactobject

The contact: id, email, first_name, last_name and custom_fields.

updated_atstring

When the subscriber was last updated, in ISO 8601 with a UTC offset.

created_atstring

When the contact was added to the audience.

resubscribedboolean

Always true.

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
    }
  }
}

subscriber.deleted

Sent when a contact is removed from an audience: with Delete a subscriber, 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.

Fields

event_idstring

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.

typestring

Always subscriber.deleted.

objectobject

The subscriber the event describes. Its fields are listed below.

data.objectobject

The same object again, in the shape that the Events API returns in data.

Subscriber object

idstring

Subscriber ID (sub_…). A subscriber is one contact’s membership in one audience.

objectstring

Always subscriber.

subscribedboolean

Whether the contact is subscribed to the audience.

subscribed_atstring | null

When the contact subscribed, or null.

unsubscribed_atstring | null

When the contact unsubscribed, or null.

audienceobject

id and name of the audience.

contactobject

The contact: id, email, first_name, last_name and custom_fields.

updated_atstring

When the subscriber was last updated, in ISO 8601 with a UTC offset.

created_atstring

When the contact was added to the audience.

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"
    }
  }
}

Was this page helpful?

Thanks for the feedback.

Thanks, we read every message.