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

# Event types

> The events you can subscribe a webhook endpoint to

Subscribe an endpoint to one or more event types with the `events` array when you [create or update it](/webhooks/getting-started). Each event arrives inside a delivery's [`events` array](/webhooks/delivery-format), and its `data` shape is described below.

<Note>
  Kit is rolling event types out incrementally. The events marked **Available** below deliver today; the rest are planned and listed so you can see what's coming. Planned events can't be subscribed to yet: the API rejects them with a `422` and the create panel in Kit doesn't offer them. They become subscribable the day they ship.
</Note>

## Subscriber events

| Event                                   | Status        |
| --------------------------------------- | ------------- |
| `subscriber.created`                    | **Available** |
| `subscriber.activated`                  | **Available** |
| `subscriber.unsubscribed`               | **Available** |
| `subscriber.bounced`                    | **Available** |
| `subscriber.complained`                 | **Available** |
| `subscriber.subscribed_to_form`         | **Available** |
| `subscriber.added_to_sequence`          | **Available** |
| `subscriber.sequence_completed`         | **Available** |
| `subscriber.tag_added`                  | **Available** |
| `subscriber.tag_removed`                | **Available** |
| `subscriber.custom_field_value_updated` | **Available** |
| `subscriber.product_purchased`          | Planned       |
| `subscriber.link_clicked`               | Planned       |
| `subscriber.email_opened`               | Planned       |

## Resource events

| Event                                                                             | Status        |
| --------------------------------------------------------------------------------- | ------------- |
| `tag.created`, `tag.deleted`                                                      | **Available** |
| `custom_field.created`, `custom_field.deleted`                                    | **Available** |
| `sequence.created`, `sequence.deleted`, `sequence.published`, `sequence.disabled` | **Available** |
| `broadcast.created`, `broadcast.sent`, `broadcast.deleted`                        | **Available** |
| `post.published`                                                                  | **Available** |
| `landing_page.created`, `landing_page.deleted`                                    | Planned       |

## Payloads

Subscriber events carry the `subscriber` object, plus the related resource where one exists. The `subscriber` object matches the shape returned by the [V4 subscribers API](/api-reference/overview):

```json theme={null}
{
  "subscriber": {
    "id": 987654,
    "first_name": "Ada",
    "email_address": "ada@example.com",
    "state": "active",
    "created_at": "2026-07-29T14:32:10Z",
    "fields": { "company": "Kit" }
  }
}
```

### `subscriber.created`

Fires when a subscriber is added to the account. `data` carries the `subscriber` object above.

### `subscriber.activated`

Fires when a subscriber transitions into the `active` state. `data` carries the `subscriber` object above.

### `subscriber.unsubscribed`, `subscriber.bounced`, `subscriber.complained`

Fire when a subscriber unsubscribes, when their address hard-bounces, and when they report an email as spam. Each carries the `subscriber` object above, whose `state` reflects the new status.

### `subscriber.subscribed_to_form`

Fires when a subscriber joins a form. Includes both the subscriber and the form.

```json theme={null}
{
  "subscriber": { "...": "..." },
  "form": {
    "id": 55,
    "name": "Newsletter signup",
    "created_at": "2026-05-01T08:15:00Z",
    "type": "embed",
    "format": "inline",
    "archived": false,
    "uid": "abc123"
  }
}
```

### `subscriber.added_to_sequence` and `subscriber.sequence_completed`

Fire when a subscriber starts a sequence, and when they finish its last email. Both include the sequence.

```json theme={null}
{
  "subscriber": { "...": "..." },
  "sequence": {
    "id": 77,
    "name": "Welcome series",
    "hold": false,
    "repeat": false,
    "created_at": "2026-05-01T08:15:00Z",
    "updated_at": "2026-07-01T10:00:00Z",
    "email_template_id": 3,
    "active": true
  }
}
```

### `subscriber.tag_added` and `subscriber.tag_removed`

Fire when a tag is added to or removed from a subscriber. Both include the tag. Deleting a tag does **not** fire `subscriber.tag_removed` for each subscriber that had it — you get a single `tag.deleted` event instead (see below).

```json theme={null}
{
  "subscriber": { "...": "..." },
  "tag": {
    "id": 42,
    "name": "customer",
    "created_at": "2026-05-01T08:15:00Z"
  }
}
```

### `subscriber.custom_field_value_updated`

Fires when a custom field value changes on a subscriber — one event per field changed. Includes the field and its new value.

```json theme={null}
{
  "subscriber": { "...": "..." },
  "custom_field": {
    "id": 9,
    "name": "ck_field_9_company",
    "key": "company",
    "label": "Company",
    "value": "Kit"
  }
}
```

### `sequence.created`, `sequence.deleted`, `sequence.published`, `sequence.disabled`

Fire on the sequence itself, not on a subscriber. `data` carries the `sequence` object shown above.

### `tag.created` and `tag.deleted`

Fire when a tag is created or deleted on the account. These are resource events — `data` carries the tag itself, no subscriber.

```json theme={null}
{
  "tag": {
    "id": 42,
    "name": "customer",
    "created_at": "2026-05-01T08:15:00Z"
  }
}
```

<Note>
  Deleting a tag removes it from every subscriber at once, but Kit emits only the one `tag.deleted` event — there is no `subscriber.tag_removed` per subscriber. If you mirror tag membership, drop the tag from all subscribers when you receive `tag.deleted`.
</Note>

### `broadcast.created`, `broadcast.sent`, `broadcast.deleted`

Fire when a broadcast is created, when its send completes, and when it's deleted. `data` carries a summary of the broadcast; fetch the full representation, including content, from the [V4 broadcasts API](/api-reference/overview).

```json theme={null}
{
  "broadcast": {
    "id": 5001,
    "publication_id": 12,
    "created_at": "2026-07-28T09:00:00Z",
    "subject": "This week's update",
    "preview_text": "What's new at Kit",
    "description": "Weekly newsletter",
    "public": true,
    "published_at": "2026-07-29T14:00:00Z",
    "send_at": "2026-07-29T14:00:00Z",
    "status": "completed"
  }
}
```

### `post.published`

Fires when a post is published. `data` carries a summary of the post; fetch the full content from the [V4 posts API](/api-reference/overview).

```json theme={null}
{
  "post": {
    "id": 8801,
    "publication_id": 12,
    "title": "Hello, world",
    "slug": "hello-world",
    "published_at": "2026-07-29T14:00:00Z",
    "is_paid": false,
    "public_url": "https://example.kit.com/posts/hello-world"
  }
}
```

### `custom_field.created` and `custom_field.deleted`

Fire when a custom field is created or deleted on the account. These are resource events — `data` carries the field itself, no subscriber.

```json theme={null}
{
  "custom_field": {
    "id": 9,
    "name": "ck_field_9_company",
    "key": "company",
    "label": "Company"
  }
}
```


## Related topics

- [Delivery format](/webhooks/delivery-format.md)
- [Create a webhook](/api-reference/webhooks-legacy/create-a-webhook.md)
- [Webhooks overview](/webhooks/overview.md)
- [Create a webhook endpoint](/api-reference/webhooks/create-a-webhook-endpoint.md)
- [Update a webhook endpoint](/api-reference/webhooks/update-a-webhook-endpoint.md)
