Response format
Every successful response has the same outer shape:total: implicitCOUNT(*)for the row. Always present.<aggregationKey>: one key per requested aggregation. The key is<type><Column>in camelCase (e.g.sumLoadbalanceTargetAttemptCount,avgLoadbalanceTargetAttemptCount).<groupByKey>: one key pergroupByentry. The key is the lowerCamelCase form of the underlying column. Two special mappings:userEmailandvirtualaccountboth map tocreatedBySubjectSlugin the response.teammaps toteam(the value is a single unnested scalar, not an array). All othergroupBykeys preserve their lowerCamelCase name.
startTimestamp: present only for timeseries responses. Bucket start as an ISO 8601 timestamp string (e.g."2026-04-29T12:00:00.000Z"). Distribution responses omit it.endTimestamp: present only for timeseries responses. Bucket end as an ISO 8601 timestamp string, equal to the next bucket’sstartTimestamp(e.g."2026-04-29T13:00:00.000Z"). Distribution responses omit it.
Distribution response example
Timeseries response example
If
groupBy is empty or omitted, the response collapses to a single row (or one row per timeseries bucket) summarising every rule application inside the window.Error responses
A malformed query returns400 Bad Request:
- Unsupported field name for
configMetrics. The error message is typicallyUnsupported gateway config filter name: <field>. Notably,httpStatusCode,errorType, andlatencyMsare not filterable on this datasource; usestatusingroupByfor outcome breakdowns. - Operator not allowed on this field. For example,
STRING_CONTAINSonloadbalanceRuleId(it supports onlyIN/NOT_IN). - Missing required
value(or wrong shape, e.g. scalar where array is expected forIN). - Invalid
intervalformat (compound expressions, unrecognised unit, non-positive integer). - Missing required
intervalfor a timeseries query.
401 Unauthorized: missing or invalid bearer token.403 Forbidden: caller does not have permission for the requested scope.500 Internal Server Error: unexpected server error while executing the query.