Aggregate Events
Aggregate usage events by time period. Returns usage totals grouped by feature and optionally by a custom property.
Working with Properties
When tracking events, you can attach custom properties that can later be used for grouping aggregations:group_by parameter:
Special Group By Operators
In addition to custom properties, you can group by built-in columns using$-prefixed operators:
$customer_id— Group results by customer ID. Useful when aggregating across all customers (i.e. nocustomer_idspecified).$entity_id— Group results by entity ID. Useful for seeing usage broken down per entity.
Response Format
The response structure changes based on whethergroup_by is provided:
Without group_by (Flat Response)
When no grouping is specified, values contains the aggregated sum for each feature:
With group_by (Grouped Response)
When grouping is specified, values contains the total sum while grouped_values breaks down values by group:
grouped_values field is only present when group_by is provided in the request.Body Parameters
Response
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Body
Feature ID(s) to aggregate events for
1Customer ID to aggregate events for
1Entity ID to filter aggregated events for (e.g., per-seat or per-resource limits)
1Property to group events by (e.g. "properties.region"), or "$customer_id" / "$entity_id" / "$plan_id" to group by those columns
Time range to aggregate events for. Either range or custom_range must be provided
24h, 7d, 30d, 90d, last_cycle, 1bc, 3bc Size of the time bins to aggregate events for. Defaults to hour if range is 24h, otherwise day
day, hour, week, month Custom time range to aggregate events for. If provided, range must not be provided
Filter events by property values, e.g. {"model": "gpt-4", "region": "us"}. Maximum 5 filters.
Maximum number of distinct group values to return per time bin when using group_by. Remaining values are bundled into an 'Other' bucket. Defaults to 9
1 <= x <= 250