Analytics

List analytics events

GET/analytics/reports/events

Lists live events, newest first: events on the deals GET /deals lists for you, by any user, and events of any kind by users of your organisation, such as logins (not for an entrepreneur). Other kinds are not covered. Negated and deleted events are left out. A settled enquiry has type settled. On deal and transaction rows user_id and user_name may be a user of another organisation, as in deal viewers. id is a whole number. Figures come from the analytics store, which trails live data. It only reads.

Query parameters

  • limitinteger#

    Page size (1–100). Defaults to 25; values are clamped to the range.

    Default: 25
  • cursorstring#

    Opaque pagination cursor taken from a prior response's meta.next_cursor.

  • fieldsstring#

    Comma-separated top-level fields to return. id is always returned.

  • sortstring#

    Sort by occurred_at. Prefix with - for descending. Defaults to -occurred_at. Events at the same time are ordered by id.

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

    Only events in a range, written filter[occurred_at][gte]=2026-10-01. Takes gt, gte, lt and lte.

  • filter[category]string#

    Only events of this category: deal, transaction (a commitment or funding) or user. Takes [in] and [not_in] with a comma-separated list.

    One of: deal, transaction, user
  • filter[type]string#

    Only events of this type, such as action, creation or settled. Free text: an unknown value gives an empty list. Takes [in], [not_in] and [contains].

  • filter[sub_type]string#

    Only events of this kind, such as view, enquiry, committed, funded or login. Free text: an unknown value gives an empty list. Takes [in], [not_in] and [contains]. For enquiries, use filter[sub_type]=enquiry&filter[type]=action.

  • filter[user_id]string (uuid)#

    Only events about this user, as user_id on a row. Takes [in] and [not_in] with a comma-separated list.

  • filter[deal_id]string (uuid)#

    Only events on this deal, as GET /deals returns its id. Takes [in] and [not_in]. User events have no deal and never match.

Responses

200

One page of event rows.

EventReportRow[]
{
  "data": [
    {
      "id": 1,
      "occurred_at": "2026-06-12T10:00:00+00:00",
      "category": "deal",
      "type": "string",
      "sub_type": "string",
      "user_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
      "user_name": "string",
      "deal_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
      "deal_name": "string",
      "value": 1
    }
  ],
  "meta": {
    "limit": 1,
    "next_cursor": "string",
    "prev_cursor": "string"
  }
}
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/analytics/reports/events\
  -H "Authorization: Bearer $HELM_API_KEY"\
  -H "Content-Type: application/json"