openapi: 3.2.0
info:
title: Flagsmith Experimental API
version: v1
description: Flagsmith's Core and SDK APIs. Check out Flagsmith documentation.
contact:
email: support@flagsmith.com
license:
name: BSD License
identifier: BSD-3-Clause
tags:
- name: Experimental
description: Experimental endpoints subject to change.
paths:
/api/__future__/environments/{environment_key}/features/{feature_id}/:
get:
operationId: api___future___environments_features_retrieve
description: Read what the flag serves in the environment.
parameters:
- in: path
name: environment_key
schema:
type: string
required: true
- in: path
name: feature_id
schema:
type: integer
required: true
tags:
- Experimental
security:
- tokenAuth: []
- Master API Key: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFlagResponse'
description: ''
summary: Api future environments features retrieve
x-summary-source: derived
put:
operationId: api___future___environments_features_update
description: Replace the properties given, resetting what they omit.
parameters:
- in: path
name: environment_key
schema:
type: string
required: true
- in: path
name: feature_id
schema:
type: integer
required: true
tags:
- Experimental
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFlagRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UpdateFlagRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UpdateFlagRequest'
security:
- tokenAuth: []
- Master API Key: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFlagResponse'
description: ''
summary: Api future environments features update
x-summary-source: derived
patch:
operationId: api___future___environments_features_partial_update
description: Update the properties given, leaving the rest as they are.
parameters:
- in: path
name: environment_key
schema:
type: string
required: true
- in: path
name: feature_id
schema:
type: integer
required: true
tags:
- Experimental
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedUpdateFlagRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedUpdateFlagRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedUpdateFlagRequest'
security:
- tokenAuth: []
- Master API Key: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFlagResponse'
description: ''
summary: Api future environments features partial update
x-summary-source: derived
/api/__future__/environments/{environment_key}/features/{feature_id}/segment-overrides/{segment_id}/:
delete:
operationId: api___future___environments_features_segment_overrides_destroy
description: Remove the flag's override for the segment, leaving the rest of the flag as it is.
parameters:
- in: path
name: environment_key
schema:
type: string
required: true
- in: path
name: feature_id
schema:
type: integer
required: true
- in: path
name: segment_id
schema:
type: integer
required: true
tags:
- Experimental
security:
- tokenAuth: []
- Master API Key: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFlagResponse'
description: ''
summary: Api future environments features segment overrides destroy
x-summary-source: derived
/api/experiments/environments/{environment_key}/delete-segment-override/:
post:
operationId: api_experiments_environments_delete_segment_override_create
description: '**EXPERIMENTAL ENDPOINT** - Subject to change without notice.
Deletes a segment override for a feature in the given environment.
**Feature Identification:**
- Use `feature.name` OR `feature.id` (mutually exclusive)
- Feature must belong to the environment''s project
**Segment Identification:**
- Use `segment.id` (required)
The segment override must exist for the given feature/environment combination.
Returns 400 if the segment override does not exist.'
summary: Delete segment override
parameters:
- in: path
name: environment_key
schema:
type: string
description: The environment API key
required: true
tags:
- Experimental
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteSegmentOverride'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/DeleteSegmentOverride'
multipart/form-data:
schema:
$ref: '#/components/schemas/DeleteSegmentOverride'
required: true
security:
- tokenAuth: []
- Master API Key: []
responses:
'204':
description: No response body
/api/experiments/environments/{environment_key}/update-flag-v1/:
post:
operationId: api_experiments_environments_update_flag_v1_create
description: '**EXPERIMENTAL ENDPOINT** - Subject to change without notice.
Updates a single feature state within an environment. You can update either:
- The environment default state (when no segment is specified)
- A specific segment override (when segment.id is provided)
**Feature Identification:**
- Use `feature.name` OR `feature.id` (mutually exclusive)
**Value Format:**
- The `value` field is always a string representation
- The `type` field tells the server how to parse it
- Available types: integer, string, boolean
- Examples:
- `{"type": "integer", "value": "42"}`
- `{"type": "boolean", "value": "true"}`
- `{"type": "string", "value": "hello"}`
**Segment Priority:**
- Optional `segment.priority` field controls ordering
- If field value is null or the field is omitted, lowest priority is assumed'
summary: Update single feature state
parameters:
- in: path
name: environment_key
schema:
type: string
description: The environment API key
required: true
tags:
- Experimental
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFlag'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UpdateFlag'
multipart/form-data:
schema:
$ref: '#/components/schemas/UpdateFlag'
required: true
security:
- tokenAuth: []
- Master API Key: []
responses:
'204':
description: No response body
/api/experiments/environments/{environment_key}/update-flag-v2/:
post:
operationId: api_experiments_environments_update_flag_v2_create
description: '**EXPERIMENTAL ENDPOINT** - Subject to change without notice.
Updates multiple feature states in a single request. This endpoint allows
you to configure an entire feature (environment default + all segment overrides)
in one operation.
**What You Can Update:**
- Environment default state (required)
- Multiple segment overrides (optional)
- Priority ordering for each segment
**Feature Identification:**
- Use `feature.name` OR `feature.id` (mutually exclusive)
**Value Format:**
- The `value` field is always a string representation
- The `type` field tells the server how to parse it
- Available types: integer, string, boolean
- Examples:
- `{"type": "string", "value": "production"}`
- `{"type": "integer", "value": "100"}`
- `{"type": "boolean", "value": "false"}`
**Segment Overrides:**
- Provide array of segment override configurations
- Each override must specify: segment_id, enabled, value
- Optional priority field controls ordering
- Duplicate segment_id values are not allowed'
summary: Update multiple feature states
parameters:
- in: path
name: environment_key
schema:
type: string
description: The environment API key
required: true
tags:
- Experimental
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFlagV2'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UpdateFlagV2'
multipart/form-data:
schema:
$ref: '#/components/schemas/UpdateFlagV2'
required: true
security:
- tokenAuth: []
- Master API Key: []
responses:
'204':
description: No response body
components:
schemas:
SegmentIdentifier:
type: object
properties:
id:
type: integer
required:
- id
UpdateFlagResponse:
properties:
environment_default:
$ref: '#/components/schemas/UpdateFlagResponseEnvironmentDefaultResponse'
segment_overrides:
items:
$ref: '#/components/schemas/UpdateFlagResponseSegmentOverrideResponse'
title: Segment Overrides
type: array
required:
- environment_default
- segment_overrides
title: UpdateFlagResponse
type: object
FeatureValue:
type: object
properties:
type:
$ref: '#/components/schemas/FeatureValueTypeEnum'
value:
type: string
required:
- type
- value
FeatureValueTypeEnum:
enum:
- integer
- string
- boolean
type: string
description: '* `integer` - integer
* `string` - string
* `boolean` - boolean'
FeatureUpdateSegmentData:
type: object
properties:
id:
type: integer
priority:
type:
- integer
- 'null'
required:
- id
UpdateFlagV2:
type: object
properties:
feature:
$ref: '#/components/schemas/FeatureIdentifier'
environment_default:
$ref: '#/components/schemas/EnvironmentDefault'
segment_overrides:
type: array
items:
$ref: '#/components/schemas/SegmentOverride'
required:
- environment_default
- feature
UpdateFlagResponseSegmentReference:
properties:
id:
title: Id
type: integer
required:
- id
title: SegmentReference
type: object
UpdateFlagRequestEnvironmentDefaultRequest:
properties:
enabled:
title: Enabled
type: boolean
value:
$ref: '#/components/schemas/UpdateFlagRequestFlagValue'
variants:
items:
$ref: '#/components/schemas/UpdateFlagRequestVariant'
title: Variants
type: array
title: EnvironmentDefaultRequest
type: object
UpdateFlagResponseVariant:
properties:
id:
title: Id
type: integer
weight:
title: Weight
type: number
required:
- id
- weight
title: Variant
type: object
UpdateFlagRequest:
properties:
environment_default:
$ref: '#/components/schemas/UpdateFlagRequestEnvironmentDefaultRequest'
segment_overrides:
items:
$ref: '#/components/schemas/UpdateFlagRequestSegmentOverrideRequest'
title: Segment Overrides
type: array
title: UpdateFlagRequest
type: object
DeleteSegmentOverride:
type: object
properties:
feature:
$ref: '#/components/schemas/FeatureIdentifier'
segment:
$ref: '#/components/schemas/SegmentIdentifier'
required:
- feature
- segment
UpdateFlagRequestSegmentOverrideRequest:
properties:
segment:
$ref: '#/components/schemas/UpdateFlagRequestSegmentReference'
enabled:
title: Enabled
type: boolean
priority:
title: Priority
type: integer
value:
$ref: '#/components/schemas/UpdateFlagRequestFlagValue'
variants:
items:
$ref: '#/components/schemas/UpdateFlagRequestVariant'
title: Variants
type: array
required:
- segment
title: SegmentOverrideRequest
type: object
UpdateFlagRequestSegmentReference:
properties:
id:
title: Id
type: integer
required:
- id
title: SegmentReference
type: object
MultivariateValue:
type: object
properties:
multivariate_feature_option:
type: integer
percentage_allocation:
type: number
format: double
maximum: 100
minimum: 0
required:
- multivariate_feature_option
- percentage_allocation
EnvironmentDefault:
type: object
properties:
enabled:
type: boolean
value:
$ref: '#/components/schemas/FeatureValue'
required:
- enabled
- value
UpdateFlagResponseEnvironmentDefaultResponse:
properties:
enabled:
title: Enabled
type: boolean
value:
anyOf:
- $ref: '#/components/schemas/UpdateFlagResponseFlagValue'
- type: 'null'
variants:
items:
$ref: '#/components/schemas/UpdateFlagResponseVariant'
title: Variants
type: array
required:
- enabled
- value
- variants
title: EnvironmentDefaultResponse
type: object
SegmentOverride:
type: object
properties:
segment_id:
type: integer
priority:
type:
- integer
- 'null'
enabled:
type: boolean
value:
$ref: '#/components/schemas/FeatureValue'
multivariate_feature_state_values:
type: array
items:
$ref: '#/components/schemas/MultivariateValue'
required:
- enabled
- segment_id
- value
UpdateFlagResponseFlagValue:
properties:
type:
allOf:
- $ref: '#/components/schemas/Type68aEnum'
title: Type
value:
title: Value
type: string
required:
- type
- value
title: FlagValue
type: object
UpdateFlagRequestFlagValue:
properties:
type:
allOf:
- $ref: '#/components/schemas/Type68aEnum'
title: Type
value:
title: Value
type: string
required:
- type
- value
title: FlagValue
type: object
UpdateFlagRequestVariant:
properties:
id:
title: Id
type: integer
weight:
title: Weight
type: number
required:
- id
- weight
title: Variant
type: object
UpdateFlagResponseSegmentOverrideResponse:
properties:
segment:
$ref: '#/components/schemas/UpdateFlagResponseSegmentReference'
priority:
title: Priority
type: integer
enabled:
title: Enabled
type: boolean
value:
anyOf:
- $ref: '#/components/schemas/UpdateFlagResponseFlagValue'
- type: 'null'
variants:
items:
$ref: '#/components/schemas/UpdateFlagResponseVariant'
title: Variants
type: array
required:
- segment
- priority
- enabled
- value
- variants
title: SegmentOverrideResponse
type: object
UpdateFlag:
type: object
properties:
feature:
$ref: '#/components/schemas/FeatureIdentifier'
segment:
$ref: '#/components/schemas/FeatureUpdateSegmentData'
enabled:
type: boolean
value:
$ref: '#/components/schemas/FeatureValue'
required:
- enabled
- feature
- value
FeatureIdentifier:
type: object
properties:
name:
type: string
id:
type: integer
PatchedUpdateFlagRequest:
properties:
environment_default:
$ref: '#/components/schemas/UpdateFlagRequestEnvironmentDefaultRequest'
segment_overrides:
items:
$ref: '#/components/schemas/UpdateFlagRequestSegmentOverrideRequest'
title: Segment Overrides
type: array
title: UpdateFlagRequest
type: object
Type68aEnum:
enum:
- string
- integer
- boolean
type: string
securitySchemes:
Cohort_Sync_Key:
type: http
scheme: bearer
description: For cohort sync endpoints called by an external cohort source, such as Amplitude.
Cohort_Sync_Key__Basic:
type: http
scheme: basic
description: For cohort sync endpoints called by an external cohort source that can only send Basic credentials, such as Mixpanel. The key is the password; the username is ignored.
Environment_API_Key:
type: apiKey
in: header
name: X-Environment-Key
description: For SDK endpoints. Find out more.
Master_API_Key:
type: apiKey
in: header
name: Authorization
description: For Management API endpoints. Find out more.
basicAuth:
type: http
scheme: basic
tokenAuth:
type: apiKey
in: header
name: Authorization
description: Token-based authentication with required prefix "Token"