Get sent-email totals
/communications/overview/statsReturns one set of totals for the token organisation's sent emails: deliveries, distinct recipients, opens and clicks, with the unique and unopened counts.
Counts the token organisation's emails by when each was queued (created_at). The window is the last 30 days ending today (UTC); filter[sent_at] sets the window on that queue time instead: one bound gives the 30 days ending at it or starting from it, and two bounds may span 366 days. Takes the same filters as GET /communications/emails. It only reads: nothing is sent or written.
Query parameters
Emails whose subject contains this text, ignoring case.
Sets the window on when emails were queued (
created_at), writtenfilter[sent_at][gte]=2026-10-01. Takes gt, gte, lt and lte. Emails not yet sent to anyone are counted too.Emails about this deal. Takes
[in]and[not_in]with a comma-separated list.- One of:
Only emails in this sending status: queued, sending, sent, failed, suppressed or retry_scheduled. Takes
[in]and[not_in]with a comma-separated list.queued,sending,sent,failed,suppressed,retry_scheduled - One of:
Only emails produced by this source: distribution, invite, notification, deal_promotion, workflow, account or custom. Takes
[in]and[not_in]with a comma-separated list. Any other value returns 422.distribution,invite,notification,deal_promotion,workflow,account,custom Emails with a main recipient at this address, ignoring case. Copied recipients do not match. Takes
[in]and[not_in]with a comma-separated list. Takes[contains]for a partial match.Emails with a main recipient of this name, ignoring case. Copied recipients do not match. Takes
[in]and[not_in]with a comma-separated list. Takes[contains]for a partial match.
Responses
{
"data": {
"sent": 128,
"recipients": 96,
"opens": 2187,
"unique_opens": 84,
"clicks": 496,
"unique_clicks": 41,
"unopened": 44
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per
problem, or a code documented on the operation.
Examples
curl https://your-org-domain/kong/core/api/v2/communications/overview/stats\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"