Skip to content
Start here

Apps

List apps
GET/accounts/{account_id}/flagship/apps
Get app
GET/accounts/{account_id}/flagship/apps/{app_id}
Create app
POST/accounts/{account_id}/flagship/apps
Update app
PUT/accounts/{account_id}/flagship/apps/{app_id}
Delete app
DELETE/accounts/{account_id}/flagship/apps/{app_id}
ModelsExpand Collapse
AppListResponse object { id, created_at, name, 2 more }
id: string
created_at: string
name: string
updated_at: string
updated_by: string

Email of the actor who last modified the app, or unknown when unavailable.

AppGetResponse object { id, created_at, name, 2 more }
id: string
created_at: string
name: string
updated_at: string
updated_by: string

Email of the actor who last modified the app, or unknown when unavailable.

AppCreateResponse object { id, created_at, name, 2 more }
id: string
created_at: string
name: string
updated_at: string
updated_by: string

Email of the actor who last modified the app, or unknown when unavailable.

AppUpdateResponse object { id, created_at, name, 2 more }
id: string
created_at: string
name: string
updated_at: string
updated_by: string

Email of the actor who last modified the app, or unknown when unavailable.

AppDeleteResponse object { id }
id: string

AppsFlags

List flags
GET/accounts/{account_id}/flagship/apps/{app_id}/flags
Get flag
GET/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}
Create flag
POST/accounts/{account_id}/flagship/apps/{app_id}/flags
Update flag
PUT/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}
Delete flag
DELETE/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}
ModelsExpand Collapse
FlagListResponse object { default_variation, enabled, key, 6 more }
default_variation: string

Variation the API serves when the flag is off, or when it’s on but no rule matches the context. Must be a key in variations.

minLength1
enabled: boolean

When false, the flag bypasses all rules and always serves default_variation.

key: string

Unique identifier for the flag within an app. Used in all evaluation and SDK calls.

maxLength64
minLength1
rules: array of object { conditions, priority, serve_variation, rollout }

Targeting rules evaluated in ascending priority; the first matching rule wins. An empty array means the flag always serves default_variation.

conditions: array of object { attribute, operator, value } or object { clauses, logical_operator }

Conditions the context must satisfy for this rule to match. An empty array matches all contexts.

One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order: the API evaluates rules with lower numbers first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation the API serves when this rule matches. Must be a key in variations.

minLength1
rollout: optional object { percentage, attribute }
percentage: number

Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100).

maximum100
minimum0
attribute: optional string

Context attribute used for sticky bucketing. Defaults to targetingKey. If absent at evaluation time, bucketing is random per request.

minLength1
variations: map[string or number or boolean or 2 more]

Map of variation name to value. All values share the same type (boolean, string, number, or JSON object/array), and each serialized value stays within 10KB.

One of the following:
string
number
boolean
map[unknown]
array of unknown
description: optional string
maxLength512
type: optional "boolean" or "string" or "number" or "json"

Value type of the flag’s variations. The API infers this from the variation values on write, so you can omit it in requests.

One of the following:
"boolean"
"string"
"number"
"json"
updated_at: optional string
updated_by: optional string
FlagGetResponse object { default_variation, enabled, key, 6 more }
default_variation: string

Variation the API serves when the flag is off, or when it’s on but no rule matches the context. Must be a key in variations.

minLength1
enabled: boolean

When false, the flag bypasses all rules and always serves default_variation.

key: string

Unique identifier for the flag within an app. Used in all evaluation and SDK calls.

maxLength64
minLength1
rules: array of object { conditions, priority, serve_variation, rollout }

Targeting rules evaluated in ascending priority; the first matching rule wins. An empty array means the flag always serves default_variation.

conditions: array of object { attribute, operator, value } or object { clauses, logical_operator }

Conditions the context must satisfy for this rule to match. An empty array matches all contexts.

One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order: the API evaluates rules with lower numbers first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation the API serves when this rule matches. Must be a key in variations.

minLength1
rollout: optional object { percentage, attribute }
percentage: number

Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100).

maximum100
minimum0
attribute: optional string

Context attribute used for sticky bucketing. Defaults to targetingKey. If absent at evaluation time, bucketing is random per request.

minLength1
variations: map[string or number or boolean or 2 more]

Map of variation name to value. All values share the same type (boolean, string, number, or JSON object/array), and each serialized value stays within 10KB.

One of the following:
string
number
boolean
map[unknown]
array of unknown
description: optional string
maxLength512
type: optional "boolean" or "string" or "number" or "json"

Value type of the flag’s variations. The API infers this from the variation values on write, so you can omit it in requests.

One of the following:
"boolean"
"string"
"number"
"json"
updated_at: optional string
updated_by: optional string
FlagCreateResponse object { default_variation, enabled, key, 6 more }
default_variation: string

