HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Determines whether a feature is enabled for a given user. The purpose of this method is to allow you to separate the process of developing and deploying features from the decision to turn on a feature. Build your feature and deploy it to your application behind this flag, then turn the feature on or off for specific users.

## Version

SDK v3.1.0

## Description

This method traverses the client's datafile and checks the feature flag for the feature key that you specify.

This method evaluates the feature rollout for a user. The method checks whether the rollout is enabled, whether the user qualifies for the audience targeting, and then randomly assigns either `on` or `off` based on the appropriate traffic allocation. If the feature rollout is on for a qualified user, the method returns `True`.

## Parameters

The table below lists the required and optional parameters in Swift.

**featureKey** _required_StringThe key of the feature to check. The feature key is defined from the Features dashboard.
**userId** _required_StringThe ID of the user to check.
**attributes** _optional_Dictionary<String, Any>A map of custom key-value string pairs specifying attributes for the user that are used for audience targeting.

## Returns

YES if the feature is enabled for the user. Otherwise, false.

## Examples

This section shows a simple example of how you can use the `IsFeatureEnabled` method.

## Source files

The language/platform source files containing the implementation for Swift is [OptimizelyClient.swift](🔗).