Skip to main content

GrowthBook REST API (1.0.0)

Download OpenAPI specification:Download

GrowthBook offers a full REST API for interacting with the GrowthBook application. This is currently in beta as we add more authenticated API routes and features.

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. For self-hosted deployments, it is the same as your API_HOST environment variable (defaults to http://localhost:3100). The rest of these docs will assume you are using GrowthBook Cloud.

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:

curl https://api.growthbook.io/api/v1 \
  -u secret_abc123DEF456:
# The ":" at the end stops curl from asking for a password

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

curl https://api.growthbook.io/api/v1 \
-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
  • 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

Projects

Projects are used to organize your feature flags and experiments

Get all projects

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "projects": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Create a single project

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
name
required
string
description
string
object

Project settings.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "project": {
    }
}

Get a single project

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/projects/prj_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "project": {
    }
}

Edit a single project

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
name
string

Project name.

description
string

Project description.

object

Project settings.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "project": {
    }
}

Deletes a single project

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/projects/prj__123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "deletedId": "prj__123abc"
}

Environments

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.

Get the organization's environments

Authorizations:
bearerAuthbasicAuth

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "environments": [
    ]
}

Create a new environment

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
id
required
string

The ID of the new environment

description
string

The description of the new environment

toggleOnList
bool

Show toggle on feature list

defaultState
bool

Default state for new features

projects
Array of strings

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "description": "string",
  • "toggleOnList": null,
  • "defaultState": null,
  • "projects": [
    ]
}

Response samples

Content type
application/json
{
  • "environment": {
    }
}

Update an environment

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
description
string

The description of the new environment

toggleOnList
boolean

Show toggle on feature list

defaultState
boolean

Default state for new features

projects
Array of strings

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "toggleOnList": true,
  • "defaultState": true,
  • "projects": [
    ]
}

Response samples

Content type
application/json
{
  • "environment": {
    }
}

Deletes a single environment

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/enviromnents/env-id \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "deletedId": "string"
}

Feature Flags

Control your feature flags programatically

Get all features

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

projectId
string

Filter by project id

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "features": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Create a single feature

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
id
required
string non-empty

A unique key name for the feature. Feature keys can only include letters, numbers, hyphens, and underscores.

archived
boolean
description
string

Description of the feature

owner
required
string

Email of the person who owns this experiment

project
string

An associated project ID

valueType
required
string
Enum: "boolean" "string" "number" "json"

The data type of the feature payload. Boolean by default.

defaultValue
required
string

Default value when feature is enabled. Type must match valueType.

tags
Array of strings

List of associated tags

object

A dictionary of environments that are enabled for this feature. Keys supply the names of environments. Environments belong to organization and are not specified will be disabled by default.

jsonSchema
string

Use JSON schema to validate the payload of a JSON-type feature value (enterprise only).

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "archived": true,
  • "description": "string",
  • "owner": "string",
  • "project": "string",
  • "valueType": "boolean",
  • "defaultValue": "string",
  • "tags": [
    ],
  • "environments": {
    },
  • "jsonSchema": "string"
}

Response samples

Content type
application/json
{
  • "feature": {
    }
}

Get a single feature

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "feature": {
    }
}

Partially update a feature

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
description
string

Description of the feature

archived
boolean
project
string

An associated project ID

owner
string
defaultValue
string
tags
Array of strings

List of associated tags. Will override tags completely with submitted list

object
jsonSchema
string

Use JSON schema to validate the payload of a JSON-type feature value (enterprise only).

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "archived": true,
  • "project": "string",
  • "owner": "string",
  • "defaultValue": "string",
  • "tags": [
    ],
  • "environments": {
    },
  • "jsonSchema": "string"
}

Response samples

Content type
application/json
{
  • "feature": {
    }
}

Toggle a feature in one or more environments

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
reason
string
required
object

Responses

Request samples

Content type
application/json
{
  • "reason": "string",
  • "environments": {
    }
}

Response samples

Content type
application/json
{
  • "feature": {
    }
}

