A Feature Flag controls feature availability for organizations and users in your application.
Get the details of an existing feature flag by its slug.
import { WorkOS } from '@workos-inc/node'; const workos = new WorkOS('sk_example_123456789'); const featureFlag = await workos.featureFlags.getFeatureFlag('advanced-analytics'); console.log(featureFlag);
{ "object": "feature_flag", "id": "flag_01EHZNVPK3SFK441A1RGBFSHRT", "slug": "advanced-analytics", "name": "Advanced Analytics", "description": "Enable advanced analytics dashboard feature", "owner": { "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe" }, "tags": [ "reports" ], "enabled": true, "default_value": false, "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" }
| curl "https://api.workos.com/feature-flags/advanced-analytics" \ | |
| --header "Authorization: Bearer sk_example_123456789" |
| import { WorkOS } from '@workos-inc/node'; | |
| const workos = new WorkOS('sk_example_123456789'); | |
| const featureFlag = | |
| await workos.featureFlags.getFeatureFlag('advanced-analytics'); | |
| console.log(featureFlag); |
| require "workos" | |
| WorkOS.configure do |config| | |
| config.api_key = "sk_example_123456789" | |
| end | |
| WorkOS.client.feature_flags.get_feature_flag(slug: "advanced-analytics") |
| from workos import WorkOSClient | |
| client = WorkOSClient(api_key="sk_example_123456789", client_id="client_123456789") | |
| client.feature_flags.get_feature_flag(slug="advanced-analytics") |
| package main | |
| import ( | |
| "context" | |
| "github.com/workos/workos-go/v9" | |
| ) | |
| func main() { | |
| client := workos.NewClient("sk_example_123456789") | |
| _, err := client.FeatureFlags().Get(context.Background(), "advanced-analytics") | |
| if err != nil { | |
| panic(err) | |
| } | |
| } |
| <?php | |
| use WorkOS\WorkOS; | |
| $workos = new WorkOS( | |
| apiKey: "sk_example_123456789", | |
| clientId: "client_123456789", | |
| ); | |
| $workos->featureFlags()->getFeatureFlag(slug: "advanced-analytics"); |
| import com.workos.WorkOS; | |
| WorkOS workos = new WorkOS("sk_example_123456789"); | |
| workos.featureFlags.getFeatureFlag("advanced-analytics"); |
| using WorkOS; | |
| var client = new WorkOSClient(new WorkOSOptions { | |
| ApiKey = "sk_example_123456789", | |
| ClientId = "client_123456789", | |
| }); | |
| await client.FeatureFlags.GetAsync("advanced-analytics"); |
| use workos::Client; | |
| #[tokio::main] | |
| async fn main() -> Result<(), workos::Error> { | |
| let client = Client::builder() | |
| .api_key("sk_example_123456789") | |
| .client_id("client_123456789") | |
| .build(); | |
| let _result = client | |
| .feature_flags() | |
| .get_feature_flag("advanced-analytics") | |
| .await?; | |
| Ok(()) | |
| } |
| { | |
| "object": "feature_flag", | |
| "id": "flag_01EHZNVPK3SFK441A1RGBFSHRT", | |
| "slug": "advanced-analytics", | |
| "name": "Advanced Analytics", | |
| "description": "Enable advanced analytics dashboard feature", | |
| "owner": { | |
| "email": "jane@example.com", | |
| "first_name": "Jane", | |
| "last_name": "Doe" | |
| }, | |
| "tags": [ | |
| "reports" | |
| ], | |
| "enabled": true, | |
| "default_value": false, | |
| "created_at": "2026-01-15T12:00:00.000Z", | |
| "updated_at": "2026-01-15T12:00:00.000Z" | |
| } |
GET/feature-flags /:slugParameters Returns Get a list of all of your existing feature flags matching the criteria specified.
import { WorkOS } from '@workos-inc/node'; const workos = new WorkOS('sk_example_123456789'); const featureFlags = await workos.featureFlags.listFeatureFlags(); console.log(featureFlags.data);
{ "object": "list", "data": [ { "object": "feature_flag", "id": "flag_01EHZNVPK3SFK441A1RGBFSHRT", "slug": "advanced-analytics", "name": "Advanced Analytics", "description": "Enable advanced analytics dashboard feature", "owner": { "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe" }, "tags": [ "reports" ], "enabled": true, "default_value": false, "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "list_metadata": { "before": "flag_01HXYZ123456789ABCDEFGHIJ", "after": "flag_01HXYZ987654321KJIHGFEDCBA" } }
| curl "https://api.workos.com/feature-flags" \ | |
| --header "Authorization: Bearer sk_example_123456789" |
| import { WorkOS } from '@workos-inc/node'; | |
| const workos = new WorkOS('sk_example_123456789'); | |
| const featureFlags = await workos.featureFlags.listFeatureFlags(); | |
| console.log(featureFlags.data); |
| require "workos" | |
| WorkOS.configure do |config| | |
| config.api_key = "sk_example_123456789" | |
| end | |
| WorkOS.client.feature_flags.list_feature_flags |
| from workos import WorkOSClient | |
| client = WorkOSClient(api_key="sk_example_123456789", client_id="client_123456789") | |
| client.feature_flags.list_feature_flags() |
| package main | |
| import ( | |
| "context" | |
| "github.com/workos/workos-go/v9" | |
| ) | |
| func main() { | |
| client := workos.NewClient("sk_example_123456789") | |
| _, err := client.FeatureFlags().List(context.Background()) | |
| if err != nil { | |
| panic(err) | |
| } | |
| } |
| <?php | |
| use WorkOS\WorkOS; | |
| $workos = new WorkOS( | |
| apiKey: "sk_example_123456789", | |
| clientId: "client_123456789", | |
| ); | |
| $workos->featureFlags()->listFeatureFlags(); |
| import com.workos.WorkOS; | |
| WorkOS workos = new WorkOS("sk_example_123456789"); | |
| workos.featureFlags.listFeatureFlags(); |
| using WorkOS; | |
| var client = new WorkOSClient(new WorkOSOptions { | |
| ApiKey = "sk_example_123456789", | |
| ClientId = "client_123456789", | |
| }); | |
| await client.FeatureFlags.ListAsync(); |
| use workos::Client; | |
| #[tokio::main] | |
| async fn main() -> Result<(), workos::Error> { | |
| let client = Client::builder() | |
| .api_key("sk_example_123456789") | |
| .client_id("client_123456789") | |
| .build(); | |
| let _result = client | |
| .feature_flags() | |
| .list_feature_flags() | |
| .await?; | |
| Ok(()) | |
| } |
| { | |
| "object": "list", | |
| "data": [ | |
| { | |
| "object": "feature_flag", | |
| "id": "flag_01EHZNVPK3SFK441A1RGBFSHRT", | |
| "slug": "advanced-analytics", | |
| "name": "Advanced Analytics", | |
| "description": "Enable advanced analytics dashboard feature", | |
| "owner": { | |
| "email": "jane@example.com", | |
| "first_name": "Jane", | |
| "last_name": "Doe" | |
| }, | |
| "tags": [ | |
| "reports" | |
| ], | |
| "enabled": true, | |
| "default_value": false, | |
| "created_at": "2026-01-15T12:00:00.000Z", | |
| "updated_at": "2026-01-15T12:00:00.000Z" | |
| } | |
| ], | |
| "list_metadata": { | |
| "before": "flag_01HXYZ123456789ABCDEFGHIJ", | |
| "after": "flag_01HXYZ987654321KJIHGFEDCBA" | |
| } | |
| } |
GET/feature-flagsParameters Returns objectEnables a feature flag in the current environment.
import { WorkOS } from '@workos-inc/node'; const workos = new WorkOS('sk_example_123456789'); const featureFlag = await workos.featureFlags.enableFeatureFlag('advanced-analytics'); console.log(featureFlag);
{ "object": "feature_flag", "id": "flag_01EHZNVPK3SFK441A1RGBFSHRT", "slug": "advanced-analytics", "name": "Advanced Analytics", "description": "Enable advanced analytics dashboard feature", "owner": { "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe" }, "tags": [ "reports" ], "enabled": true, "default_value": false, "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" }
| curl --request PUT \ | |
| --url "https://api.workos.com/feature-flags/advanced-analytics/enable" \ | |
| --header "Authorization: Bearer sk_example_123456789" |
| import { WorkOS } from '@workos-inc/node'; | |
| const workos = new WorkOS('sk_example_123456789'); | |
| const featureFlag = | |
| await workos.featureFlags.enableFeatureFlag('advanced-analytics'); | |
| console.log(featureFlag); |
| require "workos" | |
| WorkOS.configure do |config| | |
| config.api_key = "sk_example_123456789" | |
| end | |
| WorkOS.client.feature_flags.enable_feature_flag(slug: "advanced-analytics") |
| from workos import WorkOSClient | |
| client = WorkOSClient(api_key="sk_example_123456789", client_id="client_123456789") | |
| client.feature_flags.enable_feature_flag(slug="advanced-analytics") |
| package main | |
| import ( | |
| "context" | |
| "github.com/workos/workos-go/v9" | |
| ) | |
| func main() { | |
| client := workos.NewClient("sk_example_123456789") | |
| _, err := client.FeatureFlags().Enable(context.Background(), "advanced-analytics") | |
| if err != nil { | |
| panic(err) | |
| } | |
| } |
| <?php | |
| use WorkOS\WorkOS; | |
| $workos = new WorkOS( | |
| apiKey: "sk_example_123456789", | |
| clientId: "client_123456789", | |
| ); | |
| $workos->featureFlags()->enableFeatureFlag(slug: "advanced-analytics"); |
| import com.workos.WorkOS; | |
| WorkOS workos = new WorkOS("sk_example_123456789"); | |
| workos.featureFlags.enableFeatureFlag("advanced-analytics"); |
| using WorkOS; | |
| var client = new WorkOSClient(new WorkOSOptions { | |
| ApiKey = "sk_example_123456789", | |
| ClientId = "client_123456789", | |
| }); | |
| await client.FeatureFlags.EnableAsync("advanced-analytics"); |
| use workos::Client; | |
| #[tokio::main] | |
| async fn main() -> Result<(), workos::Error> { | |
| let client = Client::builder() | |
| .api_key("sk_example_123456789") | |
| .client_id("client_123456789") | |
| .build(); | |
| let _result = client | |
| .feature_flags() | |
| .enable_feature_flag("advanced-analytics") | |
| .await?; | |
| Ok(()) | |
| } |
| { | |
| "object": "feature_flag", | |
| "id": "flag_01EHZNVPK3SFK441A1RGBFSHRT", | |
| "slug": "advanced-analytics", | |
| "name": "Advanced Analytics", | |
| "description": "Enable advanced analytics dashboard feature", | |
| "owner": { | |
| "email": "jane@example.com", | |
| "first_name": "Jane", | |
| "last_name": "Doe" | |
| }, | |
| "tags": [ | |
| "reports" | |
| ], | |
| "enabled": true, | |
| "default_value": false, | |
| "created_at": "2026-01-15T12:00:00.000Z", | |
| "updated_at": "2026-01-15T12:00:00.000Z" | |
| } |
PUT/feature-flags /:slug /enableParameters Returns Disables a feature flag in the current environment.
import { WorkOS } from '@workos-inc/node'; const workos = new WorkOS('sk_example_123456789'); const featureFlag = await workos.featureFlags.disableFeatureFlag('advanced-analytics'); console.log(featureFlag);
{ "object": "feature_flag", "id": "flag_01EHZNVPK3SFK441A1RGBFSHRT", "slug": "advanced-analytics", "name": "Advanced Analytics", "description": "Enable advanced analytics dashboard feature", "owner": { "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe" }, "tags": [ "reports" ], "enabled": false, "default_value": false, "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" }
| curl --request PUT \ | |
| --url "https://api.workos.com/feature-flags/advanced-analytics/disable" \ | |
| --header "Authorization: Bearer sk_example_123456789" |
| import { WorkOS } from '@workos-inc/node'; | |
| const workos = new WorkOS('sk_example_123456789'); | |
| const featureFlag = | |
| await workos.featureFlags.disableFeatureFlag('advanced-analytics'); | |
| console.log(featureFlag); |
| require "workos" | |
| WorkOS.configure do |config| | |
| config.api_key = "sk_example_123456789" | |
| end | |
| WorkOS.client.feature_flags.disable_feature_flag(slug: "advanced-analytics") |
| from workos import WorkOSClient | |
| client = WorkOSClient(api_key="sk_example_123456789", client_id="client_123456789") | |
| client.feature_flags.disable_feature_flag(slug="advanced-analytics") |
| package main | |
| import ( | |
| "context" | |
| "github.com/workos/workos-go/v9" | |
| ) | |
| func main() { | |
| client := workos.NewClient("sk_example_123456789") | |
| _, err := client.FeatureFlags().Disable(context.Background(), "advanced-analytics") | |
| if err != nil { | |
| panic(err) | |
| } | |
| } |
| <?php | |
| use WorkOS\WorkOS; | |
| $workos = new WorkOS( | |
| apiKey: "sk_example_123456789", | |
| clientId: "client_123456789", | |
| ); | |
| $workos->featureFlags()->disableFeatureFlag(slug: "advanced-analytics"); |
| import com.workos.WorkOS; | |
| WorkOS workos = new WorkOS("sk_example_123456789"); | |
| workos.featureFlags.disableFeatureFlag("advanced-analytics"); |
| using WorkOS; | |
| var client = new WorkOSClient(new WorkOSOptions { | |
| ApiKey = "sk_example_123456789", | |
| ClientId = "client_123456789", | |
| }); | |
| await client.FeatureFlags.DisableAsync("advanced-analytics"); |
| use workos::Client; | |
| #[tokio::main] | |
| async fn main() -> Result<(), workos::Error> { | |
| let client = Client::builder() | |
| .api_key("sk_example_123456789") | |
| .client_id("client_123456789") | |
| .build(); | |
| let _result = client | |
| .feature_flags() | |
| .disable_feature_flag("advanced-analytics") | |
| .await?; | |
| Ok(()) | |
| } |
| { | |
| "object": "feature_flag", | |
| "id": "flag_01EHZNVPK3SFK441A1RGBFSHRT", | |
| "slug": "advanced-analytics", | |
| "name": "Advanced Analytics", | |
| "description": "Enable advanced analytics dashboard feature", | |
| "owner": { | |
| "email": "jane@example.com", | |
| "first_name": "Jane", | |
| "last_name": "Doe" | |
| }, | |
| "tags": [ | |
| "reports" | |
| ], | |
| "enabled": false, | |
| "default_value": false, | |
| "created_at": "2026-01-15T12:00:00.000Z", | |
| "updated_at": "2026-01-15T12:00:00.000Z" | |
| } |
PUT/feature-flags /:slug /disableParameters Returns