The email log shows every transactional email the platform has sent — verification invites, password resets, 2FA codes, billing notices. Use it to confirm a message was sent and diagnose why one did not arrive.

## Open the email log

Open **Developers → Email log**. The log is per-organization and filtered by the active mode in the sidebar — switching modes swaps the entries.

In test mode the platform suppresses real delivery — every test-mode email is recorded but never sent. See [Modes and regions](/developers/modes-and-regions).

## What appears in the log

Each row shows:

- **To** — the recipient address.
- **Subject** — the rendered subject line.
- **Template** — the template identifier the email was rendered from.
- **Status** — `sent`, `suppressed`, `failed`, or `pending`.
- **Created** — when the email entered the outbound queue.

The log returns the 50 most recent emails for the current organization and mode, newest first.

## Read an email's delivery state

The status column is the most useful field:

- **`sent`**: the email was accepted for delivery. This does not guarantee the recipient saw it.
- **`suppressed`** — the platform deliberately did not send. Test-mode emails are always suppressed; live-mode suppression can also fire from a bounce list.
- **`failed`**: delivery was rejected or our send errored.
- **`pending`** — queued but not yet attempted.

## Preview a sent email

Click **Preview** on any row to open the rendered HTML in a new browser tab. The preview shows the exact bytes the recipient would have seen, including merge-field substitutions.

## When an email did not arrive

1. Open the email log and confirm the row exists with status `sent`. If it is `suppressed`, you are in test mode or the address is on the bounce list.
2. If the row is missing entirely, the underlying flow never triggered — check the [API error codes](/api/errors) returned by the call that should have sent the email.
3. If the row is `sent` but the recipient has nothing, ask them to check spam.

For persistent deliverability issues, contact support with the `id` of one affected row.