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

# Dashboard mutations

> Create and copy dashboards, and add, update, duplicate or delete their widgets. Arguments, return types and a validated example for each of the 25 mutations.

Create and copy dashboards, and add, update, duplicate or delete their widgets.

For task-oriented walkthroughs of these operations, see the [Dashboard guide](/docs/ax/graphql-reference/guides/dashboards). Every mutation below is sent as a `POST` to `https://app.arize.com/graphql` with an `x-api-key` header; see [Forming calls](/docs/ax/graphql-reference/overview/how-to-use-graphql/forming-calls).

## Mutations in this page

* [`createDashboard`](#createdashboard): Create dashboard.
* [`createDefaultDashboard`](#createdefaultdashboard): Create default dashboard.
* [`createDashboardFromTemplate`](#createdashboardfromtemplate): Create dashboard from template.
* [`copyDashboard`](#copydashboard): Copy dashboard.
* [`updateDashboardName`](#updatedashboardname): Update dashboard name.
* [`updateDashboardStatus`](#updatedashboardstatus): Update dashboard status.
* [`duplicateWidget`](#duplicatewidget): Duplicate widget.
* [`createLineChartWidget`](#createlinechartwidget): Update a single line chart widget on a dashboard
* [`updateLineChartWidget`](#updatelinechartwidget): Update line chart widget.
* [`deleteLineChartWidget`](#deletelinechartwidget): Delete line chart widget.
* [`createBarChartWidget`](#createbarchartwidget): Create bar chart widget.
* [`updateBarChartWidget`](#updatebarchartwidget): Update bar chart widget.
* [`deleteBarChartWidget`](#deletebarchartwidget): Delete bar chart widget.
* [`createStatisticWidget`](#createstatisticwidget): Create statistic widget.
* [`updateStatisticWidget`](#updatestatisticwidget): Update a single widget
* [`deleteStatisticWidget`](#deletestatisticwidget): Delete statistic widget.
* [`createTextWidget`](#createtextwidget): Create text widget.
* [`updateTextWidget`](#updatetextwidget): Update a single widget
* [`deleteTextWidget`](#deletetextwidget): Delete text widget.
* [`createPivotTableWidget`](#createpivottablewidget): Create pivot table widget.
* [`updatePivotTableWidget`](#updatepivottablewidget): Update a single pivot table widget
* [`deletePivotTableWidget`](#deletepivottablewidget): Delete pivot table widget.
* [`createExperimentChartWidget`](#createexperimentchartwidget): Create an experiment chart widget
* [`updateExperimentChartWidget`](#updateexperimentchartwidget): Update experiment chart widget.
* [`deleteExperimentChartWidget`](#deleteexperimentchartwidget): Delete experiment chart widget.

## Reference

### createDashboard

`createDashboard(input: CreateDashboardMutationInput!): CreateDashboardMutationPayload`

#### Arguments

<ParamField body="input" type="CreateDashboardMutationInput!" required>
  <Expandable title="CreateDashboardMutationInput fields">
    <ParamField body="name" type="String!" required />

    <ParamField body="spaceId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreateDashboard($input: CreateDashboardMutationInput!) {
    createDashboard(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "name": "<string>",
      "spaceId": "<ID>"
    }
  }
  ```
</CodeGroup>

### createDefaultDashboard

`createDefaultDashboard(input: CreateDefaultDashboardMutationInput!): CreateDefaultDashboardMutationPayload`

#### Arguments

<ParamField body="input" type="CreateDefaultDashboardMutationInput!" required>
  <Expandable title="CreateDefaultDashboardMutationInput fields">
    <ParamField body="spaceId" type="ID!" required />

    <ParamField body="modelId" type="ID!" required />

    <ParamField body="modelEnvironmentName" type="ModelEnvironmentName!" required>
      One of: `production`, `validation`, `training`, `tracing`.
    </ParamField>

    <ParamField body="dimensionValues" type="[DimensionValueInput!]">
      <Expandable title="DimensionValueInput fields">
        <ParamField body="id" type="ID!" required />

        <ParamField body="value" type="String!" required>
          The value of this dimension value, e.g. 'Wells Fargo' or '60'
        </ParamField>

        <ParamField body="similarityReference" type="DimensionValueSimilarityReference">
          The similarity references for this dimension value

          <Expandable title="DimensionValueSimilarityReference fields">
            <ParamField body="threshold" type="Float!" required>
              The threshold for this similarity reference, e.g. 'Wells Fargo' or '60'
            </ParamField>

            <ParamField body="referencesList" type="[SimilarityReferenceInput!]!" required>
              The list of references for this similarity reference Nested `SimilarityReferenceInput` (same shape as above).
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreateDefaultDashboard($input: CreateDefaultDashboardMutationInput!) {
    createDefaultDashboard(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "spaceId": "<ID>",
      "modelId": "<ID>",
      "modelEnvironmentName": "production"
    }
  }
  ```
</CodeGroup>

### createDashboardFromTemplate

`createDashboardFromTemplate(input: CreateDashboardFromTemplateMutationInput!): CreateDashboardFromTemplateMutationPayload`

#### Arguments

<ParamField body="input" type="CreateDashboardFromTemplateMutationInput!" required>
  <Expandable title="CreateDashboardFromTemplateMutationInput fields">
    <ParamField body="name" type="String!" required />

    <ParamField body="modelId" type="ID!" required />

    <ParamField body="modelEnvironmentName" type="ModelEnvironmentName">
      One of: `production`, `validation`, `training`, `tracing`.
    </ParamField>

    <ParamField body="modelVersionIds" type="[String!]" />

    <ParamField body="modelBId" type="ID" />

    <ParamField body="modelBEnvironmentName" type="ModelEnvironmentName">
      One of: `production`, `validation`, `training`, `tracing`.
    </ParamField>

    <ParamField body="modelBVersionIds" type="[String!]" />

    <ParamField body="template" type="DashboardTemplates!" required>
      The template type of the dashboard One of: `regression`, `scoredModel`, `rankingModel`, `multiClassModel`, `topFeatures`, `featureAnalysis`, `featurePerformanceHeatmap`, `featureSlices`, `compareModels`, `compareProdVsTrain`, `generativeLlmModel`, `generativeLlmModelV2`, `featureDrift`, `modelMonitor`, `regressionPreProduction`, `scoredModelPreProduction`, `classificationPreProduction`, `training`, `validation`.
    </ParamField>

    <ParamField body="featureNames" type="[String!]">
      The features for a given model to use for this dashboard
    </ParamField>

    <ParamField body="positiveClass" type="String">
      The class of the classification model
    </ParamField>

    <ParamField body="rankingAtK" type="PositiveInt">
      The @K value for the performance metric. Model must be ranking
    </ParamField>

    <ParamField body="featureValues" type="[String!]">
      The value of this feature value, e.g. 'Wells Fargo' or '60'
    </ParamField>

    <ParamField body="metric" type="Metric">
      The performance metric used for the dashboard One of: `accuracy`, `precision`, `recall`, `f_1`, `sensitivity`, `specificity`, `falsePositiveRate`, `falseNegativeRate`, `falseNegativeDensity`, `mse`, `rmse`, `mae`, `mape`, `predictionAverage`, `actualsAverage`, `auc`, `logLoss`, `rSquared`, `prAuc`, `meanError`, `calibration`, `ndcg`, `recallParity`, `falsePositiveRateParity`, `disparateImpact`, `wape`, `smape`, `mase`, `udf`, `groupAuc`, `mrr`, `rankingMap`, `rankingRecall`, `rankingPrecision`, `avg`, `count`, `sum`, `percentEmpty`, `cardinality`, `psi`, `kl`, `js`, `ks`, `newValues`, `missingValues`, `averageStringListLength`, `microAveragedPrecision`, `microAveragedRecall`, `multiClassPrecision`, `multiClassRecall`, `macroAveragedPrecision`, `macroAveragedRecall`, `standardDeviation`, `p50`, `p95`, `p99`, `p99_9`.
    </ParamField>

    <ParamField body="numSlices" type="Int">
      The number of slices to create for histogram charts
    </ParamField>

    <ParamField body="comparisonDatasetModelBaselineId" type="ID">
      A comparison dataset pointing to the plot's model baseline that will be referenced by this plot for drift and comparison calculations.
    </ParamField>

    <ParamField body="monitorIds" type="[ID!]">
      List of monitor ids to create alert widgets
    </ParamField>

    <ParamField body="monitorNames" type="[String!]">
      The names of the monitors
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreateDashboardFromTemplate($input: CreateDashboardFromTemplateMutationInput!) {
    createDashboardFromTemplate(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "name": "<string>",
      "modelId": "<ID>",
      "template": "regression"
    }
  }
  ```
</CodeGroup>

### copyDashboard

`copyDashboard(input: CopyDashboardMutationInput!): CopyDashboardMutationPayload`

#### Arguments

<ParamField body="input" type="CopyDashboardMutationInput!" required>
  <Expandable title="CopyDashboardMutationInput fields">
    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CopyDashboard($input: CopyDashboardMutationInput!) {
    copyDashboard(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "dashboardId": "<ID>"
    }
  }
  ```
</CodeGroup>

### updateDashboardName

`updateDashboardName(input: UpdateDashboardNameMutationInput!): UpdateDashboardNameMutationPayload`

#### Arguments

<ParamField body="input" type="UpdateDashboardNameMutationInput!" required>
  <Expandable title="UpdateDashboardNameMutationInput fields">
    <ParamField body="name" type="String!" required />

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation UpdateDashboardName($input: UpdateDashboardNameMutationInput!) {
    updateDashboardName(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "name": "<string>",
      "dashboardId": "<ID>"
    }
  }
  ```
</CodeGroup>

### updateDashboardStatus

`updateDashboardStatus(input: UpdateDashboardStatusMutationInput!): UpdateDashboardStatusMutationPayload`

#### Arguments

<ParamField body="input" type="UpdateDashboardStatusMutationInput!" required>
  <Expandable title="UpdateDashboardStatusMutationInput fields">
    <ParamField body="status" type="String!" required />

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation UpdateDashboardStatus($input: UpdateDashboardStatusMutationInput!) {
    updateDashboardStatus(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "status": "<string>",
      "dashboardId": "<ID>"
    }
  }
  ```
</CodeGroup>

### duplicateWidget

`duplicateWidget(input: DuplicateWidgetMutationInput!): DuplicateWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="DuplicateWidgetMutationInput!" required>
  <Expandable title="DuplicateWidgetMutationInput fields">
    <ParamField body="widgetId" type="ID!" required />

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="gridPosition" type="[Int!]!" required>
      The grid position the duplicated widget should be placed at.
    </ParamField>

    <ParamField body="title" type="String!" required>
      The title of the duplicate widget.
    </ParamField>

    <ParamField body="yMin" type="Float">
      The minimum domain on the y-axis
    </ParamField>

    <ParamField body="yMax" type="Float">
      The maximum domain on the y-axis
    </ParamField>

    <ParamField body="yAxisLabel" type="String">
      The label for the y-axis
    </ParamField>

    <ParamField body="sortOrder" type="BarChartSortOrder">
      The sort order of the bars One of: `label_asc`, `label_desc`, `vol_asc`, `vol_desc`.
    </ParamField>

    <ParamField body="topN" type="Float">
      The top N bars to display
    </ParamField>

    <ParamField body="fontSize" type="String">
      The font size of the widget
    </ParamField>

    <ParamField body="showLegend" type="Boolean">
      Whether to show the legend on the widget
    </ParamField>

    <ParamField body="legendPlacement" type="String">
      The placement of the legend on the widget
    </ParamField>

    <ParamField body="xAxisLabel" type="String">
      The label for the x-axis
    </ParamField>

    <ParamField body="xAxisTilt" type="String">
      The tilt of the x-axis
    </ParamField>

    <ParamField body="timezone" type="String">
      The timezone of the widget
    </ParamField>

    <ParamField body="startTime" type="DateTime">
      The start time of the widget
    </ParamField>

    <ParamField body="endTime" type="DateTime">
      The end time of the widget
    </ParamField>

    <ParamField body="overwriteGlobalTime" type="Boolean">
      Whether to overwrite the global time
    </ParamField>

    <ParamField body="timeSeriesDataGranularity" type="DataGranularity">
      The granularity of the time series data One of: `oneMinute`, `fiveMinute`, `hour`, `day`, `week`, `month`.
    </ParamField>

    <ParamField body="timeRangeKey" type="String">
      The time range key of the widget
    </ParamField>

    <ParamField body="customStatisticText" type="String">
      The custom statistic text of the widget
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="barChartWidget" type="BarChartWidget">
  <Expandable title="BarChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `sortOrder`, `yMin`, `yMax`, `yAxisLabel`, `topN`, `isNormalized`, `isStacked`, `binOption`, `numBins`, `customBins`, `quantiles`, `performanceMetric`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `overwriteGlobalTime`, `timeRangeKey`.

    Object fields (select subfields): `plots`, `config`, `bars`, `stackedBars`.
  </Expandable>
</ResponseField>

<ResponseField name="statisticWidget" type="StatisticWidget">
  <Expandable title="StatisticWidget fields">
    Scalar fields: `dashboardId`, `title`, `modelId`, `modelVersionIds`, `dimensionCategory`, `performanceMetric`, `aggregation`, `rankingAtK`, `modelEnvironmentName`, `gridPosition`, `timeSeriesMetricType`, `id`, `creationStatus`, `customStatisticText`, `statisticValue`.

    Object fields (select subfields): `predictionValueClass`, `modelVersionEnvironmentBatches`, `filters`, `dimension`, `model`, `modelVersions`, `customMetric`.
  </Expandable>
</ResponseField>

<ResponseField name="lineChartWidget" type="LineChartWidget">
  <Expandable title="LineChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `timeSeriesMetricType`, `yMin`, `yMax`, `yAxisLabel`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `overwriteGlobalTime`, `timeRangeKey`, `widgetType`.

    Object fields (select subfields): `driftDistribution`, `monitor`, `config`, `plots`, `lines`, `scatterData`.
  </Expandable>
</ResponseField>

<ResponseField name="textWidget" type="TextWidget">
  <Expandable title="TextWidget fields">
    Scalar fields: `id`, `title`, `content`, `gridPosition`, `creationStatus`, `dashboardId`.
  </Expandable>
</ResponseField>

<ResponseField name="experimentChartWidget" type="ExperimentChartWidget">
  <Expandable title="ExperimentChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `yMin`, `yMax`.

    Object fields (select subfields): `plots`, `lines`.
  </Expandable>
</ResponseField>

<ResponseField name="pivotTableWidget" type="PivotTableWidget">
  <Expandable title="PivotTableWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `modelId`, `modelVersionIds`, `gridPosition`, `creationStatus`, `groupedDimension`, `groupedDimensionTitle`, `groupedDimensionCategory`, `modelEnvironmentName`, `overwriteGlobalTime`, `timezone`, `startTime`, `endTime`, `timeRangeKey`, `queryFilter`.

    Object fields (select subfields): `modelVersionEnvironmentBatches`, `model`, `modelVersions`, `columns`, `filters`, `pivotData`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation DuplicateWidget($input: DuplicateWidgetMutationInput!) {
    duplicateWidget(input: $input) {
      barChartWidget { id }
      statisticWidget { id }
      lineChartWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "widgetId": "<ID>",
      "dashboardId": "<ID>",
      "gridPosition": [
        1
      ],
      "title": "<string>"
    }
  }
  ```
</CodeGroup>

### createLineChartWidget

Update a single line chart widget on a dashboard

`createLineChartWidget(input: CreateLineChartWidgetMutationInput!): CreateLineChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="CreateLineChartWidgetMutationInput!" required>
  <Expandable title="CreateLineChartWidgetMutationInput fields">
    <ParamField body="title" type="String!" required />

    <ParamField body="creationStatus" type="WidgetCreationStatus">
      One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
    </ParamField>

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="timeSeriesMetricType" type="TimeSeriesMetricCategory!" required>
      One of: `modelDataMetric`, `evaluationMetric`.
    </ParamField>

    <ParamField body="yMin" type="Float">
      The minimum domain on the y-axis
    </ParamField>

    <ParamField body="yMax" type="Float">
      The maximum domain on the y-axis
    </ParamField>

    <ParamField body="gridPosition" type="[Int!]">
      The grid position of the widget, defaults to next available slot if not specified
    </ParamField>

    <ParamField body="plots" type="[LineChartPlotInputInput!]">
      <Expandable title="LineChartPlotInputInput fields">
        <ParamField body="modelId" type="ID!" required>
          The model ID on the widget.
        </ParamField>

        <ParamField body="modelVersionIds" type="[ID!]!" required>
          The model version IDs on the widget. If empty, use all versions.
        </ParamField>

        <ParamField body="modelEnvironmentName" type="ModelEnvironmentName!" required>
          The model environment name on the plot. One of: `production`, `validation`, `training`, `tracing`.
        </ParamField>

        <ParamField body="modelVersionEnvironmentMetadataIds" type="[ID!]">
          The model version environment batch IDs on the plot. If empty, use all batches
        </ParamField>

        <ParamField body="dimensionCategory" type="DimensionCategory">
          The dimension category of the widget plot. ex. featureLabel, prediction, actuals One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>

        <ParamField body="customMetric" type="CustomMetricInput">
          The custom metric function of the widget, if specified.

          <Expandable title="CustomMetricInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="name" type="String!" required>
              The name of the custom metric
            </ParamField>

            <ParamField body="description" type="String">
              The description of the custom metric
            </ParamField>

            <ParamField body="metric" type="String!" required>
              The custom metric, ex. 'AVG(predictionScore)', etc.
            </ParamField>

            <ParamField body="requiresPositiveClass" type="Boolean!" required>
              Whether the custom metric requires a positive class to calculate
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="metric" type="Metric!" required>
          The metric function of the plot i.e. accuracy, count, etc One of: `accuracy`, `precision`, `recall`, `f_1`, `sensitivity`, `specificity`, `falsePositiveRate`, `falseNegativeRate`, `falseNegativeDensity`, `mse`, `rmse`, `mae`, `mape`, `predictionAverage`, `actualsAverage`, `auc`, `logLoss`, `rSquared`, `prAuc`, `meanError`, `calibration`, `ndcg`, `recallParity`, `falsePositiveRateParity`, `disparateImpact`, `wape`, `smape`, `mase`, `udf`, `groupAuc`, `mrr`, `rankingMap`, `rankingRecall`, `rankingPrecision`, `avg`, `count`, `sum`, `percentEmpty`, `cardinality`, `psi`, `kl`, `js`, `ks`, `newValues`, `missingValues`, `averageStringListLength`, `microAveragedPrecision`, `microAveragedRecall`, `multiClassPrecision`, `multiClassRecall`, `macroAveragedPrecision`, `macroAveragedRecall`, `standardDeviation`, `p50`, `p95`, `p99`, `p99_9`.
        </ParamField>

        <ParamField body="dimension" type="DimensionInput">
          <Expandable title="DimensionInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="name" type="String!" required>
              The label of this dimension, e.g. 'Bank Name' or 'age'
            </ParamField>

            <ParamField body="dataType" type="DimensionDataType!" required>
              The data type of the values in dimensionName, ex. 'FLOAT', 'STRING', etc. One of: `STRING`, `LONG`, `FLOAT`, `DOUBLE`, `EMBEDDING`, `STRING_LIST`, `DICTIONARY`.
            </ParamField>

            <ParamField body="category" type="DimensionCategory">
              The category of the dimension, e.g. 'tag' or 'featureLabel', etc. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="positiveClass" type="String">
          The class of the classification model (categorical prediction values) on the widget.Provided only if timeseriesMetricType = 'evaluationMetrics' and prediction value type is 'categorical'.
        </ParamField>

        <ParamField body="rankingAtK" type="PositiveInt">
          The @K value for the performance metric. Model must be ranking.
        </ParamField>

        <ParamField body="title" type="String!" required>
          The title of the plot.
        </ParamField>

        <ParamField body="position" type="Int!" required>
          The position of the plot on the widget.Used to maintain order of widget and edit panel
        </ParamField>

        <ParamField body="filters" type="[LineChartFilterItemInputInput!]!" required>
          The filters on this plot.

          <Expandable title="LineChartFilterItemInputInput fields">
            <ParamField body="filterType" type="FilterRowType!" required>
              The type of filter. One of: `featureLabel`, `tagLabel`, `predictionValue`, `actuals`, `modelVersion`, `batchId`, `predictionClass`, `predictionScore`, `actualClass`, `actualScore`, `topKPercentile`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`.
            </ParamField>

            <ParamField body="operator" type="ComparisonOperator!" required>
              The operator of the filter. One of: `greaterThan`, `lessThan`, `equals`, `notEquals`, `greaterThanOrEqual`, `lessThanOrEqual`, `topN`, `contains`, `containsString`, `similarTo`.
            </ParamField>

            <ParamField body="dimension" type="DimensionInput">
              The model dimension to filter, e.g. Age. Nested `DimensionInput` (same shape as above).
            </ParamField>

            <ParamField body="dimensionValues" type="[DimensionValueInput!]">
              The dimension values of the filter. Nested `DimensionValueInput` (same shape as above).
            </ParamField>

            <ParamField body="binaryValues" type="[String!]">
              The binary values of the prediction.
            </ParamField>

            <ParamField body="numericValues" type="[Float!]">
              The numeric values of the prediction.
            </ParamField>

            <ParamField body="categoricalValues" type="[String!]">
              The categorical values of the prediction.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="comparisonDatasetModelBaselineId" type="ID">
          A comparison dataset pointing to the plot's model baseline that will be referenced by this plot for drift and comparison calculations.
        </ParamField>

        <ParamField body="comparisonDatasetFilteredBaseline" type="FilteredBaselineInput">
          A comparison dataset pointing to a stream of data that will be referenced by this plot for drift and comparison calculations. For example: last month's production data.

          <Expandable title="FilteredBaselineInput fields">
            <ParamField body="modelEnvironmentName" type="ModelEnvironmentName!" required>
              The model environment on the plot, ex. production, training, validation. Defaulted to production. One of: `production`, `validation`, `training`, `tracing`.
            </ParamField>

            <ParamField body="filteredMovingWindowSeconds" type="Float">
              The evaluation window length of the moving window.
            </ParamField>

            <ParamField body="filteredMovingWindowDelaySeconds" type="Float">
              The evaluation window delay length of the moving window.
            </ParamField>

            <ParamField body="filteredStartDate" type="DateTime">
              The start bookend of the baseline's time range. If set, this time should be used for the baseline
            </ParamField>

            <ParamField body="filteredEndDate" type="DateTime">
              The end bookend of the baseline's time range. If set, this time should be used for the baseline
            </ParamField>

            <ParamField body="batchId" type="ID">
              The batchId that you are tagging as the baseline
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="comparisonDatasetBaseline" type="SetModelDataSetBaselineInput">
          A comparison dataset pointing to a specific batch that will be referenced by this plot. For example: Batch: Test, Environment: Validation

          <Expandable title="SetModelDataSetBaselineInput fields">
            <ParamField body="batchId" type="ID!" required>
              The batchId that you are tagging as the baseline
            </ParamField>

            <ParamField body="startDateOverride" type="DateTime">
              The override start bookend of the baseline's time range.
            </ParamField>

            <ParamField body="endDateOverride" type="DateTime">
              The override end bookend of the baseline's time range
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="splitByEnabled" type="Boolean">
          Whether or not split by is enabled on the plot.
        </ParamField>

        <ParamField body="splitByDimension" type="String">
          The dimension to split by
        </ParamField>

        <ParamField body="splitByDimensionCategory" type="DimensionCategory">
          The dimension category to split by One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>

        <ParamField body="splitByOverallMetricEnabled" type="Boolean">
          If splitBy is enabled, this determines whether to show the overall metric alongside the splits.
        </ParamField>

        <ParamField body="cohorts" type="[String]">
          The cohorts to filter by
        </ParamField>

        <ParamField body="splitByAllValuesLiveUpdateEnabled" type="Boolean">
          When true, split-by cohorts are re-resolved from live data on every fetch instead of using the frozen `cohorts` list.
        </ParamField>

        <ParamField body="colors" type="[String!]">
          A list of colors to use when plotting. Use one or two colors, two will be a gradient.
        </ParamField>

        <ParamField body="metricAggregationType" type="MetricAggregationType">
          The aggregation type of the metric. One of: `span`, `trace`, `session`.
        </ParamField>

        <ParamField body="xAxisDimensionName" type="String">
          The X-axis dimension name for scatter plots.
        </ParamField>

        <ParamField body="xAxisDimensionCategory" type="DimensionCategory">
          The X-axis dimension category for scatter plots. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>

        <ParamField body="yAxisDimensionName" type="String">
          The Y-axis dimension name for scatter plots.
        </ParamField>

        <ParamField body="yAxisDimensionCategory" type="DimensionCategory">
          The Y-axis dimension category for scatter plots. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>

        <ParamField body="colorByDimensionName" type="String">
          The color-by dimension name for scatter plots (optional, categorical).
        </ParamField>

        <ParamField body="colorByDimensionCategory" type="DimensionCategory">
          The color-by dimension category for scatter plots. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="widgetType" type="WidgetTypeEnum">
      One of: `lineChartWidget`, `barChartWidget`, `statisticWidget`, `driftLineChartWidget`, `textWidget`, `monitorLineChartWidget`, `experimentChartWidget`, `scatterChartWidget`, `pivotTableWidget`.
    </ParamField>

    <ParamField body="monitorId" type="ID">
      The monitor id when creating a monitorLineChartWidget
    </ParamField>

    <ParamField body="fontSize" type="String">
      The font size of the widget
    </ParamField>

    <ParamField body="showLegend" type="Boolean">
      Whether to show the legend on the widget
    </ParamField>

    <ParamField body="legendPlacement" type="String">
      The placement of the legend on the widget
    </ParamField>

    <ParamField body="xAxisLabel" type="String">
      The label for the x-axis
    </ParamField>

    <ParamField body="xAxisTilt" type="String">
      The tilt of the x-axis
    </ParamField>

    <ParamField body="timezone" type="String">
      The timezone of the widget
    </ParamField>

    <ParamField body="startTime" type="DateTime">
      The start time of the widget
    </ParamField>

    <ParamField body="endTime" type="DateTime">
      The end time of the widget
    </ParamField>

    <ParamField body="overwriteGlobalTime" type="Boolean">
      Whether to overwrite the global time
    </ParamField>

    <ParamField body="timeSeriesDataGranularity" type="DataGranularity">
      The granularity of the time series data One of: `oneMinute`, `fiveMinute`, `hour`, `day`, `week`, `month`.
    </ParamField>

    <ParamField body="timeRangeKey" type="String">
      The time range key of the widget
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="lineChartWidget" type="LineChartWidget">
  <Expandable title="LineChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `timeSeriesMetricType`, `yMin`, `yMax`, `yAxisLabel`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `overwriteGlobalTime`, `timeRangeKey`, `widgetType`.

    Object fields (select subfields): `driftDistribution`, `monitor`, `config`, `plots`, `lines`, `scatterData`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreateLineChartWidget($input: CreateLineChartWidgetMutationInput!) {
    createLineChartWidget(input: $input) {
      lineChartWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "title": "<string>",
      "dashboardId": "<ID>",
      "timeSeriesMetricType": "modelDataMetric"
    }
  }
  ```
</CodeGroup>

### updateLineChartWidget

`updateLineChartWidget(input: UpdateLineChartWidgetMutationInput!): UpdateLineChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="UpdateLineChartWidgetMutationInput!" required>
  <Expandable title="UpdateLineChartWidgetMutationInput fields">
    <ParamField body="id" type="ID!" required />

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="updateData" type="LineChartWidgetUpdateDataInput!" required>
      <Expandable title="LineChartWidgetUpdateDataInput fields">
        <ParamField body="title" type="String!" required />

        <ParamField body="creationStatus" type="WidgetCreationStatus!" required>
          One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
        </ParamField>

        <ParamField body="timeSeriesMetricType" type="TimeSeriesMetricCategory!" required>
          One of: `modelDataMetric`, `evaluationMetric`.
        </ParamField>

        <ParamField body="yMin" type="Float">
          The minimum domain on the y-axis
        </ParamField>

        <ParamField body="yMax" type="Float">
          The maximum domain on the y-axis
        </ParamField>

        <ParamField body="yAxisLabel" type="String">
          The label for the y-axis
        </ParamField>

        <ParamField body="gridPosition" type="[Int!]!" required />

        <ParamField body="plots" type="[LineChartPlotInputInput!]!" required>
          <Expandable title="LineChartPlotInputInput fields">
            <ParamField body="modelId" type="ID!" required>
              The model ID on the widget.
            </ParamField>

            <ParamField body="modelVersionIds" type="[ID!]!" required>
              The model version IDs on the widget. If empty, use all versions.
            </ParamField>

            <ParamField body="modelEnvironmentName" type="ModelEnvironmentName!" required>
              The model environment name on the plot. One of: `production`, `validation`, `training`, `tracing`.
            </ParamField>

            <ParamField body="modelVersionEnvironmentMetadataIds" type="[ID!]">
              The model version environment batch IDs on the plot. If empty, use all batches
            </ParamField>

            <ParamField body="dimensionCategory" type="DimensionCategory">
              The dimension category of the widget plot. ex. featureLabel, prediction, actuals One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>

            <ParamField body="customMetric" type="CustomMetricInput">
              The custom metric function of the widget, if specified. Nested `CustomMetricInput` (same shape as above).
            </ParamField>

            <ParamField body="metric" type="Metric!" required>
              The metric function of the plot i.e. accuracy, count, etc One of: `accuracy`, `precision`, `recall`, `f_1`, `sensitivity`, `specificity`, `falsePositiveRate`, `falseNegativeRate`, `falseNegativeDensity`, `mse`, `rmse`, `mae`, `mape`, `predictionAverage`, `actualsAverage`, `auc`, `logLoss`, `rSquared`, `prAuc`, `meanError`, `calibration`, `ndcg`, `recallParity`, `falsePositiveRateParity`, `disparateImpact`, `wape`, `smape`, `mase`, `udf`, `groupAuc`, `mrr`, `rankingMap`, `rankingRecall`, `rankingPrecision`, `avg`, `count`, `sum`, `percentEmpty`, `cardinality`, `psi`, `kl`, `js`, `ks`, `newValues`, `missingValues`, `averageStringListLength`, `microAveragedPrecision`, `microAveragedRecall`, `multiClassPrecision`, `multiClassRecall`, `macroAveragedPrecision`, `macroAveragedRecall`, `standardDeviation`, `p50`, `p95`, `p99`, `p99_9`.
            </ParamField>

            <ParamField body="dimension" type="DimensionInput">
              Nested `DimensionInput` (same shape as above).
            </ParamField>

            <ParamField body="positiveClass" type="String">
              The class of the classification model (categorical prediction values) on the widget.Provided only if timeseriesMetricType = 'evaluationMetrics' and prediction value type is 'categorical'.
            </ParamField>

            <ParamField body="rankingAtK" type="PositiveInt">
              The @K value for the performance metric. Model must be ranking.
            </ParamField>

            <ParamField body="title" type="String!" required>
              The title of the plot.
            </ParamField>

            <ParamField body="position" type="Int!" required>
              The position of the plot on the widget.Used to maintain order of widget and edit panel
            </ParamField>

            <ParamField body="filters" type="[LineChartFilterItemInputInput!]!" required>
              The filters on this plot. Nested `LineChartFilterItemInputInput` (same shape as above).
            </ParamField>

            <ParamField body="comparisonDatasetModelBaselineId" type="ID">
              A comparison dataset pointing to the plot's model baseline that will be referenced by this plot for drift and comparison calculations.
            </ParamField>

            <ParamField body="comparisonDatasetFilteredBaseline" type="FilteredBaselineInput">
              A comparison dataset pointing to a stream of data that will be referenced by this plot for drift and comparison calculations. For example: last month's production data. Nested `FilteredBaselineInput` (same shape as above).
            </ParamField>

            <ParamField body="comparisonDatasetBaseline" type="SetModelDataSetBaselineInput">
              A comparison dataset pointing to a specific batch that will be referenced by this plot. For example: Batch: Test, Environment: Validation Nested `SetModelDataSetBaselineInput` (same shape as above).
            </ParamField>

            <ParamField body="splitByEnabled" type="Boolean">
              Whether or not split by is enabled on the plot.
            </ParamField>

            <ParamField body="splitByDimension" type="String">
              The dimension to split by
            </ParamField>

            <ParamField body="splitByDimensionCategory" type="DimensionCategory">
              The dimension category to split by One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>

            <ParamField body="splitByOverallMetricEnabled" type="Boolean">
              If splitBy is enabled, this determines whether to show the overall metric alongside the splits.
            </ParamField>

            <ParamField body="cohorts" type="[String]">
              The cohorts to filter by
            </ParamField>

            <ParamField body="splitByAllValuesLiveUpdateEnabled" type="Boolean">
              When true, split-by cohorts are re-resolved from live data on every fetch instead of using the frozen `cohorts` list.
            </ParamField>

            <ParamField body="colors" type="[String!]">
              A list of colors to use when plotting. Use one or two colors, two will be a gradient.
            </ParamField>

            <ParamField body="metricAggregationType" type="MetricAggregationType">
              The aggregation type of the metric. One of: `span`, `trace`, `session`.
            </ParamField>

            <ParamField body="xAxisDimensionName" type="String">
              The X-axis dimension name for scatter plots.
            </ParamField>

            <ParamField body="xAxisDimensionCategory" type="DimensionCategory">
              The X-axis dimension category for scatter plots. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>

            <ParamField body="yAxisDimensionName" type="String">
              The Y-axis dimension name for scatter plots.
            </ParamField>

            <ParamField body="yAxisDimensionCategory" type="DimensionCategory">
              The Y-axis dimension category for scatter plots. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>

            <ParamField body="colorByDimensionName" type="String">
              The color-by dimension name for scatter plots (optional, categorical).
            </ParamField>

            <ParamField body="colorByDimensionCategory" type="DimensionCategory">
              The color-by dimension category for scatter plots. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="monitorId" type="ID">
          Associated monitor
        </ParamField>

        <ParamField body="widgetType" type="WidgetTypeEnum">
          One of: `lineChartWidget`, `barChartWidget`, `statisticWidget`, `driftLineChartWidget`, `textWidget`, `monitorLineChartWidget`, `experimentChartWidget`, `scatterChartWidget`, `pivotTableWidget`.
        </ParamField>

        <ParamField body="timeSeriesDataGranularity" type="DataGranularity">
          The granularity of the time series data One of: `oneMinute`, `fiveMinute`, `hour`, `day`, `week`, `month`.
        </ParamField>

        <ParamField body="overwriteGlobalTime" type="Boolean">
          Whether to overwrite the global time
        </ParamField>

        <ParamField body="timezone" type="String">
          The timezone of the widget
        </ParamField>

        <ParamField body="startTime" type="DateTime">
          The start time of the widget
        </ParamField>

        <ParamField body="endTime" type="DateTime">
          The end time of the widget
        </ParamField>

        <ParamField body="fontSize" type="String">
          The font size of the widget
        </ParamField>

        <ParamField body="showLegend" type="Boolean">
          Whether to show the legend on the widget
        </ParamField>

        <ParamField body="legendPlacement" type="String">
          The placement of the legend on the widget
        </ParamField>

        <ParamField body="xAxisLabel" type="String">
          The label for the x-axis
        </ParamField>

        <ParamField body="xAxisTilt" type="String">
          The tilt of the x-axis
        </ParamField>

        <ParamField body="timeRangeKey" type="String">
          The time range key of the widget
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="lineChartWidget" type="LineChartWidget">
  <Expandable title="LineChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `timeSeriesMetricType`, `yMin`, `yMax`, `yAxisLabel`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `overwriteGlobalTime`, `timeRangeKey`, `widgetType`.

    Object fields (select subfields): `driftDistribution`, `monitor`, `config`, `plots`, `lines`, `scatterData`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation UpdateLineChartWidget($input: UpdateLineChartWidgetMutationInput!) {
    updateLineChartWidget(input: $input) {
      lineChartWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "id": "<ID>",
      "dashboardId": "<ID>",
      "updateData": {
        "title": "<string>",
        "creationStatus": "needsInit",
        "timeSeriesMetricType": "modelDataMetric",
        "gridPosition": [
          1
        ],
        "plots": [
          {
            "modelId": "<ID>",
            "modelVersionIds": [
              "<ID>"
            ],
            "modelEnvironmentName": "production",
            "metric": "accuracy",
            "title": "<string>",
            "position": 1,
            "filters": [
              {
                "filterType": "featureLabel",
                "operator": "greaterThan"
              }
            ]
          }
        ]
      }
    }
  }
  ```
</CodeGroup>

### deleteLineChartWidget

`deleteLineChartWidget(input: DeleteLineChartWidgetMutationInput!): DeleteLineChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="DeleteLineChartWidgetMutationInput!" required>
  <Expandable title="DeleteLineChartWidgetMutationInput fields">
    <ParamField body="lineChartWidgetId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation DeleteLineChartWidget($input: DeleteLineChartWidgetMutationInput!) {
    deleteLineChartWidget(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "lineChartWidgetId": "<ID>"
    }
  }
  ```
</CodeGroup>

### createBarChartWidget

`createBarChartWidget(input: CreateBarChartWidgetMutationInput!): CreateBarChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="CreateBarChartWidgetMutationInput!" required>
  <Expandable title="CreateBarChartWidgetMutationInput fields">
    <ParamField body="title" type="String!" required />

    <ParamField body="creationStatus" type="WidgetCreationStatus">
      One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
    </ParamField>

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="gridPosition" type="[Int!]">
      The grid position of the widget, defaults to next available slot if not specified
    </ParamField>

    <ParamField body="isNormalized" type="Boolean" />

    <ParamField body="performanceMetric" type="PerformanceMetric">
      One of: `accuracy`, `precision`, `recall`, `f_1`, `sensitivity`, `specificity`, `falsePositiveRate`, `falseNegativeRate`, `falseNegativeDensity`, `mse`, `rmse`, `mae`, `mape`, `predictionAverage`, `actualsAverage`, `auc`, `logLoss`, `rSquared`, `prAuc`, `meanError`, `calibration`, `ndcg`, `recallParity`, `falsePositiveRateParity`, `disparateImpact`, `wape`, `smape`, `mase`, `udf`, `groupAuc`, `mrr`, `rankingMap`, `rankingRecall`, `rankingPrecision`, `microAveragedPrecision`, `microAveragedRecall`, `multiClassPrecision`, `multiClassRecall`, `macroAveragedPrecision`, `macroAveragedRecall`.
    </ParamField>

    <ParamField body="binOption" type="CustomBinOption">
      The distribution bin option of the widget, if specified One of: `numBins`, `customBins`, `medianCentered`, `discreteBins`, `decileBins`, `quantiles`, `discreteTopN`.
    </ParamField>

    <ParamField body="numBins" type="Int">
      The number of bins on the distribution.
    </ParamField>

    <ParamField body="customBins" type="[Float!]">
      The bin edges on the distribution.
    </ParamField>

    <ParamField body="quantiles" type="[Float!]">
      The array of percentiles of the distribution.
    </ParamField>

    <ParamField body="plots" type="[BarChartPlotInputInput!]!" required>
      <Expandable title="BarChartPlotInputInput fields">
        <ParamField body="title" type="String!" required>
          The title of the plot.
        </ParamField>

        <ParamField body="position" type="Int!" required>
          The position of the plot on the widget.Used to maintain order of widget and edit panel
        </ParamField>

        <ParamField body="modelId" type="ID">
          The external model ID on the plot. Required for project-backed plots; omit when datasetSource is set.
        </ParamField>

        <ParamField body="modelVersionIds" type="[ID!]!" required>
          The model version IDs on the plot. If empty, use all versions.
        </ParamField>

        <ParamField body="modelEnvironmentName" type="ModelEnvironmentName">
          The model environment ID on the plot. One of: `production`, `validation`, `training`, `tracing`.
        </ParamField>

        <ParamField body="modelVersionEnvironmentMetadataIds" type="[ID!]">
          The batch IDs on the plot. If empty, use all batches
        </ParamField>

        <ParamField body="dimensionCategory" type="DimensionCategory!" required>
          The metric function of the plot. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>

        <ParamField body="aggregation" type="DataQualityMetric">
          The data quality metric of the plot, ex. count, avg, etc. One of: `avg`, `count`, `sum`, `percentEmpty`, `cardinality`, `standardDeviation`, `p50`, `p95`, `p99`, `p99_9`, `newValues`, `missingValues`, `averageStringListLength`.
        </ParamField>

        <ParamField body="dimension" type="DimensionInput">
          The dimension of the plot, should be non-null when dimensionCategory = FEATURE\_LABEL

          <Expandable title="DimensionInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="name" type="String!" required>
              The label of this dimension, e.g. 'Bank Name' or 'age'
            </ParamField>

            <ParamField body="dataType" type="DimensionDataType!" required>
              The data type of the values in dimensionName, ex. 'FLOAT', 'STRING', etc. One of: `STRING`, `LONG`, `FLOAT`, `DOUBLE`, `EMBEDDING`, `STRING_LIST`, `DICTIONARY`.
            </ParamField>

            <ParamField body="category" type="DimensionCategory">
              The category of the dimension, e.g. 'tag' or 'featureLabel', etc. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="positiveClass" type="String">
          The class of the classification model (categorical prediction values) on the widget.Provided only if model is categorical and evaluation type is specified
        </ParamField>

        <ParamField body="rankingAtK" type="PositiveInt">
          The @K value for the performance metric. Model must be ranking.
        </ParamField>

        <ParamField body="filters" type="[BarChartFilterItemInputInput!]!" required>
          The filters on this plot.

          <Expandable title="BarChartFilterItemInputInput fields">
            <ParamField body="filterType" type="FilterRowType!" required>
              The type of filter. One of: `featureLabel`, `tagLabel`, `predictionValue`, `actuals`, `modelVersion`, `batchId`, `predictionClass`, `predictionScore`, `actualClass`, `actualScore`, `topKPercentile`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`.
            </ParamField>

            <ParamField body="operator" type="ComparisonOperator!" required>
              The operator of the filter. One of: `greaterThan`, `lessThan`, `equals`, `notEquals`, `greaterThanOrEqual`, `lessThanOrEqual`, `topN`, `contains`, `containsString`, `similarTo`.
            </ParamField>

            <ParamField body="dimension" type="DimensionInput">
              The model dimension to filter, e.g. Age. Nested `DimensionInput` (same shape as above).
            </ParamField>

            <ParamField body="dimensionValues" type="[DimensionValueInput!]">
              The dimension values of the filter. Nested `DimensionValueInput` (same shape as above).
            </ParamField>

            <ParamField body="binaryValues" type="[String!]">
              The binary values of the prediction.
            </ParamField>

            <ParamField body="numericValues" type="[Float!]">
              The numeric values of the prediction.
            </ParamField>

            <ParamField body="categoricalValues" type="[String!]">
              The categorical values of the prediction.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="colors" type="[String!]">
          A list of colors to use when plotting. Use one or two colors, two will be a gradient.
        </ParamField>

        <ParamField body="stackDimensionCategory" type="String">
          The dimension category to stack bars by (e.g., 'featureLabel', 'tag').
        </ParamField>

        <ParamField body="stackDimensionName" type="String">
          The dimension name to stack bars by (e.g., '\_grade').
        </ParamField>

        <ParamField body="datasetSource" type="WidgetDatasetSourceInput">
          Dataset or experiment source for this plot. Required for dataset-backed plots; omit when modelId is set.

          <Expandable title="WidgetDatasetSourceInput fields">
            <ParamField body="datasetId" type="ID!" required>
              The dataset backing this series.
            </ParamField>

            <ParamField body="datasetVersionId" type="ID">
              Optional dataset version. For dataset-only series, pins the version to read. When experimentId is set, the experiment's version is used instead.
            </ParamField>

            <ParamField body="experimentId" type="ID">
              Optional experiment on the dataset. When set, the series reads experiment run data.
            </ParamField>

            <ParamField body="sourceFields" type="[DatasetSourceFieldInput!]!" required>
              Field descriptors for this series. Distribution bar charts use exactly one entry. Nested `DatasetSourceFieldInput` (same shape as above).
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="yMin" type="Float">
      The minimum domain on the y-axis
    </ParamField>

    <ParamField body="yMax" type="Float">
      The maximum domain on the y-axis
    </ParamField>

    <ParamField body="sortOrder" type="BarChartSortOrder">
      The sort order of the bars One of: `label_asc`, `label_desc`, `vol_asc`, `vol_desc`.
    </ParamField>

    <ParamField body="fontSize" type="String">
      The font size of the widget
    </ParamField>

    <ParamField body="showLegend" type="Boolean">
      Whether to show the legend on the widget
    </ParamField>

    <ParamField body="legendPlacement" type="String">
      The placement of the legend on the widget
    </ParamField>

    <ParamField body="xAxisLabel" type="String">
      The label for the x-axis
    </ParamField>

    <ParamField body="xAxisTilt" type="String">
      The tilt of the x-axis
    </ParamField>

    <ParamField body="timezone" type="String">
      The timezone of the widget
    </ParamField>

    <ParamField body="startTime" type="DateTime">
      The start time of the widget
    </ParamField>

    <ParamField body="endTime" type="DateTime">
      The end time of the widget
    </ParamField>

    <ParamField body="overwriteGlobalTime" type="Boolean">
      Whether to overwrite the global time
    </ParamField>

    <ParamField body="timeSeriesDataGranularity" type="DataGranularity">
      The granularity of the time series data One of: `oneMinute`, `fiveMinute`, `hour`, `day`, `week`, `month`.
    </ParamField>

    <ParamField body="timeRangeKey" type="String">
      The time range key of the widget
    </ParamField>

    <ParamField body="topN" type="Int">
      The top N bars to display
    </ParamField>

    <ParamField body="isStacked" type="Boolean!" required>
      Whether to render the widget as a stacked bar chart
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="barChartWidget" type="BarChartWidget">
  <Expandable title="BarChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `sortOrder`, `yMin`, `yMax`, `yAxisLabel`, `topN`, `isNormalized`, `isStacked`, `binOption`, `numBins`, `customBins`, `quantiles`, `performanceMetric`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `overwriteGlobalTime`, `timeRangeKey`.

    Object fields (select subfields): `plots`, `config`, `bars`, `stackedBars`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreateBarChartWidget($input: CreateBarChartWidgetMutationInput!) {
    createBarChartWidget(input: $input) {
      barChartWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "title": "<string>",
      "dashboardId": "<ID>",
      "plots": [
        {
          "title": "<string>",
          "position": 1,
          "modelVersionIds": [
            "<ID>"
          ],
          "dimensionCategory": "featureLabel",
          "filters": [
            {
              "filterType": "featureLabel",
              "operator": "greaterThan"
            }
          ]
        }
      ],
      "isStacked": true
    }
  }
  ```
</CodeGroup>

### updateBarChartWidget

`updateBarChartWidget(input: UpdateBarChartWidgetMutationInput!): UpdateBarChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="UpdateBarChartWidgetMutationInput!" required>
  <Expandable title="UpdateBarChartWidgetMutationInput fields">
    <ParamField body="id" type="ID!" required />

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="updateData" type="BarChartWidgetUpdateDataInput!" required>
      <Expandable title="BarChartWidgetUpdateDataInput fields">
        <ParamField body="title" type="String!" required />

        <ParamField body="creationStatus" type="WidgetCreationStatus!" required>
          One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
        </ParamField>

        <ParamField body="gridPosition" type="[Int!]!" required />

        <ParamField body="yMin" type="Float">
          The minimum domain on the y-axis
        </ParamField>

        <ParamField body="yMax" type="Float">
          The maximum domain on the y-axis
        </ParamField>

        <ParamField body="yAxisLabel" type="String">
          The label for the y-axis
        </ParamField>

        <ParamField body="sortOrder" type="BarChartSortOrder">
          The sort order for the bar chart widget One of: `label_asc`, `label_desc`, `vol_asc`, `vol_desc`.
        </ParamField>

        <ParamField body="topN" type="Float">
          The top N bars to display
        </ParamField>

        <ParamField body="isNormalized" type="Boolean!" required />

        <ParamField body="isStacked" type="Boolean">
          If true, the bar chart is rendered as a stacked bar chart.
        </ParamField>

        <ParamField body="performanceMetric" type="PerformanceMetric">
          One of: `accuracy`, `precision`, `recall`, `f_1`, `sensitivity`, `specificity`, `falsePositiveRate`, `falseNegativeRate`, `falseNegativeDensity`, `mse`, `rmse`, `mae`, `mape`, `predictionAverage`, `actualsAverage`, `auc`, `logLoss`, `rSquared`, `prAuc`, `meanError`, `calibration`, `ndcg`, `recallParity`, `falsePositiveRateParity`, `disparateImpact`, `wape`, `smape`, `mase`, `udf`, `groupAuc`, `mrr`, `rankingMap`, `rankingRecall`, `rankingPrecision`, `microAveragedPrecision`, `microAveragedRecall`, `multiClassPrecision`, `multiClassRecall`, `macroAveragedPrecision`, `macroAveragedRecall`.
        </ParamField>

        <ParamField body="binOption" type="CustomBinOption">
          The distribution bin option of the widget, if specified One of: `numBins`, `customBins`, `medianCentered`, `discreteBins`, `decileBins`, `quantiles`, `discreteTopN`.
        </ParamField>

        <ParamField body="numBins" type="Int">
          The number of bins on the distribution.
        </ParamField>

        <ParamField body="customBins" type="[Float!]">
          The bin edges on the distribution.
        </ParamField>

        <ParamField body="quantiles" type="[Float!]">
          The array of percentiles of the distribution.
        </ParamField>

        <ParamField body="plots" type="[BarChartPlotInputInput!]!" required>
          <Expandable title="BarChartPlotInputInput fields">
            <ParamField body="title" type="String!" required>
              The title of the plot.
            </ParamField>

            <ParamField body="position" type="Int!" required>
              The position of the plot on the widget.Used to maintain order of widget and edit panel
            </ParamField>

            <ParamField body="modelId" type="ID">
              The external model ID on the plot. Required for project-backed plots; omit when datasetSource is set.
            </ParamField>

            <ParamField body="modelVersionIds" type="[ID!]!" required>
              The model version IDs on the plot. If empty, use all versions.
            </ParamField>

            <ParamField body="modelEnvironmentName" type="ModelEnvironmentName">
              The model environment ID on the plot. One of: `production`, `validation`, `training`, `tracing`.
            </ParamField>

            <ParamField body="modelVersionEnvironmentMetadataIds" type="[ID!]">
              The batch IDs on the plot. If empty, use all batches
            </ParamField>

            <ParamField body="dimensionCategory" type="DimensionCategory!" required>
              The metric function of the plot. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>

            <ParamField body="aggregation" type="DataQualityMetric">
              The data quality metric of the plot, ex. count, avg, etc. One of: `avg`, `count`, `sum`, `percentEmpty`, `cardinality`, `standardDeviation`, `p50`, `p95`, `p99`, `p99_9`, `newValues`, `missingValues`, `averageStringListLength`.
            </ParamField>

            <ParamField body="dimension" type="DimensionInput">
              The dimension of the plot, should be non-null when dimensionCategory = FEATURE\_LABEL Nested `DimensionInput` (same shape as above).
            </ParamField>

            <ParamField body="positiveClass" type="String">
              The class of the classification model (categorical prediction values) on the widget.Provided only if model is categorical and evaluation type is specified
            </ParamField>

            <ParamField body="rankingAtK" type="PositiveInt">
              The @K value for the performance metric. Model must be ranking.
            </ParamField>

            <ParamField body="filters" type="[BarChartFilterItemInputInput!]!" required>
              The filters on this plot. Nested `BarChartFilterItemInputInput` (same shape as above).
            </ParamField>

            <ParamField body="colors" type="[String!]">
              A list of colors to use when plotting. Use one or two colors, two will be a gradient.
            </ParamField>

            <ParamField body="stackDimensionCategory" type="String">
              The dimension category to stack bars by (e.g., 'featureLabel', 'tag').
            </ParamField>

            <ParamField body="stackDimensionName" type="String">
              The dimension name to stack bars by (e.g., '\_grade').
            </ParamField>

            <ParamField body="datasetSource" type="WidgetDatasetSourceInput">
              Dataset or experiment source for this plot. Required for dataset-backed plots; omit when modelId is set. Nested `WidgetDatasetSourceInput` (same shape as above).
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="timeSeriesDataGranularity" type="DataGranularity">
          The granularity of the time series data One of: `oneMinute`, `fiveMinute`, `hour`, `day`, `week`, `month`.
        </ParamField>

        <ParamField body="overwriteGlobalTime" type="Boolean">
          Whether to overwrite the global time
        </ParamField>

        <ParamField body="timezone" type="String">
          The timezone of the widget
        </ParamField>

        <ParamField body="startTime" type="DateTime">
          The start time of the widget
        </ParamField>

        <ParamField body="endTime" type="DateTime">
          The end time of the widget
        </ParamField>

        <ParamField body="fontSize" type="String">
          The font size of the widget
        </ParamField>

        <ParamField body="showLegend" type="Boolean">
          Whether to show the legend on the widget
        </ParamField>

        <ParamField body="legendPlacement" type="String">
          The placement of the legend on the widget
        </ParamField>

        <ParamField body="xAxisLabel" type="String">
          The label for the x-axis
        </ParamField>

        <ParamField body="xAxisTilt" type="String">
          The tilt of the x-axis
        </ParamField>

        <ParamField body="timeRangeKey" type="String">
          The time range key of the widget
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="barChartWidget" type="BarChartWidget">
  <Expandable title="BarChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `sortOrder`, `yMin`, `yMax`, `yAxisLabel`, `topN`, `isNormalized`, `isStacked`, `binOption`, `numBins`, `customBins`, `quantiles`, `performanceMetric`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `overwriteGlobalTime`, `timeRangeKey`.

    Object fields (select subfields): `plots`, `config`, `bars`, `stackedBars`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation UpdateBarChartWidget($input: UpdateBarChartWidgetMutationInput!) {
    updateBarChartWidget(input: $input) {
      barChartWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "id": "<ID>",
      "dashboardId": "<ID>",
      "updateData": {
        "title": "<string>",
        "creationStatus": "needsInit",
        "gridPosition": [
          1
        ],
        "isNormalized": true,
        "plots": [
          {
            "title": "<string>",
            "position": 1,
            "modelVersionIds": [
              "<ID>"
            ],
            "dimensionCategory": "featureLabel",
            "filters": [
              {
                "filterType": "featureLabel",
                "operator": "greaterThan"
              }
            ]
          }
        ]
      }
    }
  }
  ```
</CodeGroup>

### deleteBarChartWidget

`deleteBarChartWidget(input: DeleteBarChartWidgetMutationInput!): DeleteBarChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="DeleteBarChartWidgetMutationInput!" required>
  <Expandable title="DeleteBarChartWidgetMutationInput fields">
    <ParamField body="barChartWidgetId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation DeleteBarChartWidget($input: DeleteBarChartWidgetMutationInput!) {
    deleteBarChartWidget(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "barChartWidgetId": "<ID>"
    }
  }
  ```
</CodeGroup>

### createStatisticWidget

`createStatisticWidget(input: CreateStatisticWidgetMutationInput!): CreateStatisticWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="CreateStatisticWidgetMutationInput!" required>
  <Expandable title="CreateStatisticWidgetMutationInput fields">
    <ParamField body="dashboardId" type="ID!" required>
      The dashboard of the widget.
    </ParamField>

    <ParamField body="title" type="String!" required>
      The title on the widget.
    </ParamField>

    <ParamField body="gridPosition" type="[Int!]">
      The grid position of the widget.
    </ParamField>

    <ParamField body="timeSeriesMetricType" type="TimeSeriesMetricCategory!" required>
      The type of timeseries metric on the widget. One of: `modelDataMetric`, `evaluationMetric`.
    </ParamField>

    <ParamField body="creationStatus" type="WidgetCreationStatus">
      One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
    </ParamField>

    <ParamField body="dimension" type="DimensionInput">
      <Expandable title="DimensionInput fields">
        <ParamField body="id" type="ID!" required />

        <ParamField body="name" type="String!" required>
          The label of this dimension, e.g. 'Bank Name' or 'age'
        </ParamField>

        <ParamField body="dataType" type="DimensionDataType!" required>
          The data type of the values in dimensionName, ex. 'FLOAT', 'STRING', etc. One of: `STRING`, `LONG`, `FLOAT`, `DOUBLE`, `EMBEDDING`, `STRING_LIST`, `DICTIONARY`.
        </ParamField>

        <ParamField body="category" type="DimensionCategory">
          The category of the dimension, e.g. 'tag' or 'featureLabel', etc. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="modelId" type="ID!" required>
      The model ID on the widget.
    </ParamField>

    <ParamField body="modelEnvironmentName" type="ModelEnvironmentName">
      The model environment name on the widget. One of: `production`, `validation`, `training`, `tracing`.
    </ParamField>

    <ParamField body="modelVersionEnvironmentMetadataIds" type="[ID!]">
      The environment batch IDs on the widget. If empty, use all batches
    </ParamField>

    <ParamField body="modelVersionIds" type="[ID!]">
      The model version IDs on the widget. If empty, use all versions.
    </ParamField>

    <ParamField body="dimensionCategory" type="DimensionCategory">
      The dimension category of the widget. ex. featureLabel, prediction, actuals. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
    </ParamField>

    <ParamField body="performanceMetric" type="PerformanceMetric">
      The performance metric function of the widget. One of: `accuracy`, `precision`, `recall`, `f_1`, `sensitivity`, `specificity`, `falsePositiveRate`, `falseNegativeRate`, `falseNegativeDensity`, `mse`, `rmse`, `mae`, `mape`, `predictionAverage`, `actualsAverage`, `auc`, `logLoss`, `rSquared`, `prAuc`, `meanError`, `calibration`, `ndcg`, `recallParity`, `falsePositiveRateParity`, `disparateImpact`, `wape`, `smape`, `mase`, `udf`, `groupAuc`, `mrr`, `rankingMap`, `rankingRecall`, `rankingPrecision`, `microAveragedPrecision`, `microAveragedRecall`, `multiClassPrecision`, `multiClassRecall`, `macroAveragedPrecision`, `macroAveragedRecall`.
    </ParamField>

    <ParamField body="aggregation" type="DataQualityMetric">
      The data quality metric of the widget, ex. count, avg, etc. One of: `avg`, `count`, `sum`, `percentEmpty`, `cardinality`, `standardDeviation`, `p50`, `p95`, `p99`, `p99_9`, `newValues`, `missingValues`, `averageStringListLength`.
    </ParamField>

    <ParamField body="positiveClass" type="String">
      The class of the classification model (categorical prediction values) on the widget.Provided only if timeseriesMetricType = 'evaluationMetrics' and prediction value type is 'categorical'.
    </ParamField>

    <ParamField body="rankingAtK" type="PositiveInt">
      The @K value for the performance metric. Model must be ranking.
    </ParamField>

    <ParamField body="filters" type="[StatisticWidgetFilterItemInput!]">
      The filters on this plot.

      <Expandable title="StatisticWidgetFilterItemInput fields">
        <ParamField body="filterType" type="FilterRowType!" required>
          The type of filter. One of: `featureLabel`, `tagLabel`, `predictionValue`, `actuals`, `modelVersion`, `batchId`, `predictionClass`, `predictionScore`, `actualClass`, `actualScore`, `topKPercentile`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`.
        </ParamField>

        <ParamField body="operator" type="ComparisonOperator!" required>
          The operator of the filter. One of: `greaterThan`, `lessThan`, `equals`, `notEquals`, `greaterThanOrEqual`, `lessThanOrEqual`, `topN`, `contains`, `containsString`, `similarTo`.
        </ParamField>

        <ParamField body="dimension" type="DimensionInput">
          The model dimension to filter, e.g. Age.

          <Expandable title="DimensionInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="name" type="String!" required>
              The label of this dimension, e.g. 'Bank Name' or 'age'
            </ParamField>

            <ParamField body="dataType" type="DimensionDataType!" required>
              The data type of the values in dimensionName, ex. 'FLOAT', 'STRING', etc. One of: `STRING`, `LONG`, `FLOAT`, `DOUBLE`, `EMBEDDING`, `STRING_LIST`, `DICTIONARY`.
            </ParamField>

            <ParamField body="category" type="DimensionCategory">
              The category of the dimension, e.g. 'tag' or 'featureLabel', etc. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="dimensionValues" type="[DimensionValueInput!]">
          The dimension values of the filter.

          <Expandable title="DimensionValueInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="value" type="String!" required>
              The value of this dimension value, e.g. 'Wells Fargo' or '60'
            </ParamField>

            <ParamField body="similarityReference" type="DimensionValueSimilarityReference">
              The similarity references for this dimension value Nested `DimensionValueSimilarityReference` (same shape as above).
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="binaryValues" type="[String!]">
          The binary values of the prediction.
        </ParamField>

        <ParamField body="numericValues" type="[Float!]">
          The numeric values of the prediction.
        </ParamField>

        <ParamField body="categoricalValues" type="[String!]">
          The categorical values of the prediction.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="customMetric" type="CustomMetricInput">
      The custom metric function of the widget, if specified.

      <Expandable title="CustomMetricInput fields">
        <ParamField body="id" type="ID!" required />

        <ParamField body="name" type="String!" required>
          The name of the custom metric
        </ParamField>

        <ParamField body="description" type="String">
          The description of the custom metric
        </ParamField>

        <ParamField body="metric" type="String!" required>
          The custom metric, ex. 'AVG(predictionScore)', etc.
        </ParamField>

        <ParamField body="requiresPositiveClass" type="Boolean!" required>
          Whether the custom metric requires a positive class to calculate
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="customStatisticText" type="String">
      The text of the metric on the widget.
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="statisticWidget" type="StatisticWidget">
  <Expandable title="StatisticWidget fields">
    Scalar fields: `dashboardId`, `title`, `modelId`, `modelVersionIds`, `dimensionCategory`, `performanceMetric`, `aggregation`, `rankingAtK`, `modelEnvironmentName`, `gridPosition`, `timeSeriesMetricType`, `id`, `creationStatus`, `customStatisticText`, `statisticValue`.

    Object fields (select subfields): `predictionValueClass`, `modelVersionEnvironmentBatches`, `filters`, `dimension`, `model`, `modelVersions`, `customMetric`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreateStatisticWidget($input: CreateStatisticWidgetMutationInput!) {
    createStatisticWidget(input: $input) {
      statisticWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "dashboardId": "<ID>",
      "title": "<string>",
      "timeSeriesMetricType": "modelDataMetric",
      "modelId": "<ID>"
    }
  }
  ```
</CodeGroup>

### updateStatisticWidget

Update a single widget

`updateStatisticWidget(input: UpdateStatisticWidgetMutationInput!): UpdateStatisticWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="UpdateStatisticWidgetMutationInput!" required>
  <Expandable title="UpdateStatisticWidgetMutationInput fields">
    <ParamField body="id" type="ID!" required />

    <ParamField body="dashboardId" type="ID!" required>
      The dashboard of the widget.
    </ParamField>

    <ParamField body="updateData" type="StatisticWidgetUpdateDataInput!" required>
      <Expandable title="StatisticWidgetUpdateDataInput fields">
        <ParamField body="title" type="String!" required>
          The title on the widget.
        </ParamField>

        <ParamField body="gridPosition" type="[Int!]!" required>
          The grid position of the widget, defaults to next available slot if not specified
        </ParamField>

        <ParamField body="modelId" type="ID!" required>
          The model ID on the widget.
        </ParamField>

        <ParamField body="modelVersionIds" type="[ID!]!" required>
          The model version IDs on the widget. If empty, use all versions.
        </ParamField>

        <ParamField body="modelEnvironmentName" type="ModelEnvironmentName">
          The model environment name of the widget. Defaulted to production. One of: `production`, `validation`, `training`, `tracing`.
        </ParamField>

        <ParamField body="modelVersionEnvironmentMetadataIds" type="[ID!]!" required>
          The environment batch id of the widget.
        </ParamField>

        <ParamField body="dimensionCategory" type="DimensionCategory">
          The dimension category of the widget. ex. featureLabel, prediction, actuals One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>

        <ParamField body="performanceMetric" type="PerformanceMetric">
          The performance metric function of the widget. One of: `accuracy`, `precision`, `recall`, `f_1`, `sensitivity`, `specificity`, `falsePositiveRate`, `falseNegativeRate`, `falseNegativeDensity`, `mse`, `rmse`, `mae`, `mape`, `predictionAverage`, `actualsAverage`, `auc`, `logLoss`, `rSquared`, `prAuc`, `meanError`, `calibration`, `ndcg`, `recallParity`, `falsePositiveRateParity`, `disparateImpact`, `wape`, `smape`, `mase`, `udf`, `groupAuc`, `mrr`, `rankingMap`, `rankingRecall`, `rankingPrecision`, `microAveragedPrecision`, `microAveragedRecall`, `multiClassPrecision`, `multiClassRecall`, `macroAveragedPrecision`, `macroAveragedRecall`.
        </ParamField>

        <ParamField body="aggregation" type="DataQualityMetric">
          The aggregation type of the widget, ex. count, avg, etc. One of: `avg`, `count`, `sum`, `percentEmpty`, `cardinality`, `standardDeviation`, `p50`, `p95`, `p99`, `p99_9`, `newValues`, `missingValues`, `averageStringListLength`.
        </ParamField>

        <ParamField body="positiveClass" type="String">
          The class of the classification model (categorical prediction values) on the widget. Provided only if timeseriesMetricType = 'evaluationMetrics' and prediction value type is categorical.
        </ParamField>

        <ParamField body="timeSeriesMetricType" type="TimeSeriesMetricCategory!" required>
          The type of timeseries metric on the widget. One of: `modelDataMetric`, `evaluationMetric`.
        </ParamField>

        <ParamField body="dimension" type="DimensionInput">
          The dimension of the widget, non-null if timeSeriesMetricType

          <Expandable title="DimensionInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="name" type="String!" required>
              The label of this dimension, e.g. 'Bank Name' or 'age'
            </ParamField>

            <ParamField body="dataType" type="DimensionDataType!" required>
              The data type of the values in dimensionName, ex. 'FLOAT', 'STRING', etc. One of: `STRING`, `LONG`, `FLOAT`, `DOUBLE`, `EMBEDDING`, `STRING_LIST`, `DICTIONARY`.
            </ParamField>

            <ParamField body="category" type="DimensionCategory">
              The category of the dimension, e.g. 'tag' or 'featureLabel', etc. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="creationStatus" type="WidgetCreationStatus!" required>
          The status of the widget, to support various dashboard edit states. One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
        </ParamField>

        <ParamField body="filters" type="[StatisticWidgetFilterItemInput!]!" required>
          The filters on this widget.

          <Expandable title="StatisticWidgetFilterItemInput fields">
            <ParamField body="filterType" type="FilterRowType!" required>
              The type of filter. One of: `featureLabel`, `tagLabel`, `predictionValue`, `actuals`, `modelVersion`, `batchId`, `predictionClass`, `predictionScore`, `actualClass`, `actualScore`, `topKPercentile`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`.
            </ParamField>

            <ParamField body="operator" type="ComparisonOperator!" required>
              The operator of the filter. One of: `greaterThan`, `lessThan`, `equals`, `notEquals`, `greaterThanOrEqual`, `lessThanOrEqual`, `topN`, `contains`, `containsString`, `similarTo`.
            </ParamField>

            <ParamField body="dimension" type="DimensionInput">
              The model dimension to filter, e.g. Age. Nested `DimensionInput` (same shape as above).
            </ParamField>

            <ParamField body="dimensionValues" type="[DimensionValueInput!]">
              The dimension values of the filter. Nested `DimensionValueInput` (same shape as above).
            </ParamField>

            <ParamField body="binaryValues" type="[String!]">
              The binary values of the prediction.
            </ParamField>

            <ParamField body="numericValues" type="[Float!]">
              The numeric values of the prediction.
            </ParamField>

            <ParamField body="categoricalValues" type="[String!]">
              The categorical values of the prediction.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="customMetric" type="CustomMetricInput">
          The custom metric function of the widget, if specified.

          <Expandable title="CustomMetricInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="name" type="String!" required>
              The name of the custom metric
            </ParamField>

            <ParamField body="description" type="String">
              The description of the custom metric
            </ParamField>

            <ParamField body="metric" type="String!" required>
              The custom metric, ex. 'AVG(predictionScore)', etc.
            </ParamField>

            <ParamField body="requiresPositiveClass" type="Boolean!" required>
              Whether the custom metric requires a positive class to calculate
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="rankingAtK" type="PositiveInt">
          The @K value for the performance metric. Model must be ranking.
        </ParamField>

        <ParamField body="customStatisticText" type="String">
          The text of the metric on the widget.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="statisticWidget" type="StatisticWidget">
  <Expandable title="StatisticWidget fields">
    Scalar fields: `dashboardId`, `title`, `modelId`, `modelVersionIds`, `dimensionCategory`, `performanceMetric`, `aggregation`, `rankingAtK`, `modelEnvironmentName`, `gridPosition`, `timeSeriesMetricType`, `id`, `creationStatus`, `customStatisticText`, `statisticValue`.

    Object fields (select subfields): `predictionValueClass`, `modelVersionEnvironmentBatches`, `filters`, `dimension`, `model`, `modelVersions`, `customMetric`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation UpdateStatisticWidget($input: UpdateStatisticWidgetMutationInput!) {
    updateStatisticWidget(input: $input) {
      statisticWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "id": "<ID>",
      "dashboardId": "<ID>",
      "updateData": {
        "title": "<string>",
        "gridPosition": [
          1
        ],
        "modelId": "<ID>",
        "modelVersionIds": [
          "<ID>"
        ],
        "modelVersionEnvironmentMetadataIds": [
          "<ID>"
        ],
        "timeSeriesMetricType": "modelDataMetric",
        "creationStatus": "needsInit",
        "filters": [
          {
            "filterType": "featureLabel",
            "operator": "greaterThan"
          }
        ]
      }
    }
  }
  ```
</CodeGroup>

### deleteStatisticWidget

`deleteStatisticWidget(input: DeleteStatisticWidgetMutationInput!): DeleteStatisticWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="DeleteStatisticWidgetMutationInput!" required>
  <Expandable title="DeleteStatisticWidgetMutationInput fields">
    <ParamField body="statWidgetId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation DeleteStatisticWidget($input: DeleteStatisticWidgetMutationInput!) {
    deleteStatisticWidget(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "statWidgetId": "<ID>"
    }
  }
  ```
</CodeGroup>

### createTextWidget

`createTextWidget(input: CreateTextWidgetMutationInput!): CreateTextWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="CreateTextWidgetMutationInput!" required>
  <Expandable title="CreateTextWidgetMutationInput fields">
    <ParamField body="title" type="String!" required>
      The title on the widget.
    </ParamField>

    <ParamField body="content" type="String!" required>
      The text content on the widget.
    </ParamField>

    <ParamField body="gridPosition" type="[Int!]!" required>
      The grid position of the widget.
    </ParamField>

    <ParamField body="creationStatus" type="WidgetCreationStatus!" required>
      One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
    </ParamField>

    <ParamField body="dashboardId" type="ID!" required>
      The dashboard of the widget.
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="textWidget" type="TextWidget">
  <Expandable title="TextWidget fields">
    Scalar fields: `id`, `title`, `content`, `gridPosition`, `creationStatus`, `dashboardId`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreateTextWidget($input: CreateTextWidgetMutationInput!) {
    createTextWidget(input: $input) {
      textWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "title": "<string>",
      "content": "<string>",
      "gridPosition": [
        1
      ],
      "creationStatus": "needsInit",
      "dashboardId": "<ID>"
    }
  }
  ```
</CodeGroup>

### updateTextWidget

Update a single widget

`updateTextWidget(input: UpdateTextWidgetMutationInput!): UpdateTextWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="UpdateTextWidgetMutationInput!" required>
  <Expandable title="UpdateTextWidgetMutationInput fields">
    <ParamField body="id" type="ID!" required />

    <ParamField body="dashboardId" type="ID!" required>
      The dashboard of the widget.
    </ParamField>

    <ParamField body="updateData" type="TextWidgetUpdateDataInput!" required>
      <Expandable title="TextWidgetUpdateDataInput fields">
        <ParamField body="title" type="String!" required>
          The title on the widget.
        </ParamField>

        <ParamField body="content" type="String!" required>
          The text content on the widget.
        </ParamField>

        <ParamField body="gridPosition" type="[Int!]!" required>
          The grid position of the widget.
        </ParamField>

        <ParamField body="creationStatus" type="WidgetCreationStatus!" required>
          One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="textWidget" type="TextWidget">
  <Expandable title="TextWidget fields">
    Scalar fields: `id`, `title`, `content`, `gridPosition`, `creationStatus`, `dashboardId`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation UpdateTextWidget($input: UpdateTextWidgetMutationInput!) {
    updateTextWidget(input: $input) {
      textWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "id": "<ID>",
      "dashboardId": "<ID>",
      "updateData": {
        "title": "<string>",
        "content": "<string>",
        "gridPosition": [
          1
        ],
        "creationStatus": "needsInit"
      }
    }
  }
  ```
</CodeGroup>

### deleteTextWidget

`deleteTextWidget(input: DeleteTextWidgetMutationInput!): DeleteTextWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="DeleteTextWidgetMutationInput!" required>
  <Expandable title="DeleteTextWidgetMutationInput fields">
    <ParamField body="textWidgetId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation DeleteTextWidget($input: DeleteTextWidgetMutationInput!) {
    deleteTextWidget(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "textWidgetId": "<ID>"
    }
  }
  ```
</CodeGroup>

### createPivotTableWidget

`createPivotTableWidget(input: CreatePivotTableWidgetMutationInput!): CreatePivotTableWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="CreatePivotTableWidgetMutationInput!" required>
  <Expandable title="CreatePivotTableWidgetMutationInput fields">
    <ParamField body="dashboardId" type="ID!" required>
      The dashboard of the widget.
    </ParamField>

    <ParamField body="title" type="String!" required>
      The title on the widget.
    </ParamField>

    <ParamField body="gridPosition" type="[Int!]">
      The grid position of the widget.
    </ParamField>

    <ParamField body="creationStatus" type="WidgetCreationStatus">
      One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
    </ParamField>

    <ParamField body="modelId" type="ID!" required>
      The model ID on the widget.
    </ParamField>

    <ParamField body="modelEnvironmentName" type="ModelEnvironmentName">
      The model environment name on the widget. One of: `production`, `validation`, `training`, `tracing`.
    </ParamField>

    <ParamField body="modelVersionEnvironmentMetadataIds" type="[ID!]">
      The environment batch IDs on the widget. If empty, use all batches
    </ParamField>

    <ParamField body="modelVersionIds" type="[ID!]">
      The model version IDs on the widget. If empty, use all versions.
    </ParamField>

    <ParamField body="groupedDimension" type="String!" required>
      The categorical dimension to group by (e.g., model name).
    </ParamField>

    <ParamField body="groupedDimensionTitle" type="String">
      Optional custom title for the grouped dimension column.
    </ParamField>

    <ParamField body="groupedDimensionCategory" type="DimensionCategory">
      The dimension category for the grouped dimension. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
    </ParamField>

    <ParamField body="columns" type="[PivotTableColumnInput!]">
      The columns (numeric dimensions with aggregations) on the pivot table.

      <Expandable title="PivotTableColumnInput fields">
        <ParamField body="dimension" type="String!" required>
          The dimension to aggregate. Numeric dimensions support sum/avg; all dimensions support count/cardinality.
        </ParamField>

        <ParamField body="aggregation" type="PivotTableAggregation!" required>
          The aggregation type (avg, sum, count, cardinality). One of: `avg`, `sum`, `count`, `cardinality`.
        </ParamField>

        <ParamField body="position" type="Int!" required>
          The display order of the column.
        </ParamField>

        <ParamField body="title" type="String">
          Optional custom title for the column.
        </ParamField>

        <ParamField body="dimensionCategory" type="DimensionCategory">
          The dimension category for this column. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="filters" type="[PivotTableWidgetFilterItemInput!]">
      The filters on this widget.

      <Expandable title="PivotTableWidgetFilterItemInput fields">
        <ParamField body="filterType" type="FilterRowType!" required>
          The type of filter. One of: `featureLabel`, `tagLabel`, `predictionValue`, `actuals`, `modelVersion`, `batchId`, `predictionClass`, `predictionScore`, `actualClass`, `actualScore`, `topKPercentile`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`.
        </ParamField>

        <ParamField body="operator" type="ComparisonOperator!" required>
          The operator of the filter. One of: `greaterThan`, `lessThan`, `equals`, `notEquals`, `greaterThanOrEqual`, `lessThanOrEqual`, `topN`, `contains`, `containsString`, `similarTo`.
        </ParamField>

        <ParamField body="dimension" type="DimensionInput">
          The model dimension to filter, e.g. Age.

          <Expandable title="DimensionInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="name" type="String!" required>
              The label of this dimension, e.g. 'Bank Name' or 'age'
            </ParamField>

            <ParamField body="dataType" type="DimensionDataType!" required>
              The data type of the values in dimensionName, ex. 'FLOAT', 'STRING', etc. One of: `STRING`, `LONG`, `FLOAT`, `DOUBLE`, `EMBEDDING`, `STRING_LIST`, `DICTIONARY`.
            </ParamField>

            <ParamField body="category" type="DimensionCategory">
              The category of the dimension, e.g. 'tag' or 'featureLabel', etc. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="dimensionValues" type="[DimensionValueInput!]">
          The dimension values of the filter.

          <Expandable title="DimensionValueInput fields">
            <ParamField body="id" type="ID!" required />

            <ParamField body="value" type="String!" required>
              The value of this dimension value, e.g. 'Wells Fargo' or '60'
            </ParamField>

            <ParamField body="similarityReference" type="DimensionValueSimilarityReference">
              The similarity references for this dimension value Nested `DimensionValueSimilarityReference` (same shape as above).
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="binaryValues" type="[String!]">
          The binary values of the prediction.
        </ParamField>

        <ParamField body="numericValues" type="[Float!]">
          The numeric values of the prediction.
        </ParamField>

        <ParamField body="categoricalValues" type="[String!]">
          The categorical values of the prediction.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="overwriteGlobalTime" type="Boolean">
      Whether to override the dashboard time range.
    </ParamField>

    <ParamField body="timezone" type="String">
      Timezone for time range.
    </ParamField>

    <ParamField body="startTime" type="DateTime">
      Custom start time.
    </ParamField>

    <ParamField body="endTime" type="DateTime">
      Custom end time.
    </ParamField>

    <ParamField body="timeRangeKey" type="String">
      Preset time range key.
    </ParamField>

    <ParamField body="queryFilter" type="String">
      Query filter string.
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="pivotTableWidget" type="PivotTableWidget">
  <Expandable title="PivotTableWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `modelId`, `modelVersionIds`, `gridPosition`, `creationStatus`, `groupedDimension`, `groupedDimensionTitle`, `groupedDimensionCategory`, `modelEnvironmentName`, `overwriteGlobalTime`, `timezone`, `startTime`, `endTime`, `timeRangeKey`, `queryFilter`.

    Object fields (select subfields): `modelVersionEnvironmentBatches`, `model`, `modelVersions`, `columns`, `filters`, `pivotData`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreatePivotTableWidget($input: CreatePivotTableWidgetMutationInput!) {
    createPivotTableWidget(input: $input) {
      pivotTableWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "dashboardId": "<ID>",
      "title": "<string>",
      "modelId": "<ID>",
      "groupedDimension": "<string>"
    }
  }
  ```
</CodeGroup>

### updatePivotTableWidget

Update a single pivot table widget

`updatePivotTableWidget(input: UpdatePivotTableWidgetMutationInput!): UpdatePivotTableWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="UpdatePivotTableWidgetMutationInput!" required>
  <Expandable title="UpdatePivotTableWidgetMutationInput fields">
    <ParamField body="id" type="ID!" required />

    <ParamField body="dashboardId" type="ID!" required>
      The dashboard of the widget.
    </ParamField>

    <ParamField body="updateData" type="PivotTableWidgetUpdateDataInput!" required>
      <Expandable title="PivotTableWidgetUpdateDataInput fields">
        <ParamField body="title" type="String!" required>
          The title on the widget.
        </ParamField>

        <ParamField body="gridPosition" type="[Int!]!" required>
          The grid position of the widget.
        </ParamField>

        <ParamField body="creationStatus" type="WidgetCreationStatus!" required>
          One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
        </ParamField>

        <ParamField body="modelId" type="ID!" required>
          The model ID on the widget.
        </ParamField>

        <ParamField body="modelEnvironmentName" type="ModelEnvironmentName">
          The model environment name on the widget. One of: `production`, `validation`, `training`, `tracing`.
        </ParamField>

        <ParamField body="modelVersionEnvironmentMetadataIds" type="[ID!]!" required>
          The environment batch IDs on the widget. If empty, use all batches
        </ParamField>

        <ParamField body="modelVersionIds" type="[ID!]!" required>
          The model version IDs on the widget. If empty, use all versions.
        </ParamField>

        <ParamField body="groupedDimension" type="String!" required>
          The categorical dimension to group by (e.g., model name).
        </ParamField>

        <ParamField body="groupedDimensionTitle" type="String">
          Optional custom title for the grouped dimension column.
        </ParamField>

        <ParamField body="groupedDimensionCategory" type="DimensionCategory">
          The dimension category for the grouped dimension. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
        </ParamField>

        <ParamField body="columns" type="[PivotTableColumnInput!]!" required>
          The columns (numeric dimensions with aggregations) on the pivot table.

          <Expandable title="PivotTableColumnInput fields">
            <ParamField body="dimension" type="String!" required>
              The dimension to aggregate. Numeric dimensions support sum/avg; all dimensions support count/cardinality.
            </ParamField>

            <ParamField body="aggregation" type="PivotTableAggregation!" required>
              The aggregation type (avg, sum, count, cardinality). One of: `avg`, `sum`, `count`, `cardinality`.
            </ParamField>

            <ParamField body="position" type="Int!" required>
              The display order of the column.
            </ParamField>

            <ParamField body="title" type="String">
              Optional custom title for the column.
            </ParamField>

            <ParamField body="dimensionCategory" type="DimensionCategory">
              The dimension category for this column. One of: `featureLabel`, `prediction`, `actuals`, `actualScore`, `actualClass`, `predictionClass`, `predictionScore`, `tag`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`, `modelVersion`, `batchId`.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="filters" type="[PivotTableWidgetFilterItemInput!]!" required>
          The filters on this widget.

          <Expandable title="PivotTableWidgetFilterItemInput fields">
            <ParamField body="filterType" type="FilterRowType!" required>
              The type of filter. One of: `featureLabel`, `tagLabel`, `predictionValue`, `actuals`, `modelVersion`, `batchId`, `predictionClass`, `predictionScore`, `actualClass`, `actualScore`, `topKPercentile`, `spanProperty`, `llmEval`, `annotation`, `userAnnotation`.
            </ParamField>

            <ParamField body="operator" type="ComparisonOperator!" required>
              The operator of the filter. One of: `greaterThan`, `lessThan`, `equals`, `notEquals`, `greaterThanOrEqual`, `lessThanOrEqual`, `topN`, `contains`, `containsString`, `similarTo`.
            </ParamField>

            <ParamField body="dimension" type="DimensionInput">
              The model dimension to filter, e.g. Age. Nested `DimensionInput` (same shape as above).
            </ParamField>

            <ParamField body="dimensionValues" type="[DimensionValueInput!]">
              The dimension values of the filter. Nested `DimensionValueInput` (same shape as above).
            </ParamField>

            <ParamField body="binaryValues" type="[String!]">
              The binary values of the prediction.
            </ParamField>

            <ParamField body="numericValues" type="[Float!]">
              The numeric values of the prediction.
            </ParamField>

            <ParamField body="categoricalValues" type="[String!]">
              The categorical values of the prediction.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="overwriteGlobalTime" type="Boolean">
          Whether to override the dashboard time range.
        </ParamField>

        <ParamField body="timezone" type="String">
          Timezone for time range.
        </ParamField>

        <ParamField body="startTime" type="DateTime">
          Custom start time.
        </ParamField>

        <ParamField body="endTime" type="DateTime">
          Custom end time.
        </ParamField>

        <ParamField body="timeRangeKey" type="String">
          Preset time range key.
        </ParamField>

        <ParamField body="queryFilter" type="String">
          Query filter string.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="pivotTableWidget" type="PivotTableWidget">
  <Expandable title="PivotTableWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `modelId`, `modelVersionIds`, `gridPosition`, `creationStatus`, `groupedDimension`, `groupedDimensionTitle`, `groupedDimensionCategory`, `modelEnvironmentName`, `overwriteGlobalTime`, `timezone`, `startTime`, `endTime`, `timeRangeKey`, `queryFilter`.

    Object fields (select subfields): `modelVersionEnvironmentBatches`, `model`, `modelVersions`, `columns`, `filters`, `pivotData`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation UpdatePivotTableWidget($input: UpdatePivotTableWidgetMutationInput!) {
    updatePivotTableWidget(input: $input) {
      pivotTableWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "id": "<ID>",
      "dashboardId": "<ID>",
      "updateData": {
        "title": "<string>",
        "gridPosition": [
          1
        ],
        "creationStatus": "needsInit",
        "modelId": "<ID>",
        "modelVersionEnvironmentMetadataIds": [
          "<ID>"
        ],
        "modelVersionIds": [
          "<ID>"
        ],
        "groupedDimension": "<string>",
        "columns": [
          {
            "dimension": "<string>",
            "aggregation": "avg",
            "position": 1
          }
        ],
        "filters": [
          {
            "filterType": "featureLabel",
            "operator": "greaterThan"
          }
        ]
      }
    }
  }
  ```
</CodeGroup>

### deletePivotTableWidget

`deletePivotTableWidget(input: DeletePivotTableWidgetMutationInput!): DeletePivotTableWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="DeletePivotTableWidgetMutationInput!" required>
  <Expandable title="DeletePivotTableWidgetMutationInput fields">
    <ParamField body="pivotTableWidgetId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation DeletePivotTableWidget($input: DeletePivotTableWidgetMutationInput!) {
    deletePivotTableWidget(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "pivotTableWidgetId": "<ID>"
    }
  }
  ```
</CodeGroup>

### createExperimentChartWidget

Create an experiment chart widget

`createExperimentChartWidget(input: CreateExperimentChartWidgetMutationInput!): CreateExperimentChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="CreateExperimentChartWidgetMutationInput!" required>
  <Expandable title="CreateExperimentChartWidgetMutationInput fields">
    <ParamField body="title" type="String!" required />

    <ParamField body="creationStatus" type="WidgetCreationStatus">
      One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
    </ParamField>

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="gridPosition" type="[Int!]">
      The grid position the widget should be placed at.
    </ParamField>

    <ParamField body="plots" type="[ExperimentChartPlotInputInput!]">
      <Expandable title="ExperimentChartPlotInputInput fields">
        <ParamField body="title" type="String!" required>
          The title on the plot.
        </ParamField>

        <ParamField body="position" type="Int!" required>
          The position of the plot.
        </ParamField>

        <ParamField body="datasetId" type="ID!" required>
          The dataset of the plot.
        </ParamField>

        <ParamField body="evaluationMetric" type="String!" required>
          The evaluation metric of the dataset.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="fontSize" type="String">
      The font size of the widget
    </ParamField>

    <ParamField body="showLegend" type="Boolean">
      Whether to show the legend on the widget
    </ParamField>

    <ParamField body="legendPlacement" type="String">
      The placement of the legend on the widget
    </ParamField>

    <ParamField body="xAxisLabel" type="String">
      The label for the x-axis
    </ParamField>

    <ParamField body="xAxisTilt" type="String">
      The tilt of the x-axis
    </ParamField>

    <ParamField body="yMin" type="Float">
      The minimum domain on the y-axis
    </ParamField>

    <ParamField body="yMax" type="Float">
      The maximum domain on the y-axis
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="experimentChartWidget" type="ExperimentChartWidget">
  <Expandable title="ExperimentChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `yMin`, `yMax`.

    Object fields (select subfields): `plots`, `lines`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation CreateExperimentChartWidget($input: CreateExperimentChartWidgetMutationInput!) {
    createExperimentChartWidget(input: $input) {
      experimentChartWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "title": "<string>",
      "dashboardId": "<ID>"
    }
  }
  ```
</CodeGroup>

### updateExperimentChartWidget

`updateExperimentChartWidget(input: UpdateExperimentChartWidgetMutationInput!): UpdateExperimentChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="UpdateExperimentChartWidgetMutationInput!" required>
  <Expandable title="UpdateExperimentChartWidgetMutationInput fields">
    <ParamField body="id" type="ID!" required />

    <ParamField body="dashboardId" type="ID!" required />

    <ParamField body="updateData" type="ExperimentChartWidgetUpdateDataInput!" required>
      <Expandable title="ExperimentChartWidgetUpdateDataInput fields">
        <ParamField body="title" type="String!" required />

        <ParamField body="creationStatus" type="WidgetCreationStatus!" required>
          One of: `needsInit`, `pending`, `created`, `published`, `unpublished`.
        </ParamField>

        <ParamField body="gridPosition" type="[Int!]!" required />

        <ParamField body="plots" type="[ExperimentChartPlotInputInput!]!" required>
          <Expandable title="ExperimentChartPlotInputInput fields">
            <ParamField body="title" type="String!" required>
              The title on the plot.
            </ParamField>

            <ParamField body="position" type="Int!" required>
              The position of the plot.
            </ParamField>

            <ParamField body="datasetId" type="ID!" required>
              The dataset of the plot.
            </ParamField>

            <ParamField body="evaluationMetric" type="String!" required>
              The evaluation metric of the dataset.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="fontSize" type="String">
          The font size of the widget
        </ParamField>

        <ParamField body="showLegend" type="Boolean">
          Whether to show the legend on the widget
        </ParamField>

        <ParamField body="legendPlacement" type="String">
          The placement of the legend on the widget
        </ParamField>

        <ParamField body="xAxisLabel" type="String">
          The label for the x-axis
        </ParamField>

        <ParamField body="xAxisTilt" type="String">
          The tilt of the x-axis
        </ParamField>

        <ParamField body="yMin" type="Float">
          The minimum domain on the y-axis
        </ParamField>

        <ParamField body="yMax" type="Float">
          The maximum domain on the y-axis
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="experimentChartWidget" type="ExperimentChartWidget">
  <Expandable title="ExperimentChartWidget fields">
    Scalar fields: `id`, `dashboardId`, `title`, `gridPosition`, `creationStatus`, `fontSize`, `showLegend`, `legendPlacement`, `xAxisLabel`, `xAxisTilt`, `yMin`, `yMax`.

    Object fields (select subfields): `plots`, `lines`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation UpdateExperimentChartWidget($input: UpdateExperimentChartWidgetMutationInput!) {
    updateExperimentChartWidget(input: $input) {
      experimentChartWidget { id }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "id": "<ID>",
      "dashboardId": "<ID>",
      "updateData": {
        "title": "<string>",
        "creationStatus": "needsInit",
        "gridPosition": [
          1
        ],
        "plots": [
          {
            "title": "<string>",
            "position": 1,
            "datasetId": "<ID>",
            "evaluationMetric": "<string>"
          }
        ]
      }
    }
  }
  ```
</CodeGroup>

### deleteExperimentChartWidget

`deleteExperimentChartWidget(input: DeleteExperimentChartWidgetMutationInput!): DeleteExperimentChartWidgetMutationPayload`

#### Arguments

<ParamField body="input" type="DeleteExperimentChartWidgetMutationInput!" required>
  <Expandable title="DeleteExperimentChartWidgetMutationInput fields">
    <ParamField body="experimentChartWidgetId" type="ID!" required />

    <ParamField body="clientMutationId" type="String" />
  </Expandable>
</ParamField>

#### Returns

<ResponseField name="dashboard" type="Dashboard">
  <Expandable title="Dashboard fields">
    Scalar fields: `id`, `name`, `createdAt`, `status`, `timezone`, `startTime`, `endTime`, `timeSeriesDataGranularity`, `timeRangeKey`, `isRestricted`.

    Object fields (select subfields): `creator`, `space`, `models`, `statisticWidgets`, `performanceSlices`, `barChartWidgets`, `lineChartWidgets`, `experimentChartWidgets`, `driftLineChartWidgets`, `monitorLineChartWidgets`, `scatterChartWidgets`, `textWidgets`, `pivotTableWidgets`, `tags`, `dashboardRoleBindings`, `_access`.
  </Expandable>
</ResponseField>

#### Example

Only required input fields are shown. Replace `<ID>` and `<string>` placeholders with real values; the [object graph](/docs/ax/graphql-reference/queries/object-graph) page shows how to look IDs up.

<CodeGroup>
  ```graphql Mutation theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  mutation DeleteExperimentChartWidget($input: DeleteExperimentChartWidgetMutationInput!) {
    deleteExperimentChartWidget(input: $input) {
      dashboard { id name status }
    }
  }
  ```

  ```json Variables theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
  {
    "input": {
      "experimentChartWidgetId": "<ID>"
    }
  }
  ```
</CodeGroup>
