[go: up one dir, main page]

Skip to main content

GrowthBook REST API (1.0.0)

Download OpenAPI specification:Download

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. 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
required
name
required
string
description
string
publicId
string

URL-safe slug (lowercase letters, numbers, dashes). Auto-generated from name if not provided.

object

Project settings.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "publicId": "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
required
name
string

Project name.

description
string

Project description.

publicId
string

URL-safe slug (lowercase letters, numbers, dashes).

object

Project settings.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "publicId": "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
required
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
parent
string

An environment that the new environment should inherit feature rules from. Requires an enterprise license

Responses

Request samples

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

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
required
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

Returns features with pagination. The skipPagination query parameter is honored only when API_ALLOW_SKIP_PAGINATION is set (self-hosted deployments).

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

clientKey
string

Filter by a SDK connection's client key

skipPagination
boolean
Default: false

If true, return all matching features and ignore limit/offset. Self-hosted only. Has no effect unless API_ALLOW_SKIP_PAGINATION is set to true or 1.

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
required
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.

prerequisites
Array of strings

Feature IDs. Each feature must evaluate to true

jsonSchema
string

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

object

Responses

Request samples

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

Response samples

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

Get a single feature

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

query Parameters
withRevisions
string
Enum: "all" "drafts" "published" "none"

Also return feature revisions (all, draft, or published statuses)

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

Updates any combination of a feature's metadata (description, owner, tags, project), default value, environment settings (rules, kill switches, enabled state), prerequisites, holdout assignment, or JSON schema validation. All provided fields are merged into the existing feature and the result is immediately published as a new revision.

Returns 403 if the API key lacks permission or if approval rules are enabled for an affected environment and the org setting "REST API always bypasses approval requirements" is off.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
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
prerequisites
Array of strings

Feature IDs. Each feature must evaluate to true

jsonSchema
string

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

object
object or null

Holdout to assign this feature to. Pass null to remove the feature from its current holdout. Omit the field entirely to leave the holdout unchanged.

Responses

Request samples

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

Response samples

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

Deletes a single feature

Permanently deletes a feature and all of its revisions.

Archived features can be deleted freely. Deleting a live (non-archived) feature returns 403 unless the org setting "REST API always bypasses approval requirements" is enabled, or the API key lacks delete permission.

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/features/feature-123 \
  -u secret_abc123DEF456:

Response samples

Content type
application/json
{
  • "deletedId": "feature-123"
}

Toggle a feature in one or more environments

Enables or disables a feature in one or more environments simultaneously. Accepts a map of environment name → boolean and immediately publishes the change.

Returns 403 if the API key lacks permission or if approval rules are enabled for an affected environment and the org setting "REST API always bypasses approval requirements" is off.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
reason
string
required
object

Responses

Request samples

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

Response samples

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

Revert a feature to a specific revision

Creates a new revision whose rules and values match a previously-published revision, then immediately publishes it. This leaves a clear audit trail of the revert action in the revision history.

Returns 403 if the API key lacks permission or if approval rules are enabled for an affected environment and the org setting "REST API always bypasses approval requirements" is off.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
revision
required
number
comment
string

Responses

Request samples

Content type
application/json
{
  • "revision": 0,
  • "comment": "string"
}

Response samples

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

Get all revisions for a feature

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

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/features/my_feature/revisions?limit=10&offset=0 \
  -u secret_abc123DEF456:

Response samples

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

Get stale status for one or more features

Authorizations:
bearerAuthbasicAuth
query Parameters
ids
required
string

Comma-separated list of feature IDs (URL-encoded if needed). Example: my_feature,another_feature

Responses

Request samples

curl "https://api.growthbook.io/api/v1/stale-features?ids=my_feature,another_feature" \
  -u secret_abc123DEF456:

Response samples

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

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"
]

Ramp Schedules

Multi-step rollout schedules that gradually ramp feature rule changes over time, with support for interval, approval, and scheduled triggers.

List ramp schedules

Returns all ramp schedules for the organization, with optional filters.

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)

featureId
string

Filter to schedules attached to a specific feature

status
string
Enum: "pending" "ready" "running" "paused" "pending-approval" "completed" "rolled-back"

Filter by schedule status

Responses

Request samples

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

Response samples

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

Create a ramp schedule

Creates a new ramp schedule, optionally attaching it to a published feature rule.

Target attachment (optional)

Provide featureId, ruleId, and environment together to attach the schedule to a specific rule on creation. The rule must already be live (published). Each [ruleId, environment] pair can only be controlled by one schedule at a time.

When all three are supplied, targetId and patch.ruleId are auto-injected into every step action and endAction — callers only need to supply the patch values (coverage, condition, etc.).

If omitted, the schedule is created as a free-standing skeleton in pending status. Use POST /ramp-schedules/{id}/actions/add-target to attach rules later, and POST /ramp-schedules/{id}/actions/start to start it.

Using templates

Provide templateId to inherit steps and endActions from a saved template. Explicit steps / endActions in the request body take precedence over the template. Template auto-population requires featureId, ruleId, and environment to be set (so targetId can be injected).

Requires an Enterprise plan.

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

Feature that anchors this schedule. Required when ruleId/environment are set.

ruleId
string

Rule to attach as the initial target. Requires featureId and environment.

environment
string

Environment of the target rule. Requires featureId and ruleId.

templateId
string

Load steps and endActions from a saved template (featureId+ruleId+environment must also be set for auto-injection)

Array of objects

Ordered ramp steps. When featureId+ruleId+environment are provided, targetId and patch.ruleId in actions are auto-injected — only supply the patch fields you want to change.

Array of objects

Actions applied when the ramp completes. targetId and patch.ruleId are auto-injected when featureId+ruleId+environment are provided.

startDate
string or null <date-time>

When to start. Absent/null = immediately on start action.

object

Optional hard deadline

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "featureId": "string",
  • "ruleId": "string",
  • "environment": "string",
  • "templateId": "string",
  • "steps": [
    ],
  • "endActions": [
    ],
  • "startDate": "2019-08-24T14:15:22Z",
  • "endCondition": {
    }
}

Response samples

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

Get a single ramp schedule

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl https://api.growthbook.io/api/v1/ramp-schedules/rs_abc123 \
  -u secret_abc123DEF456:

Response samples

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

Update a ramp schedule

Updates the name, steps, endActions, startDate, or endCondition of a ramp schedule.

Only allowed when the schedule is in pending, ready, or paused status.

targetId shorthand: When providing steps or endActions, you may omit targetId (or pass "t1") in each action. If the schedule has exactly one active target, the server will resolve it automatically. For schedules with multiple targets, provide the explicit target UUID from targets[].id.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
name
string
Array of objects
Array of objects
startDate
string or null <date-time>
object or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "steps": [
    ],
  • "endActions": [
    ],
  • "startDate": "2019-08-24T14:15:22Z",
  • "endCondition": {
    }
}

Response samples

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

Delete a ramp schedule

Permanently deletes a ramp schedule. This does not undo any rule patches that were already applied by completed steps.

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/ramp-schedules/rs_abc123 \
  -u secret_abc123DEF456:

Response samples

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

Start a ramp schedule

Transitions the schedule from ready to running and processes the first step immediately if eligible.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X POST https://api.growthbook.io/api/v1/ramp-schedules/rs_abc123/actions/start \
  -u secret_abc123DEF456:

Response samples

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

Pause a ramp schedule

Pauses a running or pending-approval schedule. The schedule can be resumed from the same position with the /actions/resume endpoint.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X POST https://api.growthbook.io/api/v1/ramp-schedules/rs_abc123/actions/pause \
  -u secret_abc123DEF456:

Response samples

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

Resume a paused ramp schedule

Resumes a paused schedule. Adjusts timing anchors to account for the pause duration so step intervals continue from where they left off.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X POST https://api.growthbook.io/api/v1/ramp-schedules/rs_abc123/actions/resume \
  -u secret_abc123DEF456:

Response samples

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

Approve the current pending-approval step

Approves the current step on a schedule in pending-approval status and advances to the next step. Requires the caller to have feature review permissions for the associated feature.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X POST https://api.growthbook.io/api/v1/ramp-schedules/rs_abc123/actions/approve-step \
  -u secret_abc123DEF456:

Response samples

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

Roll back a ramp schedule

Rolls back to the starting position and lands in paused status so the schedule can be restarted with /actions/start or /actions/resume.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X POST https://api.growthbook.io/api/v1/ramp-schedules/rs_abc123/actions/rollback \
  -u secret_abc123DEF456:

Response samples

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

Complete a ramp schedule immediately

Applies end actions and marks the schedule as completed, regardless of how many steps remain.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

curl -X POST https://api.growthbook.io/api/v1/ramp-schedules/rs_abc123/actions/complete \
  -u secret_abc123DEF456:

Response samples

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

Jump to a specific step

Moves the schedule directly to targetStepIndex (forward or backward) and pauses. Use -1 to jump to the pre-start position without rolling back rule patches.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
targetStepIndex
required
integer >= -1

Zero-based index of the step to jump to; -1 = pre-start

Responses

Request samples

Content type
application/json
{
  • "targetStepIndex": -1
}

Response samples

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

Add a target rule to a ramp schedule

Attaches an additional feature rule to this ramp schedule. The [ruleId, environment] pair must identify a rule that is already published and must not already be controlled by another schedule.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
featureId
required
string
ruleId
required
string
environment
required
string

Responses

Request samples

Content type
application/json
{
  • "featureId": "string",
  • "ruleId": "string",
  • "environment": "string"
}

Response samples

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

Remove a target rule from a ramp schedule

Detaches a target rule from this ramp schedule. Identify the target either by its targetId or by the [ruleId, environment] pair.

If this is the last target on the schedule, the schedule is deleted entirely and the response contains deleted: true instead of rampSchedule.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
targetId
string

Target ID (from the targets array)

ruleId
string

Rule ID — use with environment as an alternative to targetId

environment
string

Environment — use with ruleId as an alternative to targetId

Responses

Request samples

Content type
application/json
{
  • "targetId": "string",
  • "ruleId": "string",
  • "environment": "string"
}

Response samples

Content type
application/json
{
  • "deleted": true,
  • "rampScheduleId": "string"
}

Ramp Schedule Templates

Reusable step configurations for ramp schedules.

Get a single rampScheduleTemplate

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/ramp-schedule-templates/{id} -u secret_abc123DEF456

Response samples

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

Delete a single rampScheduleTemplate

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/ramp-schedule-templates/{id} -u secret_abc123DEF456

Response samples

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

Update a single rampScheduleTemplate

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string
Request Body schema: application/json
required
name
string
Array of objects
object
official
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "steps": [
    ],
  • "endPatch": {
    },
  • "official": true
}

Response samples

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

Create a single rampScheduleTemplate

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
required
name
required
string
required
Array of objects
object
official
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "steps": [
    ],
  • "endPatch": {
    },
  • "official": true
}

Response samples

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

Get all rampScheduleTemplates

Authorizations:
bearerAuthbasicAuth

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/ramp-schedule-templates -u secret_abc123DEF456

Response samples

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

Data Sources

How GrowthBook connects and queries your data, including cached database schema metadata (information schemas) for tables and columns.

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": {
    }
}

Get a Data Source's Information Schema

Returns cached database schema metadata for a data source, including databases, schemas, and tables. The information schema is automatically created when a SQL-based data source is added. Not all data source types support information schemas.

Authorizations:
bearerAuthbasicAuth
path Parameters
dataSourceId
required
string

The id of the data source

Responses

Request samples

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

Response samples

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

Get a single Information Schema Table by id

Returns cached metadata for a specific table in the Data Source, including columns and their data types. Not all data source types support information schemas.

Authorizations:
bearerAuthbasicAuth
path Parameters
tableId
required
string

The id of the information schema table

Responses

Request samples

curl https://api.growthbook.io/api/v1/information-schema-tables/ist_123abc \
  -u secret_abc123DEF456:

Response samples

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

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
required
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

eventName
string

The event name used in SQL template variables

managedBy
string
Enum: "" "api" "admin"

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",
  • "eventName": "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
required
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

eventName
string

The event name used in SQL template variables

Array of objects (FactTableColumn)

Optional array of columns that you want to update. Only allows updating properties of existing columns. Cannot create new columns or delete existing ones. Columns cannot be added or deleted; column structure is determined by SQL parsing. Slice-related properties require an enterprise license.

columnsError
string or null