Get list of feature keys

Authorizations:
bearerAuthbasicAuth
query Parameters
projectId
string

Filter by project id

Responses

Request samples

curl https://api.growthbook.io/api/v1/feature-keys?projectId=prj_5l652 \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
[
  • "string"
]

Data Sources

How GrowthBook connects and queries your data

Get all data sources

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

projectId
string

Filter by project id

Responses

Request samples

curl https://api.growthbook.io/api/v1/data-sources \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "dataSources": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Get a single data source

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/data-sources/ds_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "dataSource": {
    }
}

Metrics

Metrics used as goals and guardrails for experiments

Get all metrics

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

projectId
string

Filter by project id

datasourceId
string

Filter by Data Source

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "metrics": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Create a single metric

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
datasourceId
required
string

ID for the DataSource

managedBy
string
Enum: "" "api"

Where this metric must be managed from. If not set (empty string), it can be managed from anywhere.

owner
string

Name of the person who owns this metric

name
required
string

Name of the metric

description
string

Description of the metric

type
required
string
Enum: "binomial" "count" "duration" "revenue"

Type of metric. See Metrics documentation

tags
Array of strings

List of tags

projects
Array of strings

List of project IDs for projects that can access this metric

archived
boolean
object
object

Preferred way to define SQL. Only one of sql, sqlBuilder or mixpanel allowed, and at least one must be specified.

object

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, and at least one must be specified.

object

Only use for MixPanel (non-SQL) Data Sources. Only one of sql, sqlBuilder or mixpanel allowed, and at least one must be specified.

Responses

Request samples

Content type
application/json
{
  • "datasourceId": "string",
  • "managedBy": "",
  • "owner": "string",
  • "name": "string",
  • "description": "string",
  • "type": "binomial",
  • "tags": [
    ],
  • "projects": [
    ],
  • "archived": true,
  • "behavior": {
    },
  • "sql": {
    },
  • "sqlBuilder": {
    },
  • "mixpanel": {
    }
}

Response samples

Content type
application/json
{
  • "metric": {
    }
}

Get a single metric

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/metrics/met_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "metric": {
    }
}

Update a metric

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
managedBy
string
Enum: "" "api"

Where this metric must be managed from. If not set (empty string), it can be managed from anywhere.

owner
string

Name of the person who owns this metric

name
string

Name of the metric

description
string

Description of the metric

type
string
Enum: "binomial" "count" "duration" "revenue"

Type of metric. See Metrics documentation

tags
Array of strings

List of tags

projects
Array of strings

List of project IDs for projects that can access this metric

archived
boolean
object
object

Preferred way to define SQL. Only one of sql, sqlBuilder or mixpanel allowed.

object

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

object

Only use for MixPanel (non-SQL) Data Sources. Only one of sql, sqlBuilder or mixpanel allowed.

Responses

Request samples

Content type
application/json
{
  • "managedBy": "",
  • "owner": "string",
  • "name": "string",
  • "description": "string",
  • "type": "binomial",
  • "tags": [
    ],
  • "projects": [
    ],
  • "archived": true,
  • "behavior": {
    },
  • "sql": {
    },
  • "sqlBuilder": {
    },
  • "mixpanel": {
    }
}

Response samples

Content type
application/json
{
  • "updatedId": "string"
}

Deletes a metric

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/metrics/met_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "deletedId": "string"
}

Experiments

Experiments (A/B Tests)

Get all experiments

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

projectId
string

Filter by project id

datasourceId
string

Filter by Data Source

experimentId
string

Filter the returned list by the experiment tracking key (id)

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "experiments": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Create a single experiment

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
datasourceId
required
string

ID for the DataSource

assignmentQueryId
required
string

The ID property of one of the assignment query objects associated with the datasource

trackingKey
required
string
name
required
string

Name of the experiment

project
string

Project ID which the experiment belongs to

hypothesis
string

Hypothesis of the experiment

description
string

Description of the experiment

