CampaignsCampaign analytics

Campaign analytics

Returns detailed campaign analytics including:

  • Overall campaign stats (sent, opened, clicked, bounced, replied, unsubscribed)
  • Step-by-step analytics with A/B variant breakdown
  • Lead status breakdown (active, completed, bounced, etc.)
  • Total replied count

Without from/to, returns all-time data. Supply one or both to filter by date range.

curl -X GET "https://api.sendkit.ai/v1/campaigns/example_string/analytics?from=2024-05-01&to=2024-05-31" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: YOUR_API_KEY"
{
  "success": true,
  "data": {
    "campaign": {
      "id": "665a1b2c3d4e5f6a7b8c9d0e",
      "name": "Q1 Outreach Campaign",
      "status": "active",
      "startedAt": "2025-06-15T09:00:00.000Z"
    },
    "stats": {
      "sent": 150,
      "delivered": 145,
      "opened": 72,
      "clicked": 18,
      "replied": 12,
      "bounced": 5,
      "unsubscribed": 2
    },
    "bySequence": {
      "main": {
        "sent": 130,
        "opened": 60,
        "clicked": 14,
        "bounced": 4
      },
      "subsequence": {
        "sent": 20,
        "opened": 12,
        "clicked": 4,
        "bounced": 1
      }
    },
    "stepAnalytics": [
      {
        "_id": {
          "sequenceStep": 0,
          "variant": null
        },
        "sent": 90,
        "opened": 45,
        "clicked": 11,
        "bounced": 3
      },
      {
        "_id": {
          "sequenceStep": 2,
          "variant": null
        },
        "sent": 40,
        "opened": 15,
        "clicked": 3,
        "bounced": 1
      }
    ],
    "subsequences": [
      {
        "id": "665c1b2c3d4e5f6a7b8c9d20",
        "name": "Interested follow-up",
        "trigger": {
          "type": "ai_tag",
          "value": "interested"
        },
        "enabled": true,
        "archived": false,
        "addedCount": 18,
        "currentlyEnrolled": 9,
        "stats": {
          "sent": 20,
          "opened": 12,
          "clicked": 4,
          "bounced": 1,
          "replied": 5
        },
        "stepStats": [
          {
            "_id": 0,
            "sent": 14,
            "opened": 9,
            "clicked": 3,
            "bounced": 1
          },
          {
            "_id": 1,
            "sent": 6,
            "opened": 3,
            "clicked": 1,
            "bounced": 0
          }
        ]
      }
    ],
    "statusBreakdown": {
      "active": 350,
      "completed": 100,
      "bounced": 5,
      "unsubscribed": 2,
      "replied": 12,
      "removed": 31
    },
    "totalReplied": 12
  }
}
GET
/v1/campaigns/{campaignId}/analytics
GET
Base URLstring

Target server for requests. Edit to use your own host.

API Key (header: X-Api-Key)
X-Api-Keystring
Required

Platform API key (sk_user_...) or Workspace API key (sk_...)

Platform API key (sk_user_...) or Workspace API key (sk_...)
query
fromstring

Start date (ISO 8601 or date string). Omit for no lower bound.

Format: date
query
tostring

End date (ISO 8601 or date string). Omit for no upper bound.

Format: date
Request Preview
Response

Response will appear here after sending the request

Authentication

header
X-Api-Keystring
Required

API Key for authentication. Platform API key (sk_user_...) or Workspace API key (sk_...)

Path Parameters

Query Parameters

fromstring

Start date (ISO 8601 or date string). Omit for no lower bound.

Example:
2024-05-01
tostring

End date (ISO 8601 or date string). Omit for no upper bound.

Example:
2024-05-31

Responses

successboolean
dataobject