---
title: "Create Gate Review"
method: POST
path: "/console/v1/gates/{id}/reviews"
tags: ["Gates"]
---

# Create Gate Review

`POST /console/v1/gates/{id}/reviews`

## Path parameters

- `id` string, required

## Request body

- CreateReviewRequestDto — Request body for POST /console/v1/gates/:id/reviews
  - `description` string, required — Human-readable description of the proposed change.
  - `reviewer_ids` string[] — User IDs to request review from.
  - `reviewer_group_ids` string[] — Reviewer group IDs to request review from.
  - `change` object, required — The proposed change. Provide exactly one of `rules`, `is_enabled`, `is_archived`, `delete`, `resalt`, `disable_reviews_locally`, `team_id`, `release_pipeline_id`, `id_type`, `allow_self_approval`, `target_app_ids`, `owners`, or `allowed_reviewers`.
    - `rules` object[] — Proposed full rule set for the gate. Same shape as the gate update contract.
      - `name` string, required — The name of this rule.
      - `passPercentage` number, required — Of the users that meet the conditions of this rule, what percent should return true.
      - `conditions` object[], required — An array of Condition objects.
        - `targetValue` union
          - string[]
          - number[]
          - string
          - number
        - `operator` string
        - `field` string, nullable
        - `customID` string, nullable
        - `type` 'app_version' | 'browser_name' | 'browser_version' | 'country' | 'custom_field' | 'email' | 'environment_tier' | 'fails_gate' | 'fails_segment' | 'ip_address' | 'locale' | 'os_name' | 'os_version' | 'passes_gate' | 'passes_segment' | 'public' | 'time' | 'unit_id' | 'user_id' | 'user_agent' | 'url' | 'javascript' | 'device_model' | 'target_app' | 'experiment_group', required
      - `environments` string[], nullable — The environments this rule is enabled for.
      - `id` string — The Statsig ID of this rule.
      - `baseID` string — The base ID of this rule, i.e. without any added metadata. Will remain the exact same throughout
      - `returnValue` object — The return value of the rule.
      - `completedAutomatedRollouts` object[] — Read-only: Automated rollout phases that have already completed.
        - `time` number
        - `passPercent` number, required
      - `pendingAutomatedRollouts` object[] — Read-only: Automated rollout phases that are scheduled but not yet complete.
        - `time` number
        - `passPercent` number, required
    - `is_enabled` boolean — Proposed enabled state for the gate. An explicit target, not a toggle.
    - `is_archived` boolean — Proposed archived state for the gate. `true` archives, `false` unarchives.
    - `delete` true — Delete the gate. Set to `true`.
    - `resalt` true — Re-randomize the gate's salt. Set to `true`.
    - `disable_reviews_locally` true — Stop requiring review on this gate. Set to `true`.
    - `team_id` string — Reassign the gate to this team (review type `update_team`).
    - `release_pipeline_id` string — Set the gate's release pipeline (review type `update_release_pipeline`).
    - `id_type` string — Change the gate's primary unit ID type (review type `edit_id_type`).
    - `allow_self_approval` boolean — Whether this gate's reviews may be self-approved (review type `update_allow_self_approval`).
    - `target_app_ids` string[] — Replace the gate's target applications (review type `update_target_applications`).
    - `owners` object[] — Replace the gate's owners (review type `update_owners`).
      - `owner_id` string, required — User ID (or SDK key ID) of the owner.
      - `owner_type` 'user' | 'sdk_key' — Owner kind. Defaults to `user`.
    - `allowed_reviewers` object — Set who may review this gate (review type `allowed_reviewers`).
      - `user_ids` string[] — User IDs allowed to review. Replaces the existing set.
      - `group_ids` string[] — Reviewer group IDs allowed to review. Replaces the existing set.

## Response `201`

The created gate review.

- object
  - `message` string, required — A simple string explaining the result of the operation.
  - `data` object, required — A single result.
    - `review_id` string, required — Unique ID of the review.
    - `status` 'pending' | 'accepted' | 'rejected' | 'committed' | 'changes_requested' | 'pending_webhook_validation' | 'failed_webhook_validation' | 'approved_webhook_validation', required — Lifecycle status of the review.
    - `type` 'rules' | 'toggle_enabled' | 'archive' | 'delete' | 'resalt' | 'disable_reviews_locally' | 'update_team' | 'update_release_pipeline' | 'edit_id_type' | 'update_allow_self_approval' | 'update_target_applications' | 'update_owners' | 'allowed_reviewers', required — Kind of change the review proposes.
    - `author` object, required — The user who created the review.
      - `id` string, required
      - `email` string, nullable, required
    - `reviewers` object[], required — Requested reviewers (users and groups).
      - `id` string, required
      - `kind` 'user' | 'group', required
    - `description` string, required — Human-readable description of the proposed change.
    - `created_at` string, required — ISO-8601 timestamp of when the review was created.

---

[API](https://skmtc.net/statsig/apis/console-api.md) · [All operations](https://skmtc.net/statsig/apis/console-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/statsig/console-api/versions/3189f450c93b/schema)
