---
title: "Workspace analytics roll-up"
method: GET
path: "/v1/campaigns/analytics/overview"
tags: ["Analytics"]
---

# Workspace analytics roll-up

`GET /v1/campaigns/analytics/overview`

## Request

- Base URL: `https://api.mailbeast.ai`
- URL: `https://api.mailbeast.ai/v1/campaigns/analytics/overview`
- Auth: HTTP bearer

Engagement rolled up across every campaign in the workspace, plus the highest-volume campaigns. Use it for a top-level dashboard; drill into a campaign for detail.

Requires one of the following scopes: `metrics:read`, `all:read`, `all:all`.

## Query parameters

- `startDate` string
- `endDate` string
- `excludeOOO` boolean

## Response `200`

- WorkspaceAnalyticsApiResponseDto
  - `period` AnalyticsPeriodView, required
    - `start` string, required
    - `end` string, required
    - `clamped` boolean, required: true = your requested start was older than the plan retention window and was moved forward. The data you got is real but shorter than you asked for.
    - `retentionDays` number, required: Days of history your plan retains.
  - `totals` AnalyticsTotalsView, required
    - `sent` number, required: Emails handed to the provider.
    - `failed` number, required: Sends that permanently failed before delivery.
    - `delivered` number, required: Sent minus bounced.
    - `leadsContacted` number, required: Distinct leads that received at least one email.
    - `opens` EngagementCountView, required
      - `total` number, required: Opens/clicks counted per email (bots excluded): the same email opened twice counts once, two different steps count twice.
      - `uniqueLeads` number, required: Distinct leads who did this at least once.
    - `clicks` EngagementCountView, required
      - `total` number, required: Opens/clicks counted per email (bots excluded): the same email opened twice counts once, two different steps count twice.
      - `uniqueLeads` number, required: Distinct leads who did this at least once.
    - `replies` number, required: Distinct leads who replied.
    - `bounces` number, required: All bounces. Ask for `breakdown=bounce` to split hard/soft and by reason.
    - `unsubscribed` number, required: Unsubscribes in the window.
    - `positiveLeads` number, required: Leads currently in a positive state (interested / meeting / converted).
    - `conversions` number, required: Conversions attributed in the window.
    - `conversionValue` number, nullable: Total value of those conversions, in your workspace currency.
    - `rates` AnalyticsRatesView, required
      - `open` number, nullable, required: uniqueLeads opened / leads contacted.
      - `click` number, nullable, required: uniqueLeads clicked / leads contacted.
      - `reply` number, nullable, required: uniqueLeads replied / leads contacted.
      - `bounce` number, nullable, required: bounces / sent.
      - `delivery` number, nullable, required: delivered / sent.
      - `unsubscribe` number, nullable, required: unsubscribes / sent.
      - `conversion` number, nullable, required: conversions / leads contacted.
  - `activeCampaigns` number, required: Campaigns currently sending.
  - `sendingAccounts` number, required: Connected sending accounts.
  - `topCampaigns` WorkspaceCampaignRollupView[], required: Highest-volume campaigns in the window.
    - `campaignId` string, required
    - `name` string, required
    - `sent` number, required
    - `openRate` number, nullable, required

## Other responses

- `400`: The request body or parameters failed validation.
- `401`: Missing or invalid API key.
- `403`: The key lacks a required scope, or the plan does not include API access.
- `429`: Rate limit exceeded - retry after the interval in the Retry-After header.

---

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