Error message if there was an issue parsing the SQL schema

managedBy
string
Enum: "" "api" "admin"

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

archived
boolean

Responses

Request samples

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

Response samples

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

Deletes a single fact table

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/fact-tables/ftb_123abc \
  -u secret_abc123DEF456:

Response samples

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

Get all filters for a fact table

Authorizations:
bearerAuthbasicAuth
path Parameters
factTableId
required
string

Specify a specific fact table

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/fact-tables/ftb_123abc/filters \
  -u secret_abc123DEF456:

Response samples

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

Create a single fact table filter

Authorizations:
bearerAuthbasicAuth
path Parameters
factTableId
required
string

Specify a specific fact table

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

Description of the fact table filter

value
required
string

The SQL expression for this filter.

managedBy
string
Enum: "" "api"

Set this to "api" to disable editing in the GrowthBook UI. Before you do this, the Fact Table itself must also be marked as "api"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "value": "country = 'US'",
  • "managedBy": ""
}

Response samples

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

Get a single fact filter

Authorizations:
bearerAuthbasicAuth
path Parameters
factTableId
required
string

Specify a specific fact table

id
required
string

The id of the requested resource

Responses

Request samples

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

Response samples

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

Update a single fact table filter

Authorizations:
bearerAuthbasicAuth
path Parameters
factTableId
required
string

Specify a specific fact table

id
required
string

The id of the requested resource

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

Description of the fact table filter

value
string

The SQL expression for this filter.

managedBy
string
Enum: "" "api"

Set this to "api" to disable editing in the GrowthBook UI. Before you do this, the Fact Table itself must also be marked as "api"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "value": "country = 'US'",
  • "managedBy": ""
}

Response samples

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

Deletes a single fact table filter

Authorizations:
bearerAuthbasicAuth
path Parameters
factTableId
required
string

Specify a specific fact table

id
required
string

The id of the requested resource

Responses

Request samples

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

Response samples

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

Bulk import fact tables, filters, and metrics

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
required
Array of objects
Array of objects
Array of objects

Responses

Request samples

Content type
application/json
{
  • "factTables": [
    ],
  • "factTableFilters": [
    ],
  • "factMetrics": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "factTablesAdded": 0,
  • "factTablesUpdated": 0,
  • "factTableFiltersAdded": 0,
  • "factTableFiltersUpdated": 0,
  • "factMetricsAdded": 0,
  • "factMetricsUpdated": 0
}

Fact Metrics

Fact Metrics are metrics built on top of Fact Table definitions

Get all fact 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)

datasourceId
string

Filter by Data Source

projectId
string

Filter by project id

factTableId
string

Filter by Fact Table Id (for ratio metrics, we only look at the numerator)

Responses

Request samples

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

Response samples

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

Create a single fact metric

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
required
name
required
string
description
string
owner
string
projects
Array of strings
tags
Array of strings
metricType
required
string
Enum: "proportion" "retention" "mean" "quantile" "ratio" "dailyParticipation"
required
object
object

Only when metricType is 'ratio'

inverse
boolean

Set to true for things like Bounce Rate, where you want the metric to decrease

object

Controls the settings for quantile metrics (mandatory if metricType is "quantile")

object

Controls how outliers are handled

object

Controls the conversion window for the metric

object

Controls the bayesian prior for the metric. If omitted, organization defaults will be used.

object

Controls the regression adjustment (CUPED) settings for the metric

riskThresholdSuccess
number >= 0
Deprecated

No longer used. Threshold for Risk to be considered low enough, as a proportion (e.g. put 0.0025 for 0.25%).
Must be a non-negative number and must not be higher than riskThresholdDanger.

riskThresholdDanger
number >= 0
Deprecated

No longer used. Threshold for Risk to be considered too high, as a proportion (e.g. put 0.0125 for 1.25%).
Must be a non-negative number.

displayAsPercentage
boolean

If true and the metric is a ratio or dailyParticipation metric, variation means will be displayed as a percentage. Defaults to true for dailyParticipation metrics and false for ratio metrics.

minPercentChange
number >= 0

Minimum percent change to consider uplift significant, as a proportion (e.g. put 0.005 for 0.5%)

maxPercentChange
number >= 0

Maximum percent change to consider uplift significant, as a proportion (e.g. put 0.5 for 50%)

minSampleSize
number >= 0
targetMDE
number >= 0

The percentage change that you want to reliably detect before ending an experiment, as a proportion (e.g. put 0.1 for 10%). This is used to estimate the "Days Left" for running experiments.

managedBy
string
Enum: "" "api" "admin"

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

metricAutoSlices
Array of strings

Array of slice column names that will be automatically included in metric analysis. This is an enterprise feature.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "projects": [
    ],
  • "tags": [
    ],
  • "metricType": "proportion",
  • "numerator": {
    },
  • "denominator": {
    },
  • "inverse": true,
  • "quantileSettings": {
    },
  • "cappingSettings": {
    },
  • "windowSettings": {
    },
  • "priorSettings": {
    },
  • "regressionAdjustmentSettings": {
    },
  • "riskThresholdSuccess": 0,
  • "riskThresholdDanger": 0,
  • "displayAsPercentage": true,
  • "minPercentChange": 0,
  • "maxPercentChange": 0,
  • "minSampleSize": 0,
  • "targetMDE": 0,
  • "managedBy": "",
  • "metricAutoSlices": [
    ]
}

Response samples

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

Get a single fact metric

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

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

Response samples

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

Update a single fact metric

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
name
string
description
string
owner
string
projects
Array of strings
tags
Array of strings
metricType
string
Enum: "proportion" "retention" "mean" "quantile" "ratio" "dailyParticipation"
object
object

Only when metricType is 'ratio'

inverse
boolean

Set to true for things like Bounce Rate, where you want the metric to decrease

object

Controls the settings for quantile metrics (mandatory if metricType is "quantile")

object

Controls how outliers are handled

object

Controls the conversion window for the metric

object

Controls the regression adjustment (CUPED) settings for the metric

riskThresholdSuccess
number >= 0
Deprecated

No longer used. Threshold for Risk to be considered low enough, as a proportion (e.g. put 0.0025 for 0.25%).
Must be a non-negative number and must not be higher than riskThresholdDanger.

riskThresholdDanger
number >= 0
Deprecated

No longer used. Threshold for Risk to be considered too high, as a proportion (e.g. put 0.0125 for 1.25%).
Must be a non-negative number.

displayAsPercentage
boolean

If true and the metric is a ratio or dailyParticipation metric, variation means will be displayed as a percentage. Defaults to true for dailyParticipation metrics and false for ratio metrics.

minPercentChange
number >= 0

Minimum percent change to consider uplift significant, as a proportion (e.g. put 0.005 for 0.5%)

maxPercentChange
number >= 0

Maximum percent change to consider uplift significant, as a proportion (e.g. put 0.5 for 50%)

minSampleSize
number >= 0
targetMDE
number >= 0
managedBy
string
Enum: "" "api" "admin"

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

archived
boolean
metricAutoSlices
Array of strings

Array of slice column names that will be automatically included in metric analysis. This is an enterprise feature.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "projects": [
    ],
  • "tags": [
    ],
  • "metricType": "proportion",
  • "numerator": {
    },
  • "denominator": {
    },
  • "inverse": true,
  • "quantileSettings": {
    },
  • "cappingSettings": {
    },
  • "windowSettings": {
    },
  • "regressionAdjustmentSettings": {
    },
  • "riskThresholdSuccess": 0,
  • "riskThresholdDanger": 0,
  • "displayAsPercentage": true,
  • "minPercentChange": 0,
  • "maxPercentChange": 0,
  • "minSampleSize": 0,
  • "targetMDE": 0,
  • "managedBy": "",
  • "archived": true,
  • "metricAutoSlices": [
    ]
}

Response samples

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

Deletes a single fact 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/fact-metrics/fact__123abc \
  -u secret_abc123DEF456:

Response samples

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

Create a fact metric analysis

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The fact metric id to analyze

Request Body schema: application/json
optional
userIdType
string

The identifier type to use for the analysis. If not provided, defaults to the first available identifier type in the fact table.

lookbackDays
number [ 1 .. 999999 ]

Number of days to look back for the analysis. Defaults to 30.

populationType
string
Enum: "factTable" "segment"

The type of population to analyze. Defaults to 'factTable', meaning the analysis will return the metric value for all units found in the fact table.

populationId
string or null

The ID of the population (e.g., segment ID) when populationType is not 'factTable'. Defaults to null.

additionalNumeratorFilters
Array of strings

We support passing in adhoc filters for an analysis that don't live on the metric itself. These are in addition to the metric's filters. To use this, you can pass in an array of Fact Table Filter Ids.

additionalDenominatorFilters
Array of strings

We support passing in adhoc filters for an analysis that don't live on the metric itself. These are in addition to the metric's filters. To use this, you can pass in an array of Fact Table Filter Ids.

useCache
boolean

Whether to use a cached query if one exists. Defaults to true.

Responses

Request samples

Content type
application/json
{
  • "userIdType": "string",
  • "lookbackDays": 1,
  • "populationType": "factTable",
  • "populationId": "string",
  • "additionalNumeratorFilters": [
    ],
  • "additionalDenominatorFilters": [
    ],
  • "useCache": true
}

Response samples

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

Metrics (legacy)

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
required
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. If set to "api", it can be managed via the API only.

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
required
managedBy
string
Enum: "" "api" "admin"

Where this metric must be managed from. If not set (empty string), it can be managed from anywhere. If set to "api", it can be managed via the API only. Please note that we have deprecated support for setting the managedBy property to "admin". Your existing Legacy Metrics with this value will continue to work, but we suggest migrating to Fact Metrics instead.

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
required
datasourceId
string

ID for the DataSource. Can only be set if a templateId is not provided.

assignmentQueryId
string

The ID property of one of the assignment query objects associated with the datasource. Can only be set if a templateId is not provided.

trackingKey
required
string
bypassDuplicateKeyCheck
boolean

If true, allow creating an experiment even if another experiment with the same tracking key already exists

name
required
string

Name of the experiment

type
string
Enum: "standard" "multi-armed-bandit"
project
string

Project ID which the experiment belongs to

templateId
string

ID of the ExperimentTemplate this experiment was created from. Template fields are applied by default and overridden by explicitly provided payload fields.

hypothesis
string

Hypothesis of the experiment

description
string

Description of the experiment

tags
Array of strings
metrics
Array of strings
secondaryMetrics
Array of strings
guardrailMetrics
Array of strings
activationMetric
string

Users must convert on this metric before being included

segmentId
string

Only users in this segment will be included

queryFilter
string

WHERE clause to add to the default experiment query

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" "lookbackOverride"

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.

object (LookbackOverride)

Controls the lookback override for the experiment. For type "window", value must be a non-negative number and valueUnit is required.

statsEngine
string
Enum: "bayesian" "frequentist"
required
Array of objects >= 2 items
Array of objects
regressionAdjustmentEnabled
boolean

Controls whether regression adjustment (CUPED) is enabled for experiment analyses

sequentialTestingEnabled
boolean

Only applicable to frequentist analyses

sequentialTestingTuningParameter
number
shareLevel
string
Enum: "public" "organization"
banditScheduleValue
number
banditScheduleUnit
string
Enum: "days" "hours"
banditBurnInValue
number
banditBurnInUnit
string
Enum: "days" "hours"
banditConversionWindowValue
number
banditConversionWindowUnit
string
Enum: "days" "hours"
postStratificationEnabled
boolean or null

When null, the organization default is used.

object (ExperimentDecisionFrameworkSettings)

Controls the decision framework and metric overrides for the experiment. Replaces the entire stored object on update (does not patch individual fields).

Array of objects (ExperimentMetricOverrideEntry)

Per-metric analysis overrides for this experiment. Replaces the entire stored array (does not patch individual entries).

defaultDashboardId
string

ID of the default dashboard for this experiment.

object
Array of objects

Custom slices that apply to ALL applicable metrics in the experiment

Responses

Request samples

