# Count Campaign Emails

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

How many emails the campaign covers. The meaning shifts with campaign state: while it is still SENDING this is a live count of contacts currently matching the audience, so it can move between calls as contacts subscribe or unsubscribe. In every other state it counts the Email rows actually created. Treat it as a projection before the send finishes and a fact afterwards.

## Request

- projectId: string, path, required — ID of the project that owns the campaign.
- campaignId: string, path, required — ID of the campaign to count.
- messageId: string, query — Count only emails sent from this campaign message, useful for a single A/B variant. Ignored while the campaign is still SENDING.

## Response

- 200: Successful response
  - count: number, required
- 400: Invalid input data
- 401: Authorization not provided
- 403: Insufficient access
- 404: Not found
- 500: Internal server error
