Get Active Users
Query the number of distinct active users for your team, with optional time granularity and per-user grouping.
Authentication
This endpoint uses Bearer token authentication. Include your service key in theAuthorization header:
What counts as an active user
A user is counted as active for a given time bucket if they have any billing event in it. Theactive_users field reports the count of distinct users.
Grouping and Granularity
Usegranularity and group_by to control the shape of returned data:
- No granularity or grouping — returns a single row with the total active user count for the entire date range
granularity=daily— each row includes atimestampinYYYY-MM-DDformat (daily active users)granularity=monthly— each row includes atimestampinYYYY-MMformat (monthly active users)group_by=user— returns one row per active user with auser_id; each row’sactive_usersis1
user for group_by. Other dimensions (model_uid, ide) are not valid here.Pagination
Results are paginated with a default page size of 1,000 rows (max 10,000). When more results are available, the response includes anext_page_cursor in the pagination object. Pass it as the page_cursor query
parameter to fetch the next page.
Page cursors expire after 24 hours. A follow-up page request does not count as a new query against your rate limit.
Caching
Responses include anETag header. To avoid redundant data transfer, include the If-None-Match header
with the previous ETag value — the server will return 304 Not Modified if the data has not changed.
Rate Limits
This endpoint is rate-limited to 10 requests per hour per team. If you exceed this limit, the server returns429 Too Many Requests with a Retry-After header.
Paginating an earlier query (following a next_page_cursor) does not count against this limit —
only the initial query for each report does. The low limit reflects that this endpoint is for
periodic reporting, not real-time usage monitoring.Authorizations
A service key with Analytics Read permission, passed as a Bearer token in the Authorization header.
Create a service key in your team settings under the "Service Keys" section.
Headers
ETag value from a previous response. If the data has not changed, the server returns 304 Not Modified.
Query Parameters
Start of the date range (inclusive) in YYYY-MM-DD format.
End of the date range (inclusive) in YYYY-MM-DD format. The range must not exceed 90 days.
Product to query active users for.
agent Time granularity for grouping results. When specified, each row includes a timestamp field.
If omitted, the active user count is aggregated across the entire date range.
daily, monthly Dimension to group results by. The active users endpoint only supports user, which returns
one row per active user (each with active_users = 1).
user Comma-separated list of model UIDs to filter results to.
Filter results to users in a specific group. The service key must have access to this group.
Filter results to a specific user (auth UID).
Maximum number of rows to return per page.
1 <= x <= 10000Opaque cursor from a previous response's pagination.next_page_cursor to fetch the next page.
