# Event Types

Webhooks send a POST request to your endpoint when something happens. Pick the events for each endpoint in the dashboard under Webhooks.

## Payload

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | No | The event id, the same as the `webhook-id` header. |
| `type` | string | No | The event type from the list below. |
| `created_at` | string | No | When the event happened. |
| `data` | object | No | The email or contact the event is about. Each event below lists its fields. |

## Email Events

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `email.sent` | event | No | Inboxjot handed the email to the mail server. |
| `email.sent.email_id` | string | No | The email the event is about. |
| `email.sent.to` | string[] | No | Every recipient of the email. |
| `email.sent.from` | string | No | The sender, as it was sent. |
| `email.sent.subject` | string | No | The subject line. |
| `email.sent.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.sent.tags[].name` | string | No | The tag name. |
| `email.sent.tags[].value` | string | No | The tag value. |
| `email.delivered` | event | No | The receiving server accepted the email. |
| `email.delivered.email_id` | string | No | The email the event is about. |
| `email.delivered.to` | string[] | No | Every recipient of the email. |
| `email.delivered.from` | string | No | The sender, as it was sent. |
| `email.delivered.subject` | string | No | The subject line. |
| `email.delivered.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.delivered.tags[].name` | string | No | The tag name. |
| `email.delivered.tags[].value` | string | No | The tag value. |
| `email.delivery_delayed` | event | No | Delivery is delayed and still being retried. |
| `email.delivery_delayed.email_id` | string | No | The email the event is about. |
| `email.delivery_delayed.to` | string[] | No | Every recipient of the email. |
| `email.delivery_delayed.from` | string | No | The sender, as it was sent. |
| `email.delivery_delayed.subject` | string | No | The subject line. |
| `email.delivery_delayed.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.delivery_delayed.tags[].name` | string | No | The tag name. |
| `email.delivery_delayed.tags[].value` | string | No | The tag value. |
| `email.opened` | event | No | The recipient opened the email. |
| `email.opened.email_id` | string | No | The email the event is about. |
| `email.opened.to` | string[] | No | Every recipient of the email. |
| `email.opened.from` | string | No | The sender, as it was sent. |
| `email.opened.subject` | string | No | The subject line. |
| `email.opened.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.opened.tags[].name` | string | No | The tag name. |
| `email.opened.tags[].value` | string | No | The tag value. |
| `email.opened.actor` | string | No | Who opened the email. One of `human`, `apple_mpp`, `scanner` or `unknown`. `apple_mpp` is Apple Mail Privacy Protection loading the email for the recipient, and `scanner` is a security scanner checking it. |
| `email.clicked` | event | No | The recipient clicked a link. |
| `email.clicked.email_id` | string | No | The email the event is about. |
| `email.clicked.to` | string[] | No | Every recipient of the email. |
| `email.clicked.from` | string | No | The sender, as it was sent. |
| `email.clicked.subject` | string | No | The subject line. |
| `email.clicked.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.clicked.tags[].name` | string | No | The tag name. |
| `email.clicked.tags[].value` | string | No | The tag value. |
| `email.clicked.actor` | string | No | Who clicked. One of `human`, `scanner` or `unknown`. `scanner` is a security scanner following the link. |
| `email.clicked.link` | string | No | The link that was clicked. Left out when it is not known. |
| `email.bounced` | event | No | The receiving server refused the email. |
| `email.bounced.email_id` | string | No | The email the event is about. |
| `email.bounced.to` | string[] | No | Every recipient of the email. |
| `email.bounced.from` | string | No | The sender, as it was sent. |
| `email.bounced.subject` | string | No | The subject line. |
| `email.bounced.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.bounced.tags[].name` | string | No | The tag name. |
| `email.bounced.tags[].value` | string | No | The tag value. |
| `email.bounced.bounce` | object | No | Why the receiving server refused the email. |
| `email.bounced.bounce.type` | string | No | One of `permanent`, `transient` or `undetermined`. A permanent bounce suppresses the address. |
| `email.bounced.bounce.message` | string | No | The receiving server’s reply. |
| `email.complained` | event | No | The recipient marked the email as spam. |
| `email.complained.email_id` | string | No | The email the event is about. |
| `email.complained.to` | string[] | No | Every recipient of the email. |
| `email.complained.from` | string | No | The sender, as it was sent. |
| `email.complained.subject` | string | No | The subject line. |
| `email.complained.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.complained.tags[].name` | string | No | The tag name. |
| `email.complained.tags[].value` | string | No | The tag value. |
| `email.complained.complaint` | object | No | The spam report. |
| `email.complained.complaint.type` | string | No | Always `abuse`. |
| `email.rejected` | event | No | The mail server refused to send the email. |
| `email.rejected.email_id` | string | No | The email the event is about. |
| `email.rejected.to` | string[] | No | Every recipient of the email. |
| `email.rejected.from` | string | No | The sender, as it was sent. |
| `email.rejected.subject` | string | No | The subject line. |
| `email.rejected.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.rejected.tags[].name` | string | No | The tag name. |
| `email.rejected.tags[].value` | string | No | The tag value. |
| `email.rejected.reason` | string | No | Why the email was not sent. |
| `email.failed` | event | No | The email could not be sent. |
| `email.failed.email_id` | string | No | The email the event is about. |
| `email.failed.to` | string[] | No | Every recipient of the email. |
| `email.failed.from` | string | No | The sender, as it was sent. |
| `email.failed.subject` | string | No | The subject line. |
| `email.failed.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.failed.tags[].name` | string | No | The tag name. |
| `email.failed.tags[].value` | string | No | The tag value. |
| `email.failed.reason` | string | No | Why the email was not sent. |
| `email.unsubscribed` | event | No | The recipient unsubscribed from the email. |
| `email.unsubscribed.email_id` | string | No | The email the event is about. |
| `email.unsubscribed.to` | string[] | No | Every recipient of the email. |
| `email.unsubscribed.from` | string | No | The sender, as it was sent. |
| `email.unsubscribed.subject` | string | No | The subject line. |
| `email.unsubscribed.tags` | object[] | No | The tags you sent with the email. Left out when there are none. |
| `email.unsubscribed.tags[].name` | string | No | The tag name. |
| `email.unsubscribed.tags[].value` | string | No | The tag value. |