Content type
application/json
{
  • "datasourceId": "string",
  • "assignmentQueryId": "string",
  • "trackingKey": "string",
  • "bypassDuplicateKeyCheck": true,
  • "name": "string",
  • "type": "standard",
  • "project": "string",
  • "templateId": "string",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "metrics": [
    ],
  • "secondaryMetrics": [
    ],
  • "guardrailMetrics": [
    ],
  • "activationMetric": "string",
  • "segmentId": "string",
  • "queryFilter": "string",
  • "owner": "string",
  • "archived": true,
  • "status": "draft",
  • "autoRefresh": true,
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "hashVersion": 1,
  • "disableStickyBucketing": true,
  • "bucketVersion": 0,
  • "minBucketVersion": 0,
  • "releasedVariationId": "string",
  • "excludeFromPayload": true,
  • "inProgressConversions": "loose",
  • "attributionModel": "firstExposure",
  • "lookbackOverride": {
    },
  • "statsEngine": "bayesian",
  • "variations": [
    ],
  • "phases": [
    ],
  • "regressionAdjustmentEnabled": true,
  • "sequentialTestingEnabled": true,
  • "sequentialTestingTuningParameter": 0,
  • "shareLevel": "public",
  • "banditScheduleValue": 0,
  • "banditScheduleUnit": "days",
  • "banditBurnInValue": 0,
  • "banditBurnInUnit": "days",
  • "banditConversionWindowValue": 0,
  • "banditConversionWindowUnit": "days",
  • "postStratificationEnabled": true,
  • "decisionFrameworkSettings": {
    },
  • "metricOverrides": [
    ],
  • "defaultDashboardId": "string",
  • "customFields": {
    },
  • "customMetricSlices": [
    ]
}

Response samples

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

Get a list of experiments with names and ids

Authorizations:
bearerAuthbasicAuth
query Parameters
projectId
string

Filter by project id

Responses

Request samples

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

Response samples

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

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
required
datasourceId
string

Can only be set if existing experiment does not have a datasource

assignmentQueryId
string
trackingKey
string
bypassDuplicateKeyCheck
boolean

If true, allow updating the tracking key even if another experiment with the same tracking key already exists

name
string

Name of the experiment

type
string
Enum: "standard" "multi-armed-bandit"
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
secondaryMetrics
Array of strings
guardrailMetrics
Array of strings
activationMetric
string

Users must convert on this metric before being included

segmentId
string

Only users in this segment will be included

queryFilter
string

WHERE clause to add to the default experiment query

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
results
string
Enum: "dnf" "won" "lost" "inconclusive"

The result status of the experiment. Maps to resultSummary.status in the GET response.

winner
number

The index of the winning variation (0-indexed). Maps to resultSummary.winner (variation ID) in the GET response.

analysis
string

Analysis summary or conclusions for the experiment. Maps to resultSummary.conclusions in the GET response.

releasedVariationId
string

The ID of the released variation. Maps to resultSummary.releasedVariationId in the GET response.

excludeFromPayload
boolean

If true, the experiment is excluded from the SDK payload. Maps to resultSummary.excludeFromPayload in the GET response.

inProgressConversions
string
Enum: "loose" "strict"
attributionModel
string
Enum: "firstExposure" "experimentDuration" "lookbackOverride"

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.

object (LookbackOverride)

Controls the lookback override for the experiment. For type "window", value must be a non-negative number and valueUnit is required.

statsEngine
string
Enum: "bayesian" "frequentist"
Array of objects >= 2 items
Array of objects
regressionAdjustmentEnabled
boolean

Controls whether regression adjustment (CUPED) is enabled for experiment analyses

sequentialTestingEnabled
boolean

Only applicable to frequentist analyses

sequentialTestingTuningParameter
number
shareLevel
string
Enum: "public" "organization"
banditScheduleValue
number
banditScheduleUnit
string
Enum: "days" "hours"
banditBurnInValue
number
banditBurnInUnit
string
Enum: "days" "hours"
banditConversionWindowValue
number
banditConversionWindowUnit
string
Enum: "days" "hours"
postStratificationEnabled
boolean or null

When null, the organization default is used.

object (ExperimentDecisionFrameworkSettings)

Controls the decision framework and metric overrides for the experiment. Replaces the entire stored object on update (does not patch individual fields).

Array of objects (ExperimentMetricOverrideEntry)

Per-metric analysis overrides for this experiment. Replaces the entire stored array (does not patch individual entries).

defaultDashboardId
string

ID of the default dashboard for this experiment.

object
Array of objects

Custom slices that apply to ALL applicable metrics in the experiment

Responses

Request samples

Content type
application/json
{
  • "datasourceId": "string",
  • "assignmentQueryId": "string",
  • "trackingKey": "string",
  • "bypassDuplicateKeyCheck": true,
  • "name": "string",
  • "type": "standard",
  • "project": "string",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "metrics": [
    ],
  • "secondaryMetrics": [
    ],
  • "guardrailMetrics": [
    ],
  • "activationMetric": "string",
  • "segmentId": "string",
  • "queryFilter": "string",
  • "owner": "string",
  • "archived": true,
  • "status": "draft",
  • "autoRefresh": true,
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "hashVersion": 1,
  • "disableStickyBucketing": true,
  • "bucketVersion": 0,
  • "minBucketVersion": 0,
  • "results": "dnf",
  • "winner": 0,
  • "analysis": "string",
  • "releasedVariationId": "string",
  • "excludeFromPayload": true,
  • "inProgressConversions": "loose",
  • "attributionModel": "firstExposure",
  • "lookbackOverride": {
    },
  • "statsEngine": "bayesian",
  • "variations": [
    ],
  • "phases": [
    ],
  • "regressionAdjustmentEnabled": true,
  • "sequentialTestingEnabled": true,
  • "sequentialTestingTuningParameter": 0,
  • "shareLevel": "public",
  • "banditScheduleValue": 0,
  • "banditScheduleUnit": "days",
  • "banditBurnInValue": 0,
  • "banditBurnInUnit": "days",
  • "banditConversionWindowValue": 0,
  • "banditConversionWindowUnit": "days",
  • "postStratificationEnabled": true,
  • "decisionFrameworkSettings": {
    },
  • "metricOverrides": [
    ],
  • "defaultDashboardId": "string",
  • "customFields": {
    },
  • "customMetricSlices": [
    ]
}

Response samples

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

Create Experiment Snapshot

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The experiment id of the experiment to update

Request Body schema: application/json
optional
triggeredBy
string
Enum: "manual" "schedule"

Set to "schedule" if you want this request to trigger notifications and other events as it if were a scheduled update. Defaults to manual.

Responses

Request samples

Content type
application/json
{
  • "triggeredBy": "manual"
}

Response samples

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

Upload a variation screenshot

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

variationId
required
string

The variation ID (e.g. var_abc123) from the experiment's variations

Request Body schema: application/json
required
screenshot
required
string <base64>

Base64-encoded screenshot data

contentType
required
string
Enum: "image/png" "image/jpeg" "image/gif"

MIME type of the screenshot

description
string

Optional description for the screenshot

Responses

Request samples

Content type
application/json
{
  • "screenshot": "string",
  • "contentType": "image/png",
  • "description": "string"
}

Response samples

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

Delete a variation screenshot

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

variationId
required
string

The variation ID (e.g. var_abc123) from the experiment's variations

Request Body schema: application/json
required
path
required
string

The screenshot path/URL to delete (from upload response)

Responses

Request samples

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

Response samples

Content type
application/json
{ }

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": {
    }
}

Experiment Templates

Get a single experimentTemplate

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/experiment-templates/{id} -u secret_abc123DEF456

Response samples

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

Delete a single experimentTemplate

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/experiment-templates/{id} -u secret_abc123DEF456

Response samples

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

Update a single experimentTemplate

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string
Request Body schema: application/json
required
project
string
object
type
string
Value: "standard"
hypothesis
string
description
string
tags
Array of strings
object
datasource
string
exposureQueryId
string
hashAttribute
string
fallbackAttribute
string
disableStickyBucketing
boolean
goalMetrics
Array of strings
secondaryMetrics
Array of strings
guardrailMetrics
Array of strings
activationMetric
string
statsEngine
string
Enum: "bayesian" "frequentist"
segment
string
skipPartialData
boolean
object
Array of objects

Responses

Request samples

Content type
application/json
{
  • "project": "string",
  • "templateMetadata": {
    },
  • "type": "standard",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "customFields": {
    },
  • "datasource": "string",
  • "exposureQueryId": "string",
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "disableStickyBucketing": true,
  • "goalMetrics": [
    ],
  • "secondaryMetrics": [
    ],
  • "guardrailMetrics": [
    ],
  • "activationMetric": "string",
  • "statsEngine": "bayesian",
  • "segment": "string",
  • "skipPartialData": true,
  • "targeting": {
    },
  • "customMetricSlices": [
    ]
}

Response samples

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

Create a single experimentTemplate

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
required
project
string
required
object
type
required
string
Value: "standard"
hypothesis
string
description
string
tags
Array of strings
object
datasource
required
string
exposureQueryId
required
string
hashAttribute
string
fallbackAttribute
string
disableStickyBucketing
boolean
goalMetrics
Array of strings
secondaryMetrics
Array of strings
guardrailMetrics
Array of strings
activationMetric
string
statsEngine
required
string
Enum: "bayesian" "frequentist"
segment
string
skipPartialData
boolean
required
object
Array of objects

Responses

Request samples

Content type
application/json
{
  • "project": "string",
  • "templateMetadata": {
    },
  • "type": "standard",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "customFields": {
    },
  • "datasource": "string",
  • "exposureQueryId": "string",
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "disableStickyBucketing": true,
  • "goalMetrics": [
    ],
  • "secondaryMetrics": [
    ],
  • "guardrailMetrics": [
    ],
  • "activationMetric": "string",
  • "statsEngine": "bayesian",
  • "segment": "string",
  • "skipPartialData": true,
  • "targeting": {
    },
  • "customMetricSlices": [
    ]
}

Response samples

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

Get all experimentTemplates

Authorizations:
bearerAuthbasicAuth
query Parameters
projectId
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/experiment-templates -u secret_abc123DEF456

Response samples

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

Bulk create or update experiment templates

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
required
required
Array of objects
Array
id
required
string
required
object

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "added": -9007199254740991,
  • "updated": -9007199254740991
}

Experiment Snapshots

Experiment Snapshots (the individual updates of an experiment)

Create Experiment Snapshot

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The experiment id of the experiment to update

Request Body schema: application/json
optional
triggeredBy
string
Enum: "manual" "schedule"

Set to "schedule" if you want this request to trigger notifications and other events as it if were a scheduled update. Defaults to manual.

Responses

Request samples

Content type
application/json
{
  • "triggeredBy": "manual"
}

Response samples

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

Get an experiment snapshot status

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource (a snapshot ID, not experiment ID)

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/snapshots/snp_1234 \
  -u secret_abc123DEF456:

Response samples

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

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
}

Create a single dimension

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

Name of the dimension

description
string

Description of the dimension

owner
string

Owner of the dimension

datasourceId
required
string

ID of the datasource this dimension belongs to

identifierType
required
string

Type of identifier (user, anonymous, etc.)

query
required
string

SQL query or equivalent for the dimension

managedBy
string
Enum: "" "api"

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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "datasourceId": "string",
  • "identifierType": "string",
  • "query": "string",
  • "managedBy": ""
}

Response samples

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

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": {
    }
}

Update a single dimension

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
name
string

Name of the dimension

description
string

Description of the dimension

owner
string

Owner of the dimension

datasourceId
string

ID of the datasource this dimension belongs to

identifierType
string

Type of identifier (user, anonymous, etc.)

query
string

SQL query or equivalent for the dimension

managedBy
string
Enum: "" "api"

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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "datasourceId": "string",
  • "identifierType": "string",
  • "query": "string",
  • "managedBy": ""
}

Response samples

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

Deletes a single dimension

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/dimensions/dim_123abc \
  -u secret_abc123DEF456:

Response samples

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

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
}

Create a single segment

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

Name of the segment

owner
string

Owner of the segment

description
string

Description of the segment

datasourceId
required
string

ID of the datasource this segment belongs to

identifierType
required
string

Type of identifier (user, anonymous, etc.)

projects
Array of strings

List of project IDs for projects that can access this segment

managedBy
string
Enum: "" "api"

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

type
required
string
Enum: "SQL" "FACT"

GrowthBook supports two types of Segments, SQL and FACT. SQL segments are defined by a SQL query, and FACT segments are defined by a fact table and filters.

query
string

SQL query that defines the Segment. This is required for SQL segments.

factTableId
string

ID of the fact table this segment belongs to. This is required for FACT segments.

filters
Array of strings

