Skip to main content
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; 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 with period 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?

Check the top-level stats for aggregate performance across all steps.

How many enrollments are waiting at each stage right now?

Read 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?

Compare openRate across the steps array. A sharp drop between consecutive steps signals where subscribers lose interest.

How many people unsubscribed from the second email?

Look at 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?

Both aggregate and per-step metrics will be scoped to this time range.

How many step-4 emails went out across several sequences?

The steps 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:
Step numbers and per-step counts match this endpoint’s steps array, so the two surfaces never disagree about which email is step 4.

Who received one specific step?

Pass a steps[].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 a sequenceId filter:

Responses