---
title: "Get campaign email client breakdown"
method: GET
path: "/metrics/campaigns/{campaignId}/clients"
tags: ["Analytics"]
---

# Get campaign email client breakdown

`GET /metrics/campaigns/{campaignId}/clients`

## Request

- Base URL: `https://api.sequenzy.com/api/v1`
- URL: `https://api.sequenzy.com/api/v1/metrics/campaigns/{campaignId}/clients`
- Auth: HTTP bearer

Returns the mail clients and device types that opened a campaign, as shares of its unique opens. Each email send counts once, attributed to the client of its first open. Covers the whole campaign.

## Path parameters

- `campaignId` string, required

## Query parameters

- `mailboxProvider` string
- `includeMachineEngagement` boolean

## Response `200`

Success

- object: Mail client and device shares of unique opens. Each email send counts once, attributed to the user agent of its first open. Opens through the Gmail and Yahoo image proxies and Apple Mail Privacy Protection report the client with an unknown device.
  - `success` boolean, required
  - `campaignId` string, required
  - `mailboxProvider` string: Echoed back when `mailboxProvider` is provided.
  - `totalOpens` integer, required: Unique opens the breakdown covers. `0` when nothing was opened, in which case `clients` and `devices` are empty.
  - `privacyProxyOpens` integer, required: Opens through the Gmail or Yahoo image proxies or Apple Mail Privacy Protection, where the reader's device is unknown.
  - `clients` object[], required: Mail clients, most opens first.
    - `key` 'apple_mail' | 'gmail' | 'outlook' | 'yahoo_mail' | 'thunderbird' | 'android_mail_app' | 'web_browser' | 'other', required: `android_mail_app` covers Android apps that render mail in a WebView, such as Samsung Email. `web_browser` covers webmail, the new Outlook for Windows, and opens recorded from a link click without a tracked open. `apple_mail` also includes some apps built on Apple's WebKit, such as Outlook for Mac. `other` covers unrecognized and missing user agents.
    - `label` string, required
    - `opens` integer, required
    - `share` number, required: Percentage of `totalOpens`, from 0 to 100. Not rounded.
  - `devices` object[], required: Device types, most opens first.
    - `key` 'desktop' | 'mobile' | 'tablet' | 'unknown', required
    - `label` string, required
    - `opens` integer, required
    - `share` number, required: Percentage of `totalOpens`, from 0 to 100. Not rounded.

## Other responses

- `400`: SMS campaign or invalid mailbox provider
- `401`: Unauthorized
- `404`: Campaign not found
- `500`: Analytics storage error

## Changes

- **2026-10-16** `db3873ca3d4d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/metrics/campaigns/:campaignId/clients/get.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) - [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sequenzy/apis/sequenzy-api/revisions/8156dc12d8b4?raw)
