---
title: "Get broadcast metrics"
method: GET
path: "/v1/broadcasts/{broadcast_id}/metrics"
tags: ["Broadcasts"]
---

# Get broadcast metrics

`GET /v1/broadcasts/{broadcast_id}/metrics`

Returns a list of metrics for an individual broadcast in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period).

You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.

## Response `200`

Returns broadcast metrics by `series` (with increments are based on the `period` and `step` in your request) for the broadcast.

- object
  - `metric` object
    - `series` PeriodMessageMetrics — Metrics grouped by the requested resolution. Each property is an array where each entry represents one period, such as one day.
      - `attempted` integer[] — The number of `attempted` messages.
      - `bounced` integer[] — The number of `bounced` messages.
      - `clicked` integer[] — The number of `clicked` messages.
      - `human_clicked` integer[] — The number of `clicked` emails excluding machine clicks. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics).
      - `machine_clicked` integer[] — The number of `clicked` emails attributed to machines—security scanners, bot user agents, known proxy services, and repetitive click patterns. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics).
      - `converted` integer[] — The number of `converted` messages.
      - `created` integer[] — The number of `created` messages.
      - `deferred` integer[] — The number of `deferred` messages.
      - `delivered` integer[] — The number of `delivered` messages.
      - `drafted` integer[] — The number of `drafted` messages.
      - `failed` integer[] — The number of `failed` messages.
      - `opened` integer[] — The number of `opened` messages.
      - `human_opened` integer[] — The number of `opened` emails excluding machine opens. This metric is reliable starting March 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics).
      - `prefetch_opened` integer[] — The number of `opened` emails attributed to machines. This metric is reliable starting March 20, 2025.
      - `sent` integer[] — The number of sent messages.
      - `spammed` integer[] — The number of spam complaints.
      - `suppressed` integer[] — The number of `suppressed` messages.
      - `undeliverable` integer[] — The number of `undeliverable` messages.
      - `topic_unsubscribed` integer[] — The number of topic unsubscribes in a given period.
      - `unsubscribed` integer[] — The number of unsubscribes attributed to the automation or message.
      - `replied` integer[] — The number of SMS/MMS messages a person replied to with a keyword. [Learn more about inbound messages](/messaging/channels/sms/inbound/get-started/).
      - `untracked` integer[] — The number of `sent` emails whose open pixel we withheld because the person opted out of open tracking. We exclude these from the open-rate denominator; click tracking is unaffected.
      - `open_untracked` integer[] — The number of emails delivered with open tracking inactive for any reason—including the consent opt-outs that `untracked` counts and messages sent with open tracking disabled. We subtract these from the open-rate denominator.
      - `link_untracked` integer[] — The number of emails delivered with link tracking inactive for any reason. We subtract these from the click-rate denominator.
      - `tracking_consent_granted` integer[] — The number of people who granted consent to email open tracking in the period.
      - `tracking_consent_denied` integer[] — The number of people who denied consent to email open tracking in the period.

## Other responses

- `400` — The `broadcastID`, `actionID` or `triggerID` is invalid.
- `404` — The broadcast, action, and/or trigger do not exist.
- `429` — Your request is over the 10-per-second limit. `Retry-After` tells you how many seconds you must wait before you send the next request.

## Changes

- **2026-09-02** `5da2740beeb5` — 1 info
  - added the media type `application/json` for the response with the status `429`

[Change history](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/changes/v1/broadcasts/:broadcast_id/metrics/get.md)

---

[API](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference.md) · [All operations](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/customer/customer-io-journeys-api-reference/revisions/00b93971a49f/schema)