tags
Array of strings
metrics
Array of strings
guardrailMetrics
Array of strings
owner
string

Email of the person who owns this experiment

archived
boolean
status
string
Enum: "draft" "running" "stopped"
autoRefresh
boolean
hashAttribute
string
fallbackAttribute
string
hashVersion
number
Enum: 1 2
disableStickyBucketing
boolean;
bucketVersion
number
minBucketVersion
number
releasedVariationId
string
excludeFromPayload
boolean
inProgressConversions
string
Enum: "loose" "strict"
attributionModel
string
Enum: "firstExposure" "experimentDuration"
statsEngine
string
Enum: "bayesian" "frequentist"
required
Array of objects >= 2 items
Array of objects

Responses

Request samples

Content type
application/json
{
  • "datasourceId": "string",
  • "assignmentQueryId": "string",
  • "trackingKey": "string",
  • "name": "string",
  • "project": "string",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "metrics": [
    ],
  • "guardrailMetrics": [
    ],
  • "owner": "string",
  • "archived": true,
  • "status": "draft",
  • "autoRefresh": true,
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "hashVersion": 1,
  • "disableStickyBucketing": null,
  • "bucketVersion": 0,
  • "minBucketVersion": 0,
  • "releasedVariationId": "string",
  • "excludeFromPayload": true,
  • "inProgressConversions": "loose",
  • "attributionModel": "firstExposure",
  • "statsEngine": "bayesian",
  • "variations": [
    ],
  • "phases": [
    ]
}

Response samples

Content type
application/json
{
  • "experiment": {
    }
}

Get a single experiment

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/experiments/exp_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "experiment": {
    }
}

Update a single experiment

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
assignmentQueryId
string
trackingKey
string
name
string

Name of the experiment

project
string

Project ID which the experiment belongs to

hypothesis
string

Hypothesis of the experiment

description
string

Description of the experiment

tags
Array of strings
metrics
Array of strings
guardrailMetrics
Array of strings
owner
string

Email of the person who owns this experiment

archived
boolean
status
string
Enum: "draft" "running" "stopped"
autoRefresh
boolean
hashAttribute
string
fallbackAttribute
string
hashVersion
number
Enum: 1 2
disableStickyBucketing
boolean;
bucketVersion
number
minBucketVersion
number
releasedVariationId
string
excludeFromPayload
boolean
inProgressConversions
string
Enum: "loose" "strict"
attributionModel
string
Enum: "firstExposure" "experimentDuration"
statsEngine
string
Enum: "bayesian" "frequentist"
Array of objects >= 2 items
Array of objects

Responses

Request samples

Content type
application/json
{
  • "assignmentQueryId": "string",
  • "trackingKey": "string",
  • "name": "string",
  • "project": "string",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "metrics": [
    ],
  • "guardrailMetrics": [
    ],
  • "owner": "string",
  • "archived": true,
  • "status": "draft",
  • "autoRefresh": true,
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "hashVersion": 1,
  • "disableStickyBucketing": null,
  • "bucketVersion": 0,
  • "minBucketVersion": 0,
  • "releasedVariationId": "string",
  • "excludeFromPayload": true,
  • "inProgressConversions": "loose",
  • "attributionModel": "firstExposure",
  • "statsEngine": "bayesian",
  • "variations": [
    ],
  • "phases": [
    ]
}

Response samples

Content type
application/json
{
  • "experiment": {
    }
}

Get results for an experiment

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

query Parameters
phase
string
dimension
string

Responses

Request samples

curl https://api.growthbook.io/api/v1/experiments/exp_123abc/results \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "result": {
    }
}

Dimensions

Dimensions used during experiment analysis

Get all dimensions

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

datasourceId
string

Filter by Data Source

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "dimensions": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Get a single dimension

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/dimensions/dim_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "dimension": {
    }
}

Segments

Segments used during experiment analysis

Get all segments

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

datasourceId
string

Filter by Data Source

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "segments": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Get a single segment

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/segments/seg_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "segment": {
    }
}

