GrowthBook Segments API
Segments used during experiment analysis
Segments used during experiment analysis
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/growthbook-segments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.0.0
title: GrowthBook REST Segments API
description: GrowthBook offers a full REST API for interacting with the application.
servers:
- url: https://api.growthbook.io/api
description: GrowthBook Cloud
- url: https://{domain}/api
description: Self-hosted GrowthBook
security:
- bearerAuth: []
- basicAuth: []
tags:
- name: Segments
x-displayName: Segments
description: Segments used during experiment analysis
paths:
/v1/segments:
get:
operationId: listSegments
summary: Get all segments
tags:
- Segments
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/datasourceId'
responses:
'200':
content:
application/json:
schema:
allOf:
- type: object
properties:
segments:
type: array
items:
$ref: '#/components/schemas/Segment'
required:
- segments
additionalProperties: false
- $ref: '#/components/schemas/PaginationFields'
x-codeSamples:
- lang: cURL
source: "curl -X GET 'https://api.growthbook.io/api/v1/segments' \\\n -H 'Authorization: Bearer YOUR_API_KEY'"
post:
operationId: postSegment
summary: Create a single segment
tags:
- Segments
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: Name of the segment
type: string
owner:
description: The userId or email address of the owner. If an email address is provided, it will be used to look up the userId of the matching organization member. If an ID is provided, it will be validated as existing in the organization.
type: string
description:
description: Description of the segment
type: string
datasourceId:
description: ID of the datasource this segment belongs to
type: string
identifierType:
description: Type of identifier (user, anonymous, etc.)
type: string
projects:
description: List of project IDs for projects that can access this segment
type: array
items:
type: string
managedBy:
description: Where this Segment must be managed from. If not set (empty string), it can be managed from anywhere.
type: string
enum:
- ''
- api
type:
description: 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.
type: string
enum:
- SQL
- FACT
query:
description: SQL query that defines the Segment. This is required for SQL segments.
type: string
factTableId:
description: ID of the fact table this segment belongs to. This is required for FACT segments.
type: string
filters:
description: Optional array of fact table filter ids that can further define the Fact Table based Segment.
type: array
items:
type: string
required:
- name
- datasourceId
- identifierType
- type
additionalProperties: false
responses:
'200':
content:
application/json:
schema:
type: object
properties:
segment:
$ref: '#/components/schemas/Segment'
required:
- segment
additionalProperties: false
x-codeSamples:
- lang: cURL
source: "curl -X POST 'https://api.growthbook.io/api/v1/segments' \\\n -H 'Authorization: Bearer YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\"name\":\"Annual Subscribers\",\"datasourceId\":\"ds_123abc\",\"identifierType\":\"user_id\",\"type\":\"SQL\",\"query\":\"SELECT plan FROM subscribers WHERE plan = \"}'"
/v1/segments/{id}:
get:
operationId: getSegment
summary: Get a single segment
tags:
- Segments
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
content:
application/json:
schema:
type: object
properties:
segment:
$ref: '#/components/schemas/Segment'
required:
- segment
additionalProperties: false
x-codeSamples:
- lang: cURL
source: "curl -X GET 'https://api.growthbook.io/api/v1/segments/abc123' \\\n -H 'Authorization: Bearer YOUR_API_KEY'"
post:
operationId: updateSegment
summary: Update a single segment
tags:
- Segments
parameters:
- $ref: '#/components/parameters/id'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: Name of the segment
type: string
owner:
description: The userId or email address of the owner. If an email address is provided, it will be used to look up the userId of the matching organization member. If an ID is provided, it will be validated as existing in the organization.
type: string
description:
description: Description of the segment
type: string
datasourceId:
description: ID of the datasource this segment belongs to
type: string
identifierType:
description: Type of identifier (user, anonymous, etc.)
type: string
projects:
description: List of project IDs for projects that can access this segment
type: array
items:
type: string
managedBy:
description: Where this Segment must be managed from. If not set (empty string), it can be managed from anywhere.
type: string
enum:
- ''
- api
type:
description: 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.
type: string
enum:
- SQL
- FACT
query:
description: SQL query that defines the Segment. This is required for SQL segments.
type: string
factTableId:
description: ID of the fact table this segment belongs to. This is required for FACT segments.
type: string
filters:
description: Optional array of fact table filter ids that can further define the Fact Table based Segment.
type: array
items:
type: string
additionalProperties: false
responses:
'200':
content:
application/json:
schema:
type: object
properties:
segment:
$ref: '#/components/schemas/Segment'
required:
- segment
additionalProperties: false
x-codeSamples:
- lang: cURL
source: "curl -X POST 'https://api.growthbook.io/api/v1/segments/abc123' \\\n -H 'Authorization: Bearer YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\"name\":\"User Region\"}'"
delete:
operationId: deleteSegment
summary: Deletes a single segment
tags:
- Segments
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
content:
application/json:
schema:
type: object
properties:
deletedId:
description: The ID of the deleted segment
example: seg_123abc
type: string
required:
- deletedId
additionalProperties: false
x-codeSamples:
- lang: cURL
source: "curl -X DELETE 'https://api.growthbook.io/api/v1/segments/abc123' \\\n -H 'Authorization: Bearer YOUR_API_KEY'"
components:
parameters:
id:
name: id
in: path
required: true
description: The id of the requested resource
schema:
description: The id of the requested resource
type: string
limit:
name: limit
in: query
description: The number of items to return
schema:
default: 10
description: The number of items to return
type: integer
minimum: 1
maximum: 100
offset:
name: offset
in: query
description: How many items to skip (use in conjunction with limit for pagination)
schema:
default: 0
description: How many items to skip (use in conjunction with limit for pagination)
type: integer
minimum: 0
datasourceId:
name: datasourceId
in: query
description: Filter by Data Source
schema:
description: Filter by Data Source
type: string
schemas:
PaginationFields:
type: object
properties:
limit:
type: integer
offset:
type: integer
count:
type: integer
total:
type: integer
hasMore:
type: boolean
nextOffset:
anyOf:
- type: integer
- type: 'null'
required:
- limit
- offset
- count
- total
- hasMore
- nextOffset
additionalProperties: false
Segment:
type: object
properties:
id:
type: string
owner:
description: The userId of the owner (or raw owner name/email for legacy records)
type: string
ownerEmail:
description: The email address of the owner, when the owner can be resolved to a known user.
type: string
datasourceId:
type: string
identifierType:
type: string
name:
type: string
description:
type: string
query:
type: string
dateCreated:
type: string
dateUpdated:
type: string
managedBy:
description: Where this segment must be managed from. If not set (empty string), it can be managed from anywhere.
type: string
enum:
- ''
- api
- config
type:
type: string
enum:
- SQL
- FACT
factTableId:
type: string
filters:
type: array
items:
type: string
projects:
type: array
items:
type: string
required:
- id
- owner
- datasourceId
- identifierType
- name
- dateCreated
- dateUpdated
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'If using Bearer auth, pass the Secret Key as the token:
```bash
curl https://api.growthbook.io/api/v1/features -H "Authorization: Bearer secret_abc123DEF456"
```
'
basicAuth:
type: http
scheme: basic
description: 'If using HTTP Basic auth, pass the Secret Key as the username and leave the password blank:
```bash
curl https://api.growthbook.io/api/v1/features -u secret_abc123DEF456:
# The ":" at the end stops curl from asking for a password
```
'
x-tagGroups:
- name: Endpoints
tags:
- projects
- environments
- features-v2
- feature-revisions-v2
- features
- feature-revisions
- ramp-schedules
- data-sources
- fact-tables
- fact-metrics
- metrics
- experiments
- namespaces
- snapshots
- dimensions
- segments
- sdk-connections
- visual-changesets
- saved-groups
- organizations
- members
- code-references
- archetypes
- queries
- settings
- attributes
- usage
- Dashboards
- CustomFields
- MetricGroups
- Teams
- ExperimentTemplates
- AnalyticsExplorations
- RampScheduleTemplates
- name: Models
tags:
- AnalyticsExploration_model
- Archetype_model
- Attribute_model
- CodeRef_model
- CustomField_model
- Dashboard_model
- DataSource_model
- Dimension_model
- Environment_model
- Experiment_model
- ExperimentAnalysisSettings_model
- ExperimentDecisionFrameworkSettings_model
- ExperimentMetric_model
- ExperimentMetricOverrideEntry_model
- ExperimentResults_model
- ExperimentSnapshot_model
- ExperimentTemplate_model
- ExperimentWithEnhancedStatus_model
- FactMetric_model
- FactTable_model
- FactTableColumn_model
- FactTableFilter_model
- Feature_model
- FeatureBaseRule_model
- FeatureDefinition_model
- FeatureEnvironment_model
- FeatureEnvironmentV2_model
- FeatureExperimentRefRule_model
- FeatureExperimentRule_model
- FeatureForceRule_model
- FeatureRevision_model
- FeatureRevisionV2_model
- FeatureRolloutRule_model
- FeatureRule_model
- FeatureRuleV2_model
- FeatureSafeRolloutRule_model
- FeatureV2_model
- FeatureWithRevisions_model
- FeatureWithRevisionsV2_model
- InformationSchema_model
- InformationSchemaTable_model
- LookbackOverride_model
- Member_model
- Metric_model
- MetricAnalysis_model
- MetricGroup_model
- MetricUsage_model
- Namespace_model
- NamespaceExperimentMember_model
- Organization_model
- PaginationFields_model
- Project_model
- Query_model
- RampSchedule_model
- RampScheduleTemplate_model
- SavedGroup_model
- ScheduleRule_model
- SdkConnection_model
- Segment_model
- Settings_model
- Team_model
- VisualChange_model
- VisualChangeset_model