---
title: "List per-email metrics"
method: GET
path: "/metrics/emails"
tags: ["Analytics"]
---

# List per-email metrics

`GET /metrics/emails`

Returns one row per email - each campaign and each sequence email step - with its own delivery funnel, attributed conversions, and revenue. Sequence rows carry sequenceId, automationNodeId, and the step number, so cross-sequence questions such as how many step-4 emails went out are one request instead of one per sequence. Counts come from retained event storage and match the steps array of the sequence metrics endpoint. The totals object covers every matching email rather than the current page.

## Query parameters

- `emailType` 'campaign' | 'sequence'
- `sequenceId` string
- `campaignId` string
- `step` integer
- `period` '1h' | '24h' | '7d' | '30d' | '90d'
- `start` string, date-time
- `end` string, date-time
- `sort` 'sent' | 'delivered' | 'opened' | 'clicked' | 'openRate' | 'clickRate' | 'unsubscribed' | 'conversions' | 'revenue' | 'step' | 'name'
- `order` 'asc' | 'desc'
- `page` integer
- `limit` integer
- `includeMachineEngagement` boolean

## Response `200`

Success

- object
  - `success` boolean
  - `period` string
  - `start` string, date-time
  - `end` string, date-time
  - `emailType` 'campaign' | 'sequence'
  - `step` integer — Echo of the step filter, present only when one was requested.
  - `sequenceIds` string[] — Echo of the sequence IDs the breakdown was scoped to.
  - `sort` string
  - `order` string
  - `emails` object[]
    - `emailType` 'campaign' | 'sequence'
    - `emailId` string — Campaign ID for campaigns, automation node ID for sequence emails.
    - `name` string
    - `campaignId` string, nullable
    - `sequenceId` string, nullable
    - `sequenceName` string, nullable
    - `automationNodeId` string, nullable
    - `step` integer, nullable — 1-based position of this email in its sequence, or null for campaigns.
    - `stats` object — Delivery funnel for this email alone.
    - `conversions` integer
    - `revenueCents` integer
  - `totals` object — Summed funnel across every matching email, not just this page, plus emails, conversions, and revenueCents.
  - `pagination` Pagination
    - `page` integer
    - `limit` integer
    - `total` integer
    - `totalPages` integer

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `500` — Internal server error

---

[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)