Variation the API serves when the flag is off, or when it’s on but no rule matches the context. Must be a key in variations.

minLength1
enabled: boolean

When false, the flag bypasses all rules and always serves default_variation.

key: string

Unique identifier for the flag within an app. Used in all evaluation and SDK calls.

maxLength64
minLength1
rules: array of object { conditions, priority, serve_variation, rollout }

Targeting rules evaluated in ascending priority; the first matching rule wins. An empty array means the flag always serves default_variation.

conditions: array of object { attribute, operator, value } or object { clauses, logical_operator }

Conditions the context must satisfy for this rule to match. An empty array matches all contexts.

One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order: the API evaluates rules with lower numbers first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation the API serves when this rule matches. Must be a key in variations.

minLength1
rollout: optional object { percentage, attribute }
percentage: number

Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100).

maximum100
minimum0
attribute: optional string

Context attribute used for sticky bucketing. Defaults to targetingKey. If absent at evaluation time, bucketing is random per request.

minLength1
variations: map[string or number or boolean or 2 more]

Map of variation name to value. All values share the same type (boolean, string, number, or JSON object/array), and each serialized value stays within 10KB.

One of the following:
string
number
boolean
map[unknown]
array of unknown
description: optional string
maxLength512
type: optional "boolean" or "string" or "number" or "json"

Value type of the flag’s variations. The API infers this from the variation values on write, so you can omit it in requests.

One of the following:
"boolean"
"string"
"number"
"json"
updated_at: optional string
updated_by: optional string
FlagUpdateResponse object { default_variation, enabled, key, 6 more }
default_variation: string

Variation the API serves when the flag is off, or when it’s on but no rule matches the context. Must be a key in variations.

minLength1
enabled: boolean

When false, the flag bypasses all rules and always serves default_variation.

key: string

Unique identifier for the flag within an app. Used in all evaluation and SDK calls.

maxLength64
minLength1
rules: array of object { conditions, priority, serve_variation, rollout }

Targeting rules evaluated in ascending priority; the first matching rule wins. An empty array means the flag always serves default_variation.

conditions: array of object { attribute, operator, value } or object { clauses, logical_operator }

Conditions the context must satisfy for this rule to match. An empty array matches all contexts.

One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order: the API evaluates rules with lower numbers first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation the API serves when this rule matches. Must be a key in variations.

minLength1
rollout: optional object { percentage, attribute }
percentage: number

Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100).

maximum100
minimum0
attribute: optional string

Context attribute used for sticky bucketing. Defaults to targetingKey. If absent at evaluation time, bucketing is random per request.

minLength1
variations: map[string or number or boolean or 2 more]

Map of variation name to value. All values share the same type (boolean, string, number, or JSON object/array), and each serialized value stays within 10KB.

One of the following:
string
number
boolean
map[unknown]
array of unknown
description: optional string
maxLength512
type: optional "boolean" or "string" or "number" or "json"

Value type of the flag’s variations. The API infers this from the variation values on write, so you can omit it in requests.

One of the following:
"boolean"
"string"
"number"
"json"
updated_at: optional string
updated_by: optional string
FlagDeleteResponse object { key }
key: string

AppsFlagsChangelog

Get flag changelog
GET/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}/changelog
ModelsExpand Collapse
ChangelogListResponse = object { after, event, flag_key } or object { after, event, flag_key } or object { after, diff, event, flag_key }
One of the following:
object { after, event, flag_key }
after: object { default_variation, enabled, key, 6 more }
default_variation: string

Variation the API serves when the flag is off, or when it’s on but no rule matches the context. Must be a key in variations.

minLength1
enabled: boolean

When false, the flag bypasses all rules and always serves default_variation.

key: string

Unique identifier for the flag within an app. Used in all evaluation and SDK calls.

maxLength64
minLength1
rules: array of object { conditions, priority, serve_variation, rollout }

Targeting rules evaluated in ascending priority; the first matching rule wins. An empty array means the flag always serves default_variation.

conditions: array of object { attribute, operator, value } or object { clauses, logical_operator }

Conditions the context must satisfy for this rule to match. An empty array matches all contexts.

One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order: the API evaluates rules with lower numbers first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation the API serves when this rule matches. Must be a key in variations.

minLength1
rollout: optional object { percentage, attribute }
percentage: number

Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100).

maximum100
minimum0
attribute: optional string

Context attribute used for sticky bucketing. Defaults to targetingKey. If absent at evaluation time, bucketing is random per request.

minLength1
variations: map[string or number or boolean or 2 more]

Map of variation name to value. All values share the same type (boolean, string, number, or JSON object/array), and each serialized value stays within 10KB.

One of the following:
string
number
boolean
map[unknown]
array of unknown
description: optional string
maxLength512
type: optional "boolean" or "string" or "number" or "json"

