Email Open & Click Tracking
SendAPI automatically tracks email opens and link clicks for all outbound emails. Tracking data is surfaced in the dashboard and delivered via webhook events.
How It Works
Open Tracking
A 1×1 transparent tracking pixel is automatically injected at the bottom of every HTML email body. When the recipient's email client loads the email, the pixel fires a request to SendAPI which logs the open event.
Privacy Note
Many email clients (especially Apple Mail with MPP) pre-fetch images, which can inflate open rates. Consider using click tracking as a more reliable engagement signal.
Click Tracking
All links in your HTML emails are automatically rewritten to pass through SendAPI's redirect service. When a recipient clicks a link:
- The click event is logged with the URL, timestamp, and user agent
- The recipient is immediately redirected to the original URL
The redirect is transparent and typically completes in under 100ms.
Disabling Tracking
You can disable tracking per email by passing track: false in your send request:
{
"to": "alice@example.com",
"subject": "Your Invoice",
"html": "...",
"track": false
}Or disable it globally in your dashboard under Settings → Email Preferences.
Tracking Events
| Event | Trigger |
|---|---|
email.opened | Tracking pixel loaded by recipient's email client |
email.clicked | Recipient clicked a tracked link |
email.bounced | Email bounced (hard or soft) |
email.complained | Recipient marked the email as spam |
Webhook Payloads
email.opened
{
"event": "email.opened",
"timestamp": "2026-03-09T14:45:00Z",
"data": {
"email_id": "eml_01H9...QP",
"to": "alice@example.com",
"opened_at": "2026-03-09T14:45:00Z",
"user_agent": "Apple Mail",
"ip": "93.184.216.34"
}
}email.clicked
{
"event": "email.clicked",
"timestamp": "2026-03-09T14:46:00Z",
"data": {
"email_id": "eml_01H9...QP",
"to": "alice@example.com",
"url": "https://myapp.com/dashboard",
"clicked_at": "2026-03-09T14:46:00Z"
}
}Viewing Tracking Data
Track email engagement in real time from your dashboard. Each email in the history table shows its open/click status and the full event timeline.