API Reference
The complete Flagon REST API, generated from the live OpenAPI 3.1 document so it never drifts from the running service. Point any OpenAPI tool at the raw spec, or read it inline below.
https://api.flagon.ioAuthentication
- A Flagon SDK key (`flagon_sdk_...`), scoped to one environment, for OFREP evaluation. Send it as `Authorization: Bearer <key>`.
- A Flagon access token (`flagon_oat_...`) for the management API. Send it as `Authorization: Bearer <token>`.
OFREP evaluation
Evaluate flags with an SDK key over the OpenFeature Remote Evaluation Protocol (single and bulk).
/ofrep/v1/evaluate/flags/{key}Auth: SDK keyEvaluate a flag
Evaluate one flag for the supplied evaluation context. Authenticated by an SDK key, which pins the organization and environment.
Path parameters
keystringThe flag key.
Request body
contextobjectoptionaltargetingKeystringoptional
Responses
keystringrequiredvalueanyrequiredThe resolved flag value; any JSON type.
reasonstringrequiredvariantstringoptionalmetadataobjectrequired
/ofrep/v1/evaluate/flagsAuth: SDK keyEvaluate all flags
Evaluate every flag configured in the SDK key's environment for the supplied context. Each entry is a success object or a per-flag failure object, so one misconfigured flag never fails the call.
Request body
contextobjectoptionaltargetingKeystringoptional
Responses
flagsany[]required
Flags
Create and configure flags and their per-environment state.
/v1/orgs/{org}/flagsAuth: Access tokenList flags
List every flag in the organization with its per-environment configuration.
Path parameters
orgstringThe organization slug.
Responses
flagsobject[]requiredarray ofidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredtype"boolean" | "string" | "number" | "json"requiredpermanentbooleanrequiredtagsstring[]requiredmaintainerUserIdstringrequiredcreatedByUserIdstringrequiredarchivedAtstringrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
valueanyrequiredcreatedByNamestringrequiredmaintainerNamestringrequiredusageobjectrequiredtotalnumberrequiredchecksPerHournumberrequiredlastSeenAtstringrequiredseriesnumber[]required
/v1/orgs/{org}/flagsAuth: Access tokenCreate a flag
Create a flag. Flags are created disabled in every environment; enable them per environment afterwards.
Path parameters
orgstringThe organization slug.
Request body
slugstringrequireddescriptionstringoptionaltype"boolean" | "string" | "number" | "json"optionalvariantsobject[]optionalarray ofvalueanyrequiredlabelstringoptional
tagsstring[]optional
Responses
flagobjectrequiredidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredtype"boolean" | "string" | "number" | "json"requiredpermanentbooleanrequiredtagsstring[]requiredmaintainerUserIdstringrequiredcreatedByUserIdstringrequiredarchivedAtstringrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/flags/{key}Auth: Access tokenGet a flag
Path parameters
orgstringThe organization slug.keystringThe flag key.
Responses
flagobjectrequiredidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredtype"boolean" | "string" | "number" | "json"requiredpermanentbooleanrequiredtagsstring[]requiredmaintainerUserIdstringrequiredcreatedByUserIdstringrequiredarchivedAtstringrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
createdByNamestringrequiredmaintainerNamestringrequired
revisionsobject[]requiredarray ofidstringrequiredactionstringrequiredsummarystringrequiredchangesstring[]requireduserNamestringrequiredcreatedAtstringrequiredISO 8601 timestamp
variantsobject[]requiredarray ofidstringrequiredkeystringrequiredvalueanyrequiredlabelstringrequiredsortOrdernumberrequired
environmentsobject[]requiredarray ofkeystringrequirednamestringrequiredenabledbooleanrequireddefaultVariantKeystringrequireddefaultServeanyrequiredoffVariantKeystringrequiredrulesobject[]requiredarray ofidstringrequiredprioritynumberrequireddescriptionstringrequiredconditionsanyrequiredserveanyrequired
/v1/orgs/{org}/flags/{key}Auth: Access tokenUpdate a flag
Edit flag metadata: name, description, maintainer, permanence, and tags.
Path parameters
orgstringThe organization slug.keystringThe flag key.
Request body
namestringoptionaldescriptionstringoptionalmaintainerUserIdstring · uuidoptionalpermanentbooleanoptionaltagsstring[]optional
Responses
flagobjectrequiredidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredtype"boolean" | "string" | "number" | "json"requiredpermanentbooleanrequiredtagsstring[]requiredmaintainerUserIdstringrequiredcreatedByUserIdstringrequiredarchivedAtstringrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/flags/{key}Auth: Access tokenDelete a flag
Permanently delete a flag. Evaluation of the key stops, so remove all references first.
Path parameters
orgstringThe organization slug.keystringThe flag key.
Responses
okbooleanrequired
/v1/orgs/{org}/flags/{key}/usageAuth: Access tokenGet flag usage
Evaluation counts and recency for the flag, per environment.
Path parameters
orgstringThe organization slug.keystringThe flag key.
Responses
usageobjectrequiredtotalnumberrequiredlastSeenAtstringrequiredenvironmentsobject[]requiredarray ofkeystringrequirednamestringrequiredtotalnumberrequiredlastSeenAtstringrequiredvariantsobject[]requiredarray ofkeystringrequiredcountnumberrequired
seriesobject[]requiredarray ofdaystringrequiredcountnumberrequired
/v1/orgs/{org}/flags/{key}/archiveAuth: Access tokenArchive a flag
Retire a flag. It disappears from the active list but keeps evaluating, so existing clients never break.
Path parameters
orgstringThe organization slug.keystringThe flag key.
Responses
flagobjectrequiredidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredtype"boolean" | "string" | "number" | "json"requiredpermanentbooleanrequiredtagsstring[]requiredmaintainerUserIdstringrequiredcreatedByUserIdstringrequiredarchivedAtstringrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/flags/{key}/restoreAuth: Access tokenRestore a flag
Return an archived flag to the active list so its configuration can be edited again.
Path parameters
orgstringThe organization slug.keystringThe flag key.
Responses
flagobjectrequiredidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredtype"boolean" | "string" | "number" | "json"requiredpermanentbooleanrequiredtagsstring[]requiredmaintainerUserIdstringrequiredcreatedByUserIdstringrequiredarchivedAtstringrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/flags/{key}/environments/{envKey}Auth: Access tokenConfigure a flag in an environment
Set the on/off state, the default variant or rollout, and the off variant for a flag in one environment.
Path parameters
orgstringThe organization slug.keystringThe flag key.envKeystringThe environment key (e.g. production, preview, development).
Request body
enabledbooleanoptionaldefaultVariantKeystringoptionaloffVariantKeystringoptionaldefaultServeanyoptional
Responses
okbooleanrequired
Variants
The values a flag can serve.
/v1/orgs/{org}/flags/{key}/variantsAuth: Access tokenCreate a variant
Add a variant to a multivariate flag. Boolean flags have fixed on/off variants and reject this.
Path parameters
orgstringThe organization slug.keystringThe flag key.
Request body
valueanyrequiredlabelstringoptional
Responses
variantobjectrequiredidstringrequiredkeystringrequiredvalueanyrequiredlabelstringrequiredsortOrdernumberrequired
/v1/orgs/{org}/flags/{key}/variants/{variantKey}Auth: Access tokenUpdate a variant
Edit a variant's value or label.
Path parameters
orgstringThe organization slug.keystringThe flag key.variantKeystringThe variant key (e.g. variant-1).
Request body
valueanyoptionallabelstringoptional
Responses
variantobjectrequiredidstringrequiredkeystringrequiredvalueanyrequiredlabelstringrequiredsortOrdernumberrequired
/v1/orgs/{org}/flags/{key}/variants/{variantKey}Auth: Access tokenDelete a variant
Remove a variant. Rejected while a default, off value, or targeting rule still references it.
Path parameters
orgstringThe organization slug.keystringThe flag key.variantKeystringThe variant key (e.g. variant-1).
Responses
okbooleanrequired
Targeting rules
Per-environment rules that serve a variant to a matched audience.
/v1/orgs/{org}/flags/{key}/environments/{envKey}/rulesAuth: Access tokenList targeting rules
List the flag's targeting rules for an environment, in priority order.
Path parameters
orgstringThe organization slug.keystringThe flag key.envKeystringThe environment key (e.g. production, preview, development).
Responses
rulesobject[]requiredarray ofidstringrequiredprioritynumberrequireddescriptionstringrequiredconditionsanyrequiredserveanyrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/flags/{key}/environments/{envKey}/rulesAuth: Access tokenCreate a targeting rule
Append a targeting rule to a flag's environment. Rules serve in priority order (lowest first).
Path parameters
orgstringThe organization slug.keystringThe flag key.envKeystringThe environment key (e.g. production, preview, development).
Request body
descriptionstringoptionalconditionsany[]optionalarray ofanyserveanyrequiredpriorityintegeroptional
Responses
ruleobjectrequiredidstringrequiredprioritynumberrequireddescriptionstringrequiredconditionsanyrequiredserveanyrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/flags/{key}/environments/{envKey}/rulesAuth: Access tokenReplace all targeting rules
Replace the environment's entire ordered rule set in one atomic transaction, recorded as a single revision.
Path parameters
orgstringThe organization slug.keystringThe flag key.envKeystringThe environment key (e.g. production, preview, development).
Request body
rulesobject[]requiredarray ofdescriptionstringoptionalconditionsany[]optionalarray ofanyserveanyrequired
Responses
rulesobject[]requiredarray ofidstringrequiredprioritynumberrequireddescriptionstringrequiredconditionsanyrequiredserveanyrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/flags/{key}/environments/{envKey}/rules/{ruleId}Auth: Access tokenUpdate a rule
Edit a single targeting rule's description, conditions, serve, or priority.
Path parameters
orgstringThe organization slug.keystringThe flag key.envKeystringThe environment key (e.g. production, preview, development).ruleIdstringThe targeting rule id.
Request body
descriptionstringoptionalconditionsany[]optionalarray ofanyserveanyoptionalpriorityintegeroptional
Responses
ruleobjectrequiredidstringrequiredprioritynumberrequireddescriptionstringrequiredconditionsanyrequiredserveanyrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/flags/{key}/environments/{envKey}/rules/{ruleId}Auth: Access tokenDelete a rule
Remove a single targeting rule from a flag's environment.
Path parameters
orgstringThe organization slug.keystringThe flag key.envKeystringThe environment key (e.g. production, preview, development).ruleIdstringThe targeting rule id.
Responses
okbooleanrequired
/v1/orgs/{org}/flags/{key}/environments/{envKey}/rules/reorderAuth: Access tokenReorder rules
Set the priority order of the environment's rules from an ordered list of rule ids.
Path parameters
orgstringThe organization slug.keystringThe flag key.envKeystringThe environment key (e.g. production, preview, development).
Request body
ruleIdsstring · uuid[]required
Responses
okbooleanrequired
Segments
Reusable, named audiences referenced by targeting rules.
/v1/orgs/{org}/segmentsAuth: Access tokenList segments
List every segment in the organization.
Path parameters
orgstringThe organization slug.
Responses
segmentsobject[]requiredarray ofidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredconditionsanyrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/segmentsAuth: Access tokenCreate a segment
Create a reusable targeting segment: a named group of conditions that rules can reference.
Path parameters
orgstringThe organization slug.
Request body
keystringrequirednamestringrequireddescriptionstringoptionalconditionsany[]optionalarray ofany
Responses
segmentobjectrequiredidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredconditionsanyrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/segments/{key}Auth: Access tokenGet a segment
Path parameters
orgstringThe organization slug.keystringThe segment key.
Responses
segmentobjectrequiredidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredconditionsanyrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/segments/{key}Auth: Access tokenUpdate a segment
Edit a segment's name, description, or conditions.
Path parameters
orgstringThe organization slug.keystringThe segment key.
Request body
namestringoptionaldescriptionstringoptionalconditionsany[]optionalarray ofany
Responses
segmentobjectrequiredidstringrequiredkeystringrequirednamestringrequireddescriptionstringrequiredconditionsanyrequiredcreatedAtstringrequiredISO 8601 timestamp
updatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/segments/{key}Auth: Access tokenDelete a segment
Permanently delete a segment.
Path parameters
orgstringThe organization slug.keystringThe segment key.
Responses
okbooleanrequired
Entities
Known targeting subjects and their attributes.
/v1/orgs/{org}/entitiesAuth: Access tokenList entities
List every entity in the organization with its attributes.
Path parameters
orgstringThe organization slug.
Responses
entitiesobject[]requiredarray ofidstringrequiredkeystringrequiredlabelstringrequiredattributesobject[]requiredarray ofkeystringrequireddataTypestringrequiredlabelsstring[]required
createdAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/entitiesAuth: Access tokenCreate an entity
Define a targeting entity (e.g. user, team) and its typed attributes that rules and segments reference.
Path parameters
orgstringThe organization slug.
Request body
keystringrequiredlabelstringrequiredattributesobject[]optionalarray ofkeystringrequireddataType"string" | "number" | "boolean"optionallabelsstring[]optional
Responses
entityobjectrequiredidstringrequiredkeystringrequiredlabelstringrequiredattributesobject[]requiredarray ofkeystringrequireddataTypestringrequiredlabelsstring[]required
createdAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/entities/{key}Auth: Access tokenUpdate an entity
Edit an entity's label or replace its attribute set.
Path parameters
orgstringThe organization slug.keystringThe entity key.
Request body
labelstringoptionalattributesobject[]optionalarray ofkeystringrequireddataType"string" | "number" | "boolean"optionallabelsstring[]optional
Responses
entityobjectrequiredidstringrequiredkeystringrequiredlabelstringrequiredattributesobject[]requiredarray ofkeystringrequireddataTypestringrequiredlabelsstring[]required
createdAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/entities/{key}Auth: Access tokenDelete an entity
Permanently delete an entity and its attributes.
Path parameters
orgstringThe organization slug.keystringThe entity key.
Responses
okbooleanrequired
Environments
The stages a flag is configured across.
/v1/orgs/{org}/environmentsAuth: Access tokenList environments
List the organization's environments (Production, Preview, Development), seeded on first read.
Path parameters
orgstringThe organization slug.
Responses
environmentsobject[]requiredarray ofidstringrequiredkeystringrequirednamestringrequiredsortOrdernumberrequired
SDK keys
Per-environment keys that authenticate OFREP evaluation.
/v1/orgs/{org}/sdk-keysAuth: Access tokenList SDK keys
List the organization's SDK keys as masked metadata. The secret is never returned.
Path parameters
orgstringThe organization slug.
Responses
keysobject[]requiredarray ofidstringrequirednamestringrequiredenvironmentKeystringrequiredprefixstringrequiredlastFourstringrequiredmaskedstringrequiredlastUsedAtstringrequiredrevokedAtstringrequiredcreatedAtstringrequiredISO 8601 timestamp
/v1/orgs/{org}/sdk-keysAuth: Access tokenMint an SDK key
Create an SDK key for one environment. The plaintext token is returned once at creation and never again.
Path parameters
orgstringThe organization slug.
Request body
namestringrequiredenvironmentstringrequired
Responses
keyobjectrequiredidstringrequirednamestringrequiredenvironmentKeystringrequiredprefixstringrequiredlastFourstringrequiredmaskedstringrequiredlastUsedAtstringrequiredrevokedAtstringrequiredcreatedAtstringrequiredISO 8601 timestamp
tokenstringrequiredThe plaintext SDK key, returned only once at creation.
/v1/orgs/{org}/sdk-keys/{id}/revokeAuth: Access tokenRevoke an SDK key
Revoke an SDK key so it can no longer be used to evaluate flags.
Path parameters
orgstringThe organization slug.idstringThe SDK key id.
Responses
okbooleanrequired
Members
People in an organization.
/v1/orgs/{org}/membersAuth: Access tokenList members
List the organization's members with their name, email, and role.
Path parameters
orgstringThe organization slug.
Responses
membersobject[]requiredarray ofuserIdstringrequirednamestringrequiredemailstringrequiredrolestringrequired
Waitlist
Public early-access intake.
/v1/waitlistPublicJoin the waitlist
Record an email address for early access. Submitting the same address again is a no-op success.
Request body
emailstring · emailrequired
Responses
acceptedbooleanrequired
Meta
/v1/healthzPublicHealth check
Liveness probe. Returns the current server time; never touches the database.
Responses
statusstringrequiredversionstringrequiredtimestringrequiredISO-8601 server time.
Identity
/v1/mePublicIdentify the caller
Resolve the authenticated identity for this request. Send a personal or organization access token as `Authorization: Bearer <token>`, or call from a browser that holds a valid Flagon session cookie. Returns 401 when neither is present or valid.