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
type: "boolean" or "string" or "number" or "json"

Server-inferred value type shared by all of the flag’s variations.

One of the following:
"boolean"
"string"
"number"
"json"
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
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
type: "boolean" or "string" or "number" or "json"

Server-inferred value type shared by all of the flag’s variations.

One of the following:
"boolean"
"string"
"number"
"json"
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
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
type: "boolean" or "string" or "number" or "json"

Server-inferred value type shared by all of the flag’s variations.

One of the following:
"boolean"
"string"
"number"
"json"
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
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
type: "boolean" or "string" or "number" or "json"

Server-inferred value type shared by all of the flag’s variations.

One of the following:
"boolean"
"string"
"number"
"json"
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
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
type: "boolean" or "string" or "number" or "json"

Server-inferred value type shared by all of the flag’s variations.

One of the following:
"boolean"
"string"
"number"
"json"
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
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
type: "boolean" or "string" or "number" or "json"

Server-inferred value type shared by all of the flag’s variations.

One of the following:
"boolean"
"string"
"number"
"json"
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
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
type: "boolean" or "string" or "number" or "json"

Server-inferred value type shared by all of the flag’s variations.

One of the following:
"boolean"
"string"
"number"
"json"
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
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