Scopes
Campaign analytics
opens and clicks come in two cardinalities:
total– counted per email, bots excluded. The same email opened five times counts once; opening two different steps counts twice.uniqueLeads– distinct leads who did it at least once.
uniqueLeads, which is why a single enthusiastic reader cannot
push your open rate above 100%.
replies is a flat number – distinct leads who replied. There is no raw reply-event
count, so it is deliberately not dressed up as two cardinalities.
A rate of
null means “no denominator”, not “zero percent”. A campaign that has not
sent anything yet returns "open": null – not 0. If we returned 0, a chart would
show your open rate collapsing to zero on days you simply weren’t sending. Check for
null before plotting.Out-of-office replies
replies counts distinct leads who replied. Pass excludeOOO=true to exclude
out-of-office auto-replies and count only replies from humans:
Breakdowns
Ask for extra detail withbreakdown. Repeat the parameter or pass a comma-separated
list. Each breakdown is a separate query, so request only what you will actually read.
Bounce breakdown
Most outreach APIs give you a singlebounced number. That number cannot tell you what
to do. This one can:
recipientBounces are their problem – the address is dead, so clean your list.
senderBounces are yours – reputation, authentication, or content got you refused.
Scrubbing your list will not fix those, and treating them as one number is how a
deliverability problem hides behind a “normal” bounce rate.
Over time
sent, delivered, opens, clicks, replies, bounces and
unsubscribed – so bounce rate and unsubscribe rate over time are chartable directly,
without a second call.
interval accepts day, week or month. Long windows are automatically coarsened to
keep the series readable; the response echoes the interval it actually used, which may
be coarser than the one you asked for. Read it back rather than assuming.
Workspace roll-up
activeCampaigns, sendingAccounts, and the
highest-volume campaigns. Use it for a top-level view, then drill into a campaign.
Reporting windows and retention
startDate and endDate are ISO-8601. Passing only startDate means “from then until
now”.
Your plan retains a fixed window of history. If you ask for a start date older than that,
the window is moved forward and the response tells you:
What this API does not report
These are deliberately absent rather than silently zero:- Spam-complaint rate. We do not ingest feedback loops, so we cannot count complaints.
Returning
0would read as “no complaints” instead of “not measured”. - Hourly granularity. The smallest bucket is a day.
- Per-link click-through. Clicks are counted, but not attributed to individual links.