# Get Email Stats

GET /api/v2/projects/{projectId}/email-campaigns/{campaignId}/stats

Aggregate delivery and engagement figures for one campaign: sent, delivered, opened, clicked, bounced, complained, and delivery-delayed. Each comes back as a raw `total`, a `unique` count that collapses repeat events from the same recipient, and a `rate`, so open rate is not just opens divided by sends. For the per-recipient breakdown behind these numbers use List Emails.

## Request

- projectId: string, path, required — ID of the project that owns the campaign.
- campaignId: string, path, required — ID of the campaign to report on.
- dateFrom: string, query — Only count events on or after this `YYYY-MM-DD` date. Omit for the campaign's whole lifetime.
- dateTo: string, query — Only count events on or before this `YYYY-MM-DD` date.

## Response

- 200: Successful response
  - bounced: object, required
    - rate: number, required
    - total: number, required
    - unique: number, required
  - clicked: object, required
    - rate: number, required
    - total: number, required
    - unique: number, required
  - complained: object, required
    - rate: number, required
    - total: number, required
    - unique: number, required
  - delivered: object, required
    - rate: number, required
    - total: number, required
    - unique: number, required
  - deliveryDelayed: object, required
    - rate: number, required
    - total: number, required
    - unique: number, required
  - opened: object, required
    - rate: number, required
    - total: number, required
    - unique: number, required
  - sent: object, required
    - rate: number, required
    - total: number, required
    - unique: number, required
- 400: Invalid input data
- 401: Authorization not provided
- 403: Insufficient access
- 404: Not found
- 500: Internal server error
