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



## OpenAPI

````yaml openapi.yaml POST /v1/experiments/{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/experiments/{id}:
    post:
      tags:
        - experiments
      summary: Update a single experiment
      operationId: updateExperiment
      parameters:
        - $ref: '#/components/parameters/id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                datasourceId:
                  description: >-
                    Can only be set if existing experiment does not have a
                    datasource
                  type: string
                assignmentQueryId:
                  type: string
                trackingKey:
                  type: string
                bypassDuplicateKeyCheck:
                  description: >-
                    If true, allow updating the tracking key even if another
                    experiment with the same tracking key already exist. This is
                    ignored if the organization requires unique tracking keys as
                    a rule.
                  type: boolean
                name:
                  description: Name of the experiment
                  type: string
                type:
                  type: string
                  enum:
                    - standard
                    - multi-armed-bandit
                project:
                  description: Project ID which the experiment belongs to
                  type: string
                hypothesis:
                  description: Hypothesis of the experiment
                  type: string
                description:
                  description: Description of the experiment
                  type: string
                  maxLength: 10000
                tags:
                  type: array
                  items:
                    type: string
                metrics:
                  type: array
                  items:
                    type: string
                secondaryMetrics:
                  type: array
                  items:
                    type: string
                guardrailMetrics:
                  type: array
                  items:
                    type: string
                activationMetric:
                  description: Users must convert on this metric before being included
                  type: string
                segmentId:
                  description: Only users in this segment will be included
                  type: string
                queryFilter:
                  description: WHERE clause to add to the default experiment query
                  type: string
                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
                archived:
                  type: boolean
                status:
                  type: string
                  enum:
                    - draft
                    - running
                    - stopped
                autoRefresh:
                  type: boolean
                hashAttribute:
                  type: string
                fallbackAttribute:
                  type: string
                hashVersion:
                  anyOf:
                    - type: number
                      const: 1
                    - type: number
                      const: 2
                disableStickyBucketing:
                  type: boolean
                bucketVersion:
                  type: number
                minBucketVersion:
                  type: number
                results:
                  description: >-
                    The result status of the experiment. Maps to
                    resultSummary.status in the GET response.
                  type: string
                  enum:
                    - dnf
                    - won
                    - lost
                    - inconclusive
                winner:
                  description: >-
                    The index of the winning variation (0-indexed). Maps to
                    resultSummary.winner (variation ID) in the GET response.
                  type: number
                analysis:
                  description: >-
                    Analysis summary or conclusions for the experiment. Maps to
                    resultSummary.conclusions in the GET response.
                  type: string
                releasedVariationId:
                  description: >-
                    The ID of the released variation. Maps to
                    resultSummary.releasedVariationId in the GET response.
                  type: string
                excludeFromPayload:
                  description: >-
                    If true, the experiment is excluded from the SDK payload.
                    Maps to resultSummary.excludeFromPayload in the GET
                    response.
                  type: boolean
                inProgressConversions:
                  type: string
                  enum:
                    - loose
                    - strict
                attributionModel:
                  description: >-
                    Setting attribution model to `"experimentDuration"` is the
                    same as selecting "Ignore Conversion Windows" for the
                    Conversion Window Override. Setting it to
                    `"lookbackOverride"` requires a `lookbackOverride` object to
                    be provided.
                  type: string
                  enum:
                    - firstExposure
                    - experimentDuration
                    - lookbackOverride
                lookbackOverride:
                  description: >-
                    Controls the lookback override for the experiment. For type
                    "window", value must be a non-negative number and valueUnit
                    is required.
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - date
                        - window
                    value:
                      description: >-
                        For "window" type - non-negative numeric value (e.g. 7
                        for 7 days). For "date" type a date string.
                      anyOf:
                        - description: >-
                            For "window" type - non-negative numeric value (e.g.
                            7 for 7 days). For "date" type a date string.
                          type: number
                        - format: date-time
                          description: >-
                            For "window" type - non-negative numeric value (e.g.
                            7 for 7 days). For "date" type a date string.
                          type: string
                    valueUnit:
                      description: Used when type is "window". Defaults to "days".
                      type: string
                      enum:
                        - minutes
                        - hours
                        - days
                        - weeks
                  required:
                    - type
                    - value
                  additionalProperties: false
                statsEngine:
                  type: string
                  enum:
                    - bayesian
                    - frequentist
                variations:
                  minItems: 2
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      key:
                        type: string
                      name:
                        type: string
                      description:
                        type: string
                        maxLength: 10000
                      screenshots:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            width:
                              type: number
                            height:
                              type: number
                            description:
                              type: string
                              maxLength: 10000
                          required:
                            - path
                          additionalProperties: false
                    required:
                      - key
                      - name
                    additionalProperties: false
                phases:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      dateStarted:
                        format: date-time
                        type: string
                      dateEnded:
                        format: date-time
                        type: string
                      reasonForStopping:
                        type: string
                      seed:
                        type: string
                      coverage:
                        type: number
                      namespace:
                        type: object
                        properties:
                          namespaceId:
                            type: string
                          range:
                            minItems: 2
                            maxItems: 2
                            type: array
                            items:
                              type: number
                          enabled:
                            type: boolean
                        required:
                          - namespaceId
                          - range
                        additionalProperties: false
                      prerequisites:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              description: Feature ID
                              type: string
                            condition:
                              type: string
                          required:
                            - id
                            - condition
                          additionalProperties: false
                      reason:
                        type: string
                      condition:
                        type: string
                      savedGroupTargeting:
                        type: array
                        items:
                          type: object
                          properties:
                            matchType:
                              type: string
                              enum:
                                - all
                                - any
                                - none
                            savedGroups:
                              type: array
                              items:
                                type: string
                          required:
                            - matchType
                            - savedGroups
                          additionalProperties: false
                      variationWeights:
                        type: array
                        items:
                          type: number
                    required:
                      - name
                      - dateStarted
                    additionalProperties: false
                regressionAdjustmentEnabled:
                  description: >-
                    Controls whether regression adjustment (CUPED) is enabled
                    for experiment analyses
                  type: boolean
                sequentialTestingEnabled:
                  description: Only applicable to frequentist analyses
                  type: boolean
                sequentialTestingTuningParameter:
                  type: number
                shareLevel:
                  type: string
                  enum:
                    - public
                    - organization
                banditScheduleValue:
                  type: number
                banditScheduleUnit:
                  type: string
                  enum:
                    - days
                    - hours
                banditBurnInValue:
                  type: number
                banditBurnInUnit:
                  type: string
                  enum:
                    - days
                    - hours
                banditConversionWindowValue:
                  type: number
                banditConversionWindowUnit:
                  type: string
                  enum:
                    - days
                    - hours
                postStratificationEnabled:
                  description: When null, the organization default is used.
                  anyOf:
                    - description: When null, the organization default is used.
                      type: boolean
                    - description: When null, the organization default is used.
                      type: 'null'
                decisionFrameworkSettings:
                  description: >-
                    Controls the decision framework and metric overrides for the
                    experiment. Replaces the entire stored object on update
                    (does not patch individual fields).
                  type: object
                  properties:
                    decisionCriteriaId:
                      type: string
                    decisionFrameworkMetricOverrides:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            description: ID of the metric to override settings for.
                            type: string
                          targetMDE:
                            description: >-
                              The target relative MDE to use for the metric,
                              expressed as proportions (e.g. use 0.1 for 10%).
                              Must be greater than 0.
                            type: number
                            exclusiveMinimum: 0
                        required:
                          - id
                        additionalProperties: false
                  additionalProperties: false
                metricOverrides:
                  description: >-
                    Per-metric analysis overrides for this experiment. Replaces
                    the entire stored array (does not patch individual entries).
                  type: array
                  items:
                    description: >-
                      Per-metric analysis overrides stored on the experiment
                      (matches internal metricOverrides).
                    type: object
                    properties:
                      id:
                        description: ID of the metric to override settings for.
                        type: string
                      windowType:
                        type: string
                        enum:
                          - conversion
                          - lookback
                          - ''
                      windowHours:
                        type: number
                      delayHours:
                        type: number
                      properPriorOverride:
                        description: >-
                          Must be true for the override to take effect. If true,
                          the other proper prior settings in this object will be
                          used if present.
                        type: boolean
                      properPriorEnabled:
                        type: boolean
                      properPriorMean:
                        type: number
                      properPriorStdDev:
                        type: number
                        exclusiveMinimum: 0
                      regressionAdjustmentOverride:
                        description: >-
                          Must be true for the override to take effect. If true,
                          the other regression adjustment settings in this
                          object will be used if present.
                        type: boolean
                      regressionAdjustmentEnabled:
                        type: boolean
                      regressionAdjustmentDays:
                        type: number
                    required:
                      - id
                    additionalProperties: false
                defaultDashboardId:
                  description: ID of the default dashboard for this experiment.
                  type: string
                customFields:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
                customMetricSlices:
                  description: >-
                    Custom slices that apply to ALL applicable metrics in the
                    experiment
                  type: array
                  items:
                    type: object
                    properties:
                      slices:
                        type: array
                        items:
                          type: object
                          properties:
                            column:
                              type: string
                            levels:
                              type: array
                              items:
                                type: string
                          required:
                            - column
                            - levels
                          additionalProperties: false
                    required:
                      - slices
                    additionalProperties: false
                statusUpdateSchedule:
                  anyOf:
                    - description: >-
                        Schedule a future start for a draft experiment. Set to
                        `null` to remove the schedule. Provide `{ startAt }` to
                        set or update it. Only `startAt` is currently supported.
                      type: object
                      properties:
                        startAt:
                          format: date-time
                          description: >-
                            ISO datetime when the experiment should start. Must
                            be in the future. Setting or clearing this field
                            invalidates any existing staged start
                            (`nextScheduledStatusUpdate`); call POST
                            /experiments/{id}/start to stage the new schedule.
                          type: string
                      required:
                        - startAt
                      additionalProperties: false
                    - type: 'null'
                precomputedUnitDimensionIds:
                  maxItems: 3
                  type: array
                  items:
                    type: string
              additionalProperties: false
      responses:
        '200':
          description: Resource created
          content:
            application/json:
              schema:
                type: object
                properties:
                  experiment:
                    $ref: '#/components/schemas/Experiment'
                required:
                  - experiment
                additionalProperties: false
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                description: One or more linked feature drafts could not be published
                properties:
                  message:
                    type: string
                  code:
                    type: string
                    enum:
                      - pending_draft_publish_failed
                  details:
                    $ref: >-
                      #/components/schemas/ApiErrorPendingDraftPublishFailedDetails
                required:
                  - message
                  - code
                  - details
      x-codeSamples:
        - lang: cURL
          source: |-
            curl -X POST 'https://api.growthbook.io/api/v1/experiments/{id}' \
              -H 'Authorization: Bearer YOUR_API_KEY'
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
  schemas:
    Experiment:
      type: object
      properties:
        id:
          type: string
        trackingKey:
          type: string
        dateCreated:
          format: date-time
          type: string
        dateUpdated:
          format: date-time
          type: string
        name:
          type: string
        type:
          type: string
          enum:
            - standard
            - multi-armed-bandit
            - holdout
        project:
          type: string
        hypothesis:
          type: string
        description:
          type: string
          maxLength: 10000
        tags:
          type: array
          items:
            type: string
        owner:
          description: The userId of the owner (or raw owner name/email for legacy records)
          type: string
        ownerEmail:
          description: >-
            The email address of the owner, when the owner can be resolved to a
            known user.
          type: string
        archived:
          type: boolean
        status:
          type: string
        autoRefresh:
          type: boolean
        hashAttribute:
          type: string
        fallbackAttribute:
          type: string
        hashVersion:
          anyOf:
            - type: number
              const: 1
            - type: number
              const: 2
        disableStickyBucketing:
          type: boolean
        bucketVersion:
          type: number
        minBucketVersion:
          type: number
        variations:
          type: array
          items:
            type: object
            properties:
              variationId:
                type: string
              key:
                type: string
              name:
                type: string
              description:
                type: string
                maxLength: 10000
              screenshots:
                type: array
                items:
                  type: string
            required:
              - variationId
              - key
              - name
              - description
              - screenshots
            additionalProperties: false
        phases:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              dateStarted:
                type: string
              dateEnded:
                type: string
              reasonForStopping:
                type: string
              seed:
                type: string
              coverage:
                type: number
              trafficSplit:
                type: array
                items:
                  type: object
                  properties:
                    variationId:
                      type: string
                    weight:
                      type: number
                  required:
                    - variationId
                    - weight
                  additionalProperties: false
              namespace:
                type: object
                properties:
                  namespaceId:
                    type: string
                  enabled:
                    type: boolean
                  range:
                    minItems: 2
                    maxItems: 2
                    type: array
                    items:
                      type: number
                  ranges:
                    type: array
                    items:
                      type: array
                      prefixItems:
                        - type: number
                        - type: number
                required:
                  - namespaceId
                additionalProperties: false
              targetingCondition:
                type: string
              prerequisites:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    condition:
                      type: string
                  required:
                    - id
                    - condition
                  additionalProperties: false
              savedGroupTargeting:
                type: array
                items:
                  type: object
                  properties:
                    matchType:
                      type: string
                      enum:
                        - all
                        - any
                        - none
                    savedGroups:
                      type: array
                      items:
                        type: string
                  required:
                    - matchType
                    - savedGroups
                  additionalProperties: false
            required:
              - name
              - dateStarted
              - dateEnded
              - reasonForStopping
              - seed
              - coverage
              - trafficSplit
              - targetingCondition
            additionalProperties: false
        settings:
          $ref: '#/components/schemas/ExperimentAnalysisSettings'
        resultSummary:
          type: object
          properties:
            status:
              type: string
            winner:
              type: string
            conclusions:
              type: string
            releasedVariationId:
              type: string
            excludeFromPayload:
              type: boolean
          required:
            - status
            - winner
            - conclusions
            - releasedVariationId
            - excludeFromPayload
          additionalProperties: false
        shareLevel:
          type: string
          enum:
            - public
            - organization
        publicUrl:
          type: string
        banditScheduleValue:
          type: number
        banditScheduleUnit:
          type: string
          enum:
            - days
            - hours
        banditBurnInValue:
          type: number
        banditBurnInUnit:
          type: string
          enum:
            - days
            - hours
        banditConversionWindowValue:
          type: number
        banditConversionWindowUnit:
          type: string
          enum:
            - days
            - hours
        linkedFeatures:
          type: array
          items:
            type: string
        hasVisualChangesets:
          type: boolean
        hasURLRedirects:
          type: boolean
        customFields:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        customMetricSlices:
          description: Custom slices that apply to ALL applicable metrics in the experiment
          type: array
          items:
            type: object
            properties:
              slices:
                type: array
                items:
                  type: object
                  properties:
                    column:
                      type: string
                    levels:
                      type: array
                      items:
                        type: string
                  required:
                    - column
                    - levels
                  additionalProperties: false
            required:
              - slices
            additionalProperties: false
        precomputedUnitDimensionIds:
          maxItems: 3
          type: array
          items:
            type: string
        defaultDashboardId:
          description: ID of the default dashboard for this experiment.
          type: string
        templateId:
          type: string
        statusUpdateSchedule:
          anyOf:
            - description: >-
                Schedule a future start for a draft experiment. Only `startAt`
                is currently supported.
              type: object
              properties:
                startAt:
                  format: date-time
                  description: >-
                    ISO datetime when the experiment should start. Must be in
                    the future. Setting or clearing this field invalidates any
                    existing staged start (`nextScheduledStatusUpdate`); call
                    POST /experiments/{id}/start to stage the new schedule.
                  type: string
              required:
                - startAt
              additionalProperties: false
            - type: 'null'
        nextScheduledStatusUpdate:
          anyOf:
            - type: object
              properties:
                type:
                  type: string
                  const: start
                date:
                  format: date-time
                  type: string
              required:
                - type
                - date
              additionalProperties: false
            - type: 'null'
      required:
        - id
        - trackingKey
        - dateCreated
        - dateUpdated
        - name
        - type
        - project
        - hypothesis
        - description
        - tags
        - owner
        - archived
        - status
        - autoRefresh
        - hashAttribute
        - hashVersion
        - variations
        - phases
        - settings
      additionalProperties: false
    ApiErrorPendingDraftPublishFailedDetails:
      type: object
      properties:
        failedFeatureDrafts:
          type: array
          items:
            type: object
            properties:
              featureId:
                type: string
              revisionVersion:
                type: number
              reason:
                type: string
                enum:
                  - merge-conflict
                  - needs-rebase
                  - needs-approval
                  - publish-error
            required:
              - featureId
              - revisionVersion
              - reason
            additionalProperties: false
      required:
        - failedFeatureDrafts
      additionalProperties: false
    ExperimentAnalysisSettings:
      type: object
      properties:
        datasourceId:
          type: string
        assignmentQueryId:
          type: string
        experimentId:
          type: string
        segmentId:
          type: string
        queryFilter:
          type: string
        inProgressConversions:
          type: string
          enum:
            - include
            - exclude
        attributionModel:
          description: >-
            Setting attribution model to `"experimentDuration"` is the same as
            selecting "Ignore Conversion Windows" for the Conversion Window
            Override. Setting it to `"lookbackOverride"` requires a
            `lookbackOverride` object to be provided.
          type: string
          enum:
            - firstExposure
            - experimentDuration
            - lookbackOverride
        lookbackOverride:
          $ref: '#/components/schemas/LookbackOverride'
        statsEngine:
          type: string
          enum:
            - bayesian
            - frequentist
        regressionAdjustmentEnabled:
          type: boolean
        sequentialTestingEnabled:
          type: boolean
        sequentialTestingTuningParameter:
          type: number
        postStratificationEnabled:
          description: When null, the organization default is used.
          anyOf:
            - description: When null, the organization default is used.
              type: boolean
            - description: When null, the organization default is used.
              type: 'null'
        decisionFrameworkSettings:
          $ref: '#/components/schemas/ExperimentDecisionFrameworkSettings'
        metricOverrides:
          description: >-
            Per-metric analysis overrides; also reflected in
            goals/secondaryMetrics/guardrails overrides when applicable. On
            create/update, this replaces the entire stored array (it does not
            patch individual entries).
          type: array
          items:
            $ref: '#/components/schemas/ExperimentMetricOverrideEntry'
        goals:
          type: array
          items:
            $ref: '#/components/schemas/ExperimentMetric'
        secondaryMetrics:
          type: array
          items:
            $ref: '#/components/schemas/ExperimentMetric'
        guardrails:
          type: array
          items:
            $ref: '#/components/schemas/ExperimentMetric'
        activationMetric:
          $ref: '#/components/schemas/ExperimentMetric'
      required:
        - datasourceId
        - assignmentQueryId
        - experimentId
        - segmentId
        - queryFilter
        - inProgressConversions
        - attributionModel
        - statsEngine
        - goals
        - secondaryMetrics
        - guardrails
      additionalProperties: false
    LookbackOverride:
      description: >-
        Controls the lookback override for the experiment. For type "window",
        value must be a non-negative number and valueUnit is required.
      type: object
      properties:
        type:
          type: string
          enum:
            - date
            - window
        value:
          description: >-
            For "window" type - non-negative numeric value (e.g. 7 for 7 days).
            For "date" type a date string.
          anyOf:
            - description: >-
                For "window" type - non-negative numeric value (e.g. 7 for 7
                days). For "date" type a date string.
              type: number
            - format: date-time
              description: >-
                For "window" type - non-negative numeric value (e.g. 7 for 7
                days). For "date" type a date string.
              type: string
        valueUnit:
          description: Used when type is "window". Defaults to "days".
          type: string
          enum:
            - minutes
            - hours
            - days
            - weeks
      required:
        - type
        - value
      additionalProperties: false
    ExperimentDecisionFrameworkSettings:
      description: >-
        Controls the decision framework and metric overrides for the experiment.
        Replaces the entire stored object on update (does not patch individual
        fields).
      type: object
      properties:
        decisionCriteriaId:
          type: string
        decisionFrameworkMetricOverrides:
          type: array
          items:
            type: object
            properties:
              id:
                description: ID of the metric to override settings for.
                type: string
              targetMDE:
                description: >-
                  The target relative MDE to use for the metric, expressed as
                  proportions (e.g. use 0.1 for 10%). Must be greater than 0.
                type: number
                exclusiveMinimum: 0
            required:
              - id
            additionalProperties: false
      additionalProperties: false
    ExperimentMetricOverrideEntry:
      description: >-
        Per-metric analysis overrides stored on the experiment (matches internal
        metricOverrides).
      type: object
      properties:
        id:
          description: ID of the metric to override settings for.
          type: string
        windowType:
          type: string
          enum:
            - conversion
            - lookback
            - ''
        windowHours:
          type: number
        delayHours:
          type: number
        properPriorOverride:
          description: >-
            Must be true for the override to take effect. If true, the other
            proper prior settings in this object will be used if present.
          type: boolean
        properPriorEnabled:
          type: boolean
        properPriorMean:
          type: number
        properPriorStdDev:
          type: number
        regressionAdjustmentOverride:
          description: >-
            Must be true for the override to take effect. If true, the other
            regression adjustment settings in this object will be used if
            present.
          type: boolean
        regressionAdjustmentEnabled:
          type: boolean
        regressionAdjustmentDays:
          type: number
      required:
        - id
      additionalProperties: false
    ExperimentMetric:
      type: object
      properties:
        metricId:
          type: string
        overrides:
          type: object
          properties:
            delayHours:
              type: number
            windowHours:
              type: number
            window:
              type: string
              enum:
                - conversion
                - lookback
                - ''
            winRiskThreshold:
              deprecated: true
              type: number
            loseRiskThreshold:
              deprecated: true
              type: number
            properPriorOverride:
              type: boolean
            properPriorEnabled:
              type: boolean
            properPriorMean:
              type: number
            properPriorStdDev:
              type: number
            regressionAdjustmentOverride:
              type: boolean
            regressionAdjustmentEnabled:
              type: boolean
            regressionAdjustmentDays:
              type: number
          additionalProperties: false
      required:
        - metricId
        - overrides
      additionalProperties: false
  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

        ```

````