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

# Update a metric



## OpenAPI

````yaml openapi.yaml PUT /v1/metrics/{id}
openapi: 3.1.0
info:
  version: 4.4.0
  title: GrowthBook REST API
  description: >
    GrowthBook offers a full REST API for interacting with the application.


    Request data can use either JSON or Form data encoding (with proper
    `Content-Type` headers). All response bodies are JSON-encoded.


    The API base URL for GrowthBook Cloud is `https://api.growthbook.io/api`.
    For self-hosted deployments, it is the same as your API_HOST environment
    variable (defaults to `http://localhost:3100/api`). The rest of these docs
    will assume you are using GrowthBook Cloud.


    ## Versioning


    Endpoints are versioned by path prefix:


    - `/v1/...` — stable, widely-supported endpoints

    - `/v2/...` — updated endpoints with improved shapes (e.g. unified per-rule
    environment scope for feature flags)


    New integrations should prefer v2 where available.


    ## Authentication


    We support both the HTTP Basic and Bearer authentication schemes for
    convenience.


    You first need to generate a new API Key in GrowthBook. Different keys have
    different permissions:


    - **Personal Access Tokens**: These are sensitive and provide the same level
    of access as the user has to an organization. These can be created by going
    to `Personal Access Tokens` under the your user menu.

    - **Secret Keys**: These are sensitive and provide the level of access for
    the role, which currently is either `admin` or `readonly`. Only Admins with
    the `manageApiKeys` permission can manage Secret Keys on behalf of an
    organization. These can be created by going to `Settings -> API Keys`


    If using HTTP Basic auth, pass the Secret Key as the username and leave the
    password blank (when using curl, add `:` at the end of the secret to
    indicate an empty password)


    ```bash

    curl https://api.growthbook.io/api/v1/features \
      -u secret_abc123DEF456:
    ```


    If using Bearer auth, pass the Secret Key as the token:


    ```bash

    curl https://api.growthbook.io/api/v1/features \

    -H "Authorization: Bearer secret_abc123DEF456"

    ```


    ## Errors


    The API may return the following error status codes:


    - **400** - Bad Request - Often due to a missing required parameter

    - **401** - Unauthorized - No valid API key provided

    - **402** - Request Failed - The parameters are valid, but the request
    failed

    - **403** - Forbidden - Provided API key does not have the required access

    - **404** - Not Found - Unknown API route or requested resource

    - **422** - Soft Warning - The request failed, but can be re-submitted with
    `?ignoreWarnings=true` to proceed anyway.

    - **429** - Too Many Requests - You exceeded the rate limit of 60 requests
    per minute. Try again later.

    - **5XX** - Server Error - Something went wrong on GrowthBook's end (these
    are rare)


    The response body will be a JSON object with the following properties:


    - **message** - Information about the error
servers:
  - url: https://api.growthbook.io/api
    description: GrowthBook Cloud
  - url: https://{domain}/api
    description: Self-hosted GrowthBook
    variables:
      domain:
        default: localhost:3100
        description: Your self-hosted GrowthBook host (and port)
security:
  - bearerAuth: []
  - basicAuth: []
