---
title: "Status and statistics"
method: GET
path: "/api/v1/campaigns/{id}"
tags: ["Campaigns"]
---

# Status and statistics

`GET /api/v1/campaigns/{id}`

## Request

- Base URL: `https://mailcheer.com`
- URL: `https://mailcheer.com/api/v1/campaigns/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Permission required: `campaigns:read`. Rates are calculated on delivered messages, not on recipients: a dead address must not pull down the open rate of those who did receive it. `open_rate` and `click_rate` include bots, as most tools count them; `human_open_rate` and `human_click_rate` set them aside.

## Path parameters

- `id` string, required

## Response `200`

The campaign.

- Campaign
  - `id` string
  - `object` 'campaign'
  - `name` string
  - `subject` string, nullable
  - `kind` string
  - `status` 'draft' | 'scheduled' | 'sending' | 'sent' | 'archived'
  - `from` string, nullable
  - `scheduled_at` string, date-time, nullable
  - `sent_at` string, date-time, nullable
  - `created_at` string, date-time
  - `schedule_error` string, nullable: Why a scheduled send did not go out.
  - `stats` object: A bot is an open or a click within two minutes of delivery (security gateways visit every link as the message arrives; privacy relays preload images), or one from a robot that declares itself in its user agent or comes from an address range its operator publishes (Google, Bing). Privacy relays (Apple Mail, Gmail, Yahoo) are not bots in themselves.
    - `recipients` integer
    - `sent` integer
    - `delivered` integer
    - `opened` integer
    - `clicked` integer
    - `bounced` integer
    - `complained` integer
    - `open_rate` number, nullable: Percentage of delivered messages opened at least once, one decimal — bots included, as most tools count it.
    - `click_rate` number, nullable: Percentage of delivered messages clicked at least once, one decimal — bots included.
    - `human_opened` integer: Messages opened (or clicked) at least once by a person, bots set aside.
    - `human_clicked` integer: Messages clicked at least once by a person, bots set aside.
    - `human_open_rate` number, nullable: `open_rate` without bots: the closest figure to real readings.
    - `human_click_rate` number, nullable: `click_rate` without bots.
    - `opens_tracked` boolean: `false` when every delivered message went out without an open-tracking pixel (the workspace's “Track opens” setting was off): `open_rate` and `human_open_rate` are then `null`. Open figures only count messages that carried the pixel.

## Other responses

- `401`: Key missing, unknown or revoked.
- `403`: The key does not have the requested permission, or the workspace cannot send: `sending_blocked` (suspended, blocked or banned — nothing goes out, through any channel), `commitment_required` (the anti-spam commitment is not accepted), `reputation_blocked` (too many bounces or complaints).
- `404`: The object does not exist in this workspace.

---

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