> ## Documentation Index
> Fetch the complete documentation index at: https://docs.honeyhive.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# QueryChartRequest

> TypeScript request type for the HoneyHive API

## 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


## Related topics

- [Charts Methods](https://docs.honeyhive.ai/v2/sdk-reference/typescript/ref/charts/index.md)
- [Clients](https://docs.honeyhive.ai/v2/changelog/clients.md)
- [Charts](https://docs.honeyhive.ai/v2/cli-reference/ref/charts.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.