Optional array of fact table filter ids that can further define the Fact Table based Segment.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "owner": "string",
  • "description": "string",
  • "datasourceId": "string",
  • "identifierType": "string",
  • "projects": [
    ],
  • "managedBy": "",
  • "type": "SQL",
  • "query": "string",
  • "factTableId": "string",
  • "filters": [
    ]
}

Response samples

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

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": {
    }
}

Update a single segment

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
name
string

Name of the segment

description
string

Description of the segment

owner
string

Owner of the segment

datasourceId
string

ID of the datasource this segment belongs to

identifierType
string

Type of identifier (user, anonymous, etc.)

projects
Array of strings

List of project IDs for projects that can access this segment

managedBy
string
Enum: "" "api"

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

type
string
Enum: "SQL" "FACT"

GrowthBook supports two types of Segments, SQL and FACT. SQL segments are defined by a SQL query, and FACT segments are defined by a fact table and filters.

query
string

SQL query that defines the Segment. This is required for SQL segments.

factTableId
string

ID of the fact table this segment belongs to. This is required for FACT segments.

filters
Array of strings

Optional array of fact table filter ids that can further define the Fact Table based Segment.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "datasourceId": "string",
  • "identifierType": "string",
  • "projects": [
    ],
  • "managedBy": "",
  • "type": "SQL",
  • "query": "string",
  • "factTableId": "string",
  • "filters": [
    ]
}

Response samples

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

Deletes a single segment

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/segment/seg_123abc \
  -u secret_abc123DEF456:

Response samples

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

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
required
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
includeRuleIds
boolean
includeProjectIdInMetadata
boolean
includeCustomFieldsInMetadata
boolean
allowedCustomFieldsInMetadata
Array of strings
includeTagsInMetadata
boolean
proxyEnabled
boolean
proxyHost
string
hashSecureAttributes
boolean
remoteEvalEnabled
boolean
savedGroupReferencesEnabled
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,
  • "includeRuleIds": true,
  • "includeProjectIdInMetadata": true,
  • "includeCustomFieldsInMetadata": true,
  • "allowedCustomFieldsInMetadata": [
    ],
  • "includeTagsInMetadata": true,
  • "proxyEnabled": true,
  • "proxyHost": "string",
  • "hashSecureAttributes": true,
  • "remoteEvalEnabled": true,
  • "savedGroupReferencesEnabled": 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
required
name
string
language
string
sdkVersion
string
environment
string
projects
Array of strings
encryptPayload
boolean
includeVisualExperiments
boolean
includeDraftExperiments
boolean
includeExperimentNames
boolean
includeRedirectExperiments
boolean
includeRuleIds
boolean
includeProjectIdInMetadata
boolean
includeCustomFieldsInMetadata
boolean
allowedCustomFieldsInMetadata
Array of strings
includeTagsInMetadata
boolean
proxyEnabled
boolean
proxyHost
string
hashSecureAttributes
boolean
remoteEvalEnabled
boolean
savedGroupReferencesEnabled
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,
  • "includeRuleIds": true,
  • "includeProjectIdInMetadata": true,
  • "includeCustomFieldsInMetadata": true,
  • "allowedCustomFieldsInMetadata": [
    ],
  • "includeTagsInMetadata": true,
  • "proxyEnabled": true,
  • "proxyHost": "string",
  • "hashSecureAttributes": true,
  • "remoteEvalEnabled": true,
  • "savedGroupReferencesEnabled": true
}

Response samples

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

Find a single sdk connection by its key

Authorizations:
bearerAuthbasicAuth
path Parameters
key
required
string

The key of the requested sdkConnection

Responses

Request samples

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

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": [
    ]
}

Create a visual changeset for an experiment

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
editorUrl
required
string

URL of the page opened in the visual editor when creating this changeset

required
Array of objects

URL patterns that determine which pages this visual changeset applies to

Responses

Request samples

Content type
application/json
{
  • "editorUrl": "string",
  • "urlPatterns": [
    ]
}

Response samples

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

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
required
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.

projects
Array of strings

Responses

Request samples

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

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
required
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.

projects
Array of strings

Responses

Request samples

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

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
required
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
required
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": {
    }
}

Members

Members are users who have been invited to an organization.

Get all organization members

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)

userName
string

Name of the user.

userEmail
string

Email address of the user.

globalRole
string

Name of the global role

Responses

Request samples

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

Response samples

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

Removes a single user from an organization

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/members/member_id \
  -u secret_abc123DEF456:

Response samples

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

Update a member's global role (including any enviroment restrictions, if applicable). Can also update a member's project roles if your plan supports it.

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
required
object
role
string
environments
Array of strings
Array of objects

Responses

Request samples

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

Response samples

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

Code References

Intended for use with our code reference CI utility, gb-find-code-refs.

Submit list of code references

Authorizations:
bearerAuthbasicAuth
query Parameters
deleteMissing
string
Enum: "true" "false"

Whether to delete code references that are no longer present in the submitted data

Request Body schema: application/json
required
branch
required
string
repoName
required
string
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "branch": "string",
  • "repoName": "string",
  • "refs": [
    ]
}

Response samples

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

Get list of all code references for the current organization

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/code-refs/ \
  -u secret_abc123DEF456:

Response samples

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

Get list of code references for a single feature id

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

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

Response samples

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

Archetypes

Archetypes allow you to simulate the result of targeting rules on pre-set user attributes

Get the organization's archetypes

Authorizations:
bearerAuthbasicAuth

Responses

Request samples

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

Response samples

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

Create a single archetype

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

Whether to make this Archetype available to other team members

attributes
object

The attributes to set when using this Archetype

projects
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "isPublic": true,
  • "attributes": { },
  • "projects": [
    ]
}

Response samples

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

Get a single archetype

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

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

Response samples

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

Update a single archetype

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Request Body schema: application/json
required
name
string
description
string
isPublic
boolean

Whether to make this Archetype available to other team members

attributes
object

The attributes to set when using this Archetype

projects
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "isPublic": true,
  • "attributes": { },
  • "projects": [
    ]
}

Response samples

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

Deletes a single archetype

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/archetypes/sam_abc123 \
  -u secret_abc123DEF456:

Response samples

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

Queries

Retrieve queries used in experiments to calculate results.

Get a single query

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

The id of the requested resource

Responses

Request samples

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

Response samples

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

Settings

Get the organization settings.

Get organization settings

Authorizations:
bearerAuthbasicAuth

Responses

Request samples

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

Response samples

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

Attributes

Used when targeting feature flags and experiments.

Get the organization's attributes

Authorizations:
bearerAuthbasicAuth

Responses

Request samples

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

Response samples

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

Create a new attribute

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

The attribute property

datatype
required
string
Enum: "boolean" "string" "number" "secureString" "enum" "string[]" "number[]" "secureString[]"

The attribute datatype

description
string

The description of the new attribute

archived
boolean

The attribute is archived

hashAttribute
boolean

Shall the attribute be hashed

enum
string
format
string
Enum: "" "version" "date" "isoCountryCode"

The attribute's format

projects
Array of strings
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "property": "string",
  • "datatype": "boolean",
  • "description": "string",
  • "archived": true,
  • "hashAttribute": true,
  • "enum": "string",
  • "format": "",
  • "projects": [
    ],
  • "tags": [
    ]
}

Response samples

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

Update an attribute

Authorizations:
bearerAuthbasicAuth
path Parameters
property
required
string

The attribute property

Request Body schema: application/json
required
datatype
string
Enum: "boolean" "string" "number" "secureString" "enum" "string[]" "number[]" "secureString[]"

The attribute datatype

description
string

The description of the new attribute

archived
boolean

The attribute is archived

hashAttribute
boolean

Shall the attribute be hashed

enum
string
format
string
Enum: "" "version" "date" "isoCountryCode"

The attribute's format

projects
Array of strings
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "datatype": "boolean",
  • "description": "string",
  • "archived": true,
  • "hashAttribute": true,
  • "enum": "string",
  • "format": "",
  • "projects": [
    ],
  • "tags": [
    ]
}

Response samples

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

Deletes a single attribute

Authorizations:
bearerAuthbasicAuth
path Parameters
property
required
string

The attribute property

Responses

Request samples

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

Response samples

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

Usage

Usage information for metrics in experiments.

Get metric usage across experiments

Returns usage information for one or more legacy or fact metrics, showing which experiments use each metric and some usage statistics. If a metric is part of a metric group, then usage of that metric group counts as usage of all metrics in the group. Warning: only includes experiments that you have access to! If you do not have admin access or read access to experiments across all projects, this endpoint may not return the latest usage data across all experiments.

Authorizations:
bearerAuthbasicAuth
query Parameters
ids
required
string

List of comma-separated metric IDs (both fact and legacy) to get usage for, e.g. ids=met_123,fact_456

Responses

Request samples

curl "https://api.growthbook.io/api/v1/usage/metrics?ids=met_123,fact_456" \
  -u secret_abc123DEF456:

Response samples

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

Analytics Explorations

Create a Metric based visualization

Authorizations:
bearerAuthbasicAuth
query Parameters
cache
string
Enum: "preferred" "required" "never"

Controls cache behavior for this exploration: preferred (default) returns a cached result if one exists, otherwise runs a new query; never always runs a new query, ignoring any cached results; required only returns a cached result, if none exists returns exploration: null with a message

Request Body schema: application/json
required
datasource
required
string

ID of the datasource to query

required
Array of objects or objects or objects or objects
chartType
required
string
Enum: "line" "area" "timeseries-table" "table" "bar" "stackedBar" "horizontalBar" "stackedHorizontalBar" "bigNumber"
required
object
type
required
string
Value: "metric"
required
object

Responses

Request samples

Content type
application/json
{
  • "datasource": "string",
  • "dimensions": [
    ],
  • "chartType": "line",
  • "dateRange": {
    },
  • "type": "metric",
  • "dataset": {
    }
}

Response samples

Content type
application/json
{
  • "exploration": {
    },
  • "query": {
    },
  • "explorationUrl": "string",
  • "message": "string"
}

Run a Fact Table based visualization

Authorizations:
bearerAuthbasicAuth
query Parameters
cache
string
Enum: "preferred" "required" "never"

Controls cache behavior for this exploration: preferred (default) returns a cached result if one exists, otherwise runs a new query; never always runs a new query, ignoring any cached results; required only returns a cached result, if none exists returns exploration: null with a message

Request Body schema: application/json
required
datasource
required
string

ID of the datasource to query

required
Array of objects or objects or objects or objects
chartType
required
string
Enum: "line" "area" "timeseries-table" "table" "bar" "stackedBar" "horizontalBar" "stackedHorizontalBar" "bigNumber"
required
object
type
required
string
Value: "fact_table"
required
object

Responses

Request samples

Content type
application/json
{
  • "datasource": "string",
  • "dimensions": [
    ],
  • "chartType": "line",
  • "dateRange": {
    },
  • "type": "fact_table",
  • "dataset": {
    }
}

Response samples

Content type
application/json
{
  • "exploration": {
    },
  • "query": {
    },
  • "explorationUrl": "string",
  • "message": "string"
}

Create a Data Source based visualization

Authorizations:
bearerAuthbasicAuth
query Parameters
cache
string
Enum: "preferred" "required" "never"

Controls cache behavior for this exploration: preferred (default) returns a cached result if one exists, otherwise runs a new query; never always runs a new query, ignoring any cached results; required only returns a cached result, if none exists returns exploration: null with a message

Request Body schema: application/json
required
datasource
required
string

ID of the datasource to query

required
Array of objects or objects or objects or objects
chartType
required
string
Enum: "line" "area" "timeseries-table" "table" "bar" "stackedBar" "horizontalBar" "stackedHorizontalBar" "bigNumber"
required
object
type
required
string
Value: "data_source"
required
object

Responses

Request samples

Content type
application/json
{
  • "datasource": "string",
  • "dimensions": [
    ],
  • "chartType": "line",
  • "dateRange": {
    },
  • "type": "data_source",
  • "dataset": {
    }
}

Response samples

Content type
application/json
{
  • "exploration": {
    },
  • "query": {
    },
  • "explorationUrl": "string",
  • "message": "string"
}

Custom Fields

Create a single customField

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

The unique key for the custom field

name
required
string

The display name of the custom field

description
string
placeholder
string
string or number or boolean or string or string or Array of strings or Array of numbers or Array of booleans or Array of strings or Array of strings
type
required
string
Enum: "text" "textarea" "markdown" "enum" "multiselect" "url" "number" "boolean" "date" "datetime"