Value type of the flag’s variations. The API infers this from the variation values on write, so you can omit it in requests.

One of the following:
"boolean"
"string"
"number"
"json"
updated_at: optional string
updated_by: optional string
event: "create"
flag_key: string
object { after, event, flag_key }
after: object { default_variation, enabled, key, 6 more }
default_variation: string

Variation the API serves when the flag is off, or when it’s on but no rule matches the context. Must be a key in variations.

minLength1
enabled: boolean

When false, the flag bypasses all rules and always serves default_variation.

key: string

Unique identifier for the flag within an app. Used in all evaluation and SDK calls.

maxLength64
minLength1
rules: array of object { conditions, priority, serve_variation, rollout }

Targeting rules evaluated in ascending priority; the first matching rule wins. An empty array means the flag always serves default_variation.

conditions: array of object { attribute, operator, value } or object { clauses, logical_operator }

Conditions the context must satisfy for this rule to match. An empty array matches all contexts.

One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order: the API evaluates rules with lower numbers first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation the API serves when this rule matches. Must be a key in variations.

minLength1
rollout: optional object { percentage, attribute }
percentage: number

Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100).

maximum100
minimum0
attribute: optional string

Context attribute used for sticky bucketing. Defaults to targetingKey. If absent at evaluation time, bucketing is random per request.

minLength1
variations: map[string or number or boolean or 2 more]

Map of variation name to value. All values share the same type (boolean, string, number, or JSON object/array), and each serialized value stays within 10KB.

One of the following:
string
number
boolean
map[unknown]
array of unknown
description: optional string
maxLength512
type: optional "boolean" or "string" or "number" or "json"

Value type of the flag’s variations. The API infers this from the variation values on write, so you can omit it in requests.

One of the following:
"boolean"
"string"
"number"
"json"
updated_at: optional string
updated_by: optional string
event: "delete"
flag_key: string
object { after, diff, event, flag_key }
after: object { default_variation, enabled, key, 6 more }
default_variation: string

Variation the API serves when the flag is off, or when it’s on but no rule matches the context. Must be a key in variations.

minLength1
enabled: boolean

When false, the flag bypasses all rules and always serves default_variation.

key: string

Unique identifier for the flag within an app. Used in all evaluation and SDK calls.

maxLength64
minLength1
rules: array of object { conditions, priority, serve_variation, rollout }

Targeting rules evaluated in ascending priority; the first matching rule wins. An empty array means the flag always serves default_variation.

conditions: array of object { attribute, operator, value } or object { clauses, logical_operator }

Conditions the context must satisfy for this rule to match. An empty array matches all contexts.

One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of object { attribute, operator, value } or object { clauses, logical_operator }
One of the following:
object { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" or "not_equals" or "greater_than" or 8 more
One of the following:
"equals"
"not_equals"
"greater_than"
"less_than"
"greater_than_or_equals"
"less_than_or_equals"
"contains"
"starts_with"
"ends_with"
"in"
"not_in"
value: string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
object { clauses, logical_operator }
clauses: array of string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" or "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order: the API evaluates rules with lower numbers first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation the API serves when this rule matches. Must be a key in variations.

minLength1
rollout: optional object { percentage, attribute }
percentage: number

Percentage of matching traffic (0–100) served this variation. For multi-way splits, use cumulative upper bounds across rules (e.g. 30, 70, 100).

maximum100
minimum0
attribute: optional string

Context attribute used for sticky bucketing. Defaults to targetingKey. If absent at evaluation time, bucketing is random per request.

minLength1
variations: map[string or number or boolean or 2 more]

Map of variation name to value. All values share the same type (boolean, string, number, or JSON object/array), and each serialized value stays within 10KB.

One of the following:
string
number
boolean
map[unknown]
array of unknown
description: optional string
maxLength512
type: optional "boolean" or "string" or "number" or "json"

Value type of the flag’s variations. The API infers this from the variation values on write, so you can omit it in requests.

One of the following:
"boolean"
"string"
"number"
"json"
updated_at: optional string
updated_by: optional string
diff: map[object { from, to } ]
from: optional string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
to: optional string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown
event: "update"
flag_key: string

AppsEvaluate

Evaluate flag
GET/accounts/{account_id}/flagship/apps/{app_id}/evaluate
ModelsExpand Collapse
EvaluateGetResponse object { flagKey, reason, variant, value }
flagKey: string
reason: "TARGETING_MATCH" or "DEFAULT" or "DISABLED" or "SPLIT"
One of the following:
"TARGETING_MATCH"
"DEFAULT"
"DISABLED"
"SPLIT"
variant: string
value: optional string or number or boolean or 2 more
One of the following:
string
number
boolean
map[unknown]
array of unknown