Skip to content
Start here

Apps

List apps
client.flagship.apps.list(AppListParams { account_id } params, RequestOptionsoptions?): SinglePage<AppListResponse { id, created_at, name, 2 more } >
GET/accounts/{account_id}/flagship/apps
Get app
client.flagship.apps.get(stringappId, AppGetParams { account_id } params, RequestOptionsoptions?): AppGetResponse { id, created_at, name, 2 more }
GET/accounts/{account_id}/flagship/apps/{app_id}
Create app
client.flagship.apps.create(AppCreateParams { account_id, name } params, RequestOptionsoptions?): AppCreateResponse { id, created_at, name, 2 more }
POST/accounts/{account_id}/flagship/apps
Update app
client.flagship.apps.update(stringappId, AppUpdateParams { account_id, name } params, RequestOptionsoptions?): AppUpdateResponse { id, created_at, name, 2 more }
PUT/accounts/{account_id}/flagship/apps/{app_id}
Delete app
client.flagship.apps.delete(stringappId, AppDeleteParams { account_id } params, RequestOptionsoptions?): AppDeleteResponse { id }
DELETE/accounts/{account_id}/flagship/apps/{app_id}
ModelsExpand Collapse
AppListResponse { 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 edge-gateway for gateway-authenticated changes.

AppGetResponse { 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 edge-gateway for gateway-authenticated changes.

AppCreateResponse { 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 edge-gateway for gateway-authenticated changes.

AppUpdateResponse { 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 edge-gateway for gateway-authenticated changes.

AppDeleteResponse { id }
id: string

AppsFlags

List flags
client.flagship.apps.flags.list(stringappId, FlagListParams { account_id, cursor, limit } params, RequestOptionsoptions?): CursorPaginationAfter<FlagListResponse { default_variation, enabled, key, 6 more } >
GET/accounts/{account_id}/flagship/apps/{app_id}/flags
Get flag
client.flagship.apps.flags.get(stringappId, stringflagKey, FlagGetParams { account_id } params, RequestOptionsoptions?): FlagGetResponse { default_variation, enabled, key, 6 more }
GET/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}
Create flag
client.flagship.apps.flags.create(stringappId, FlagCreateParams { account_id, default_variation, enabled, 5 more } params, RequestOptionsoptions?): FlagCreateResponse { default_variation, enabled, key, 6 more }
POST/accounts/{account_id}/flagship/apps/{app_id}/flags
Update flag
client.flagship.apps.flags.update(stringappId, stringflagKey, FlagUpdateParams { account_id, default_variation, enabled, 5 more } params, RequestOptionsoptions?): FlagUpdateResponse { default_variation, enabled, key, 6 more }
PUT/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}
Delete flag
client.flagship.apps.flags.delete(stringappId, stringflagKey, FlagDeleteParams { account_id } params, RequestOptionsoptions?): FlagDeleteResponse { key }
DELETE/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}
ModelsExpand Collapse
FlagListResponse { default_variation, enabled, key, 6 more }
default_variation: string

Variation served when no rule matches or the flag is disabled. 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<Rule>

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

conditions: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >

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

One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<string | null | number | boolean | 2 more>
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order; lower numbers are evaluated first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation served when this rule matches. Must be a key in variations.

minLength1
rollout?: Rollout { 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?: string

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

minLength1
variations: Record<string, string | null | number | boolean | 2 more>

Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller.

One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
description?: string | null
maxLength512
type?: "boolean" | "string" | "number" | "json"

Value type of the flag’s variations. Inferred from the variation values on write, so it may be omitted in requests.

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

Variation served when no rule matches or the flag is disabled. 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<Rule>

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

conditions: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >

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

One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<string | null | number | boolean | 2 more>
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order; lower numbers are evaluated first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation served when this rule matches. Must be a key in variations.

minLength1
rollout?: Rollout { 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?: string

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

minLength1
variations: Record<string, string | null | number | boolean | 2 more>

Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller.

One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
description?: string | null
maxLength512
type?: "boolean" | "string" | "number" | "json"

Value type of the flag’s variations. Inferred from the variation values on write, so it may be omitted in requests.

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

Variation served when no rule matches or the flag is disabled. 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<Rule>

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

conditions: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >

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

One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<string | null | number | boolean | 2 more>
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order; lower numbers are evaluated first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation served when this rule matches. Must be a key in variations.

minLength1
rollout?: Rollout { 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?: string

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

minLength1
variations: Record<string, string | null | number | boolean | 2 more>

Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller.

One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
description?: string | null
maxLength512
type?: "boolean" | "string" | "number" | "json"

Value type of the flag’s variations. Inferred from the variation values on write, so it may be omitted in requests.

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

Variation served when no rule matches or the flag is disabled. 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<Rule>

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

conditions: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >

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

One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<string | null | number | boolean | 2 more>
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order; lower numbers are evaluated first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation served when this rule matches. Must be a key in variations.

minLength1
rollout?: Rollout { 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?: string

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

minLength1
variations: Record<string, string | null | number | boolean | 2 more>

Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller.

One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
description?: string | null
maxLength512
type?: "boolean" | "string" | "number" | "json"

Value type of the flag’s variations. Inferred from the variation values on write, so it may be omitted in requests.

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

AppsFlagsChangelog

Get flag changelog
client.flagship.apps.flags.changelog.list(stringappId, stringflagKey, ChangelogListParams { account_id, cursor, limit } params, RequestOptionsoptions?): CursorPaginationAfter<ChangelogListResponse>
GET/accounts/{account_id}/flagship/apps/{app_id}/flags/{flag_key}/changelog
ModelsExpand Collapse
ChangelogListResponse = UnionMember0 { after, event, flag_key } | UnionMember1 { after, event, flag_key } | UnionMember2 { after, diff, event, flag_key }
One of the following:
UnionMember0 { after, event, flag_key }
after: After { default_variation, enabled, key, 6 more }
default_variation: string

Variation served when no rule matches or the flag is disabled. 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<Rule>

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

conditions: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >

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

One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<string | null | number | boolean | 2 more>
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order; lower numbers are evaluated first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation served when this rule matches. Must be a key in variations.

minLength1
rollout?: Rollout { 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?: string

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

minLength1
variations: Record<string, string | null | number | boolean | 2 more>

Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller.

One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
description?: string | null
maxLength512
type?: "boolean" | "string" | "number" | "json"

Value type of the flag’s variations. Inferred from the variation values on write, so it may be omitted in requests.

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

Variation served when no rule matches or the flag is disabled. 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<Rule>

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

conditions: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >

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

One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<string | null | number | boolean | 2 more>
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order; lower numbers are evaluated first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation served when this rule matches. Must be a key in variations.

minLength1
rollout?: Rollout { 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?: string

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

minLength1
variations: Record<string, string | null | number | boolean | 2 more>

Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller.

One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
description?: string | null
maxLength512
type?: "boolean" | "string" | "number" | "json"

Value type of the flag’s variations. Inferred from the variation values on write, so it may be omitted in requests.

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

Variation served when no rule matches or the flag is disabled. 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<Rule>

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

conditions: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >

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

One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<UnionMember0 { attribute, operator, value } | UnionMember1 { clauses, logical_operator } >
One of the following:
UnionMember0 { attribute, operator, value }
attribute: string
maxLength64
minLength1
operator: "equals" | "not_equals" | "greater_than" | 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: unknown

Value to compare against the context attribute. Must be an array for in and not_in; numeric and ISO-8601 datetime strings are accepted by the ordering operators.

UnionMember1 { clauses, logical_operator }
clauses: Array<string | null | number | boolean | 2 more>
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
logical_operator: "AND" | "OR"
One of the following:
"AND"
"OR"
priority: number

Evaluation order; lower numbers are evaluated first. Must be unique across the flag’s rules.

minimum1
serve_variation: string

Variation served when this rule matches. Must be a key in variations.

minLength1
rollout?: Rollout { 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?: string

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

minLength1
variations: Record<string, string | null | number | boolean | 2 more>

Map of variation name to value. All values must be the same type (boolean, string, number, or JSON object/array). Each serialized value must be 10KB or smaller.

One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
description?: string | null
maxLength512
type?: "boolean" | "string" | "number" | "json"

Value type of the flag’s variations. Inferred from the variation values on write, so it may be omitted in requests.

One of the following:
"boolean"
"string"
"number"
"json"
updated_at?: string
updated_by?: string
diff: Record<string, Diff>
from?: string | null | number | boolean | 2 more
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
to?: string | null | number | boolean | 2 more
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>
event: "update"
flag_key: string

AppsEvaluate

Evaluate flag
client.flagship.apps.evaluate.get(stringappId, EvaluateGetParams { account_id, flagKey, targetingKey } params, RequestOptionsoptions?): EvaluateGetResponse { flagKey, reason, variant, value }
GET/accounts/{account_id}/flagship/apps/{app_id}/evaluate
ModelsExpand Collapse
EvaluateGetResponse { flagKey, reason, variant, value }
flagKey: string
reason: "TARGETING_MATCH" | "DEFAULT" | "DISABLED" | "SPLIT"
One of the following:
"TARGETING_MATCH"
"DEFAULT"
"DISABLED"
"SPLIT"
variant: string
value?: string | null | number | boolean | 2 more
One of the following:
string | null
number
boolean
Record<string, unknown>
Array<unknown>