The type of value this custom field will take

values
string
required
required
boolean
projects
Array of strings
sections
required
Array of strings
Items Enum: "feature" "experiment"

What types of objects this custom field is applicable to (feature, experiment)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "placeholder": "string",
  • "defaultValue": "string",
  • "type": "text",
  • "values": "string",
  • "required": true,
  • "projects": [
    ],
  • "sections": [
    ]
}

Response samples

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

Get all custom fields

Authorizations:
bearerAuthbasicAuth
query Parameters
projectId
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/custom-fields -u secret_abc123DEF456

Response samples

Content type
application/json
[
  • {
    }
]

Delete a single customField

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/custom-fields/{id} -u secret_abc123DEF456

Response samples

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

Get a single customField

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/custom-fields/{id} -u secret_abc123DEF456

Response samples

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

Update a single customField

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

The display name of the custom field

description
string
placeholder
string
string or number or boolean or string or string or Array of strings or Array of numbers or Array of booleans or Array of strings or Array of strings
values
string
required
boolean
projects
Array of strings
sections
Array of strings
Items Enum: "feature" "experiment"

What types of objects this custom field is applicable to (feature, experiment)

active
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "placeholder": "string",
  • "defaultValue": "string",
  • "values": "string",
  • "required": true,
  • "projects": [
    ],
  • "sections": [
    ],
  • "active": true
}

Response samples

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

Dashboards

Get a single dashboard

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/dashboards/{id} -u secret_abc123DEF456

Response samples

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

Delete a single dashboard

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/dashboards/{id} -u secret_abc123DEF456

Response samples

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

Update a single dashboard

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

The display name of the Dashboard

editLevel
string
Enum: "published" "private"

Dashboards that are "published" are editable by organization members with appropriate permissions

shareLevel
string
Enum: "published" "private"

General Dashboards only. Dashboards that are "published" are viewable by organization members with appropriate permissions

enableAutoUpdates
boolean

If enabled for a General Dashboard, also requires an updateSchedule

object or object

General Dashboards only. Experiment Dashboards update based on the parent experiment instead

projects
Array of strings

General Dashboards only, Experiment Dashboards use the experiment's projects

Array of (object or objects or objects or objects or objects or objects or objects or objects) or (object or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects)

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "editLevel": "published",
  • "shareLevel": "published",
  • "enableAutoUpdates": true,
  • "updateSchedule": {
    },
  • "projects": [
    ],
  • "blocks": [
    ]
}

Response samples

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

Create a single dashboard

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

The display name of the Dashboard

editLevel
required
string
Enum: "published" "private"

Dashboards that are "published" are editable by organization members with appropriate permissions

shareLevel
required
string
Enum: "published" "private"

General Dashboards only. Dashboards that are "published" are viewable by organization members with appropriate permissions

enableAutoUpdates
required
boolean

If enabled for a General Dashboard, also requires an updateSchedule

object or object

General Dashboards only. Experiment Dashboards update based on the parent experiment instead

experimentId
string

The parent experiment for an Experiment Dashboard, or undefined for a general dashboard

projects
Array of strings

General Dashboards only, Experiment Dashboards use the experiment's projects

required
Array of objects or objects or objects or objects or objects or objects or objects or objects

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "editLevel": "published",
  • "shareLevel": "published",
  • "enableAutoUpdates": true,
  • "updateSchedule": {
    },
  • "experimentId": "string",
  • "projects": [
    ],
  • "blocks": [
    ]
}

Response samples

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

Get all dashboards

Authorizations:
bearerAuthbasicAuth

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/dashboards -u secret_abc123DEF456

Response samples

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

Get all dashboards for an experiment

Authorizations:
bearerAuthbasicAuth
path Parameters
experimentId
required
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/dashboards/by-experiment/{experimentId} -u secret_abc123DEF456

Response samples

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

Metric Groups

Get a single metricGroup

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/metric-groups/{id} -u secret_abc123DEF456

Response samples

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

Delete a single metricGroup

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/metric-groups/{id} -u secret_abc123DEF456

Response samples

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

Update a single metricGroup

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string
Request Body schema: application/json
required
name
string
description
string
tags
Array of strings
projects
Array of strings
metrics
Array of strings
datasource
string
owner
string

Will default to the current user

archived
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "tags": [
    ],
  • "projects": [
    ],
  • "metrics": [
    ],
  • "datasource": "string",
  • "owner": "string",
  • "archived": true
}

Response samples

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

Create a single metricGroup

Authorizations:
bearerAuthbasicAuth
Request Body schema: application/json
required
name
required
string
description
required
string
tags
Array of strings
projects
required
Array of strings
metrics
required
Array of strings
datasource
required
string
owner
string

Will default to the current user

archived
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "tags": [
    ],
  • "projects": [
    ],
  • "metrics": [
    ],
  • "datasource": "string",
  • "owner": "string",
  • "archived": true
}

Response samples

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

Get all metricGroups

Authorizations:
bearerAuthbasicAuth

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/metric-groups -u secret_abc123DEF456

Response samples

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

Teams

Get a single team

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/teams/{id} -u secret_abc123DEF456

Response samples

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

Update a single team

Authorizations:
bearerAuthbasicAuth
path Parameters
id
required
string
Request Body schema: application/json
required
name
string
createdBy
string
description
string
role
string

The global role for members of this team

limitAccessByEnvironment
boolean
environments
Array of strings

An empty array means 'all environments'

Array of objects
object
defaultProject
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "createdBy": "string",
  • "description": "string",
  • "role": "string",
  • "limitAccessByEnvironment": true,
  • "environments": [
    ],
  • "projectRoles": [
    ],
  • "managedBy": {
    },
  • "defaultProject": "string"
}

Response samples

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

Create a single team

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

The global role for members of this team

limitAccessByEnvironment
boolean
environments
Array of strings

An empty array means 'all environments'

Array of objects
object
defaultProject
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "createdBy": "string",
  • "description": "string",
  • "role": "string",
  • "limitAccessByEnvironment": true,
  • "environments": [
    ],
  • "projectRoles": [
    ],
  • "managedBy": {
    },
  • "defaultProject": "string"
}

Response samples

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

Get all teams

Authorizations:
bearerAuthbasicAuth

Responses

Request samples

curl -X GET https://api.growthbook.io/api/v1/teams -u secret_abc123DEF456

Response samples

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

Add members to team

Authorizations:
bearerAuthbasicAuth
path Parameters
teamId
required
string
Request Body schema: application/json
required
members
required
Array of strings

Responses

Request samples

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

Response samples

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

Remove members from team

Authorizations:
bearerAuthbasicAuth
path Parameters
teamId
required
string
Request Body schema: application/json
required
members
required
Array of strings

Responses

Request samples

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

Response samples

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

Delete a single team

Authorizations:
bearerAuthbasicAuth
path Parameters
teamId
required
string
query Parameters
deleteMembers
string

When 'true', enables deleting a team that contains members

Responses

Request samples

curl -X DELETE https://api.growthbook.io/api/v1/teams/{teamId}/ -u secret_abc123DEF456

Response samples

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

Archetype

id
required
string
dateCreated
required
string
dateUpdated
required
string
name
required
string
description
string
owner
required
string
isPublic
required
boolean
attributes
required
object

The attributes to set when using this Archetype

projects
Array of strings
{
  • "id": "string",
  • "dateCreated": "string",
  • "dateUpdated": "string",
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "isPublic": true,
  • "attributes": { },
  • "projects": [
    ]
}

Attribute

property
required
string
datatype
required
string
Enum: "boolean" "string" "number" "secureString" "enum" "string[]" "number[]" "secureString[]"
description
string
hashAttribute
boolean
archived
boolean
enum
string
format
string
Enum: "" "version" "date" "isoCountryCode"
projects
Array of strings
tags
Array of strings
{
  • "property": "string",
  • "datatype": "boolean",
  • "description": "string",
  • "hashAttribute": true,
  • "archived": true,
  • "enum": "string",
  • "format": "",
  • "projects": [
    ],
  • "tags": [
    ]
}

CodeRef

organization
required
string

The organization name

dateUpdated
required
string <date-time>

When the code references were last updated

feature
required
string

Feature identifier

repo
required
string

Repository name

branch
required
string

Branch name

platform
string
Enum: "github" "gitlab" "bitbucket"

Source control platform

required
Array of objects
{
  • "organization": "string",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "feature": "string",
  • "repo": "string",
  • "branch": "string",
  • "platform": "github",
  • "refs": [
    ]
}

DataSource

id
required
string
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
type
required
string
name
required
string
description
required
string
projectIds
required
Array of strings
eventTracker
required
string
required
Array of objects
required
Array of objects
required
Array of objects
object
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "type": "string",
  • "name": "string",
  • "description": "string",
  • "projectIds": [
    ],
  • "eventTracker": "string",
  • "identifierTypes": [
    ],
  • "assignmentQueries": [
    ],
  • "identifierJoinQueries": [
    ],
  • "mixpanelSettings": {
    }
}

Dimension

id
required
string
dateCreated
required
string
dateUpdated
required
string
owner
required
string
datasourceId
required
string
identifierType
required
string
name
required
string
description
string
query
required
string
managedBy
string
Enum: "" "api" "config"

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

{
  • "id": "string",
  • "dateCreated": "string",
  • "dateUpdated": "string",
  • "owner": "string",
  • "datasourceId": "string",
  • "identifierType": "string",
  • "name": "string",
  • "description": "string",
  • "query": "string",
  • "managedBy": ""
}

Environment

id
required
string
description
required
string
toggleOnList
required
boolean
defaultState
required
boolean
projects
required
Array of strings
parent
string
{
  • "id": "string",
  • "description": "string",
  • "toggleOnList": true,
  • "defaultState": true,
  • "projects": [
    ],
  • "parent": "string"
}

Experiment

id
required
string
trackingKey
required
string
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
name
required
string
type
required
string
Enum: "standard" "multi-armed-bandit"
project
required
string
hypothesis
required
string
description
required
string
tags
required
Array of strings
owner
required
string
archived
required
boolean
status
required
string
autoRefresh
required
boolean
hashAttribute
required
string
fallbackAttribute
string
hashVersion
required
number
Enum: 1 2
disableStickyBucketing
boolean
bucketVersion
number
minBucketVersion
number
required
Array of objects
required
Array of objects
required
object (ExperimentAnalysisSettings)
object
shareLevel
string
Enum: "public" "organization"
publicUrl
string
banditScheduleValue
number
banditScheduleUnit
string
Enum: "days" "hours"
banditBurnInValue
number
banditBurnInUnit
string
Enum: "days" "hours"
banditConversionWindowValue
number
banditConversionWindowUnit
string
Enum: "days" "hours"
linkedFeatures
Array of strings
hasVisualChangesets
boolean
hasURLRedirects
boolean
object
Array of objects

Custom slices that apply to ALL applicable metrics in the experiment

defaultDashboardId
string

ID of the default dashboard for this experiment.

templateId
string
{
  • "id": "string",
  • "trackingKey": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "type": "standard",
  • "project": "string",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "owner": "string",
  • "archived": true,
  • "status": "string",
  • "autoRefresh": true,
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "hashVersion": 1,
  • "disableStickyBucketing": true,
  • "bucketVersion": 0,
  • "minBucketVersion": 0,
  • "variations": [
    ],
  • "phases": [
    ],
  • "settings": {
    },
  • "resultSummary": {
    },
  • "shareLevel": "public",
  • "publicUrl": "string",
  • "banditScheduleValue": 0,
  • "banditScheduleUnit": "days",
  • "banditBurnInValue": 0,
  • "banditBurnInUnit": "days",
  • "banditConversionWindowValue": 0,
  • "banditConversionWindowUnit": "days",
  • "linkedFeatures": [
    ],
  • "hasVisualChangesets": true,
  • "hasURLRedirects": true,
  • "customFields": { },
  • "customMetricSlices": [
    ],
  • "defaultDashboardId": "string",
  • "templateId": "string"
}

ExperimentAnalysisSettings

datasourceId
required
string
assignmentQueryId
required
string
experimentId
required
string
segmentId
required
string
queryFilter
required
string
inProgressConversions
required
any
Enum: "include" "exclude"
attributionModel
required
any
Enum: "firstExposure" "experimentDuration" "lookbackOverride"

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.

object (LookbackOverride)

