Analytics
Get Sequence Metrics
Retrieve engagement metrics for a specific sequence, including per-step breakdown and failure details.
GET
Get Sequence Metrics
Returns aggregate engagement metrics for a sequence (automation), a live
active/waiting enrollment breakdown by current node, and a per-step breakdown
showing how each email performed, including replies and reply rates. Each step
also includes recent failed subscribers and their failure reasons. Aggregate
and per-step performance metrics respect the time filter;
Check the top-level
Read
Compare
Look at
Both aggregate and per-step metrics will be scoped to this time range.
Step numbers and per-step counts match this endpoint’s
enrollmentCounts
is always a point-in-time snapshot. Test sends are excluded from performance
metrics and attributed revenue by default so previews do not skew results, but
they still count toward send usage and quota. Open and click metrics also
exclude detected email-security scanners and tracked brand assets by default.
Path Parameters
string
required
The ID of the sequence.
Query Parameters
string
Sliding time window. One of:
1h, 24h, 7d, 30d, 90d. Ignored when
start and end are provided.string
Start of custom time range (ISO 8601). Must be used with
end.string
End of custom time range (ISO 8601). Must be used with
start. Max range: 90
days.boolean
default:"false"
Set to
true to include detected scanner, preview, and tracked asset
open/click events in engagement metrics.How a period is applied
When you filter withperiod or start/end, the response is a funnel over
the sends made inside that window, not a log of events that happened inside it.
sent counts those sends, and every delivery, engagement, and reply count is
attributed to one of them - including a reply or an open that arrives after the
window closes. Activity on sends that predate the window is excluded, so
opened <= delivered <= sent always holds and no rate can exceed 100%.
conversions and revenueCents are the exception: they use the goal’s own
last-touch attribution window rather than the send cohort.
opened and clicked are unique counts deduplicated by email send: one
recipient opening the same email five times counts once. Rates divide by
rateDenominator (delivered, falling back to sent), which is returned
alongside rateDenominatorBasis so you can reproduce the arithmetic.
Response Fields
Stats object (used for both aggregate and per-step):
The
conversions and revenueCents fields appear on the top-level stats object only, not on per-step stats.
Enrollment counts object:
Each
byCurrentNode entry contains currentNodeId, optional
currentNodeType and currentNodeLabel, currentNodeMissing, and the
active, waiting, and total counts. Missing nodes remain in the response
so the total always reconciles even after a live sequence graph is edited.
These counts represent enrollment runs, not necessarily distinct subscribers.
They are read live and do not use period, start, or end.
Enrollment skipped object:
Unsubscribed and bounced contacts never enter sequences, so a trigger match
for them is recorded as a skip instead of an enrollment. When the request has
no explicit time range,
enrollmentSkipped covers the last 30 days.
Steps array:
Failed subscriber object:
Common Queries
How is our onboarding sequence performing overall?
stats for aggregate performance across all steps.
How many enrollments are waiting at each stage right now?
enrollmentCounts.byCurrentNode. The 7-day filter scopes historical
performance metrics only; the active/waiting counts still reflect the current
sequence state.
Which step has the highest drop-off?
openRate across the steps array. A sharp drop between consecutive steps signals where subscribers lose interest.
How many people unsubscribed from the second email?
steps[1].stats.unsubscribed (step 2, zero-indexed in the array). If the unsubscribe rate is high on a specific step, consider revising that email’s content or timing.
How has the sequence performed this month?
How many step-4 emails went out across several sequences?
Thesteps array covers one sequence per request. To total or compare the same
step across many sequences in a single call, use
List Per-Email Metrics:
steps array, so the two
surfaces never disagree about which email is step 4.
Who received one specific step?
Pass asteps[].nodeId to
List Sequence Events as
automationNodeId for the retained per-recipient event stream, or to
List Sent Emails for the last 14 days of
delivery rows.
Who engaged with this sequence?
Use the Get Recipients endpoint with asequenceId filter:
Responses
Get Sequence Metrics