openapi: 3.2.0
info:
title: Flagsmith SDK 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: SDK
description: SDK endpoints for flags, identities, and traits.
paths:
/api/v1/environment-document/:
get:
operationId: sdk_v1_environment_document
description: 'Retrieve the environment document.
Used by SDKs in local evaluation mode, and Edge Proxy.'
tags:
- SDK
security:
- Environment API Key: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/V1EnvironmentDocumentResponse'
description: ''
summary: Sdk v1 environment document
x-summary-source: derived
/api/v1/flags/:
get:
operationId: sdk_v1_flags
description: 'Retrieve the feature flags for an environment.
---
*Note*: when providing the `feature` query argument, this endpoint will
return either a single object or a 404 (if the feature does not exist) rather
than a list.
---
*Note*: using this endpoint with an identifier is deprecated.
Please use `/api/v1/identities/?identifier=` instead.'
parameters:
- in: query
name: feature
schema:
type: string
minLength: 1
description: Name of the feature to get the state of
tags:
- SDK
security:
- Environment API Key: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
type: object
description: Represents a single flag (feature state) returned by the Flagsmith SDK.
properties:
feature:
type: object
description: Represents a Flagsmith feature, defined at project level.
properties:
id:
type: integer
name:
type: string
type:
enum:
- STANDARD
- MULTIVARIATE
type: string
required:
- id
- name
- type
enabled:
type: boolean
feature_state_value:
oneOf:
- type: integer
- type: boolean
- type: string
nullable: true
variant:
type: string
nullable: true
reason:
type: string
nullable: true
metadata:
type: object
description: Additional, non-evaluation data about a feature state.
properties:
experiment:
type: object
description: Represents the experiment a feature state is part of. Only present while the experiment is running.
properties:
id:
type: integer
name:
type: string
in_experiment:
type: boolean
required:
- id
- in_experiment
- name
required:
- enabled
- feature
- feature_state_value
description: ''
summary: Sdk v1 flags
x-summary-source: derived
/api/v1/flags/{identifier}:
get:
operationId: sdk_v1_flags_2
description: 'Retrieve the feature flags for an environment.
---
*Note*: when providing the `feature` query argument, this endpoint will
return either a single object or a 404 (if the feature does not exist) rather
than a list.
---
*Note*: using this endpoint with an identifier is deprecated.
Please use `/api/v1/identities/?identifier=` instead.'
parameters:
- in: query
name: feature
schema:
type: string
minLength: 1
description: Name of the feature to get the state of
- in: path
name: identifier
schema:
type: string
pattern: ^[-\w@%.]+$
required: true
tags:
- SDK
security:
- Environment API Key: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
type: object
description: Represents a single flag (feature state) returned by the Flagsmith SDK.
properties:
feature:
type: object
description: Represents a Flagsmith feature, defined at project level.
properties:
id:
type: integer
name:
type: string
type:
enum:
- STANDARD
- MULTIVARIATE
type: string
required:
- id
- name
- type
enabled:
type: boolean
feature_state_value:
oneOf:
- type: integer
- type: boolean
- type: string
nullable: true
variant:
type: string
nullable: true
reason:
type: string
nullable: true
metadata:
type: object
description: Additional, non-evaluation data about a feature state.
properties:
experiment:
type: object
description: Represents the experiment a feature state is part of. Only present while the experiment is running.
properties:
id:
type: integer
name:
type: string
in_experiment:
type: boolean
required:
- id
- in_experiment
- name
required:
- enabled
- feature
- feature_state_value
description: ''
summary: Sdk v1 flags 2
x-summary-source: derived
/api/v1/identities/:
get:
operationId: sdk_v1_get_identities
description: Retrieve the flags and traits for an identity.
parameters:
- in: query
name: identifier
schema:
type: string
minLength: 1
required: true
- in: query
name: transient
schema:
type: boolean
default: false
tags:
- SDK
security:
- Environment API Key: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/V1IdentitiesResponse'
description: ''
summary: Sdk v1 get identities
x-summary-source: derived
post:
operationId: sdk_v1_post_identities
description: Identify a user, set their traits, and retrieve their flags.
tags:
- SDK
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/V1IdentitiesRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/V1IdentitiesRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/V1IdentitiesRequest'
required: true
security:
- Environment API Key: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/V1IdentitiesResponse'
description: ''
summary: Sdk v1 post identities
x-summary-source: derived
components:
schemas:
V1IdentitiesResponseExperimentMetadata:
description: Represents the experiment a feature state is part of. Only present while the experiment is running.
properties:
id:
title: Id
type: integer
name:
title: Name
type: string
in_experiment:
title: In Experiment
type: boolean
required:
- id
- name
- in_experiment
title: ExperimentMetadata
type: object
V1EnvironmentDocumentResponseExperimentMetadata:
description: Represents the experiment a feature state is part of. Only present while the experiment is running.
properties:
id:
title: Id
type: integer
name:
title: Name
type: string
in_experiment:
title: In Experiment
type: boolean
required:
- id
- name
- in_experiment
title: ExperimentMetadata
type: object
V1EnvironmentDocumentResponseMultivariateFeatureOption:
description: Represents a single multivariate feature option in the Flagsmith UI.
properties:
value:
title: Value
type: string
required:
- value
title: MultivariateFeatureOption
type: object
V1IdentitiesResponseFeatureStateMetadata:
additionalProperties: true
description: Additional, non-evaluation data about a feature state.
properties:
experiment:
$ref: '#/components/schemas/V1IdentitiesResponseExperimentMetadata'
title: FeatureStateMetadata
type: object
V1EnvironmentDocumentResponseFeatureState:
description: Used to define the state of a feature for an environment, segment overrides, and identity overrides.
properties:
feature:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseFeature'
enabled:
title: Enabled
type: boolean
feature_state_value:
anyOf:
- type: integer
- type: boolean
- type: string
- type: 'null'
title: Feature State Value
featurestate_uuid:
format: uuid
title: Featurestate Uuid
type: string
feature_segment:
anyOf:
- $ref: '#/components/schemas/V1EnvironmentDocumentResponseFeatureSegment'
- type: 'null'
multivariate_feature_state_values:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseMultivariateFeatureStateValue'
title: Multivariate Feature State Values
type: array
metadata:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseFeatureStateMetadata'
required:
- feature
- enabled
- feature_state_value
- featurestate_uuid
- feature_segment
- multivariate_feature_state_values
title: FeatureState
type: object
V1EnvironmentDocumentResponseMultivariateFeatureStateValue:
description: Represents a multivariate feature state value.
properties:
id:
anyOf:
- type: integer
- type: 'null'
title: Id
mv_fs_value_uuid:
anyOf:
- format: uuid
type: string
- type: 'null'
title: Mv Fs Value Uuid
percentage_allocation:
title: Percentage Allocation
type: number
multivariate_feature_option:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseMultivariateFeatureOption'
required:
- id
- mv_fs_value_uuid
- percentage_allocation
- multivariate_feature_option
title: MultivariateFeatureStateValue
type: object
V1EnvironmentDocumentResponseFeatureStateMetadata:
additionalProperties: true
description: Additional, non-evaluation data about a feature state.
properties:
experiment:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseExperimentMetadata'
title: FeatureStateMetadata
type: object
V1EnvironmentDocumentResponseProject:
description: Represents a Flagsmith project. For SDKs, this is mainly used to convey segment data.
properties:
segments:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseSegment'
title: Segments
type: array
required:
- segments
title: Project
type: object
V1EnvironmentDocumentResponseSegmentConditionOperatorEnum:
enum:
- EQUAL
- GREATER_THAN
- LESS_THAN
- LESS_THAN_INCLUSIVE
- CONTAINS
- GREATER_THAN_INCLUSIVE
- NOT_CONTAINS
- NOT_EQUAL
- REGEX
- PERCENTAGE_SPLIT
- MODULO
- IS_SET
- IS_NOT_SET
- IN
type: string
V1EnvironmentDocumentResponseFeatureSegment:
description: Represents data specific to a segment feature override.
properties:
priority:
anyOf:
- type: integer
- type: 'null'
title: Priority
required:
- priority
title: FeatureSegment
type: object
V1IdentitiesRequestTraitInput:
description: Represents a key-value pair trait provided as input when creating or updating an identity.
properties:
trait_key:
title: Trait Key
type: string
trait_value:
anyOf:
- type: integer
- type: number
- type: boolean
- type: string
- type: 'null'
title: Trait Value
transient:
anyOf:
- type: boolean
- type: 'null'
title: Transient
required:
- trait_key
- trait_value
title: TraitInput
type: object
V1EnvironmentDocumentResponseFeature:
description: Represents a Flagsmith feature, defined at project level.
properties:
id:
title: Id
type: integer
name:
title: Name
type: string
type:
allOf:
- $ref: '#/components/schemas/TypeD77Enum'
title: Type
required:
- id
- name
- type
title: Feature
type: object
V1EnvironmentDocumentResponse:
description: '`/api/v1/environment-documents/` response.
Powers Flagsmith SDK''s local evaluation mode.'
properties:
api_key:
title: Api Key
type: string
feature_states:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseFeatureState'
title: Feature States
type: array
identity_overrides:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseIdentityOverride'
title: Identity Overrides
type: array
name:
title: Name
type: string
project:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseProject'
required:
- api_key
- feature_states
- identity_overrides
- name
- project
title: V1EnvironmentDocumentResponse
type: object
V1IdentitiesResponseV1Flag:
description: Represents a single flag (feature state) returned by the Flagsmith SDK.
properties:
feature:
$ref: '#/components/schemas/V1IdentitiesResponseFeature'
enabled:
title: Enabled
type: boolean
feature_state_value:
anyOf:
- type: integer
- type: boolean
- type: string
- type: 'null'
title: Feature State Value
variant:
anyOf:
- type: string
- type: 'null'
title: Variant
reason:
anyOf:
- type: string
- type: 'null'
title: Reason
metadata:
$ref: '#/components/schemas/V1IdentitiesResponseFeatureStateMetadata'
required:
- feature
- enabled
- feature_state_value
title: V1Flag
type: object
V1EnvironmentDocumentResponseSegmentRule:
description: Represents a rule within a segment used by Flagsmith engine. Root rules usually contain nested rules.
properties:
type:
allOf:
- $ref: '#/components/schemas/V1EnvironmentDocumentResponseSegmentRuleTypeEnum'
title: Type
rules:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseSegmentRule'
title: Rules
type: array
conditions:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseSegmentCondition'
title: Conditions
type: array
required:
- type
- rules
- conditions
title: SegmentRule
type: object
V1IdentitiesResponseFeature:
description: Represents a Flagsmith feature, defined at project level.
properties:
id:
title: Id
type: integer
name:
title: Name
type: string
type:
allOf:
- $ref: '#/components/schemas/TypeD77Enum'
title: Type
required:
- id
- name
- type
title: Feature
type: object
TypeD77Enum:
enum:
- STANDARD
- MULTIVARIATE
type: string
description: '* `STANDARD` - STANDARD
* `MULTIVARIATE` - MULTIVARIATE'
V1IdentitiesResponseTrait:
description: Represents a key-value pair associated with an identity.
properties:
trait_key:
title: Trait Key
type: string
trait_value:
anyOf:
- type: integer
- type: number
- type: boolean
- type: string
- type: 'null'
title: Trait Value
required:
- trait_key
- trait_value
title: Trait
type: object
V1EnvironmentDocumentResponseSegment:
description: Represents a Flagsmith segment. Carries rules and feature overrides.
properties:
id:
title: Id
type: integer
name:
title: Name
type: string
rules:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseSegmentRule'
title: Rules
type: array
feature_states:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseFeatureState'
title: Feature States
type: array
required:
- id
- name
- rules
title: Segment
type: object
V1IdentitiesRequest:
description: '`/api/v1/identities/` request.
Used to retrieve flags for an identity and store its traits.'
properties:
identifier:
title: Identifier
type: string
traits:
anyOf:
- items:
$ref: '#/components/schemas/V1IdentitiesRequestTraitInput'
type: array
- type: 'null'
title: Traits
transient:
anyOf:
- type: boolean
- type: 'null'
title: Transient
required:
- identifier
title: V1IdentitiesRequest
type: object
V1EnvironmentDocumentResponseSegmentRuleTypeEnum:
enum:
- ALL
- ANY
- NONE
type: string
V1EnvironmentDocumentResponseSegmentCondition:
description: Represents a condition within a segment rule used by Flagsmith engine.
properties:
operator:
allOf:
- $ref: '#/components/schemas/V1EnvironmentDocumentResponseSegmentConditionOperatorEnum'
title: Operator
value:
title: Value
type: string
property_:
title: Property
type: string
required:
- operator
- value
- property_
title: SegmentCondition
type: object
V1IdentitiesResponse:
description: '`/api/v1/identities/` response.
Represents the identity created or updated, along with its flags.'
properties:
identifier:
title: Identifier
type: string
flags:
items:
$ref: '#/components/schemas/V1IdentitiesResponseV1Flag'
title: Flags
type: array
traits:
items:
$ref: '#/components/schemas/V1IdentitiesResponseTrait'
title: Traits
type: array
required:
- identifier
- flags
- traits
title: V1IdentitiesResponse
type: object
V1EnvironmentDocumentResponseIdentityOverride:
description: Represents an identity override, defining feature states specific to an identity.
properties:
identifier:
title: Identifier
type: string
identity_features:
items:
$ref: '#/components/schemas/V1EnvironmentDocumentResponseFeatureState'
title: Identity Features
type: array
required:
- identifier
- identity_features
title: IdentityOverride
type: object
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"