---
title: "Create a feature flag"
method: POST
path: "/api/v4/projects/{id}/feature_flags"
tags: ["feature_flags"]
---

# Create a feature flag

`POST /api/v4/projects/{id}/feature_flags`

## Request

- Base URL: `https://gitlab.com`
- URL: `https://gitlab.com/api/v4/projects/{id}/feature_flags`
- Auth: none declared

Creates a feature flag for a specified project.

## Path parameters

- `id` string, required

## Request body

- PostApiV4ProjectsIdFeatureFlags: Create a feature flag
  - `name` string, required: The name of the feature flag
  - `description` string: The description of the feature flag
  - `active` boolean: The active state of the flag. Defaults to `true`. Supported in GitLab 13.3 and later
  - `version` string: The version of the feature flag. Must be `new_version_flag`. Omit to create a Legacy feature flag.
  - `strategies` object[]: Array of feature flag strategies
    - `name` string, required: The strategy name. Can be `default`, `gradualRolloutUserId`, `userWithId`, or `gitlabUserList`. In GitLab 13.5 and later, can be `flexibleRollout`
    - `parameters` string: The strategy parameters as a JSON-formatted string e.g. `{"userIds":"user1"}`
    - `user_list_id` integer: The ID of the feature flag user list. If strategy is `gitlabUserList`.
    - `scopes` object[]: Array of scopes for the strategy
      - `environment_scope` string, required: The environment scope of the scope

## Response `201`

Create a feature flag

- APIEntitiesFeatureFlag: API_Entities_FeatureFlag model
  - `name` string, required
  - `description` string, required
  - `active` boolean, required
  - `version` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `scopes` unknown[], required
    - unknown
  - `strategies` APIEntitiesFeatureFlagStrategy, required
    - `id` integer, required
    - `name` string, required
    - `parameters` string, required
    - `scopes` APIEntitiesFeatureFlagScope, required
      - `id` integer, required
      - `environment_scope` string, required
    - `user_list` APIEntitiesFeatureFlagBasicUserList, required
      - `id` integer, required
      - `iid` integer, required
      - `name` string, required
      - `user_xids` string, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden

---

[API](https://skmtc.dev/gitlab/apis/gitlab-api.md) - [All operations](https://skmtc.dev/gitlab/apis/gitlab-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gitlab/apis/gitlab-api/revisions/b234947ef3f2?raw)
