Skip to main content

Properties

date_range

date_range: object

end_time

end_time: string
Format: date-time
Description
RFC 3339 end of the range (exclusive); Z or explicit offset

start_time

start_time: string
Format: date-time
Description
RFC 3339 start of the range (inclusive); Z or explicit offset

timezone?

optional timezone?: string
Description
IANA timezone name; defaults to UTC. Affects bucket alignment only.

filters?

optional filters?: object[]

field

field: string

operator

operator: "exists" | "not exists" | "is" | "is not" | "contains" | "not contains" | "greater than" | "less than" | "after" | "before"

type?

optional type?: "string" | "number" | "boolean" | "datetime"

value

value: string | number | boolean | null

Description

Implicit AND; default none

product_filters?

optional product_filters?: object

experiment_run_id?

optional experiment_run_id?: string
Description
Restrict to one experiment run

only_experiments?

optional only_experiments?: boolean
Description
Restrict to events belonging to any experiment run

project_id

project_id: string

Description

The unique identifier of the project whose events are queried

query

query: { bucket?: { interval?: "auto" | "1m" | "5m" | "1h" | "1d" | "1w" | "1M"; max_points?: number; }; kind: "time_series"; measures: object[]; split_by?: string; split_ranking?: { direction?: "asc" | "desc"; include_other?: boolean; limit?: number; }; } | { group_by: string; kind: "categorical"; measures: object[]; ranking?: { direction?: "asc" | "desc"; include_other?: boolean; limit?: number; }; split_by?: string; split_ranking?: { direction?: "asc" | "desc"; include_other?: boolean; limit?: number; }; } | { comparison?: { mode: "none" | "previous_period"; }; kind: "scalar"; measure: { aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"; id?: string; metric: string; }; sparkline?: { interval?: "auto"; max_points?: number; }; } | { bins?: { count?: number; max?: number; min?: number; mode: "count"; }; kind: "histogram"; markers?: ("p50" | "p75" | "p90" | "p95" | "p99")[]; metric: string; } | { group_by: string[]; kind: "table"; limit?: number; measures: object[]; order_by?: { direction?: "asc" | "desc"; field: string; }; } | { group_by: string; kind: "scatter"; limit?: number; x: { aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"; id?: string; metric: string; }; y: { aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"; id?: string; metric: string; }; }

Union Members

Type Literal
{ bucket?: { interval?: "auto" | "1m" | "5m" | "1h" | "1d" | "1w" | "1M"; max_points?: number; }; kind: "time_series"; measures: object[]; split_by?: string; split_ranking?: { direction?: "asc" | "desc"; include_other?: boolean; limit?: number; }; }
bucket?
optional bucket?: object
bucket.interval?
optional interval?: "auto" | "1m" | "5m" | "1h" | "1d" | "1w" | "1M"
Description
Bucket width; default auto
bucket.max_points?
optional max_points?: number
Description
Ceiling on bucket count when interval is auto; widens the resolved interval, never narrows it. Default 200, max 1000
kind
kind: "time_series"
Description
discriminator enum property added by openapi-typescript
measures
measures: object[]
Description
Display-ordered measures, same unit; exactly one when split_by is set
split_by?
optional split_by?: string
Description
Groupable field; one series per value
split_ranking?
optional split_ranking?: object
split_ranking.direction?
optional direction?: "asc" | "desc"
Description
Rank order; default desc
split_ranking.include_other?
optional include_other?: boolean
Description
Roll everything below the cap into an “Other” item; additive measures only
split_ranking.limit?
optional limit?: number
Description
Cap on ranked items; default 10, at most 50
Type Literal
{ group_by: string; kind: "categorical"; measures: object[]; ranking?: { direction?: "asc" | "desc"; include_other?: boolean; limit?: number; }; split_by?: string; split_ranking?: { direction?: "asc" | "desc"; include_other?: boolean; limit?: number; }; }
group_by
group_by: string
Description
Groupable field forming the axis
kind
kind: "categorical"
Description
discriminator enum property added by openapi-typescript
measures
measures: object[]
Description
Display-ordered measures, same unit; exactly one when split_by is set
ranking?
optional ranking?: object
Description
Caps the group_by dimension
ranking.direction?
optional direction?: "asc" | "desc"
Description
Rank order; default desc
ranking.include_other?
optional include_other?: boolean
Description
Roll everything below the cap into an “Other” item; additive measures only
ranking.limit?
optional limit?: number
Description
Cap on ranked items; default 10, at most 50
split_by?
optional split_by?: string
Description
Groupable field forming stacks/groups
split_ranking?
optional split_ranking?: object
Description
Caps the split_by dimension; default limit 10 even when omitted
split_ranking.direction?
optional direction?: "asc" | "desc"
Description
Rank order; default desc
split_ranking.include_other?
optional include_other?: boolean
Description
Roll everything below the cap into an “Other” item; additive measures only
split_ranking.limit?
optional limit?: number
Description
Cap on ranked items; default 10, at most 50
Type Literal
{ comparison?: { mode: "none" | "previous_period"; }; kind: "scalar"; measure: { aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"; id?: string; metric: string; }; sparkline?: { interval?: "auto"; max_points?: number; }; }
comparison?
optional comparison?: object
comparison.mode
mode: "none" | "previous_period"
kind
kind: "scalar"
Description
discriminator enum property added by openapi-typescript
measure
measure: object
measure.aggregation?
optional aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"
measure.id?
optional id?: string
Description
Response handle for this measure; defaults to the metric name
measure.metric
metric: string
Description
Field name or intrinsic metric id
sparkline?
optional sparkline?: object
sparkline.interval?
optional interval?: "auto"
sparkline.max_points?
optional max_points?: number
Description
Default 50; sparklines are small
Type Literal
{ bins?: { count?: number; max?: number; min?: number; mode: "count"; }; kind: "histogram"; markers?: ("p50" | "p75" | "p90" | "p95" | "p99")[]; metric: string; }
bins?
optional bins?: object
bins.count?
optional count?: number
Description
Default 20, at most 200
bins.max?
optional max?: number
Description
Upper edge; the p99 of the data when omitted, so one outlier cannot flatten the chart
bins.min?
optional min?: number
Description
Lower edge; discovered from the data when omitted
bins.mode
mode: "count"
kind
kind: "histogram"
Description
discriminator enum property added by openapi-typescript
markers?
optional markers?: ("p50" | "p75" | "p90" | "p95" | "p99")[]
Description
Percentile lines to compute on the same scan; default none
metric
metric: string
Description
Numeric field name; no aggregation
Type Literal
{ group_by: string[]; kind: "table"; limit?: number; measures: object[]; order_by?: { direction?: "asc" | "desc"; field: string; }; }
group_by
group_by: string[]
Description
Groupable fields forming row identity
kind
kind: "table"
Description
discriminator enum property added by openapi-typescript
limit?
optional limit?: number
Description
Default 50, at most 100
measures
measures: object[]
Description
Columns, in display order; units may differ
order_by?
optional order_by?: object
order_by.direction?
optional direction?: "asc" | "desc"
order_by.field
field: string
Description
A measure id or a group field; a measure wins if a name is both
Type Literal
{ group_by: string; kind: "scatter"; limit?: number; x: { aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"; id?: string; metric: string; }; y: { aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"; id?: string; metric: string; }; }
group_by
group_by: string
Description
One groupable field forming point identity
kind
kind: "scatter"
Description
discriminator enum property added by openapi-typescript
limit?
optional limit?: number
Description
Default 100, clamped to 500
x
x: object
x.aggregation?
optional aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"
x.id?
optional id?: string
Description
Response handle for this measure; defaults to the metric name
x.metric
metric: string
Description
Field name or intrinsic metric id
y
y: object
y.aggregation?
optional aggregation?: "count" | "avg" | "sum" | "min" | "max" | "median" | "p50" | "p75" | "p90" | "p95" | "p99" | "percentage_true" | "percentage_false" | "percentage_null"
y.id?
optional id?: string
Description
Response handle for this measure; defaults to the metric name
y.metric
metric: string
Description
Field name or intrinsic metric id