Get opens and clicks by day
/communications/overview/engagementReturns one entry per day in the window, oldest first, with the opens and clicks of the emails queued that day; days with none are 0.
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": [
{
"date": "2026-06-06",
"opens": 312,
"clicks": 74
},
{
"date": "2026-06-07",
"opens": 0,
"clicks": 0
},
{
"date": "2026-06-08",
"opens": 421,
"clicks": 96
}
]
}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/engagement\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"