SDK Connections

Client keys and settings for connecting SDKs to a GrowthBook instance

Get all sdk connections

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

projectId
string

Filter by project id

withProxy
string
multiOrg
string

Responses

Request samples

curl https://api.growthbook.io/api/v1/sdk-connections \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "connections": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Create a single sdk connection

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
name
required
string
language
required
string
sdkVersion
string
environment
required
string
projects
Array of strings
encryptPayload
boolean
includeVisualExperiments
boolean
includeDraftExperiments
boolean
includeExperimentNames
boolean
includeRedirectExperiments
boolean
proxyEnabled
boolean
proxyHost
string
hashSecureAttributes
boolean
remoteEvalEnabled
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "language": "string",
  • "sdkVersion": "string",
  • "environment": "string",
  • "projects": [
    ],
  • "encryptPayload": true,
  • "includeVisualExperiments": true,
  • "includeDraftExperiments": true,
  • "includeExperimentNames": true,
  • "includeRedirectExperiments": true,
  • "proxyEnabled": true,
  • "proxyHost": "string",
  • "hashSecureAttributes": true,
  • "remoteEvalEnabled": true
}

Response samples

Content type
application/json
{
  • "sdkConnection": {
    }
}

Get a single sdk connection

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/sdk-connections/sdk_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "sdkConnection": {
    }
}

Update a single sdk connection

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
name
string
language
string
sdkVersion
string
environment
string
projects
Array of strings
encryptPayload
boolean
includeVisualExperiments
boolean
includeDraftExperiments
boolean
includeExperimentNames
boolean
includeRedirectExperiments
boolean
proxyEnabled
boolean
proxyHost
string
hashSecureAttributes
boolean
remoteEvalEnabled
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "language": "string",
  • "sdkVersion": "string",
  • "environment": "string",
  • "projects": [
    ],
  • "encryptPayload": true,
  • "includeVisualExperiments": true,
  • "includeDraftExperiments": true,
  • "includeExperimentNames": true,
  • "includeRedirectExperiments": true,
  • "proxyEnabled": true,
  • "proxyHost": "string",
  • "hashSecureAttributes": true,
  • "remoteEvalEnabled": true
}

Response samples

Content type
application/json
{
  • "sdkConnection": {
    }
}

Visual Changesets

Groups of visual changes made by the visual editor to a single page

Get all visual changesets

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The experiment id the visual changesets belong to

Responses

Request samples

curl https://api.growthbook.io/api/v1/experiments/exp_123abc/visual-changesets \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "visualChangesets": [
    ]
}

Get a single visual changeset

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

query Parameters
includeExperiment
integer

Include the associated experiment in payload

Responses

Request samples

curl https://api.growthbook.io/api/v1/visual-changesets/ds_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "visualChangeset": {
    },
  • "experiment": {
    }
}

Update a visual changeset

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -XPUT https://api.growthbook.io/api/v1/visual-changesets/vc_123abc
  -d '{"editorUrl": "https://docs.growthbook.io", "urlPatterns":"[{ ... }]"}' \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "nModified": 0,
  • "visualChangeset": {
    }
}

Create a visual change for a visual changeset

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -XPOST https://api.growthbook.io/api/v1/visual-changesets/vc_123abc/visual-change \
  -d '{"variation": "v_123abc", "domMutations":"[]"}' \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "nModified": 0
}

Update a visual change for a visual changeset

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

visualChangeId
required
string

Specify a specific visual change

Responses

Request samples

curl -XPUT https://api.growthbook.io/api/v1/visual-changesets/vc_123abc/visual-change/vch_abc123 \
  -d '{"variation": "v_123abc", "domMutations":"[]"}' \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "nModified": 0
}

Saved Groups

Defined sets of attribute values which can be used with feature rules for targeting features at particular users.

Get all saved group

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

Responses

Request samples

curl https://api.growthbook.io/api/v1/saved-groups \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "savedGroups": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Create a single saved group

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
name
required
string

The display name of the Saved Group

