# Email activity

> Follow each delivery from queued to delivered, understand every status, and read engagement.

Every recipient of every email has a **delivery**: a record of where the message is and what happened to it. Use it to answer "did my email arrive?" for any user.

## Delivery statuses

| Status | Meaning |
| --- | --- |
| `queued` | Accepted by the API and waiting to be sent. |
| `sending` | Being handed to the sending infrastructure. |
| `accepted` | Accepted for delivery; on its way to the recipient's mail server. |
| `delivered` | The recipient's mail server accepted the message. |
| `bounced` | The address permanently rejected the message. Future sends to it are suppressed. |
| `complained` | The recipient reported the message as spam. Future sends to it are suppressed. |
| `failed` | The message could not be sent. |
| `suppressed` | Not sent, because the address previously bounced, complained, or unsubscribed. |

When a delivery did not succeed, `delivery_reason` and `status_message` explain why in plain language, for example "Email could not be delivered to this address."

> [!NOTE]
> `delivered` means the receiving server accepted the email. Where it lands — inbox or spam folder — is decided by the mailbox provider. See [Deliverability](/docs/learn/deliverability).

## Engagement

When [open tracking](/docs/learn/domains#open-tracking) is on, deliveries record `first_opened_at` and `open_count`; tracked links record `first_clicked_at` and `click_count`. Treat engagement as a trend rather than an exact count: privacy features and security scanners can open emails and follow links automatically.

## Read activity

## Dashboard

Open **Email → Email logs** to search and filter deliveries by status, recipient, and date, and to see each delivery's full timeline.

## API

[List emails](/docs/api/emails/list) returns deliveries with cursor pagination and filters for status, recipient, contact, template, and date. [Retrieve an email](/docs/api/emails/retrieve) returns one delivery with its content, timestamps, and engagement.

## Webhooks

Subscribe to [delivery events](/docs/webhooks/event-types) to be notified as statuses change, instead of polling. Each event carries the delivery `id`, `message_id`, `recipient`, and `occurred_at`.

## Delivery and message IDs

A send returns one `messageId` and one delivery ID per recipient. Store the delivery IDs if you need to look up a specific recipient's status later; webhook events reference both.

---

Source: https://connect.nxiom.com/docs/learn/email-activity