Controls the lookback override for the experiment. For type "window", value must be a non-negative number and valueUnit is required.

statsEngine
required
any
Enum: "bayesian" "frequentist"
regressionAdjustmentEnabled
boolean
sequentialTestingEnabled
boolean
sequentialTestingTuningParameter
number
postStratificationEnabled
boolean or null

When null, the organization default is used.

object (ExperimentDecisionFrameworkSettings)

Controls the decision framework and metric overrides for the experiment. Replaces the entire stored object on update (does not patch individual fields).

Array of objects (ExperimentMetricOverrideEntry)

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).

required
Array of objects (ExperimentMetric)
required
Array of objects (ExperimentMetric)
required
Array of objects (ExperimentMetric)
object (ExperimentMetric)
{
  • "datasourceId": "string",
  • "assignmentQueryId": "string",
  • "experimentId": "string",
  • "segmentId": "string",
  • "queryFilter": "string",
  • "inProgressConversions": "include",
  • "attributionModel": "firstExposure",
  • "lookbackOverride": {
    },
  • "statsEngine": "bayesian",
  • "regressionAdjustmentEnabled": true,
  • "sequentialTestingEnabled": true,
  • "sequentialTestingTuningParameter": 0,
  • "postStratificationEnabled": true,
  • "decisionFrameworkSettings": {
    },
  • "metricOverrides": [
    ],
  • "goals": [
    ],
  • "secondaryMetrics": [
    ],
  • "guardrails": [
    ],
  • "activationMetric": {
    }
}

ExperimentDecisionFrameworkSettings

decisionCriteriaId
string
Array of objects
{
  • "decisionCriteriaId": "string",
  • "decisionFrameworkMetricOverrides": [
    ]
}

ExperimentMetric

metricId
required
string
required
object
{
  • "metricId": "string",
  • "overrides": {
    }
}

ExperimentMetricOverrideEntry

id
required
string

ID of the metric to override settings for.

windowType
string
Enum: "conversion" "lookback" ""
windowHours
number
delayHours
number
properPriorOverride
boolean

Must be true for the override to take effect. If true, the other proper prior settings in this object will be used if present.

properPriorEnabled
boolean
properPriorMean
number
properPriorStdDev
number
regressionAdjustmentOverride
boolean

Must be true for the override to take effect. If true, the other regression adjustment settings in this object will be used if present.

regressionAdjustmentEnabled
boolean
regressionAdjustmentDays
number
{
  • "id": "string",
  • "windowType": "conversion",
  • "windowHours": 0,
  • "delayHours": 0,
  • "properPriorOverride": true,
  • "properPriorEnabled": true,
  • "properPriorMean": 0,
  • "properPriorStdDev": 0,
  • "regressionAdjustmentOverride": true,
  • "regressionAdjustmentEnabled": true,
  • "regressionAdjustmentDays": 0
}

ExperimentResults

id
required
string
dateUpdated
required
string
experimentId
required
string
phase
required
string
dateStart
required
string
dateEnd
required
string
required
object
required
object (ExperimentAnalysisSettings)
queryIds
required
Array of strings
required
Array of objects
{
  • "id": "string",
  • "dateUpdated": "string",
  • "experimentId": "string",
  • "phase": "string",
  • "dateStart": "string",
  • "dateEnd": "string",
  • "dimension": {
    },
  • "settings": {
    },
  • "queryIds": [
    ],
  • "results": [
    ]
}

ExperimentSnapshot

id
required
string
experiment
required
string
status
required
string
{
  • "id": "string",
  • "experiment": "string",
  • "status": "string"
}

ExperimentWithEnhancedStatus

id
required
string
trackingKey
required
string
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
name
required
string
type
required
string
Enum: "standard" "multi-armed-bandit"
project
required
string
hypothesis
required
string
description
required
string
tags
required
Array of strings
owner
required
string
archived
required
boolean
status
required
string
autoRefresh
required
boolean
hashAttribute
required
string
fallbackAttribute
string
hashVersion
required
number
Enum: 1 2
disableStickyBucketing
boolean
bucketVersion
number
minBucketVersion
number
required
Array of objects
required
Array of objects
required
object (ExperimentAnalysisSettings)
object
shareLevel
string
Enum: "public" "organization"
publicUrl
string
banditScheduleValue
number
banditScheduleUnit
string
Enum: "days" "hours"
banditBurnInValue
number
banditBurnInUnit
string
Enum: "days" "hours"
banditConversionWindowValue
number
banditConversionWindowUnit
string
Enum: "days" "hours"
linkedFeatures
Array of strings
hasVisualChangesets
boolean
hasURLRedirects
boolean
object
Array of objects

Custom slices that apply to ALL applicable metrics in the experiment

defaultDashboardId
string

ID of the default dashboard for this experiment.

templateId
string
object
{
  • "id": "string",
  • "trackingKey": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "type": "standard",
  • "project": "string",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "owner": "string",
  • "archived": true,
  • "status": "string",
  • "autoRefresh": true,
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "hashVersion": 1,
  • "disableStickyBucketing": true,
  • "bucketVersion": 0,
  • "minBucketVersion": 0,
  • "variations": [
    ],
  • "phases": [
    ],
  • "settings": {
    },
  • "resultSummary": {
    },
  • "shareLevel": "public",
  • "publicUrl": "string",
  • "banditScheduleValue": 0,
  • "banditScheduleUnit": "days",
  • "banditBurnInValue": 0,
  • "banditBurnInUnit": "days",
  • "banditConversionWindowValue": 0,
  • "banditConversionWindowUnit": "days",
  • "linkedFeatures": [
    ],
  • "hasVisualChangesets": true,
  • "hasURLRedirects": true,
  • "customFields": { },
  • "customMetricSlices": [
    ],
  • "defaultDashboardId": "string",
  • "templateId": "string",
  • "enhancedStatus": {
    }
}

FactMetric

id
required
string
name
required
string
description
required
string
owner
required
string
projects
required
Array of strings
tags
required
Array of strings
datasource
required
string
metricType
required
string
Enum: "proportion" "retention" "mean" "quantile" "ratio" "dailyParticipation"
required
object
object
inverse
required
boolean

Set to true for things like Bounce Rate, where you want the metric to decrease

object

Controls the settings for quantile metrics (mandatory if metricType is "quantile")

required
object

Controls how outliers are handled

required
object

Controls the conversion window for the metric

required
object

Controls the regression adjustment (CUPED) settings for the metric

riskThresholdSuccess
required
number
riskThresholdDanger
required
number
displayAsPercentage
boolean

If true and the metric is a ratio metric, variation means will be displayed as a percentage

minPercentChange
required
number
maxPercentChange
required
number
minSampleSize
required
number
targetMDE
required
number
managedBy
required
string
Enum: "" "api" "admin"

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

dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
archived
boolean
metricAutoSlices
Array of strings

Array of slice column names that will be automatically included in metric analysis. This is an enterprise feature.

{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "projects": [
    ],
  • "tags": [
    ],
  • "datasource": "string",
  • "metricType": "proportion",
  • "numerator": {
    },
  • "denominator": {
    },
  • "inverse": true,
  • "quantileSettings": {
    },
  • "cappingSettings": {
    },
  • "windowSettings": {
    },
  • "regressionAdjustmentSettings": {
    },
  • "riskThresholdSuccess": 0,
  • "riskThresholdDanger": 0,
  • "displayAsPercentage": true,
  • "minPercentChange": 0,
  • "maxPercentChange": 0,
  • "minSampleSize": 0,
  • "targetMDE": 0,
  • "managedBy": "",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "archived": true,
  • "metricAutoSlices": [
    ]
}

FactTable

id
required
string
name
required
string
description
required
string
owner
required
string
projects
required
Array of strings
tags
required
Array of strings
datasource
required
string
userIdTypes
required
Array of strings
sql
required
string
eventName
string

The event name used in SQL template variables

Array of objects (FactTableColumn)

Array of column definitions for this fact table

columnsError
string or null

Error message if there was an issue parsing the SQL schema

archived
boolean
managedBy
required
string
Enum: "" "api" "admin"

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

dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "owner": "string",
  • "projects": [
    ],
  • "tags": [
    ],
  • "datasource": "string",
  • "userIdTypes": [
    ],
  • "sql": "string",
  • "eventName": "string",
  • "columns": [
    ],
  • "columnsError": "string",
  • "archived": true,
  • "managedBy": "",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z"
}

FactTableColumn

column
required
string

The actual column name in the database/SQL query

datatype
required
string
Enum: "number" "string" "date" "boolean" "json" "other" ""
numberFormat
string
Enum: "" "currency" "time:seconds" "memory:bytes" "memory:kilobytes"
object

For JSON columns, defines the structure of nested fields

name
string

Display name for the column (can be different from the actual column name)

description
string
alwaysInlineFilter
boolean
Default: false

Whether this column should always be included as an inline filter in queries

deleted
required
boolean
Default: false
isAutoSliceColumn
boolean
Default: false

Whether this column can be used for auto slice analysis. This is an enterprise feature.

autoSlices
Array of strings

Specific slices to automatically analyze for this column.

lockedAutoSlices
Array of strings

Locked slices that are protected from automatic updates. These will always be included in the slice levels even if they're not in the top values query results.

dateCreated
string <date-time>
dateUpdated
string <date-time>
{
  • "column": "string",
  • "datatype": "number",
  • "numberFormat": "",
  • "jsonFields": {
    },
  • "name": "string",
  • "description": "string",
  • "alwaysInlineFilter": false,
  • "deleted": false,
  • "isAutoSliceColumn": false,
  • "autoSlices": [
    ],
  • "lockedAutoSlices": [
    ],
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z"
}

FactTableFilter

id
required
string
name
required
string
description
required
string
value
required
string
managedBy
required
string
Enum: "" "api"

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

dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "value": "string",
  • "managedBy": "",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z"
}

Feature

id
required
string
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
archived
required
boolean
description
required
string
owner
required
string
project
required
string
valueType
required
string
Enum: "boolean" "string" "number" "json"
defaultValue
required
string
tags
required
Array of strings
required
object
prerequisites
Array of strings

Feature IDs. Each feature must evaluate to true

required
object
object
object or null
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "archived": true,
  • "description": "string",
  • "owner": "string",
  • "project": "string",
  • "valueType": "boolean",
  • "defaultValue": "string",
  • "tags": [
    ],
  • "environments": {
    },
  • "prerequisites": [
    ],
  • "revision": {
    },
  • "customFields": { },
  • "holdout": {
    }
}

FeatureBaseRule

description
required
string
condition
string
id
required
string
enabled
required
boolean
Array of objects (ScheduleRule) [ items = 2 items ]

Simple time-based on/off schedule for this rule

scheduleType
string
Enum: "none" "schedule" "ramp"

UI hint for which scheduling mode is active:

  • none – no schedule
  • schedule – simple time-based enable/disable via scheduleRules
  • ramp – multi-step ramp-up controlled by an associated RampSchedule document
Array of objects
Array of objects
{
  • "description": "string",
  • "condition": "string",
  • "id": "string",
  • "enabled": true,
  • "scheduleRules": [
    ],
  • "scheduleType": "none",
  • "savedGroupTargeting": [
    ],
  • "prerequisites": [
    ]
}

FeatureDefinition

defaultValue
required
string or number or array or object or null
Array of objects
{
  • "defaultValue": "string",
  • "rules": [
    ]
}

FeatureEnvironment

enabled
required
boolean
defaultValue
required
string
required
Array of any (FeatureRule)
definition
string

A JSON stringified FeatureDefinition

object
{
  • "enabled": true,
  • "defaultValue": "string",
  • "rules": [
    ],
  • "definition": "string",
  • "draft": {
    }
}

FeatureExperimentRefRule

description
required
string
condition
string
id
required
string
enabled
required
boolean
Array of objects (ScheduleRule) [ items = 2 items ]

Simple time-based on/off schedule for this rule

scheduleType
string
Enum: "none" "schedule" "ramp"

UI hint for which scheduling mode is active:

  • none – no schedule
  • schedule – simple time-based enable/disable via scheduleRules
  • ramp – multi-step ramp-up controlled by an associated RampSchedule document
Array of objects
Array of objects
type
required
string
Value: "experiment-ref"
required
Array of objects
experimentId
required
string
{
  • "description": "string",
  • "condition": "string",
  • "id": "string",
  • "enabled": true,
  • "scheduleRules": [
    ],
  • "scheduleType": "none",
  • "savedGroupTargeting": [
    ],
  • "prerequisites": [
    ],
  • "type": "experiment-ref",
  • "variations": [
    ],
  • "experimentId": "string"
}

