---
title: "Get aggregate campaign statistics"
method: GET
path: "/campaigns/{campaignSlug}/stats"
tags: ["campaigns"]
---

# Get aggregate campaign statistics

`GET /campaigns/{campaignSlug}/stats`

Returns per-action counts, unique profile count, and total credits used for a campaign.

## Path parameters

- `campaignSlug` string, required

## Response `200`

Aggregate campaign statistics

- object
  - `success` true, required
  - `stats` object, required — Per-action-type counts (e.g. message: 45, reply: 120)
  - `totalProfiles` integer, required — Unique profiles processed in this campaign
  - `creditsUsed` integer, required — Credits this CAMPAIGN has consumed over its life, not the cost of this call. This endpoint is free. The field is named for the shared envelope and does not mean what it means elsewhere.
  - `retryAfter` integer, required — Seconds to wait before another call of the same type. Always 0 here.
  - `_meta` object — Credit balance carried on every response so a caller never has to ask for it separately. Absent when the caller has no connected account.
    - `credits` object, required
      - `current` number, required — Credits spent this period.
      - `limit` number, nullable, required — Period allowance, or null when unlimited.
      - `remaining` number, nullable, required — Allowance left, or null when unlimited.
      - `percentage` number, required — Share of the allowance spent, 0 to 100.
      - `isUnlimited` boolean, required
      - `accountPlan` string, required — The credential's plan.

## Other responses

- `400` — The server cannot or will not process the request due to something that is perceived to be a client error.
- `401` — Although HTTP specifies "unauthorized", this response means "unauthenticated". Authenticate to continue. NOTE: 401 is also returned with code "linkedin_not_connected" when the caller IS authenticated but has no connected LinkedIn account — connect LinkedIn (not re-authenticate) to continue.
- `403` — The client does not have access rights to the content.
- `404` — The server cannot find the requested resource.
- `409` — The request conflicts with the current state of the server.
- `410` — The requested content has been permanently deleted from the server.
- `422` — The request was well-formed but was unable to be followed due to semantic errors.
- `429` — Rate limit exceeded. Read error.retryAfter for the wait time in seconds.
- `500` — The server encountered a situation it does not know how to handle.
- `502` — LinkedIn returned a server error or the proxy connection failed. Retry after a few seconds.
- `503` — Proxy capacity temporarily exceeded. Retry after a few seconds.

---

[API](https://skmtc.net/berea/apis/bereach-api.md) · [All operations](https://skmtc.net/berea/apis/bereach-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/berea/bereach-api/revisions/32391e7c6322/schema)