tags:
  - name: projects
    x-displayName: Projects
    description: Projects are used to organize your feature flags and experiments
  - name: environments
    x-displayName: Environments
    description: >-
      GrowthBook comes with one environment by default (production), but you can
      add as many as you need. When used with feature flags, you can
      enable/disable feature flags on a per-environment basis.
  - name: features-v2
    x-displayName: Feature Flags
    description: >-
      Control your feature flags programatically.


      Rules are returned as a unified top-level array; each rule carries
      `allEnvironments` / `environments` scope fields instead of being bucketed
      by environment.
  - name: feature-revisions-v2
    x-displayName: Feature Revisions
    description: >-
      Draft revisions for feature flags, including rules, scheduling, and
      approval workflows.


      Revision `rules` is a flat array with per-rule scope fields.
  - name: features
    x-displayName: Feature Flags (legacy)
    description: >-
      Control your feature flags programatically.


      **These are v1 endpoints.** New integrations should use the v2 Feature
      Flags endpoints, which expose a unified per-rule environment scope instead
      of per-environment rule arrays.
  - name: feature-revisions
    x-displayName: Feature Revisions (legacy)
    description: >-
      Draft revisions for feature flags, including rules, scheduling, and
      approval workflows.


      **These are v1 endpoints.** New integrations should use the v2 Feature
      Revisions endpoints.
  - name: ramp-schedules
    x-displayName: Ramp Schedules
    description: >-
      Multi-step rollout schedules that gradually increase feature rule traffic
      over time, with optional real-time monitoring. Each step supports interval
      timers, approval gates, and hold conditions. Monitored steps are backed by
      a live analysis experiment that can automatically hold, roll back, or
      advance the ramp based on guardrail and signal metric health.
  - name: data-sources
    x-displayName: Data Sources
    description: >-
      How GrowthBook connects and queries your data, including cached database
      schema metadata (information schemas) for tables and columns.
  - name: fact-tables
    x-displayName: Fact Tables
    description: Fact Tables describe the shape of your data warehouse tables
  - name: fact-metrics
    x-displayName: Fact Metrics
    description: Fact Metrics are metrics built on top of Fact Table definitions
  - name: metrics
    x-displayName: Metrics (legacy)
    description: Metrics used as goals and guardrails for experiments
  - name: experiments
    x-displayName: Experiments
    description: Experiments (A/B Tests)
  - name: namespaces
    x-displayName: Namespaces
    description: >-
      Namespaces partition your user population into buckets so that experiments
      using the same hash attribute do not overlap unintentionally. Each
      namespace defines a 0–1 range and individual experiments claim sub-ranges
      within it.
  - name: snapshots
    x-displayName: Experiment Snapshots
    description: Experiment Snapshots (the individual updates of an experiment)
  - name: dimensions
    x-displayName: Dimensions
    description: Dimensions used during experiment analysis
  - name: segments
    x-displayName: Segments
    description: Segments used during experiment analysis
  - name: reports
    x-displayName: Experiment Reports
    description: >-
      Custom analysis reports built on top of experiment snapshots. Reports let
      you re-run analysis with different metrics, date ranges, stats engines,
      and other settings without modifying the underlying experiment.
  - name: sdk-connections
    x-displayName: SDK Connections
    description: Client keys and settings for connecting SDKs to a GrowthBook instance
  - name: visual-changesets
    x-displayName: Visual Changesets
    description: Groups of visual changes made by the visual editor to a single page
  - name: saved-groups
    x-displayName: Saved Groups
    description: >-
      Defined sets of attribute values which can be used with feature rules for
      targeting features at particular users.
  - name: saved-group-revisions
    x-displayName: Saved Group Revisions
    description: >-
      Draft revisions for saved groups, including pending changes, approvals,
      and lifecycle (publish, discard, revert).


      Most callers can interact with these endpoints via shorthand actions
      (`/items/add`, `/items/remove`, single-field PUTs) instead of authoring
      JSON Patch ops directly. Pass `version: "new"` on edit endpoints to
      auto-create a draft.
  - name: releases
    x-displayName: Releases
    description: >-
      **Beta** — these endpoints are new and may change in
      backwards-incompatible ways.


      Coordinated multi-entity publishing: publish a set of revisions across
      Feature Flags, Saved Groups, configs, and constants as one all-or-nothing
      operation, validated against the combined end-state instead of each
      in-between state. Requires the `releases` commercial feature.
  - name: organizations
    x-displayName: Organizations
    description: >-
      Organizations are used for multi-org deployments where different teams can
      run their own isolated feature flags and experiments. These endpoints are
      only via a super-admin's Personal Access Token.
  - name: members
    x-displayName: Members
    description: Members are users who have been invited to an organization.
  - name: code-references
    x-displayName: Code References
    description: >-
      Intended for use with our code reference CI utility,
      [`gb-find-code-refs`](https://github.com/growthbook/gb-find-code-refs).
  - name: archetypes
    x-displayName: Archetypes
    description: >-
      Archetypes allow you to simulate the result of targeting rules on pre-set
      user attributes
  - name: queries
    x-displayName: Queries
    description: Retrieve queries used in experiments to calculate results.
  - name: settings
    x-displayName: Settings
    description: Get the organization settings.
  - name: attributes
    x-displayName: Attributes
    description: Used when targeting feature flags and experiments.
  - name: usage
    x-displayName: Usage
    description: Usage information for metrics in experiments.
  - name: meta
    x-displayName: Meta
    description: >-
      Server metadata, including the running build's version and commit for
      version-skew checks.
  - name: Dashboards
    x-displayName: Dashboards
    description: ''
  - name: CustomFields
    x-displayName: Custom Fields
    description: ''
  - name: MetricGroups
    x-displayName: Metric Groups
    description: ''
  - name: Teams
    x-displayName: Teams
    description: ''
  - name: ExperimentTemplates
    x-displayName: Experiment Templates
    description: ''
  - name: AnalyticsExplorations
    x-displayName: Analytics Explorations
    description: ''
  - name: RampScheduleTemplates
    x-displayName: Ramp Schedule Templates
    description: Reusable step configurations for ramp schedules.
  - name: AggregatedFactTable_model
    x-displayName: Aggregated Fact Table
    description: <SchemaDefinition schemaRef="#/components/schemas/AggregatedFactTable" />
  - name: AnalyticsExploration_model
    x-displayName: Analytics Exploration
    description: <SchemaDefinition schemaRef="#/components/schemas/AnalyticsExploration" />
  - name: Archetype_model
    x-displayName: Archetype
    description: <SchemaDefinition schemaRef="#/components/schemas/Archetype" />
  - name: Attribute_model
    x-displayName: Attribute
    description: <SchemaDefinition schemaRef="#/components/schemas/Attribute" />
  - name: CodeRef_model
    x-displayName: Code Ref
    description: <SchemaDefinition schemaRef="#/components/schemas/CodeRef" />
  - name: CustomField_model
    x-displayName: Custom Field
    description: <SchemaDefinition schemaRef="#/components/schemas/CustomField" />
  - name: Dashboard_model
    x-displayName: Dashboard
    description: <SchemaDefinition schemaRef="#/components/schemas/Dashboard" />
  - name: DataSource_model
    x-displayName: Data Source
    description: <SchemaDefinition schemaRef="#/components/schemas/DataSource" />
  - name: Dimension_model
    x-displayName: Dimension
    description: <SchemaDefinition schemaRef="#/components/schemas/Dimension" />
  - name: Environment_model
    x-displayName: Environment
    description: <SchemaDefinition schemaRef="#/components/schemas/Environment" />
  - name: EventUser_model
    x-displayName: Event User
    description: <SchemaDefinition schemaRef="#/components/schemas/EventUser" />
  - name: Experiment_model
    x-displayName: Experiment
    description: <SchemaDefinition schemaRef="#/components/schemas/Experiment" />
  - name: Experiment Rule_model
    x-displayName: Experiment Rule
    description: <SchemaDefinition schemaRef="#/components/schemas/ExperimentRule" />
  - name: ExperimentAnalysisSettings_model
    x-displayName: Experiment Analysis Settings
    description: >-
      <SchemaDefinition
      schemaRef="#/components/schemas/ExperimentAnalysisSettings" />
  - name: ExperimentDecisionFrameworkSettings_model
    x-displayName: Experiment Decision Framework Settings
    description: >-
      <SchemaDefinition
      schemaRef="#/components/schemas/ExperimentDecisionFrameworkSettings" />
  - name: ExperimentMetric_model
    x-displayName: Experiment Metric
    description: <SchemaDefinition schemaRef="#/components/schemas/ExperimentMetric" />
  - name: ExperimentMetricOverrideEntry_model
    x-displayName: Experiment Metric Override Entry
    description: >-
      <SchemaDefinition
      schemaRef="#/components/schemas/ExperimentMetricOverrideEntry" />
  - name: ExperimentResults_model
    x-displayName: Experiment Results
    description: <SchemaDefinition schemaRef="#/components/schemas/ExperimentResults" />
  - name: ExperimentSnapshot_model
    x-displayName: Experiment Snapshot
    description: <SchemaDefinition schemaRef="#/components/schemas/ExperimentSnapshot" />
  - name: ExperimentTemplate_model
    x-displayName: Experiment Template
    description: <SchemaDefinition schemaRef="#/components/schemas/ExperimentTemplate" />
  - name: ExperimentWithEnhancedStatus_model
    x-displayName: Experiment With Enhanced Status
    description: >-
      <SchemaDefinition
      schemaRef="#/components/schemas/ExperimentWithEnhancedStatus" />
  - name: FactMetric_model
    x-displayName: Fact Metric
    description: <SchemaDefinition schemaRef="#/components/schemas/FactMetric" />
  - name: FactTable_model
    x-displayName: Fact Table
    description: <SchemaDefinition schemaRef="#/components/schemas/FactTable" />
  - name: FactTableColumn_model
    x-displayName: Fact Table Column
    description: <SchemaDefinition schemaRef="#/components/schemas/FactTableColumn" />
  - name: FactTableFilter_model
    x-displayName: Fact Table Filter
    description: <SchemaDefinition schemaRef="#/components/schemas/FactTableFilter" />
  - name: FeatureBaseRule_model
    x-displayName: Feature Base Rule
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureBaseRule" />
  - name: FeatureDefinition_model
    x-displayName: Feature Definition
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureDefinition" />
  - name: FeatureEnvironmentV1_model
    x-displayName: Feature Environment V1
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureEnvironmentV1" />
  - name: FeatureEnvironmentV2_model
    x-displayName: Feature Environment V2
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureEnvironmentV2" />
  - name: FeatureExperimentRefRule_model
    x-displayName: Feature Experiment Ref Rule
    description: >-
      <SchemaDefinition
      schemaRef="#/components/schemas/FeatureExperimentRefRule" />
  - name: FeatureExperimentRule_model
    x-displayName: Feature Experiment Rule
    description: >-
      <SchemaDefinition schemaRef="#/components/schemas/FeatureExperimentRule"
      />
  - name: FeatureForceRule_model
    x-displayName: Feature Force Rule
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureForceRule" />
  - name: FeatureRevisionSummary_model
    x-displayName: Feature Revision Summary
    description: >-
      <SchemaDefinition schemaRef="#/components/schemas/FeatureRevisionSummary"
      />
  - name: FeatureRevisionV1_model
    x-displayName: Feature Revision V1
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureRevisionV1" />
  - name: FeatureRevisionV2_model
    x-displayName: Feature Revision V2
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureRevisionV2" />
  - name: FeatureRolloutRule_model
    x-displayName: Feature Rollout Rule
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureRolloutRule" />
  - name: FeatureRuleV1_model
    x-displayName: Feature Rule V1
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureRuleV1" />
  - name: FeatureRuleV2_model
    x-displayName: Feature Rule V2
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureRuleV2" />
  - name: FeatureSafeRolloutRule_model
    x-displayName: Feature Safe Rollout Rule
    description: >-
      <SchemaDefinition schemaRef="#/components/schemas/FeatureSafeRolloutRule"
      />
  - name: FeatureV1_model
    x-displayName: Feature V1
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureV1" />
  - name: FeatureV2_model
    x-displayName: Feature V2
    description: <SchemaDefinition schemaRef="#/components/schemas/FeatureV2" />
  - name: FeatureWithRevisionsV1_model
    x-displayName: Feature With Revisions V1
    description: >-
      <SchemaDefinition schemaRef="#/components/schemas/FeatureWithRevisionsV1"
      />
  - name: FeatureWithRevisionsV2_model
    x-displayName: Feature With Revisions V2
    description: >-
      <SchemaDefinition schemaRef="#/components/schemas/FeatureWithRevisionsV2"
      />
  - name: InformationSchema_model
    x-displayName: Information Schema
    description: <SchemaDefinition schemaRef="#/components/schemas/InformationSchema" />
  - name: InformationSchemaTable_model
    x-displayName: Information Schema Table
    description: >-
      <SchemaDefinition schemaRef="#/components/schemas/InformationSchemaTable"
      />
  - name: LookbackOverride_model
    x-displayName: Lookback Override
    description: <SchemaDefinition schemaRef="#/components/schemas/LookbackOverride" />
  - name: Member_model
    x-displayName: Member
    description: <SchemaDefinition schemaRef="#/components/schemas/Member" />
  - name: Metric_model
    x-displayName: Metric
    description: <SchemaDefinition schemaRef="#/components/schemas/Metric" />
  - name: MetricAnalysis_model
    x-displayName: Metric Analysis
    description: <SchemaDefinition schemaRef="#/components/schemas/MetricAnalysis" />
  - name: MetricGroup_model
    x-displayName: Metric Group
    description: <SchemaDefinition schemaRef="#/components/schemas/MetricGroup" />
  - name: MetricUsage_model
    x-displayName: Metric Usage
    description: <SchemaDefinition schemaRef="#/components/schemas/MetricUsage" />
  - name: Namespace_model
    x-displayName: Namespace
    description: <SchemaDefinition schemaRef="#/components/schemas/Namespace" />
  - name: NamespaceExperimentMember_model
    x-displayName: Namespace Experiment Member
    description: >-
      <SchemaDefinition
      schemaRef="#/components/schemas/NamespaceExperimentMember" />
  - name: Organization_model
    x-displayName: Organization
    description: <SchemaDefinition schemaRef="#/components/schemas/Organization" />
  - name: PaginationFields_model
    x-displayName: Pagination Fields
    description: <SchemaDefinition schemaRef="#/components/schemas/PaginationFields" />
  - name: Project_model
    x-displayName: Project
    description: <SchemaDefinition schemaRef="#/components/schemas/Project" />
  - name: Query_model
    x-displayName: Query
    description: <SchemaDefinition schemaRef="#/components/schemas/Query" />
  - name: RampSchedule_model
    x-displayName: Ramp Schedule
    description: <SchemaDefinition schemaRef="#/components/schemas/RampSchedule" />
  - name: RampScheduleTemplate_model
    x-displayName: Ramp Schedule Template
    description: <SchemaDefinition schemaRef="#/components/schemas/RampScheduleTemplate" />
  - name: Report_model
    x-displayName: Report
    description: <SchemaDefinition schemaRef="#/components/schemas/Report" />
  - name: Safe Rollout Rule_model
    x-displayName: Safe Rollout Rule
    description: <SchemaDefinition schemaRef="#/components/schemas/SafeRolloutRule" />
  - name: SavedGroup_model
    x-displayName: Saved Group
    description: <SchemaDefinition schemaRef="#/components/schemas/SavedGroup" />
  - name: SavedGroupRevision_model
    x-displayName: Saved Group Revision
    description: <SchemaDefinition schemaRef="#/components/schemas/SavedGroupRevision" />
  - name: SavedGroupRevisionActivityLogEntry_model
    x-displayName: Saved Group Revision Activity Log Entry
    description: >-
      <SchemaDefinition
      schemaRef="#/components/schemas/SavedGroupRevisionActivityLogEntry" />
  - name: SavedGroupRevisionReview_model
    x-displayName: Saved Group Revision Review
    description: >-
      <SchemaDefinition
      schemaRef="#/components/schemas/SavedGroupRevisionReview" />
  - name: ScheduleRule_model
    x-displayName: Schedule Rule
    description: <SchemaDefinition schemaRef="#/components/schemas/ScheduleRule" />
  - name: SdkConnection_model
    x-displayName: Sdk Connection
    description: <SchemaDefinition schemaRef="#/components/schemas/SdkConnection" />
  - name: Segment_model
    x-displayName: Segment
    description: <SchemaDefinition schemaRef="#/components/schemas/Segment" />
  - name: Settings_model
    x-displayName: Settings
    description: <SchemaDefinition schemaRef="#/components/schemas/Settings" />
  - name: Targeting Rule_model
    x-displayName: Targeting Rule
    description: <SchemaDefinition schemaRef="#/components/schemas/TargetingRule" />
  - name: Team_model
    x-displayName: Team
    description: <SchemaDefinition schemaRef="#/components/schemas/Team" />
  - name: VisualChange_model
    x-displayName: Visual Change
    description: <SchemaDefinition schemaRef="#/components/schemas/VisualChange" />
  - name: VisualChangeset_model
    x-displayName: Visual Changeset
    description: <SchemaDefinition schemaRef="#/components/schemas/VisualChangeset" />
paths:
  /v1/metrics/{id}:
    put:
      tags:
        - metrics
      summary: Update a metric
      operationId: putMetric
      parameters:
        - $ref: '#/components/parameters/id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                managedBy:
                  description: >-
                    Where this metric must be managed from. If not set (empty
                    string), it can be managed from anywhere. If set to "api",
                    it can be managed via the API only. Please note that we have
                    deprecated support for setting the managedBy property to
                    "admin". Your existing Legacy Metrics with this value will
                    continue to work, but we suggest migrating to Fact Metrics
                    instead.
                  type: string
                  enum:
                    - ''
                    - api
                    - admin
                owner:
                  description: >-
                    The userId or email address of the owner. If an email
                    address is provided, it will be used to look up the userId
                    of the matching organization member. If an ID is provided,
                    it will be validated as existing in the organization.
                  type: string
                name:
                  description: Name of the metric
                  type: string
                description:
                  description: Description of the metric
                  type: string
                  maxLength: 10000
                type:
                  description: >-
                    Type of metric. See [Metrics
                    documentation](/app/metrics/legacy)
                  type: string
                  enum:
                    - binomial
                    - count
                    - duration
                    - revenue
                tags:
                  description: List of tags
                  type: array
                  items:
                    type: string
                projects:
                  description: List of project IDs for projects that can access this metric
                  type: array
                  items:
                    type: string
                archived:
                  type: boolean
                behavior:
                  type: object
                  properties:
                    goal:
                      type: string
                      enum:
                        - increase
                        - decrease
                    cappingSettings:
                      description: Controls how outliers are handled
                      type: object
                      properties:
                        type:
                          anyOf:
                            - type: string
                              enum:
                                - none
                                - absolute
                                - percentile
                            - type: 'null'
                        value:
                          description: >-
                            When type is absolute, this is the absolute value.
                            When type is percentile, this is the percentile
                            value (from 0.0 to 1.0).
                          type: number
                        ignoreZeros:
                          description: >-
                            If true and capping is `percentile`, zeros will be
                            ignored when calculating the percentile.
                          type: boolean
                      required:
                        - type
                      additionalProperties: false
                    cap:
                      deprecated: true
                      description: >-
                        (deprecated, use cappingSettings instead) This should be
                        non-negative
                      type: number
                      minimum: 0
                    capping:
                      deprecated: true
                      description: >-
                        (deprecated, use cappingSettings instead) Used in
                        conjunction with `capValue` to set the capping
                        (winsorization). Do not specify or set to null for no
                        capping. "absolute" will cap user values at the
                        `capValue` if it is greater than 0. "percentile" will
                        cap user values at the percentile of user values in an
                        experiment using the `capValue` for the percentile, if
                        greater than 0. <br/>  If `behavior.capping` is
                        non-null, you must specify `behavior.capValue`.
                      anyOf:
                        - type: string
                          enum:
                            - absolute
                            - percentile
                        - type: 'null'
                    capValue:
                      deprecated: true
                      description: >-
                        (deprecated, use cappingSettings instead) This should be
                        non-negative. <br/> Must specify `behavior.capping` when
                        setting `behavior.capValue`.
                      type: number
                      minimum: 0
                    windowSettings:
                      description: Controls the conversion window for the metric
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - none
                            - conversion
                            - lookback
                        delayHours:
                          deprecated: true
                          description: >-
                            Wait this many hours after experiment exposure
                            before counting conversions. Ignored if delayValue
                            is set.
                          type: number
                        delayValue:
                          description: >-
                            Wait this long after experiment exposure before
                            counting conversions.
                          type: number
                        delayUnit:
                          description: Default `hours`.
                          type: string
                          enum:
                            - minutes
                            - hours
                            - days
                            - weeks
                        windowValue:
                          type: number
                        windowUnit:
                          type: string
                          enum:
                            - minutes
                            - hours
                            - days
                            - weeks
                      required:
                        - type
                      additionalProperties: false
                    conversionWindowStart:
                      deprecated: true
                      description: >-
                        The start of a Conversion Window relative to the
                        exposure date, in hours. This is equivalent to the
                        [Conversion
                        Delay](/app/metrics/legacy/#conversion-delay). <br/>
                        Must specify both `behavior.conversionWindowStart` and
                        `behavior.conversionWindowEnd` or neither.
                      type: number
                    conversionWindowEnd:
                      deprecated: true
                      description: >-
                        The end of a [Conversion
                        Window](/app/metrics/legacy/#conversion-window) relative
                        to the exposure date, in hours. This is equivalent to
                        the [Conversion
                        Delay](/app/metrics/legacy/#conversion-delay) +
                        Conversion Window Hours settings in the UI. In other
                        words, if you want a 48 hour window starting after 24
                        hours, you would set conversionWindowStart to 24 and
                        conversionWindowEnd to 72 (24+48). <br/> Must specify
                        both `behavior.conversionWindowStart` and
                        `behavior.conversionWindowEnd` or neither.
                      type: number
                    priorSettings:
                      description: >-
                        Controls the bayesian prior for the metric. If omitted,
                        organization defaults will be used.
                      type: object
                      properties:
                        override:
                          description: >-
                            If false, the organization default settings will be
                            used instead of the other settings in this object
                          type: boolean
                        proper:
                          description: >-
                            If true, the `mean` and `stddev` will be used,
                            otherwise we will use an improper flat prior.
                          type: boolean
                        mean:
                          description: >-
                            The mean of the prior distribution of relative
                            effects in proportion terms (e.g. 0.01 is 1%)
                          type: number
                        stddev:
                          description: >-
                            Must be > 0. The standard deviation of the prior
                            distribution of relative effects in proportion
                            terms.
                          type: number
                          exclusiveMinimum: 0
                      required:
                        - override
                        - proper
                        - mean
                        - stddev
                      additionalProperties: false
                    riskThresholdSuccess:
                      deprecated: true
                      description: >-
                        No longer used. Threshold for Risk to be considered low
                        enough, as a proportion (e.g. put 0.0025 for 0.25%).
                        <br/> Must be a non-negative number and must not be
                        higher than `riskThresholdDanger`.
                      type: number
                      minimum: 0
                    riskThresholdDanger:
                      deprecated: true
                      description: >-
                        No longer used. Threshold for Risk to be considered too
                        high, as a proportion (e.g. put 0.0125 for 1.25%). <br/>
                        Must be a non-negative number.
                      type: number
                      minimum: 0
                    minPercentChange:
                      description: >-
                        Minimum percent change to consider uplift significant,
                        as a proportion (e.g. put 0.005 for 0.5%)
                      type: number
                      minimum: 0
                    maxPercentChange:
                      description: >-
                        Maximum percent change to consider uplift significant,
                        as a proportion (e.g. put 0.5 for 50%)
                      type: number
                      minimum: 0
                    minSampleSize:
                      type: number
                      minimum: 0
                    targetMDE:
                      description: >-
                        The percentage change that you want to reliably detect
                        before ending an experiment, as a proportion (e.g. put
                        0.1 for 10%). This is used to estimate the "Days Left"
                        for running experiments.
                      type: number
                      minimum: 0
                  additionalProperties: false
                sql:
                  description: >-
                    Preferred way to define SQL. Only one of `sql`, `sqlBuilder`
                    or `mixpanel` allowed.
                  type: object
                  properties:
                    identifierTypes:
                      type: array
                      items:
                        type: string
                    conversionSQL:
                      type: string
                    userAggregationSQL:
                      description: >-
                        Custom user level aggregation for your metric (default:
                        `SUM(value)`)
                      type: string
                    denominatorMetricId:
                      description: >-
                        The metric ID for a [denominator metric for funnel and
                        ratio
                        metrics](/app/metrics/legacy/#denominator-ratio--funnel-metrics)
                      type: string
                  additionalProperties: false
                sqlBuilder:
                  description: >-
                    An alternative way to specify a SQL metric, rather than a
                    full query. Using `sql` is preferred to `sqlBuilder`. Only
                    one of `sql`, `sqlBuilder` or `mixpanel` allowed
                  type: object
                  properties:
                    identifierTypeColumns:
                      type: array
                      items:
                        type: object
                        properties:
                          identifierType:
                            type: string
                          columnName:
                            type: string
                        required:
                          - identifierType
                          - columnName
                        additionalProperties: false
                    tableName:
                      type: string
                    valueColumnName:
                      type: string
                    timestampColumnName:
                      type: string
                    conditions:
                      type: array
                      items:
                        type: object
                        properties:
                          column:
                            type: string
                          operator:
                            type: string
                          value:
                            type: string
                        required:
                          - column
                          - operator
                          - value
                        additionalProperties: false
                  additionalProperties: false
                mixpanel:
                  description: >-
                    Only use for MixPanel (non-SQL) Data Sources. Only one of
                    `sql`, `sqlBuilder` or `mixpanel` allowed.
                  type: object
                  properties:
                    eventName:
                      type: string
                    eventValue:
                      type: string
                    userAggregation:
                      type: string
                    conditions:
                      type: array
                      items:
                        type: object
                        properties:
                          property:
                            type: string
                          operator:
                            type: string
                          value:
                            type: string
                        required:
                          - property
                          - operator
                          - value
                        additionalProperties: false
                  additionalProperties: false
              additionalProperties: false
      responses:
        '200':
          description: Resource updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  updatedId:
                    type: string
                required:
                  - updatedId
                additionalProperties: false
      x-codeSamples:
        - lang: cURL
          source: |-
            curl -X PUT 'https://api.growthbook.io/api/v1/metrics/abc123' \
              -H 'Authorization: Bearer YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"name":"net revenue","description":"revenue minus lacroix spend"}'
components:
  parameters:
    id:
      name: id
      in: path
      required: true
      description: The id of the requested resource
      schema:
        description: The id of the requested resource
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        If using Bearer auth, pass the Secret Key as the token:

        ```bash

        curl https://api.growthbook.io/api/v1/features   -H "Authorization:
        Bearer secret_abc123DEF456"

        ```
    basicAuth:
      type: http
      scheme: basic
      description: >
        If using HTTP Basic auth, pass the Secret Key as the username and leave
        the password blank:

        ```bash

        curl https://api.growthbook.io/api/v1/features   -u secret_abc123DEF456:

        # The ":" at the end stops curl from asking for a password

        ```

````