FeatureExperimentRule

description
required
string
condition
string
id
required
string
enabled
required
boolean
Array of objects (ScheduleRule) [ items = 2 items ]

Simple time-based on/off schedule for this rule

scheduleType
string
Enum: "none" "schedule" "ramp"

UI hint for which scheduling mode is active:

  • none – no schedule
  • schedule – simple time-based enable/disable via scheduleRules
  • ramp – multi-step ramp-up controlled by an associated RampSchedule document
Array of objects
Array of objects
type
required
string
Value: "experiment"
trackingKey
string
hashAttribute
string
fallbackAttribute
string
disableStickyBucketing
boolean
bucketVersion
number
minBucketVersion
number
object
coverage
number [ 0 .. 1 ]
Array of objects

Variation values with weights

{
  • "description": "string",
  • "condition": "string",
  • "id": "string",
  • "enabled": true,
  • "scheduleRules": [
    ],
  • "scheduleType": "none",
  • "savedGroupTargeting": [
    ],
  • "prerequisites": [
    ],
  • "type": "experiment",
  • "trackingKey": "string",
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "disableStickyBucketing": true,
  • "bucketVersion": 0,
  • "minBucketVersion": 0,
  • "namespace": {
    },
  • "coverage": 1,
  • "value": [
    ]
}

FeatureForceRule

description
required
string
condition
string
id
required
string
enabled
required
boolean
Array of objects (ScheduleRule) [ items = 2 items ]

Simple time-based on/off schedule for this rule

scheduleType
string
Enum: "none" "schedule" "ramp"

UI hint for which scheduling mode is active:

  • none – no schedule
  • schedule – simple time-based enable/disable via scheduleRules
  • ramp – multi-step ramp-up controlled by an associated RampSchedule document
Array of objects
Array of objects
type
required
string
Value: "force"
value
required
string
{
  • "description": "string",
  • "condition": "string",
  • "id": "string",
  • "enabled": true,
  • "scheduleRules": [
    ],
  • "scheduleType": "none",
  • "savedGroupTargeting": [
    ],
  • "prerequisites": [
    ],
  • "type": "force",
  • "value": "string"
}

FeatureRevision

baseVersion
required
integer
version
required
integer
comment
required
string
date
required
string <date-time>
status
required
string
createdBy
string
publishedBy
string
defaultValue
string

The default value at the time this revision was created

required
object
object
object

Per-environment enabled state captured in this revision (only present when kill-switch gating is enabled)

object

Per-environment prerequisites captured in this revision (only present when prerequisite gating is enabled)

Array of objects

Feature-level prerequisites captured in this revision (only present when prerequisite gating is enabled)

object

Metadata fields captured in this revision (only present when metadata gating is enabled)

{
  • "baseVersion": 0,
  • "version": 0,
  • "comment": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "status": "string",
  • "createdBy": "string",
  • "publishedBy": "string",
  • "defaultValue": "string",
  • "rules": {
    },
  • "definitions": {
    },
  • "environmentsEnabled": {
    },
  • "envPrerequisites": {
    },
  • "prerequisites": [
    ],
  • "metadata": {
    }
}

FeatureRolloutRule

description
required
string
condition
string
id
required
string
enabled
required
boolean
Array of objects (ScheduleRule) [ items = 2 items ]

Simple time-based on/off schedule for this rule

scheduleType
string
Enum: "none" "schedule" "ramp"

UI hint for which scheduling mode is active:

  • none – no schedule
  • schedule – simple time-based enable/disable via scheduleRules
  • ramp – multi-step ramp-up controlled by an associated RampSchedule document
Array of objects
Array of objects
type
required
string
Value: "rollout"
value
required
string
coverage
required
number [ 0 .. 1 ]
hashAttribute
required
string
seed
string

Optional seed for the hash function; defaults to the rule id

{
  • "description": "string",
  • "condition": "string",
  • "id": "string",
  • "enabled": true,
  • "scheduleRules": [
    ],
  • "scheduleType": "none",
  • "savedGroupTargeting": [
    ],
  • "prerequisites": [
    ],
  • "type": "rollout",
  • "value": "string",
  • "coverage": 1,
  • "hashAttribute": "string",
  • "seed": "string"
}

FeatureRule

description
required
string
condition
string
id
required
string
enabled
required
boolean
Array of objects (ScheduleRule) [ items = 2 items ]

Simple time-based on/off schedule for this rule

scheduleType
string
Enum: "none" "schedule" "ramp"

UI hint for which scheduling mode is active:

  • none – no schedule
  • schedule – simple time-based enable/disable via scheduleRules
  • ramp – multi-step ramp-up controlled by an associated RampSchedule document
Array of objects
Array of objects
type
required
string
value
required
string
Example
{
  • "description": "string",
  • "condition": "string",
  • "id": "string",
  • "enabled": true,
  • "scheduleRules": [
    ],
  • "scheduleType": "none",
  • "savedGroupTargeting": [
    ],
  • "prerequisites": [
    ],
  • "type": "force",
  • "value": "string"
}

FeatureSafeRolloutRule

description
required
string
condition
string
id
required
string
enabled
required
boolean
Array of objects (ScheduleRule) [ items = 2 items ]

Simple time-based on/off schedule for this rule

scheduleType
string
Enum: "none" "schedule" "ramp"

UI hint for which scheduling mode is active:

  • none – no schedule
  • schedule – simple time-based enable/disable via scheduleRules
  • ramp – multi-step ramp-up controlled by an associated RampSchedule document
Array of objects
Array of objects
type
required
string
Value: "safe-rollout"
controlValue
required
string
variationValue
required
string
seed
string
hashAttribute
string
trackingKey
string
safeRolloutId
string
status
string
Enum: "running" "released" "rolled-back" "stopped"
{
  • "description": "string",
  • "condition": "string",
  • "id": "string",
  • "enabled": true,
  • "scheduleRules": [
    ],
  • "scheduleType": "none",
  • "savedGroupTargeting": [
    ],
  • "prerequisites": [
    ],
  • "type": "safe-rollout",
  • "controlValue": "string",
  • "variationValue": "string",
  • "seed": "string",
  • "hashAttribute": "string",
  • "trackingKey": "string",
  • "safeRolloutId": "string",
  • "status": "running"
}

FeatureWithRevisions

id
required
string
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
archived
required
boolean
description
required
string
owner
required
string
project
required
string
valueType
required
string
Enum: "boolean" "string" "number" "json"
defaultValue
required
string
tags
required
Array of strings
required
object
prerequisites
Array of strings

Feature IDs. Each feature must evaluate to true

required
object
object
object or null
Array of objects (FeatureRevision)
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "archived": true,
  • "description": "string",
  • "owner": "string",
  • "project": "string",
  • "valueType": "boolean",
  • "defaultValue": "string",
  • "tags": [
    ],
  • "environments": {
    },
  • "prerequisites": [
    ],
  • "revision": {
    },
  • "customFields": { },
  • "holdout": {
    },
  • "revisions": [
    ]
}

InformationSchema

id
required
string
datasourceId
required
string
status
required
string
Enum: "PENDING" "COMPLETE"
object
required
Array of objects
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
{
  • "id": "string",
  • "datasourceId": "string",
  • "status": "PENDING",
  • "error": {
    },
  • "databases": [
    ],
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z"
}

InformationSchemaTable

id
required
string
datasourceId
required
string
informationSchemaId
required
string
tableName
required
string
tableSchema
required
string
databaseName
required
string
required
Array of objects
refreshMS
required
number
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
{
  • "id": "string",
  • "datasourceId": "string",
  • "informationSchemaId": "string",
  • "tableName": "string",
  • "tableSchema": "string",
  • "databaseName": "string",
  • "columns": [
    ],
  • "refreshMS": 0,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z"
}

LookbackOverride

type
required
any
Enum: "date" "window"
value
required
number or string <date-time>

For "window" type - non-negative numeric value (e.g. 7 for 7 days). For "date" type a date string.

valueUnit
any
Enum: "minutes" "hours" "days" "weeks"

Used when type is "window". Defaults to "days".

{
  • "type": "date",
  • "value": 0,
  • "valueUnit": "minutes"
}

Member

id
required
string
name
string
email
required
string
globalRole
required
string
environments
Array of strings
limitAccessByEnvironment
boolean
managedbyIdp
boolean
teams
Array of strings
Array of objects
lastLoginDate
string <date-time>
dateCreated
string <date-time>
dateUpdated
string <date-time>
{
  • "id": "string",
  • "name": "string",
  • "email": "string",
  • "globalRole": "string",
  • "environments": [
    ],
  • "limitAccessByEnvironment": true,
  • "managedbyIdp": true,
  • "teams": [
    ],
  • "projectRoles": [
    ],
  • "lastLoginDate": "2019-08-24T14:15:22Z",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z"
}

Metric

id
required
string
managedBy
required
string
Enum: "" "api" "config" "admin"

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

dateCreated
required
string
dateUpdated
required
string
owner
required
string
datasourceId
required
string
name
required
string
description
required
string
type
required
string
Enum: "binomial" "count" "duration" "revenue"
tags
required
Array of strings
projects
required
Array of strings
archived
required
boolean
required
object
object
object
object
{
  • "id": "string",
  • "managedBy": "",
  • "dateCreated": "string",
  • "dateUpdated": "string",
  • "owner": "string",
  • "datasourceId": "string",
  • "name": "string",
  • "description": "string",
  • "type": "binomial",
  • "tags": [
    ],
  • "projects": [
    ],
  • "archived": true,
  • "behavior": {
    },
  • "sql": {
    },
  • "sqlBuilder": {
    },
  • "mixpanel": {
    }
}

MetricAnalysis

id
required
string

The ID of the created metric analysis

status
required
string

The status of the analysis (e.g., "running", "completed", "error")

settings
object
{
  • "id": "string",
  • "status": "string",
  • "settings": { }
}

MetricUsage

metricId
required
string

The metric ID

error
string

Set when the metric does not exist or the caller has no permission to read it.

Array of objects

List of experiments using this metric

lastSnapshotAttempt
string or null <date-time>

The most recent snapshot attempt across all experiments using this metric

{
  • "metricId": "string",
  • "error": "string",
  • "experiments": [
    ],
  • "lastSnapshotAttempt": "2019-08-24T14:15:22Z"
}

Organization

id
string

The Growthbook unique identifier for the organization

externalId
string

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

dateCreated
string <date-time>

The date the organization was created

name
string

The name of the organization

ownerEmail
string

The email address of the organization owner

{
  • "id": "string",
  • "externalId": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "ownerEmail": "string"
}

PaginationFields

limit
required
integer
offset
required
integer
count
required
integer
total
required
integer
hasMore
required
boolean
nextOffset
required
integer or null
{
  • "limit": 0,
  • "offset": 0,
  • "count": 0,
  • "total": 0,
  • "hasMore": true,
  • "nextOffset": 0
}

Project

id
required
string
name
required
string
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
description
string
publicId
string

URL-safe slug used in SDK payload metadata. Auto-generated from name if not provided.

object
{
  • "id": "string",
  • "name": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "publicId": "string",
  • "settings": {
    }
}

Query

id
required
string
organization
required
string
datasource
required
string
language
required
string
query
required
string
queryType
required
string
createdAt
required
string
startedAt
required
string
status
required
string
Enum: "running" "queued" "failed" "partially-succeeded" "succeeded"
externalId
required
string
dependencies
required
Array of strings
runAtEnd
required
boolean
{
  • "id": "string",
  • "organization": "string",
  • "datasource": "string",
  • "language": "string",
  • "query": "string",
  • "queryType": "string",
  • "createdAt": "string",
  • "startedAt": "string",
  • "status": "running",
  • "externalId": "string",
  • "dependencies": [
    ],
  • "runAtEnd": true
}

RampSchedule

id
required
string

Unique identifier (rs_ prefix)

organization
required
string
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
name
required
string
entityType
required
string
Value: "feature"
entityId
required
string
required
Array of objects

Controlled entity references

Array of objects

Actions applied on top of all step patches when the ramp completes. Represents the final desired rule state.

required
Array of objects

Ordered ramp steps

startDate
string or null <date-time>

When the ramp fires. Absent/null means immediately on publish; set to a future datetime to delay start and keep the rule disabled until that time.

