---
title: "Campaigns analytics roll-up"
method: GET
path: "/business/analytics/campaigns"
tags: ["Analytics"]
---

# Campaigns analytics roll-up

`GET /business/analytics/campaigns`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/analytics/campaigns`
- Auth: HTTP basic

The campaigns insights tab in one response for the whole account (every campaign the token owner can see): the email trend and the LinkedIn trend — each as { totals, series }, where totals is the exact whole-window figure per metric and series one zero-filled point per bucket carrying the same fields — plus the top 10 LinkedIn campaigns by acceptance rate. Derive rates from totals; contacted is the distinct-contact count the per-contact metrics divide by (email and LinkedIn reply rate = replied / contacted, LinkedIn acceptance rate = invitesAccepted / invitesSent). Email open counts cover only emails sent while the campaign's open tracking was on, so open rates divide by the tracked sends: uniqueOpened / contactedWithOpenTracking per contact, emailsOpened / sentWithOpenTracking per email. Every count is event-date attributed — each row lands in the bucket its event happened in — so the series describe volume over time and sum exactly to totals; do not divide one point's engagement by the same point's sends as a per-bucket rate, because opens, acceptances and replies lag their send and the two counts describe different people. Buckets are daily for 7d and ISO-weekly for 30d and 90d; each point's date is its bucket's start date as a display label ('Jan 1') with the same date as YYYY-MM-DD in isoDate. Each panel is computed independently and is null when its aggregation fails, so always null-check them. Per-campaign detail stays on GET /business/campaigns/{campaignId}/stats. Rate limit: 20 requests per minute, 1000 per day.

Errors:
- `422` `VALIDATION_FAILED` — `range` was sent and is not one of 7d, 30d or 90d.
- `429` `RATE_LIMITED` — Per-user quota for this endpoint family exceeded (20 per minute, 1000 per day); retry after the Retry-After / RateLimit-Reset seconds.

Requires one of the following token scopes: analytics.

## Query parameters

- `range` '7d' | '30d' | '90d': Rolling window ending now: 7d, 30d (default) or 90d, i.e. the roll-up covers the last 7, 30 or 90 days; time-series bucket sizes (daily, weekly, monthly) are chosen from the window length.
- `timezone` string: IANA timezone name (e.g. `Europe/Kyiv`, `America/New_York`) whose calendar days the time series is bucketed by: each bucket's `isoDate` / `date` is a local day, week, month or quarter in this zone. Offsets such as `+03:00` are rejected. Default: `UTC`.

## Response `200`

Success

- object
  - `range` '7d' | '30d' | '90d', required
  - `email` object, required
    - `trend` object, nullable, required
      - `totals` object, required
        - `sent` integer, required
        - `contacted` integer, required
        - `sentWithOpenTracking` integer, required
        - `contactedWithOpenTracking` integer, required
        - `ai` integer, required
        - `manual` integer, required
        - `opened` integer, required
        - `emailsOpened` integer, required
        - `uniqueOpened` integer, required
        - `clicked` integer, required
        - `uniqueClicked` integer, required
        - `replied` integer, required
        - `positiveReplies` integer, required
        - `bounced` integer, required
        - `invalidated` integer, required
      - `series` object[], required
        - `date` string, required
        - `isoDate` string, required
        - `sent` integer, required
        - `contacted` integer, required
        - `sentWithOpenTracking` integer, required
        - `contactedWithOpenTracking` integer, required
        - `ai` integer, required
        - `manual` integer, required
        - `opened` integer, required
        - `emailsOpened` integer, required
        - `uniqueOpened` integer, required
        - `clicked` integer, required
        - `uniqueClicked` integer, required
        - `replied` integer, required
        - `positiveReplies` integer, required
        - `bounced` integer, required
        - `invalidated` integer, required
  - `linkedin` object, required
    - `trend` object, nullable, required
      - `totals` object, required
        - `sent` integer, required
        - `inmailsSent` integer, required
        - `profileVisits` integer, required
        - `postsLiked` integer, required
        - `ai` integer, required
        - `manual` integer, required
        - `contacted` integer, required
        - `invitesSent` integer, required
        - `invitesAccepted` integer, required
        - `replied` integer, required
        - `positiveReplies` integer, required
        - `bounced` integer, required
      - `series` object[], required
        - `date` string, required
        - `isoDate` string, required
        - `sent` integer, required
        - `inmailsSent` integer, required
        - `profileVisits` integer, required
        - `postsLiked` integer, required
        - `ai` integer, required
        - `manual` integer, required
        - `contacted` integer, required
        - `invitesSent` integer, required
        - `invitesAccepted` integer, required
        - `replied` integer, required
        - `positiveReplies` integer, required
        - `bounced` integer, required
    - `topCampaigns` object[], nullable, required
      - `campaignId` string, required
      - `campaignName` string, required
      - `connectionRequestsSent` integer, required
      - `connectionsAccepted` integer, required
      - `repliesReceived` integer, required
      - `positiveRepliesReceived` integer, required
      - `acceptanceRate` number, required
      - `connectionReplyRate` number, required
      - `positiveReplyRate` number, required

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
