Grosend|Docs
Getting Started
  • Introduction
  • Quick Start
Sending
  • SMTP Relay
  • Authentication
Automation
  • Overview
API Reference
  • Overview
  • Send Email
  • Domains
  • Templates
  • API Keys
  • Webhooks
Analytics
  • Tracking
Docs
Getting Started
  • Introduction
  • Quick Start
Sending
  • SMTP Relay
  • Authentication
Automation
  • Overview
API Reference
  • Overview
  • Send Email
  • Domains
  • Templates
  • API Keys
  • Webhooks
Analytics
  • Tracking

Open & Click Tracking

Track email opens and link clicks in real time. Enabled by default for all emails.

How it works

Open Tracking
A 1x1 transparent pixel is injected before </body>. When the recipient loads images, the pixel fires and records the open event.
Click Tracking
Links are rewritten to route through Grosend's click proxy. When clicked, the event is recorded and the user is redirected to the original URL.

Per-email tracking control

Control tracking per email using the tracking field:

Disable tracking
{
  "from": "hello@yourdomain.com",
  "to": ["user@example.com"],
  "subject": "Private email",
  "html": "<h1>This won't be tracked</h1>",
  "tracking": {
    "open": false,
    "click": false
  }
}

Viewing events

Each email's detail page shows a timeline of events:

queued
scheduled
sent
delivered
opened
clicked
bounced
failed
cancelled

Tracking by email type

Tracking behavior and SMTP headers differ based on the email's type field:

transactionalX-Auto-Response-Suppress + Feedback-ID only. No unsubscribe headers or footer. Plain, predictable copy.
marketingList-Unsubscribe + List-Id headers. Auto-appended unsubscribe footer in HTML body. Full tracking enabled.

Analytics API

Terminal
curl https://api.grosend.com/api/v1/analytics/overview?days=30 \
  -H "Authorization: Bearer sv_live_..."
Response
{
  "totalSent": 1250,
  "totalDelivered": 1200,
  "totalBounced": 30,
  "totalOpened": 800,
  "totalClicked": 350,
  "totalComplaints": 5,
  "deliveryRate": 96.0,
  "openRate": 66.7,
  "clickRate": 29.2,
  "bounceRate": 2.4,
  "complaintRate": 0.4
}
Use ?days=N to control the time range. Default is 30 days for overview, 7 days for timeseries. Use top-links for click analytics by URL.