# email.received

> Fires when an inbound email arrives at one of your verified receiving domains. Carries metadata only.

The `email.received` event fires whenever MailBlastr **receives an inbound email** at one of your verified receiving domains.

For privacy and to support large attachments in serverless environments, the webhook carries **metadata only** — not the body, headers, or attachment bytes. Fetch the full message from the [received emails API](https://www.mailblastr.com/docs/api/emails-get) using `data.email_id`.

```json
{
  "type": "email.received",
  "created_at": "2026-06-22T23:41:12.126Z",
  "data": {
    "email_id": "49a3999c-0ce1-4ea6-ab68-afcd6dc2e794",
    "created_at": "2026-06-22T23:41:11.894719+00:00",
    "from": "sender@example.com",
    "to": ["inbox@example.com"],
    "bcc": [],
    "cc": [],
    "received_for": ["forwarded@example.com"],
    "message_id": "<111-222-333@email.example.com>",
    "subject": "Sending this example",
    "attachments": [
      {
        "id": "2a0c9ce0-3112-4728-976e-47ddcd16a318",
        "filename": "avatar.png",
        "content_type": "image/png",
        "content_disposition": "inline",
        "content_id": "img001"
      }
    ]
  }
}
```

**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.email_id` | string | No | Unique identifier for the received email. Use it to fetch the full message. |
| `data.created_at` | string | No | ISO 8601 timestamp when the email was received. |
| `data.from` | string | No | Bare sender email address. The original display name is preserved on the retrieve endpoint. |
| `data.to` | string[] | No | Recipient address(es). |
| `data.cc` | string[] | No | Cc address(es). |
| `data.bcc` | string[] | No | Bcc address(es). |
| `data.received_for` | string[] | No | Addresses the email was forwarded for, taken from the `for` clause of the message's `Received` headers. |
| `data.message_id` | string | No | RFC Message-ID header value for the email. |
| `data.subject` | string | No | Email subject line. |
| `data.attachments` | object[] | No | Attachment metadata only — `id`, `filename`, `content_type`, `content_disposition`, `content_id`. Fetch the bytes separately. |

> **Note:** The webhook never includes attachment bytes. Retrieve them from the received email's attachments endpoint using the attachment `id`.

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