Communications

Get sent-email volume by day

GET/communications/overview/sent-emails

Returns one entry per day in the window, oldest first, with how many emails were queued that day; days with none are 0. An email counts once; GET /communications/overview/stats counts deliveries.

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

  • filter[q]string#

    Emails whose subject contains this text, ignoring case.

  • filter[sent_at]string (date-time)#

    Sets the window on when emails were queued (created_at), written filter[sent_at][gte]=2026-10-01. Takes gt, gte, lt and lte. Emails not yet sent to anyone are counted too.

  • filter[deal_id]string (uuid)#

    Emails about this deal. Takes [in] and [not_in] with a comma-separated list.

  • filter[status]string#

    Only emails in this sending status: queued, sending, sent, failed, suppressed or retry_scheduled. Takes [in] and [not_in] with a comma-separated list.

    One of: queued, sending, sent, failed, suppressed, retry_scheduled
  • filter[source_type]string#

    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.

    One of: distribution, invite, notification, deal_promotion, workflow, account, custom
  • filter[recipient_email]string#

    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.

  • filter[recipient_name]string#

    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",
      "value": 18
    },
    {
      "date": "2026-06-07",
      "value": 0
    },
    {
      "date": "2026-06-08",
      "value": 27
    }
  ]
}
401

Authentication failed. error.code is one of invalid_token, expired, revoked.

Error
403

Authorization failed. error.code is one of org_disabled, ip_blocked, missing_scope, scope_disabled, user_disabled.

Error
422

The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per problem, or a code documented on the operation.

Error
429

Rate limit exceeded (error.code = rate_limited).

Error

Examples

curl https://your-org-domain/kong/core/api/v2/communications/overview/sent-emails\
  -H "Authorization: Bearer $HELM_API_KEY"\
  -H "Content-Type: application/json"