Get dashboard attribute statistics

Returns aggregated statistics — distinct value count and the top-K most
frequent value/count pairs — for one or more dashboard attributes,
optionally restricted to a CEL-filtered subset of dashboards.

Each attributes entry is a CEL expression that produces a comparable
value (string, int, bool, timestamp); compound expressions are allowed.
The CEL environment matches GET /v1/dashboards; see that endpoint's
filter for the available fields.

Each multiValueAttributes entry is a CEL expression that produces a
list<comparable>; the list is flattened across all matching dashboards
and counted as total occurrences, so a single dashboard whose
expression evaluates to a 3-element list contributes 3 increments.
multiValueAttributes count values may therefore exceed
meta.filteredDashboards. For attributes the count is unchanged: the
number of dashboards with that value.

At least one of attributes or multiValueAttributes must be
non-empty; passing neither returns 400.

managedBy is nullable, and a bare managedBy.record.label raises an
evaluation error rather than yielding null, failing the whole request
with 400. Ask with a conditional and choose a sentinel:
managedBy == null ? "null" : managedBy.record.label.

Stat values are returned as JSON strings regardless of the expression's
CEL type:

  • string — verbatim.
  • int — decimal digits (e.g. "41000234").
  • bool — "true" or "false".
  • timestamp — RFC 3339 (e.g. "2024-01-01T00:00:00Z").
  • a genuine null — the text "null".

The response meta block reports totalDashboards (before the filter)
and filteredDashboards (after) so callers can compute coverage.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string

CEL expression restricting which dashboards contribute to the
statistics. Must evaluate to bool. Must be URL-encoded. If
omitted, statistics cover every dashboard the caller may read.
Supports matches() for regex, as GET /v1/dashboards does.

string

CSV list of CEL expressions, each producing one comparable value
(string, int, bool, timestamp) per dashboard. Maximum 10
expressions per request.

Either attributes or multiValueAttributes must be non-empty;
both may be supplied together.

CSV-escape first, then URL-encode. Wrap an item in " if it
contains a comma or "; double a literal " to "" inside a
quoted item.

string

CSV list of CEL expressions, each producing a list<comparable>
(e.g. objectTags.map(k, k)). For each matching dashboard the
list is flattened into a per-expression bag and counts are total
occurrences, so one dashboard contributes one increment per
element. An expression evaluating to an empty list contributes no
bucket at all. The flattened bag for each expression is capped at
10,000 values across all matching dashboards; exceeding the cap
returns 400.

Maximum 10 expressions. Either attributes or
multiValueAttributes must be non-empty; both may be supplied
together. topK applies independently to each entry of either
array.

CSV-escape first, then URL-encode. Wrap an item in " if it
contains a comma or "; double a literal " to "" inside a
quoted item.

int64
required
1 to 100

Number of top values to return per attribute, sorted by count
descending, ties broken by value ascending. Range 1–100. The total
distinct count for each attribute is always reported via
distinctCount, even when it exceeds topK.

Responses

Language
Credentials
Bearer
Authorization: Bearer <customerid> <apitoken>
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json