---
title: "Get sequence metrics"
method: GET
path: "/metrics/sequences/{sequenceId}"
tags: ["Analytics"]
---

# Get sequence metrics

`GET /metrics/sequences/{sequenceId}`

Returns aggregated engagement metrics plus a live active/waiting enrollment breakdown by current node for a specific sequence (automation).

## Path parameters

- `sequenceId` string, required

## Query parameters

- `period` '1h' | '24h' | '7d' | '30d' | '90d'
- `start` string, date-time
- `end` string, date-time
- `includeMachineEngagement` boolean

## Response `200`

Success

- object
  - `success` boolean
  - `sequenceId` string
  - `period` string — Echoed back when `period` is provided.
  - `stats` EngagementStats — Unified engagement metrics returned by analytics endpoints. When a period or start/end filter is applied these are a funnel over the sends made inside that window, not a log of events inside it: every delivery, engagement, and reply count is attributed to one of those sends, including activity that arrives after the window closes, so opened <= delivered <= sent always holds and no rate can exceed 100%. conversions and revenueCents are the exception and use the goal's own last-touch attribution window. Open and click metrics exclude detected scanner, preview, and tracked asset events unless includeMachineEngagement is true.
    - `sent` integer
    - `delivered` integer — Capped at sent count
    - `bounced` integer — Unique bounces (deduplicated by email send)
    - `opened` integer — Unique opens (deduplicated by email send)
    - `clicked` integer — Unique clicks (deduplicated by email send)
    - `replies` integer — Inbound replies captured for delivered emails
    - `unsubscribed` integer
    - `deliveryRate` number — Percentage (0-100)
    - `bounceRate` number — Percentage (0-100), calculated from sent emails
    - `rateDenominator` integer — The number every engagement rate divides by: delivered, falling back to sent when no delivery events were recorded, and 0 when nothing was sent
    - `rateDenominatorBasis` 'delivered' | 'sent' | 'none' — Which field rateDenominator was taken from
    - `openRate` number — Percentage (0-100), opened / rateDenominator
    - `clickRate` number — Percentage (0-100), clicked / rateDenominator
    - `replyRate` number — Percentage (0-100), replies / rateDenominator
    - `unsubscribeRate` number — Percentage (0-100), unsubscribed / rateDenominator
    - `conversions` integer — Attributed goal conversions (last-touch, 24h window). Only returned by campaign and sequence metrics endpoints.
    - `revenueCents` integer — Attributed revenue in cents from purchase events (saas.purchase and ecommerce.order_placed). Only returned by campaign and sequence metrics endpoints.
  - `enrollmentCounts` SequenceEnrollmentCounts — Point-in-time counts of active and waiting enrollment tokens for a sequence. This live snapshot is not limited by historical period, start, or end filters. Counts represent enrollment runs, not necessarily distinct subscribers.
    - `active` integer, required — Active enrollment-token count.
    - `waiting` integer, required — Waiting enrollment-token count.
    - `total` integer, required — Total active plus waiting enrollment-token count.
    - `byCurrentNode` object[], required — Active and waiting enrollment counts grouped by current sequence node.
      - `currentNodeId` string, required — Current sequence node ID.
      - `currentNodeType` string — Current sequence node type. Omitted when the node no longer exists in the graph.
      - `currentNodeLabel` string — Current sequence node label or email subject when available.
      - `currentNodeMissing` boolean, required — Whether the current node no longer exists in the sequence graph.
      - `active` integer, required — Active enrollment-token count at this node.
      - `waiting` integer, required — Waiting enrollment-token count at this node.
      - `total` integer, required — Total active plus waiting enrollment-token count at this node.
  - `enrollmentSkipped` object — Trigger matches where the contact could not be enrolled because they are unsubscribed or bounced. Defaults to the last 30 days when no explicit time range is provided.
    - `count` integer — Total skipped enrollments in the window
    - `byReason` object — Skip counts keyed by reason (unsubscribed, bounced)
  - `steps` object[] — Per-email-step metrics, ordered by position in the sequence
    - `step` integer — Step number (1-indexed)
    - `nodeId` string — Node ID for this email step
    - `subject` string, nullable — Email subject line
    - `stats` EngagementStats — Unified engagement metrics returned by analytics endpoints. When a period or start/end filter is applied these are a funnel over the sends made inside that window, not a log of events inside it: every delivery, engagement, and reply count is attributed to one of those sends, including activity that arrives after the window closes, so opened <= delivered <= sent always holds and no rate can exceed 100%. conversions and revenueCents are the exception and use the goal's own last-touch attribution window. Open and click metrics exclude detected scanner, preview, and tracked asset events unless includeMachineEngagement is true.
      - `sent` integer
      - `delivered` integer — Capped at sent count
      - `bounced` integer — Unique bounces (deduplicated by email send)
      - `opened` integer — Unique opens (deduplicated by email send)
      - `clicked` integer — Unique clicks (deduplicated by email send)
      - `replies` integer — Inbound replies captured for delivered emails
      - `unsubscribed` integer
      - `deliveryRate` number — Percentage (0-100)
      - `bounceRate` number — Percentage (0-100), calculated from sent emails
      - `rateDenominator` integer — The number every engagement rate divides by: delivered, falling back to sent when no delivery events were recorded, and 0 when nothing was sent
      - `rateDenominatorBasis` 'delivered' | 'sent' | 'none' — Which field rateDenominator was taken from
      - `openRate` number — Percentage (0-100), opened / rateDenominator
      - `clickRate` number — Percentage (0-100), clicked / rateDenominator
      - `replyRate` number — Percentage (0-100), replies / rateDenominator
      - `unsubscribeRate` number — Percentage (0-100), unsubscribed / rateDenominator
      - `conversions` integer — Attributed goal conversions (last-touch, 24h window). Only returned by campaign and sequence metrics endpoints.
      - `revenueCents` integer — Attributed revenue in cents from purchase events (saas.purchase and ecommerce.order_placed). Only returned by campaign and sequence metrics endpoints.
    - `failedCount` integer — Number of subscribers that failed at this step
    - `failedSubscribers` object[] — Up to 20 most recent failed subscribers for this step
      - `subscriberId` string — Subscriber ID
      - `email` string, nullable — Subscriber email captured on the token
      - `failedAt` string, date-time — When the token failed
      - `failedReason` string, nullable — Stored failure reason for the token
  - `recommendations` RecommendationMetrics — Product recommendation funnel for a campaign or sequence. Returned as a top-level `recommendations` object when recommendation blocks were rendered. The requested period or custom time range scopes impressions and clicks. Orders and revenue are attributed when a subscriber buys a recommended product within 7 days of a scoped click.
    - `impressions` integer — Total recommended products rendered across all sends.
    - `recipients` integer — Unique subscribers shown at least one recommendation.
    - `clicks` integer — Recorded clicks on recommended products.
    - `clickers` integer — Unique subscribers who clicked a recommendation.
    - `orders` integer — Orders containing a clicked recommended product.
    - `revenueCents` integer — Legacy sum of attributed order minor units across currencies. Use revenueByCurrency for display or financial analysis.
    - `revenueByCurrency` object[] — Currency-safe attributed revenue totals. UNKNOWN identifies orders whose source event omitted currency.
      - `currency` string — ISO 4217 code or UNKNOWN.
      - `revenueCents` integer — Attributed revenue in this currency's minor units.
    - `topProducts` object[] — Per-product impressions and clicks, most clicked first.
      - `provider` string — Commerce provider (shopify, woocommerce, ...).
      - `providerProductId` string — Product ID in the provider's catalog.
      - `impressions` integer
      - `clicks` integer

## Other responses

- `401` — Unauthorized
- `404` — Sequence not found

---

[API](https://skmtc.net/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.net/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/versions/af1cf9620482/schema)
