Search events
List individual events in a time range, newest first, with their properties. Optionally filter by event name, event properties, or one visitor’s distinct_id. The range includes from and excludes to, and duplicate event IDs are returned once, so a search over a chart bucket’s range with the same filters lists exactly the events that bucket counted. A page holds up to 100 events; pass next_cursor as cursor for the following page until it is null. The first page takes a snapshot from ClickHouse’s clock before reading its rows and its cursor carries it, so every page of the sequence, the first included, reads only deliveries received at or before that snapshot and ages events out of retention as of it: no event repeats or is skipped, and events received after the snapshot, including a redelivery that revises a listed event, appear only when paging restarts without a cursor. One window blurs that boundary: ClickHouse stamps a receipt at whole seconds when an insert starts and commits its rows when it finishes, so a delivery stamped in or before the snapshot’s second that commits after the first page was read is inside the sequence but missing from the first page; it joins from the next page, where an unlisted event it adds or moves ahead of the cursor is skipped and a listed event that a lower-hash redelivery moves behind the cursor repeats at its revised position. A cursor that does not decode, or one from another list, returns 400. A page whose events exceed the response size limit returns 413; request a smaller limit.
Authorizations
Gateway auth: send Authorization: Bearer <mka1-api-key>. For multi-user server-side integrations, you can also send X-On-Behalf-Of: <external-user-id>.
Path Parameters
ID of the analytics project.
1 - 128^[^\u0000]*$Body
Start of the time range, inclusive. Use an ISO 8601 timestamp with Z for UTC or an offset such as -07:00. Must be before to.
"2026-09-01T00:00:00Z"
End of the time range, exclusive. Use an ISO 8601 timestamp with Z for UTC or an offset such as -07:00. Must be after from.
"2026-09-02T00:00:00Z"
Only include events with this exact name. Omit to include all event names.
1 - 255"page_view"
Property filters combined with AND. An event must match every filter.
10Only include events sent with this exact distinct_id.
1 - 255^[^\u0000]*$Maximum number of rows in this page.
1 <= x <= 100Opaque cursor of at most 4096 characters, copied from next_cursor of the previous page. Omit for the first page, which takes the snapshot the whole sequence reads at. Cursors belong to one list and one sort order; a cursor that does not decode, or one from another list, returns 400. A cursor is a position, not a capability: one that decodes only moves the caller within the same project.
1 - 4096