Email Logs
Email Logs provide a searchable record of every email sent through Relay. Each log entry tracks the full lifecycle from send through delivery, opens, clicks, bounces, and complaints.
Viewing Logs
Navigate to Email Logs in the left sidebar. The log displays in reverse chronological order with the most recent emails first.
Each row shows:
- Status badge — Color-coded: green (delivered), blue (sent), red (bounced), orange (complained), gray (rejected/failed)
- Recipient — Primary
toaddress - Subject — Email subject line
- Sent at — Timestamp of the send
- From — Sender address
Click any row to expand and see full details.
Log Detail Fields
| Field | Description |
|---|---|
| Message ID | Relay's internal message identifier |
| SES Message ID | Amazon SES tracking identifier |
| From | Sender address |
| To | All recipient addresses |
| CC / BCC | Carbon copy and blind copy addresses (if any) |
| Subject | Email subject line |
| Status | Current lifecycle status |
| Sent at | When the email was submitted to SES |
| Delivered at | When the recipient's mail server accepted the email |
| Opened at | First open timestamp (if tracking pixel loaded) |
| Open count | Number of times the email was opened |
| Clicked links | URLs clicked by the recipient |
| Bounce type | For bounced emails: Permanent or Transient |
| Bounce sub-type | Detailed bounce reason (General, NoEmail, etc.) |
| Error | Error message for failed sends |
| Tags | Custom metadata attached at send time |
| Template ID | Template used (if sent via template) |
Status Values
| Status | Meaning |
|---|---|
sent | Submitted to SES, awaiting delivery confirmation |
delivered | Recipient's mail server accepted the email |
bounced | Delivery failed (see bounce type for details) |
complained | Recipient marked the email as spam |
rejected | SES rejected the email before sending (policy violation) |
failed | Send failed due to an error (invalid request, SES error) |
Filtering Logs
Use the filter controls above the log list:
| Filter | Options |
|---|---|
| Recipient | Search by recipient email address (partial match) |
| Subject | Search by subject line (partial match) |
| Status | Filter by one status: sent, delivered, bounced, complained, failed, rejected |
| Date range | From date and to date pickers |
Filters combine with AND logic — all active filters must match.
Pagination
Logs use cursor-based pagination, loading 50 entries at a time. Scroll down to load more entries automatically (infinite scroll).
CSV Export
To export logs:
- Apply any desired filters (status, date range, recipient, subject)
- Click Export CSV
- The download includes all matching logs with full detail fields
Exports respect your current filters. To export everything, clear all filters first.
Engagement Tracking
Relay tracks email engagement through SES:
- Opens — Tracked via a transparent pixel. The
opened_attimestamp records the first open;open_counttracks total opens. - Clicks — Tracked via link rewriting. The
clicked_linksarray shows which URLs the recipient clicked.
API Reference
Query logs via the API with a key that has the read-logs scope:
| Method | Endpoint | Description |
|---|---|---|
GET | /api/logs | List logs with filters and cursor pagination |
GET | /api/logs/{id} | Get a single log entry |
GET | /api/logs/export | Export filtered logs as CSV |
Query Parameters for GET /api/logs
| Parameter | Description |
|---|---|
status | Filter by status |
recipient | Filter by recipient address |
subject | Filter by subject line |
from_date | Start date (ISO 8601) |
to_date | End date (ISO 8601) |
cursor | Pagination cursor from previous response |
limit | Results per page (default: 50) |