---
title: "Get stats for one automation email"
method: GET
path: "/v1/projectId/{projectId}/automations/{automationId}/email/{id}/stats"
tags: ["Automations"]
---

# Get stats for one automation email

`GET /v1/projectId/{projectId}/automations/{automationId}/email/{id}/stats`

## Request

- Base URL: `https://api.bluefox.email`
- URL: `https://api.bluefox.email/v1/projectId/{projectId}/automations/{automationId}/email/{id}/stats`
- Auth: HTTP bearer

Same counts as the other email stats endpoints, for the email sent by one send-email/notify node. Pass interval + metric for an hourly/daily/weekly/monthly breakdown instead of totals. For who received/opened/clicked it, see GET .../email/{id}/recipients.

## Path parameters

- `projectId` string, required
- `automationId` string, required
- `id` string, required

## Query parameters

- `from` string, date-time
- `to` string, date-time
- `interval` 'hourly' | 'daily' | 'weekly' | 'monthly'
- `metric` 'sent' | 'failed' | 'opens' | 'uniqueOpens' | 'clicks' | 'uniqueClicks' | 'clicksPerUniqueOpens' | 'uniqueClicksPerUniqueOpens' | 'unsubscribePerUniqueOpens' | 'bounces' | 'complaints' | 'subscribe' | 'unsubscribe' | 'resubscribe' | 'pause-subscription' | 'unpause-subscription'
- `timeZone` string

## Response `200`

OK

- object
  - `status` integer
  - `result` union
    - EmailStats: Aggregate counts for a single campaign/transactional/triggered email, optionally within a from/to date range.
      - `opens` integer: Total open events (a single recipient opening twice counts twice).
      - `clicks` integer: Total click events.
      - `uniqueOpens` integer: Number of distinct dispatched emails with at least one open.
      - `uniqueClicks` integer: Number of distinct dispatched emails with at least one click.
      - `sent` integer
      - `failed` integer
      - `bounce` integer
      - `complaint` integer
    - EmailStatsTimeline: Returned instead of EmailStats when interval/metric are given: the same per-period data as the stats chart in the app.
      - `interval` 'hourly' | 'daily' | 'weekly' | 'monthly'
      - `metric` string
      - `timeZone` string: The time zone the periods are labelled in.
      - `from` string, date-time: Start of the range actually used (start of the UTC day).
      - `to` string, date-time: End of the range actually used (end of the UTC day).
      - `buckets` object[]: Only periods with activity are listed - missing periods had 0. When nothing happened at all, a single period with count 0 is returned.
        - `period` string: "YYYY-MM-DD HH:00" (hourly), "YYYY-MM-DD" (daily), "YYYY-MM-DD to YYYY-MM-DD" (weekly) or "YYYY-MM" (monthly).
        - `count` integer: Not returned for the *PerUniqueOpens metrics.
        - `rate` number, nullable: Count metrics: the count as a percentage of all sends (null when nothing was sent). *PerUniqueOpens metrics: the percentage itself. Not returned for subscription metrics.

## Other responses

- `400`: Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
- `403`: Missing or invalid API key
- `404`: AutomationEmail not found
- `405`: The operation is blocked by a business rule (e.g. the resource is still in use)

---

[API](https://skmtc.dev/bluefox/apis/bluefox-email-public-api.md) · [All operations](https://skmtc.dev/bluefox/apis/bluefox-email-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bluefox/apis/bluefox-email-public-api/revisions/fa1a0a835c7f?raw)