type
string
Enum: "condition" "list"

The type of Saved Group (inferred from other arguments if missing)

condition
string

When type = 'condition', this is the JSON-encoded condition for the group

attributeKey
string

When type = 'list', this is the attribute key the group is based on

values
Array of strings

When type = 'list', this is the list of values for the attribute key

owner
string

The person or team that owns this Saved Group. If no owner, you can pass an empty string.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "condition",
  • "condition": "string",
  • "attributeKey": "string",
  • "values": [
    ],
  • "owner": "string"
}

Response samples

Content type
application/json
{
  • "savedGroup": {
    }
}

Get a single saved group

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/saved-groups/ds_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "savedGroup": {
    }
}

Partially update a single saved group

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
name
string

The display name of the Saved Group

condition
string

When type = 'condition', this is the JSON-encoded condition for the group

values
Array of strings

When type = 'list', this is the list of values for the attribute key

owner
string

The person or team that owns this Saved Group. If no owner, you can pass an empty string.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "condition": "string",
  • "values": [
    ],
  • "owner": "string"
}

Response samples

Content type
application/json
{
  • "savedGroup": {
    }
}

Deletes a single saved group

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/saved-groups/grp_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "deletedId": "string"
}

Organizations

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.

Get all organizations (only for super admins on multi-org Enterprise Plan only)

Authorizations:
bearerAuthbasicAuth
query Parameters
search
string

Search string to search organization names, owner emails, and external ids by

limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "organizations": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Create a single organization (only for super admins on multi-org Enterprise Plan only)

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
name
required
string

The name of the organization

externalId
string

An optional identifier that you use within your company for the organization

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "externalId": "string"
}

Response samples

Content type
application/json
{
  • "organization": {
    }
}

Edit a single organization (only for super admins on multi-org Enterprise Plan only)

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
name
string

The name of the organization

externalId
string

An optional identifier that you use within your company for the organization

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "externalId": "string"
}

Response samples

Content type
application/json
{
  • "organization": {
    }
}

Fact Tables

Fact Tables describe the shape of your data warehouse tables

Get all fact tables

Authorizations:
bearerAuthbasicAuth
query Parameters
limit
integer
Default: 10

The number of items to return

offset
integer
Default: 0

How many items to skip (use in conjunction with limit for pagination)

datasourceId
string

Filter by Data Source

projectId
string

Filter by project id

Responses

Request samples

curl https://api.growthbook.io/api/v1/fact-tables \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "factTables": [
    ],
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Create a single fact table

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
name
required
string
description
string

Description of the fact table

owner
string

The person who is responsible for this fact table

projects
Array of strings

List of associated project ids

tags
Array of strings

List of associated tags

datasource
required
string

The datasource id

userIdTypes
required
Array of strings

List of identifier columns in this table. For example, "id" or "anonymous_id"

sql
required
string

The SQL query for this fact table

managedBy
string
Enum: "" "api"

Set this to "api" to disable editing in the GrowthBook UI

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "projects": [
    ],
  • "tags": [
    ],
  • "datasource": "string",
  • "userIdTypes": [
    ],
  • "sql": "string",
  • "managedBy": ""
}

Response samples

Content type
application/json
{
  • "factTable": {
    }
}

Get a single fact table

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/fact-tables/ftb_123abc \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "factTable": {
    }
}

Update a single fact table

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
name
string
description
string

Description of the fact table

owner
string

The person who is responsible for this fact table

projects
Array of strings

List of associated project ids

tags
Array of strings

List of associated tags

userIdTypes
Array of strings

List of identifier columns in this table. For example, "id" or "anonymous_id"

sql
string

The SQL query for this fact table

managedBy
string
Enum: "" "api"

Set this to "api" to disable editing in the GrowthBook UI

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "projects": [
    ],
  • "tags": [
    ],
  • "userIdTypes": [
    ],
  • "sql": "string",
  • "managedBy": ""
}

Response samples

Content type
application/json
{
  • "factTable": {