---
updatedAt: 2026-04-29T23:08:20.000Z
agentTools:
  projectIndex: https://docs.bigeye.com/llms.txt
---

# Validate a metric configuration

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Observability",
    "version": "version not set"
  },
  "paths": {
    "/api/v1/metrics/validation": {
      "get": {
        "operationId": "MetricService_ValidateMetric",
        "parameters": [
          {
            "in": "query",
            "name": "id",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "scheduleFrequency.IntervalType",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "UNDEFINED_TIME_INTERVAL_TYPE",
                "HOURS_TIME_INTERVAL_TYPE",
                "MINUTES_TIME_INTERVAL_TYPE",
                "SECONDS_TIME_INTERVAL_TYPE",
                "DAYS_TIME_INTERVAL_TYPE",
                "WEEKDAYS_TIME_INTERVAL_TYPE",
                "MARKET_DAYS_TIME_INTERVAL_TYPE",
                "MONTHS_TIME_INTERVAL_TYPE",
                "WEEKS_TIME_INTERVAL_TYPE",
                "YEARS_TIME_INTERVAL_TYPE"
              ],
              "default": "UNDEFINED_TIME_INTERVAL_TYPE"
            }
          },
          {
            "in": "query",
            "name": "scheduleFrequency.IntervalValue",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "description": "Each filter evaluates to a valid SQL boolean expression.",
            "in": "query",
            "name": "filters",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Each group by is a column name from the table for this metric.",
            "in": "query",
            "name": "groupBys",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "in": "query",
            "name": "warehouseId",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "description": "Bigeye ID for the table which this metric is run on.",
            "in": "query",
            "name": "datasetId",
            "required": false,
            "schema": {
              "type": "string",
              "format": "int64"
            }
          },
          {
            "in": "query",
            "name": "metricType.PredefinedMetric.MetricName",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "UNDEFINED_PREDEFINED_METRIC_NAME",
                "PERCENT_NULL",
                "COUNT_NULL",
                "PERCENT_EMPTY_STRING",
                "COUNT_EMPTY_STRING",
                "PERCENT_UNIQUE",
                "PERCENT_VALUE_IN_LIST",
                "AVERAGE",
                "MIN",
                "MAX",
                "SUM",
                "COUNT_ROWS",
                "COUNT_DISTINCT",
                "HOURS_SINCE_MAX_DATE",
                "HOURS_SINCE_MAX_TIMESTAMP",
                "COUNT_TRUE",
                "PERCENT_TRUE",
                "COUNT_FALSE",
                "PERCENT_FALSE",
                "COUNT_USA_PHONE",
                "PERCENT_USA_PHONE",
                "COUNT_USA_ZIP_CODE",
                "PERCENT_USA_ZIP_CODE",
                "PERCENT_UUID",
                "COUNT_TIMESTAMP_STRING",
                "PERCENT_TIMESTAMP_STRING",
                "COUNT_DUPLICATES",
                "COUNT_USA_STATE_CODE",
                "PERCENT_USA_STATE_CODE",
                "VARIANCE",
                "SKEW",
                "KURTOSIS",
                "GEOMETRIC_MEAN",
                "HARMONIC_MEAN",
                "COUNT_UUID",
                "COUNT_CUSIP",
                "PERCENT_CUSIP",
                "COUNT_SEDOL",
                "PERCENT_SEDOL",
                "COUNT_ISIN",
                "PERCENT_ISIN",
                "COUNT_LEI",
                "PERCENT_LEI",
                "COUNT_FIGI",
                "PERCENT_FIGI",
                "COUNT_PERM_ID",
                "PERCENT_PERM_ID",
                "COUNT_NAN",
                "PERCENT_NAN",
                "COUNT_LONGITUDE",
                "PERCENT_LONGITUDE",
                "COUNT_LATITUDE",
                "PERCENT_LATITUDE",
                "COUNT_NOT_IN_FUTURE",
                "PERCENT_NOT_IN_FUTURE",
                "COUNT_DATE_NOT_IN_FUTURE",
                "PERCENT_DATE_NOT_IN_FUTURE",
                "MEDIAN",
                "PERCENTILE",
                "COUNT_NOT_NULL",
                "STRING_LENGTH_AVERAGE",
                "STRING_LENGTH_MIN",
                "STRING_LENGTH_MAX",
                "COUNT_SSN",
                "PERCENT_SSN",
                "COUNT_EMAIL",
                "PERCENT_EMAIL",
                "ROWS_INSERTED",
                "HOURS_SINCE_LAST_LOAD",
                "COUNT_READ_QUERIES",
                "PERCENT_NOT_NULL",
                "FRESHNESS",
                "VOLUME",
                "FRESHNESS_DATA",
                "VOLUME_DATA",
                "COUNT_VALUE_IN_LIST",
                "PERCENT_DISTINCT",
                "PERCENT_DUPLICATES",
                "HOURS_SINCE_MAX_STRING"
              ],
              "default": "UNDEFINED_PREDEFINED_METRIC_NAME"
            }
          },
          {
            "in": "query",
            "name": "metricType.TemplateMetric.TemplateId",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "metricType.TemplateMetric.AggregationType",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "UNDEFINED_AGGREGATION_TYPE",
                "COUNT_AGGREGATION_TYPE",
                "PERCENT_AGGREGATION_TYPE",
                "MIN_AGGREGATION_TYPE",
                "MAX_AGGREGATION_TYPE",
                "AVG_AGGREGATION_TYPE",
                "SUM_AGGREGATION_TYPE"
              ],
              "default": "UNDEFINED_AGGREGATION_TYPE"
            }
          },
          {
            "in": "query",
            "name": "metricType.TemplateMetric.TemplateName",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "metricType.ExternalMonitor.Type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "EXTERNAL_MONITOR_TYPE_UNDEFINED",
                "EXTERNAL_MONITOR_TYPE_DBT_TEST"
              ],
              "default": "EXTERNAL_MONITOR_TYPE_UNDEFINED"
            }
          },
          {
            "in": "query",
            "name": "metricType.CustomRuleType",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "CUSTOM_RULE_TYPE_UNSPECIFIED",
                "CUSTOM_RULE_TYPE_SQL_RULE",
                "CUSTOM_RULE_TYPE_JOIN_RULE"
              ],
              "default": "CUSTOM_RULE_TYPE_UNSPECIFIED"
            }
          },
          {
            "in": "query",
            "name": "metricType.IsMetadataMetric",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "metricType.IsTableMetric",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "lookback.intervalType",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "UNDEFINED_TIME_INTERVAL_TYPE",
                "HOURS_TIME_INTERVAL_TYPE",
                "MINUTES_TIME_INTERVAL_TYPE",
                "SECONDS_TIME_INTERVAL_TYPE",
                "DAYS_TIME_INTERVAL_TYPE",
                "WEEKDAYS_TIME_INTERVAL_TYPE",
                "MARKET_DAYS_TIME_INTERVAL_TYPE",
                "MONTHS_TIME_INTERVAL_TYPE",
                "WEEKS_TIME_INTERVAL_TYPE",
                "YEARS_TIME_INTERVAL_TYPE"
              ],
              "default": "UNDEFINED_TIME_INTERVAL_TYPE"
            }
          },
          {
            "in": "query",
            "name": "lookback.intervalValue",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "description": "Lookback type for metrics on tables with metric time enabled. The default is DATA_TIME_LOOKBACK_TYPE.",
            "in": "query",
            "name": "lookbackType",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "UNDEFINED_LOOKBACK_TYPE",
                "DATA_TIME_LOOKBACK_TYPE",
                "CLOCK_TIME_LOOKBACK_TYPE",
                "METRIC_TIME_LOOKBACK_TYPE"
              ],
              "default": "UNDEFINED_LOOKBACK_TYPE"
            }
          },
          {
            "in": "query",
            "name": "metricCreationState",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "METRIC_CREATION_STATE_UNSPECIFIED",
                "METRIC_CREATION_STATE_MANUAL",
                "METRIC_CREATION_STATE_SUGGESTED_AUTO",
                "METRIC_CREATION_STATE_ACCEPTED_AUTO",
                "METRIC_CREATION_STATE_REJECTED_AUTO",
                "METRIC_CREATION_STATE_COMPARISON",
                "METRIC_CREATION_STATE_AUTOMATIC_SETUP",
                "METRIC_CREATION_STATE_SUITE",
                "METRIC_CREATION_STATE_CUSTOM_RULE",
                "METRIC_CREATION_STATE_INTEGRATION"
              ],
              "default": "METRIC_CREATION_STATE_UNSPECIFIED"
            }
          },
          {
            "description": "width of METRIC_TIME based metric intervals.",
            "in": "query",
            "name": "grainSeconds",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "mutedUntilEpochSeconds",
            "required": false,
            "schema": {
              "type": "string",
              "format": "int64"
            }
          },
          {
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "description",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "isTableMetric",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.ScheduleFrequency.IntervalType",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "UNDEFINED_TIME_INTERVAL_TYPE",
                "HOURS_TIME_INTERVAL_TYPE",
                "MINUTES_TIME_INTERVAL_TYPE",
                "SECONDS_TIME_INTERVAL_TYPE",
                "DAYS_TIME_INTERVAL_TYPE",
                "WEEKDAYS_TIME_INTERVAL_TYPE",
                "MARKET_DAYS_TIME_INTERVAL_TYPE",
                "MONTHS_TIME_INTERVAL_TYPE",
                "WEEKS_TIME_INTERVAL_TYPE",
                "YEARS_TIME_INTERVAL_TYPE"
              ],
              "default": "UNDEFINED_TIME_INTERVAL_TYPE"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.ScheduleFrequency.IntervalValue",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.NamedSchedule.Id",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.NamedSchedule.Name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.NamedSchedule.Cron",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.NamedSchedule.EntityInfo.CreatedBy",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.NamedSchedule.EntityInfo.CreatedEpochSeconds",
            "required": false,
            "schema": {
              "type": "string",
              "format": "int64"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.NamedSchedule.EntityInfo.UpdatedBy",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "metricSchedule.NamedSchedule.EntityInfo.UpdatedEpochSeconds",
            "required": false,
            "schema": {
              "type": "string",
              "format": "int64"
            }
          },
          {
            "description": "IANA timezone id (e.g. \"America/New_York\") used to interpret the cron. Defaults to UTC when unset.",
            "in": "query",
            "name": "metricSchedule.NamedSchedule.Timezone",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "rctOverride",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "isLookbackUsingCurrentTime",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "bigconfigNamespace",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dimension.id",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "dimension.displayName",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profilingSuggestionForColumn.Id",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "in": "query",
            "name": "profilingSuggestionForColumn.DisplayName",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "monitorType",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "MONITOR_TYPE_UNDEFINED",
                "MONITOR_TYPE_METRIC",
                "MONITOR_TYPE_DBT_TEST",
                "MONITOR_TYPE_CUSTOM_RULE",
                "MONITOR_TYPE_DELTA"
              ],
              "default": "MONITOR_TYPE_UNDEFINED"
            }
          },
          {
            "in": "query",
            "name": "alertOnAbsentGroups",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "customRuleId",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "description": "Overrides the workspace-level include-latest setting for this metric. UNSPECIFIED (the default)\nmeans use the workspace-level setting.",
            "in": "query",
            "name": "includeLatestOverride",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "THREE_LEGGED_BOOLEAN_UNSPECIFIED",
                "THREE_LEGGED_BOOLEAN_TRUE",
                "THREE_LEGGED_BOOLEAN_FALSE"
              ],
              "default": "THREE_LEGGED_BOOLEAN_UNSPECIFIED"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/generatedMetricValidationResult"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runtimeError"
                }
              }
            }
          }
        },
        "summary": "Validate a metric configuration",
        "tags": [
          "MetricService"
        ]
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    },
    {
      "Personal_API_Key": []
    }
  ],
  "servers": [
    {
      "url": "https://app.bigeye.com"
    }
  ],
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      },
      "Personal_API_Key": {
        "description": "Add 'apikey ' to the beginning of your api key",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    },
    "schemas": {
      "generatedMetricValidationResult": {
        "properties": {
          "canSave": {
            "type": "boolean"
          },
          "criticalIssues": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "issues": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "warnBeforeSave": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "protobufAny": {
        "properties": {
          "typeUrl": {
            "type": "string"
          },
          "value": {
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      },
      "runtimeError": {
        "properties": {
          "code": {
            "format": "int32",
            "type": "integer"
          },
          "details": {
            "items": {
              "$ref": "#/components/schemas/protobufAny"
            },
            "type": "array"
          },
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  }
}
```