> ## Documentation Index
> Fetch the complete documentation index at: https://docs.migma.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Campaign Stats

> Get aggregate engagement stats for a sent campaign (sends, deliveries, opens, clicks, unsubscribes, bounces, and rates). Stats are sourced from the tracking worker and may be cached and slightly stale. botOpens, botClicks, and mppOpens reflect Apple Mail Privacy Protection and bot detection when available. Requires API key with email:read.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/campaigns/{id}/stats
openapi: 3.1.0
info:
  title: Migma.ai API (v1)
  description: >-
    API for managing brands, contacts, email generation, sending, and
    integrations.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.migma.ai
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: Projects/Brands
    description: Manage projects (brands) and import from websites
  - name: Contacts
    description: Manage your contacts, segments, tags, and topics
  - name: Segments
    description: Create and manage dynamic contact segments
  - name: Tags
    description: Organize contacts with tags
  - name: Topics
    description: Manage subscription topics and preferences
  - name: Emails
    description: Generate, send, and export emails
  - name: Email Validation
    description: Validate email content for compatibility and deliverability
  - name: Email Previews
    description: Preview emails across devices and email clients
  - name: Domains
    description: Manage sending domains and verification
  - name: Webhooks
    description: Manage webhook endpoints for real-time event notifications
  - name: Integrations
    description: Third-party platform integrations
  - name: Campaigns
    description: Create, schedule, send, and manage email campaigns
  - name: Project Editing
    description: Edit project assets, logos, images, and knowledge base entries
paths:
  /v1/campaigns/{id}/stats:
    get:
      tags:
        - Campaigns
      summary: Get Campaign Stats
      description: >-
        Get aggregate engagement stats for a sent campaign (sends, deliveries,
        opens, clicks, unsubscribes, bounces, and rates). Stats are sourced from
        the tracking worker and may be cached and slightly stale. botOpens,
        botClicks, and mppOpens reflect Apple Mail Privacy Protection and bot
        detection when available. Requires API key with email:read.
      operationId: GetCampaignStats
      parameters:
        - name: id
          in: path
          description: Campaign ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Campaign stats
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseCampaignStats'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-codeSamples:
        - lang: javascript
          label: Node.js SDK
          source: |-
            import Migma from 'migma';

            const migma = new Migma('YOUR_API_KEY');

            const { data, error } = await migma.campaigns.stats('CAMPAIGN_ID');
components:
  schemas:
    ApiResponseCampaignStats:
      allOf:
        - $ref: '#/components/schemas/ApiResponse'
        - type: object
          properties:
            data:
              $ref: '#/components/schemas/CampaignStats'
    ApiResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          nullable: true
        error:
          type: string
          nullable: true
      required:
        - success
    CampaignStats:
      type: object
      description: >-
        Aggregate engagement stats for a campaign. Sourced from the tracking
        worker; may be cached and slightly stale.
      properties:
        totalSent:
          type: integer
        totalDelivered:
          type: integer
        uniqueOpens:
          type: integer
        totalOpens:
          type: integer
        uniqueClicks:
          type: integer
        totalClicks:
          type: integer
        unsubscribes:
          type: integer
        bounces:
          type: integer
        openRate:
          type: number
          description: Unique opens divided by delivered.
        clickRate:
          type: number
          description: Unique clicks divided by delivered.
        lastUpdated:
          type: string
          format: date-time
          description: When these stats were last refreshed from the tracking worker.
        botOpens:
          type: integer
          description: Opens attributed to bots or automated scanners, when detected.
        botClicks:
          type: integer
          description: Clicks attributed to bots or automated scanners, when detected.
        mppOpens:
          type: integer
          description: Opens attributed to Apple Mail Privacy Protection, when detected.
      required:
        - totalSent
        - totalDelivered
        - uniqueOpens
        - totalOpens
        - uniqueClicks
        - totalClicks
        - unsubscribes
        - bounces
        - openRate
        - clickRate
        - lastUpdated
    ApiError:
      type: object
      properties:
        success:
          type: boolean
          default: false
        error:
          type: string
        code:
          type: string
          description: >-
            Machine-readable error code (e.g., IDEMPOTENCY_CONFLICT,
            DOMAIN_CLAIMABLE).
        data:
          type: object
          description: >-
            Additional structured context for the error, such as the affected
            domain.
          additionalProperties: true
      required:
        - success
        - error
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key authentication. Use 'Authorization: Bearer YOUR_API_KEY' where
        YOUR_API_KEY is obtained from the Migma dashboard under Settings → API
        Integration.

````