# email.opened

> Fires the first time a recipient opens the email. Requires open tracking on the sending domain.

The `email.opened` event fires the **first time a recipient opens the email**. It is delivered at most once per recipient per email — later opens by the same recipient are recorded against the open count but do not fire another event. It requires open tracking to be enabled on the sending domain.

Open rates are not always accurate — image-blocking, prefetching, and privacy proxies can both suppress and inflate opens. Treat opens as a directional signal, not an exact count.

```json
{
  "type": "email.opened",
  "created_at": "2026-06-22T23:41:12.126Z",
  "data": {
    "campaign_id": "8b146471-e88e-4322-86af-016cd36fd216",
    "created_at": "2026-06-22T23:41:11.894719+00:00",
    "email_id": "49a3999c-0ce1-4ea6-ab68-afcd6dc2e794",
    "message_id": "<111-222-333@email.example.com>",
    "from": "Acme <onboarding@example.com>",
    "to": ["recipient@example.com"],
    "subject": "Sending this example",
    "template_id": "43f68331-0622-4e15-8202-246a0388854b"
  }
}
```

**Payload**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `type` | string | No | The event type that triggered the webhook. |
| `created_at` | string | No | ISO 8601 timestamp when the webhook event was created. |
| `data` | object | No | Event-specific data. The fields below live inside this object. |
| `data.campaign_id` | string | No | Identifier for the campaign, if applicable. |
| `data.created_at` | string | No | ISO 8601 timestamp when the email was created. |
| `data.email_id` | string | No | Unique identifier for this email. |
| `data.message_id` | string | No | RFC Message-ID header value for the email. |
| `data.from` | string | No | Sender address; may include a display name. |
| `data.to` | string[] | No | Recipient email address(es). |
| `data.subject` | string | No | Email subject line. |
| `data.template_id` | string | No | Identifier of the template used, if applicable. |

> **Note:** This is one of several events SendPing can deliver. See the full list of [webhook event types](https://www.sendping.co/docs/webhooks/events).
