---
title: "Get Email Metrics"
method: GET
path: "/v1/emails/{emailId}/metrics"
tags: ["Emails"]
---

# Get Email Metrics

`GET /v1/emails/{emailId}/metrics`

Aggregate performance for one generated email across every API send of it: delivery, opens, clicks, bounces, complaints, unsubscribes, plus a daily time series and country breakdown. Numbers arrive asynchronously and cover roughly the last 30 days of raw history (aggregates persist longer). Opens are directional — Apple Mail Privacy Protection and bots inflate them; clicks and delivery events are stronger signals. Requires the email:read scope.

## Path parameters

- `emailId` string, required

## Response `200`

Email metrics

- ApiResponseEmailMetrics
  - `success` boolean, required
  - `data` object, nullable — Aggregate performance for one generated email across every API send of it. Sourced from the tracking worker, so values may be slightly stale and cover roughly the last 30 days of raw send history (aggregates persist longer). Opens are directional: Apple Mail Privacy Protection and bots inflate them; clicks and delivery events are stronger signals.
    - `summary` object, required
      - `totalEmails` integer
      - `delivered` integer
      - `opened` integer
      - `clicked` integer
      - `bounced` integer
      - `complained` integer
      - `unsubscribed` integer
      - `deliveryRate` number — 0-100.
      - `openRate` number — 0-100. Directional — inflated by Apple Mail Privacy Protection and bots.
      - `clickRate` number — 0-100.
      - `bounceRate` number — 0-100.
      - `complaintRate` number — 0-100.
      - `unsubscribeRate` number — 0-100.
    - `timeSeries` object[]
      - `date` string
      - `sent` integer
      - `delivered` integer
      - `opened` integer
      - `clicked` integer
      - `bounced` integer
      - `complained` integer
    - `countryBreakdown` object[]
      - `country` string
      - `count` integer
    - `lastUpdated` string, date-time, required — When these stats were last refreshed from the tracking worker.
    - `cached` boolean
  - `error` string, nullable

## Other responses

- `401` — Unauthorized
- `403` — Forbidden - Missing required permissions or access denied
- `404` — Resource not found

---

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