---
title: "Get campaign performance stats"
method: GET
path: "/campaigns/{id}/stats"
tags: ["Campaigns"]
---

# Get campaign performance stats

`GET /campaigns/{id}/stats`

## Request

- Base URL: `https://api.emailchaser.com/r`
- URL: `https://api.emailchaser.com/r/campaigns/{id}/stats`
- Auth: HTTP bearer

Returns campaign performance in one call: totals, per-A/B-variant results, per-sequence-step results, and a daily (UTC) time series. Sent and bounced count outbound emails; replied and positive count distinct leads; totals.meetings counts the campaign's leads with a booked meeting recorded (see POST /leads/{id}/meeting). Variant sent counts initial emails only, while steps attribute replies to the exact email that was answered. There is no opens metric anywhere in this response: Emailchaser does not track opens, so its absence is deliberate, not an omission.

## Path parameters

- `id` integer, required

## Response `200`

Campaign performance stats

- ModelsGetCampaignStatsResponse
  - `campaignId` integer
  - `daily` ModelsCampaignStatsDay[]
    - `date` string
    - `positive` integer
    - `replied` integer
    - `sent` integer
  - `steps` ModelsCampaignStatsStep[]
    - `index` integer
    - `replied` integer
    - `sent` integer
  - `totals` ModelsCampaignStatsTotals
    - `bounced` integer
    - `meetings` integer
    - `positive` integer
    - `replied` integer
    - `sent` integer
  - `variants` ModelsCampaignStatsVariant[]
    - `label` string
    - `positive` integer
    - `replied` integer
    - `sent` integer

## Other responses

- `400`: Invalid campaign ID
- `401`: Unauthorized - invalid or missing API key
- `404`: Campaign not found
- `500`: Failed to retrieve campaign stats

---

[API](https://skmtc.dev/emailchaser/apis/emailchaser-api.md) · [All operations](https://skmtc.dev/emailchaser/apis/emailchaser-api/llms.txt) · [OpenAPI document](https://skmtc.dev/emailchaser/apis/emailchaser-api/revisions/8b114990abb7?raw)