## Contact Events

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `contact.created` | event | No | A contact was created. |
| `contact.created.contact_id` | string | No | The contact id. |
| `contact.created.email` | string | No | The contact’s email address. |
| `contact.created.first_name` | string \| null | No | The first name. |
| `contact.created.last_name` | string \| null | No | The last name. |
| `contact.created.status` | string | No | One of `subscribed`, `pending` or `unsubscribed`. |
| `contact.created.language` | string | No | The language the contact gets email in. |
| `contact.created.properties` | object | No | Custom property values, keyed by property name. |
| `contact.created.created_at` | string | No | When the contact was created. |
| `contact.created.updated_at` | string | No | When the contact last changed. |
| `contact.updated` | event | No | A contact changed. |
| `contact.updated.contact_id` | string | No | The contact id. |
| `contact.updated.email` | string | No | The contact’s email address. |
| `contact.updated.first_name` | string \| null | No | The first name. |
| `contact.updated.last_name` | string \| null | No | The last name. |
| `contact.updated.status` | string | No | One of `subscribed`, `pending` or `unsubscribed`. |
| `contact.updated.language` | string | No | The language the contact gets email in. |
| `contact.updated.properties` | object | No | Custom property values, keyed by property name. |
| `contact.updated.created_at` | string | No | When the contact was created. |
| `contact.updated.updated_at` | string | No | When the contact last changed. |
| `contact.deleted` | event | No | A contact was deleted. The data is the contact as it was. |
| `contact.deleted.contact_id` | string | No | The contact id. |
| `contact.deleted.email` | string | No | The contact’s email address. |
| `contact.deleted.first_name` | string \| null | No | The first name. |
| `contact.deleted.last_name` | string \| null | No | The last name. |
| `contact.deleted.status` | string | No | One of `subscribed`, `pending` or `unsubscribed`. |
| `contact.deleted.language` | string | No | The language the contact gets email in. |
| `contact.deleted.properties` | object | No | Custom property values, keyed by property name. |
| `contact.deleted.created_at` | string | No | When the contact was created. |
| `contact.deleted.updated_at` | string | No | When the contact last changed. |

## Request

Payload:

```json
{
  "id": "evt_06d2mfk8r5mz1qw7tc4vb",
  "type": "email.unsubscribed",
  "created_at": "2026-10-15T14:10:02.000Z",
  "data": {
    "email_id": "eml_06d2mfk8r4tq9xv2bnc7s",
    "to": [
      "riti@example.com"
    ],
    "from": "Acme <hello@acme.dev>",
    "subject": "Your receipt from Acme"
  }
}
```