object

Optional hard deadline for standard (no-step) schedules

status
required
string
Enum: "pending" "ready" "running" "paused" "pending-approval" "completed" "rolled-back"
currentStepIndex
required
integer >= -1

Index of current step; -1 = not yet started

startedAt
string <date-time>
phaseStartedAt
string <date-time>

Anchor for cumulative interval timing; resets after each approval gate

pausedAt
string <date-time>
nextStepAt
required
string or null <date-time>

When the next step fires; null for approval steps and terminal states

elapsedMs
integer

Milliseconds since startedAt (computed at response time, not stored)

{
  • "id": "string",
  • "organization": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "entityType": "feature",
  • "entityId": "string",
  • "targets": [
    ],
  • "endActions": [
    ],
  • "steps": [
    ],
  • "startDate": "2019-08-24T14:15:22Z",
  • "endCondition": {
    },
  • "status": "pending",
  • "currentStepIndex": -1,
  • "startedAt": "2019-08-24T14:15:22Z",
  • "phaseStartedAt": "2019-08-24T14:15:22Z",
  • "pausedAt": "2019-08-24T14:15:22Z",
  • "nextStepAt": "2019-08-24T14:15:22Z",
  • "elapsedMs": 0
}

SavedGroup

id
required
string
type
required
string
Enum: "condition" "list"
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
name
required
string
owner
string
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

description
string
projects
Array of strings
{
  • "id": "string",
  • "type": "condition",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "owner": "string",
  • "condition": "string",
  • "attributeKey": "string",
  • "values": [
    ],
  • "description": "string",
  • "projects": [
    ]
}

ScheduleRule

enabled
required
boolean

Whether the rule should be enabled or disabled at the specified timestamp.

timestamp
required
string or null <date-time>

ISO timestamp when the rule should activate.

[
  • {
    },
  • {
    }
]

SdkConnection

id
required
string
dateCreated
required
string <date-time>
dateUpdated
required
string <date-time>
name
required
string
organization
required
string
languages
required
Array of strings
sdkVersion
string
environment
required
string
project
required
string

Use 'projects' instead. This is only for backwards compatibility and contains the first project only.

projects
Array of strings
encryptPayload
required
boolean
encryptionKey
required
string
includeVisualExperiments
boolean
includeDraftExperiments
boolean
includeExperimentNames
boolean
includeRedirectExperiments
boolean
includeRuleIds
boolean
includeProjectIdInMetadata
boolean
includeCustomFieldsInMetadata
boolean
allowedCustomFieldsInMetadata
Array of strings
includeTagsInMetadata
boolean
key
required
string
proxyEnabled
required
boolean
proxyHost
required
string
proxySigningKey
required
string
sseEnabled
boolean
hashSecureAttributes
boolean
remoteEvalEnabled
boolean
savedGroupReferencesEnabled
boolean
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "organization": "string",
  • "languages": [
    ],
  • "sdkVersion": "string",
  • "environment": "string",
  • "project": "string",
  • "projects": [
    ],
  • "encryptPayload": true,
  • "encryptionKey": "string",
  • "includeVisualExperiments": true,
  • "includeDraftExperiments": true,
  • "includeExperimentNames": true,
  • "includeRedirectExperiments": true,
  • "includeRuleIds": true,
  • "includeProjectIdInMetadata": true,
  • "includeCustomFieldsInMetadata": true,
  • "allowedCustomFieldsInMetadata": [
    ],
  • "includeTagsInMetadata": true,
  • "key": "string",
  • "proxyEnabled": true,
  • "proxyHost": "string",
  • "proxySigningKey": "string",
  • "sseEnabled": true,
  • "hashSecureAttributes": true,
  • "remoteEvalEnabled": true,
  • "savedGroupReferencesEnabled": true
}

Segment

id
required
string
owner
required
string
datasourceId
required
string
identifierType
required
string
name
required
string
description
string
query
string
dateCreated
required
string
dateUpdated
required
string
managedBy
string
Enum: "" "api" "config"

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

type
any
Enum: "SQL" "FACT"
factTableId
string
filters
Array of strings
projects
Array of strings
{
  • "id": "string",
  • "owner": "string",
  • "datasourceId": "string",
  • "identifierType": "string",
  • "name": "string",
  • "description": "string",
  • "query": "string",
  • "dateCreated": "string",
  • "dateUpdated": "string",
  • "managedBy": "",
  • "type": "SQL",
  • "factTableId": "string",
  • "filters": [
    ],
  • "projects": [
    ]
}

Settings

confidenceLevel
required
number
required
object or null
required
object
pastExperimentsMinLength
required
number
metricAnalysisDays
required
number
required
object or null
multipleExposureMinPercent
required
number
required
object
statsEngine
required
string
pValueThreshold
required
number
regressionAdjustmentEnabled
required
boolean
regressionAdjustmentDays
required
number
sequentialTestingEnabled
required
boolean
sequentialTestingTuningParameter
required
number
attributionModel
required
string
Enum: "firstExposure" "experimentDuration" "lookbackOverride"
targetMDE
required
number
delayHours
required
number
windowType
required
string
windowHours
required
number
winRisk
required
number
loseRisk
required
number
secureAttributeSalt
required
string
killswitchConfirmation
required
boolean
featureKillSwitchBehavior
string
Enum: "off" "warn"
required
Array of objects
restApiBypassesReviews
boolean
featureKeyExample
required
string
featureRegexValidator
required
string
banditScheduleValue
required
number
banditScheduleUnit
required
string
Enum: "hours" "days"
banditBurnInValue
required
number
banditBurnInUnit
required
string
Enum: "hours" "days"
experimentMinLengthDays
required
number
experimentMaxLengthDays
number or null
preferredEnvironment
string or null
maxMetricSliceLevels
number
{
  • "confidenceLevel": 0,
  • "northStar": {
    },
  • "metricDefaults": {
    },
  • "pastExperimentsMinLength": 0,
  • "metricAnalysisDays": 0,
  • "updateSchedule": {
    },
  • "multipleExposureMinPercent": 0,
  • "defaultRole": {
    },
  • "statsEngine": "string",
  • "pValueThreshold": 0,
  • "regressionAdjustmentEnabled": true,
  • "regressionAdjustmentDays": 0,
  • "sequentialTestingEnabled": true,
  • "sequentialTestingTuningParameter": 0,
  • "attributionModel": "firstExposure",
  • "targetMDE": 0,
  • "delayHours": 0,
  • "windowType": "string",
  • "windowHours": 0,
  • "winRisk": 0,
  • "loseRisk": 0,
  • "secureAttributeSalt": "string",
  • "killswitchConfirmation": true,
  • "featureKillSwitchBehavior": "off",
  • "requireReviews": [
    ],
  • "restApiBypassesReviews": true,
  • "featureKeyExample": "string",
  • "featureRegexValidator": "string",
  • "banditScheduleValue": 0,
  • "banditScheduleUnit": "hours",
  • "banditBurnInValue": 0,
  • "banditBurnInUnit": "hours",
  • "experimentMinLengthDays": 0,
  • "experimentMaxLengthDays": 0,
  • "preferredEnvironment": "string",
  • "maxMetricSliceLevels": 0
}

VisualChange

description
string
css
string
js
string
variation
required
string
Array of objects
{
  • "description": "string",
  • "css": "string",
  • "js": "string",
  • "variation": "string",
  • "domMutations": [
    ]
}

VisualChangeset

id
string
required
Array of objects
editorUrl
required
string
experiment
required
string
required
Array of objects
{
  • "id": "string",
  • "urlPatterns": [
    ],
  • "editorUrl": "string",
  • "experiment": "string",
  • "visualChanges": [
    ]
}

AnalyticsExploration

id
required
string
dateCreated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
dateUpdated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
datasource
required
string
status
required
string
Enum: "running" "success" "error"
dateStart
required
string
dateEnd
required
string
string or null
required
object
required
object or object or object
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "datasource": "string",
  • "status": "running",
  • "dateStart": "string",
  • "dateEnd": "string",
  • "error": "string",
  • "result": {
    },
  • "config": {
    }
}

CustomField

id
required
string
dateCreated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
dateUpdated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
name
required
string
description
string
placeholder
string
string or number or boolean or string or string or Array of strings or Array of numbers or Array of booleans or Array of strings or Array of strings
type
required
string
Enum: "text" "textarea" "markdown" "enum" "multiselect" "url" "number" "boolean" "date" "datetime"
values
string
required
required
boolean
creator
string
projects
Array of strings
sections
required
Array of strings
Items Enum: "feature" "experiment"
active
boolean
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "description": "string",
  • "placeholder": "string",
  • "defaultValue": "string",
  • "type": "text",
  • "values": "string",
  • "required": true,
  • "creator": "string",
  • "projects": [
    ],
  • "sections": [
    ],
  • "active": true
}

Dashboard

id
required
string
uid
required
string
organization
required
string
experimentId
string
isDefault
required
boolean
isDeleted
required
boolean
userId
required
string
editLevel
required
string
Enum: "published" "private"
shareLevel
required
string
Enum: "published" "private"
enableAutoUpdates
required
boolean
object or object
title
required
string
projects
Array of strings
nextUpdate
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
lastUpdated
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
dateCreated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
dateUpdated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
required
Array of objects or objects or objects or objects or objects or objects or objects or objects or objects or objects or objects
{
  • "id": "string",
  • "uid": "string",
  • "organization": "string",
  • "experimentId": "string",
  • "isDefault": true,
  • "isDeleted": true,
  • "userId": "string",
  • "editLevel": "published",
  • "shareLevel": "published",
  • "enableAutoUpdates": true,
  • "updateSchedule": {
    },
  • "title": "string",
  • "projects": [
    ],
  • "nextUpdate": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "blocks": [
    ]
}

ExperimentTemplate

id
required
string
dateCreated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
dateUpdated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
project
string
owner
required
string
required
object
type
required
string
Value: "standard"
hypothesis
string
description
string
tags
Array of strings
object
datasource
required
string
exposureQueryId
required
string
hashAttribute
string
fallbackAttribute
string
disableStickyBucketing
boolean
goalMetrics
Array of strings
secondaryMetrics
Array of strings
guardrailMetrics
Array of strings
activationMetric
string
statsEngine
required
string
Enum: "bayesian" "frequentist"
segment
string
skipPartialData
boolean
required
object
Array of objects
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "project": "string",
  • "owner": "string",
  • "templateMetadata": {
    },
  • "type": "standard",
  • "hypothesis": "string",
  • "description": "string",
  • "tags": [
    ],
  • "customFields": {
    },
  • "datasource": "string",
  • "exposureQueryId": "string",
  • "hashAttribute": "string",
  • "fallbackAttribute": "string",
  • "disableStickyBucketing": true,
  • "goalMetrics": [
    ],
  • "secondaryMetrics": [
    ],
  • "guardrailMetrics": [
    ],
  • "activationMetric": "string",
  • "statsEngine": "bayesian",
  • "segment": "string",
  • "skipPartialData": true,
  • "targeting": {
    },
  • "customMetricSlices": [
    ]
}

MetricGroup

id
required
string
dateCreated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
dateUpdated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
owner
required
string
name
required
string
description
required
string
tags
required
Array of strings
projects
required
Array of strings
metrics
required
Array of strings
datasource
required
string
archived
required
boolean
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "owner": "string",
  • "name": "string",
  • "description": "string",
  • "tags": [
    ],
  • "projects": [
    ],
  • "metrics": [
    ],
  • "datasource": "string",
  • "archived": true
}

RampScheduleTemplate

id
required
string
dateCreated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
dateUpdated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
name
required
string
required
Array of objects
object
official
boolean
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "steps": [
    ],
  • "endPatch": {
    },
  • "official": true
}

Team

id
required
string
dateCreated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
dateUpdated
required
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
name
required
string
createdBy
required
string
description
required
string
role
required
string
limitAccessByEnvironment
required
boolean
environments
required
Array of strings
Array of objects
members
required
Array of strings
managedByIdp
required
boolean
object
defaultProject
string
{
  • "id": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "dateUpdated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "createdBy": "string",
  • "description": "string",
  • "role": "string",
  • "limitAccessByEnvironment": true,
  • "environments": [
    ],
  • "projectRoles": [
    ],
  • "members": [
    ],
  • "managedByIdp": true,
  • "managedBy": {
    },
  • "defaultProject": "string"
}