Skip to content
Docs

Overview

How Emailit tracks opens with a pixel and clicks with rewritten links on your own domain, how accurate the data is, and how to turn tracking on or off.

Updated Oct 1, 2026

Emailit can record when recipients open your emails and click their links. Tracking runs on a hostname on your own domain, such as go.acme.com, so recipients never see a shared tracking host. This page explains how tracking works, its limits and how to control it.

How it works

Tracking only runs when the sending domain has a verified tracking CNAME (go.<domain> pointing to go.emailitmail.com). Without it, Emailit still sends your mail, just untracked. Set up a custom tracking domain first.

Opens (loads). Emailit adds a transparent 1×1 image to the end of the HTML body, loaded from https://go.acme.com/<token>. When the recipient’s mail app loads it, Emailit records a load and returns the image. Opens can only be tracked in HTML email.

Clicks. Before sending, Emailit rewrites every http and https link in the HTML and plain-text parts to https://go.acme.com/<token>. When someone clicks, Emailit records the click and immediately redirects to the original URL. It leaves mailto: and tel: links, relative links and links to Emailit’s own domains unchanged. If the message has HTML but no plain-text part, Emailit generates one from the HTML when it adds click tracking.

Emailit uses the word loaded for opens, because it can only see that the image was loaded, not that a person read the email.

Accuracy and privacy

Treat open and click data as a signal, not an exact count. Emailit records every request that reaches your tracking domain and doesn’t filter out automated traffic.

  • Apple Mail Privacy Protection downloads images, including the pixel, through Apple’s proxy servers as soon as mail arrives. Those messages show as loaded even if nobody opened them, and the IP address belongs to Apple.
  • Image proxies such as Gmail’s fetch and cache images on the recipient’s behalf. The IP address and user agent belong to the proxy, and repeat opens may not reach Emailit.
  • Blocked images mean no open is recorded, even when the recipient reads the email.
  • Security scanners in corporate mail systems follow links to check them before the recipient sees the message. These show up as clicks, often within seconds of delivery.

Clicks are a more reliable engagement signal than opens. For deliverability decisions, look at trends over many messages rather than single events.

Tracking records the IP address and user agent of each open and click. In many regions, privacy law requires you to tell recipients about tracking, for example in your privacy policy, and some require consent. If you don’t need the data, leave tracking off.

Turn tracking on

Domain defaults

Each domain has two switches in the Tracking card on its page in Email APIDomains: Track loads and Track clicks. They’re off for new domains and stay disabled until the tracking CNAME shows OK.

The switches set the default for every email sent from the domain through the API and SMTP. Over SMTP, the domain defaults are the only way to control tracking.

With the API, call Update a domain with track_loads and track_clicks. Turning either on before the CNAME is verified returns 422.

Per-email override

The tracking field on Send an email overrides the domain defaults for that message:

Value Opens Clicks
Omitted Domain default Domain default
true On On
false Off Off
{ "loads": true, "clicks": false } On Off
{ "clicks": true } Off On

In the object form, a key you leave out counts as off. The domain default doesn’t fill it in.

Terminal
curl https://api.emailit.com/v2/emails \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <hello@acme.com>",
    "to": "ada@example.com",
    "subject": "Your receipt",
    "html": "<p>Thanks for your order.</p>",
    "tracking": { "loads": false, "clicks": true }
  }'

If the domain’s tracking CNAME isn’t verified, Emailit turns tracking off for the message instead of rejecting it. The tracking object in the response shows what was actually applied.

Campaign emails always request open and click tracking, so they’re tracked whenever the sending domain’s tracking CNAME is verified. Test sends of a campaign aren’t tracked.

Events

Each open and click creates an event, not just the first one. The email’s status moves to loaded after the first open and to clicked after the first click.

Event When it fires
email.loaded The tracking pixel was loaded.
email.clicked A tracked link was clicked.

Both payloads include the IP address and user agent of the request, the email it belongs to and the matching contact if one exists. email.clicked also includes the link. Here’s the data.object of an email.clicked event:

JSON
{
  "id": "click_7Tn4Lp9Kd2Rv",
  "object": "click",
  "email_id": "em_5Vb2Nq8Xc1Jm",
  "email": {
    "id": "em_5Vb2Nq8Xc1Jm",
    "rcpt_to": "ada@example.com",
    "mail_from": "hello@acme.com",
    "subject": "Your receipt",
    "created_at": "2026-10-01T09:12:44Z",
    "campaign": null,
    "meta": { "order_id": "1042" }
  },
  "link": {
    "id": "link_9Wd3Ks6Mf4Ht",
    "url": "https://acme.com/orders/1042"
  },
  "contact": { "id": "con_8Ry5Bv2Lq7Np", "email": "ada@example.com" },
  "ip_address": "203.0.113.24",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15",
  "created_at": "2026-10-01T09:15:02Z"
}

email.loaded has the same shape with "object": "load", an ID that starts with load_ and no link. See Webhook requests for the full request format.

Where to see tracking data

  • Email details. The Loads and Clicks tabs on an email’s page list every open and click with its time, IP address and, for clicks, the URL. See Email details.
  • Analytics. The Loads and Clicks widgets chart engagement over time. See Analytics.
  • Campaign reports. Loaded, clicked and click-through rate per campaign, with clicks per link. See Campaign reports.
  • Events and webhooks. Every email.loaded and email.clicked event appears in Email APIEvents and is sent to webhooks that subscribe to it.

Next steps

Publish and verify the tracking CNAME.
Receive email.loaded and email.clicked events.

Was this page helpful?

Thanks for the feedback.

Thanks, we read every message.