Statsig · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Statsig Gates API

57 actions 57 updates phrasing extends openapi/statsig-gates-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Statsig's API. It is a proposal applied on top of the contract, not a document Statsig publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 57 · first 16 shown; the file carries all of them

$.info
$.paths['/gates'].get
$.paths['/gates'].post
$.paths['/gates/{id}'].get
$.paths['/gates/{id}'].delete
$.paths['/gates/{id}'].patch
$.paths['/gates/{id}/enable'].put
$.paths['/gates/{id}/disable'].put
$.paths['/gates/{id}/launch'].put
$.paths['/gates/{id}/archive'].put
$.paths['/gates/{id}/rules'].get
$.paths['/gates/{id}/rules'].put
$.paths['/gates/{id}/rules'].post
$.paths['/gates/{id}/rules/{ruleID}'].delete
$.paths['/gates/{id}/overrides'].get
$.paths['/gates/{id}/overrides'].put

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Statsig Gates API
  version: 1.0.0
extends: openapi/statsig-gates-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 56
- target: $.paths['/gates'].get
  update:
    x-apievangelist-phrasing:
      intent: List feature gates and their status
      effect: read
      questions:
      - Which feature gates exist in my Statsig project?
      - Can I page through all our feature flags with their current status?
      instructions:
      - text: List all feature gates in my project.
      - text: Show page {page} of feature gates, {limit} per page.
        slots:
          page: query.page
          limit: query.limit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a feature gate
      effect: write
      questions:
      - How do I create a new feature flag?
      - Can a new gate start out enabled with targeting rules already in place?
      - Is it possible to scope a new feature gate to certain target apps?
      instructions:
      - text: Create a feature gate named {name}.
        slots:
          name: requestBody.name
      - text: Create gate {name} with initial rules {rules}.
        slots:
          name: requestBody.name
          rules: requestBody.rules
      - text: Create feature gate {name} scoped to target apps {targetApps}.
        slots:
          name: requestBody.name
          targetApps: requestBody.targetApps
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a feature gate's full configuration
      effect: read
      questions:
      - What rules, conditions and overrides does a particular feature gate have?
      - Can I look up everything about one feature flag by its name?
      instructions:
      - text: Show the full configuration of feature gate {id}.
        slots:
          id: path.id
      - text: Get everything configured on gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a feature gate
      effect: destructive
      questions:
      - Can a deleted feature gate be recovered afterward?
      - What is the way to permanently remove a feature flag instead of archiving it?
      instructions:
      - text: Delete feature gate {id} permanently.
        slots:
          id: path.id
      - text: Remove gate {id} from the project for good.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update fields on an existing feature gate
      effect: write
      questions:
      - Can I change the description or tags on an existing feature gate?
      - How do I re-scope an existing gate to different target apps?
      instructions:
      - text: Update the description of gate {id} to {description}.
        slots:
          id: path.id
          description: requestBody.description
      - text: Set the tags on existing gate {id} to {tags}.
        slots:
          id: path.id
          tags: requestBody.tags
      - text: Change the target apps of gate {id} to {targetApps}.
        slots:
          id: path.id
          targetApps: requestBody.targetApps
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/enable'].put
  update:
    x-apievangelist-phrasing:
      intent: Enable a feature gate
      effect: write
      questions:
      - How do I turn a feature gate back on so its rules are evaluated?
      - Can I switch on a gate without editing its rules?
      instructions:
      - text: Enable feature gate {id}.
        slots:
          id: path.id
      - text: Turn on gate {id} so its rules start evaluating.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/disable'].put
  update:
    x-apievangelist-phrasing:
      intent: Disable a feature gate
      effect: write
      questions:
      - Can I kill-switch a feature so the gate returns false for everyone?
      - What happens to a gate's rules when it is disabled?
      instructions:
      - text: Disable feature gate {id}.
        slots:
          id: path.id
      - text: Turn off gate {id} so it fails for all users.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/launch'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a feature gate as fully launched
      effect: write
      questions:
      - How do I mark a feature as fully rolled out so its gate can be cleaned up?
      - Can I launch a feature gate once the rollout is complete?
      instructions:
      - text: Launch feature gate {id}.
        slots:
          id: path.id
      - text: Mark gate {id} as fully rolled out.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/archive'].put
  update:
    x-apievangelist-phrasing:
      intent: Archive a feature gate
      effect: write
      questions:
      - Can I retire a feature gate but keep its configuration for reference?
      - What does archiving a gate do compared to removing it entirely?
      instructions:
      - text: Archive feature gate {id}.
        slots:
          id: path.id
      - text: Take gate {id} out of active use but keep its configuration.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/rules'].get
  update:
    x-apievangelist-phrasing:
      intent: List the targeting rules on a feature gate
      effect: read
      questions:
      - What targeting rules are set on a specific feature gate?
      - Which conditions decide who passes a given gate?
      instructions:
      - text: List only the rules on gate {id}.
        slots:
          id: path.id
      - text: Show the targeting rules for feature gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/rules'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace all rules on a feature gate
      effect: write
      questions:
      - Can I overwrite every targeting rule on a gate with a new set?
      - How do I replace a gate's whole rule list in one request?
      instructions:
      - text: Replace all rules on gate {id} with {rules}.
        slots:
          id: path.id
          rules: requestBody.rules
      - text: Overwrite the full rule set of feature gate {id} with {rules}.
        slots:
          id: path.id
          rules: requestBody.rules
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/rules'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a targeting rule to a feature gate
      effect: write
      questions:
      - Can I add one more targeting rule to a gate without touching the existing ones?
      - Is it possible to roll a gate out to a percentage of users matching certain conditions?
      - Can a new gate rule apply only in specific environments?
      instructions:
      - text: Add a rule named {name} to gate {id} passing {passPercentage} percent of matching users.
        slots:
          name: requestBody.name
          id: path.id
          passPercentage: requestBody.passPercentage
      - text: Add a rule to gate {id} with conditions {conditions}.
        slots:
          id: path.id
          conditions: requestBody.conditions
      - text: Append a rule to gate {id} active only in environments {environments}.
        slots:
          id: path.id
          environments: requestBody.environments
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/rules/{ruleID}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove one rule from a feature gate
      effect: destructive
      questions:
      - Can I remove just one targeting rule from a gate?
      - How do I drop a single outdated rule from a feature flag?
      instructions:
      - text: Delete rule {ruleID} from gate {id}.
        slots:
          ruleID: path.ruleID
          id: path.id
      - text: Remove targeting rule {ruleID} on feature gate {id}.
        slots:
          ruleID: path.ruleID
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/overrides'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the overrides on a feature gate
      effect: read
      questions:
      - Which users are forced to pass or fail a gate through overrides?
      - What ID overrides are configured on a specific feature gate?
      instructions:
      - text: Show the user and ID overrides on gate {id}.
        slots:
          id: path.id
      - text: List who is overridden on feature gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/overrides'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace all overrides on a feature gate
      effect: write
      questions:
      - Can I replace the entire override list on a gate with a new one?
      - Is there a way to reset a gate's overrides to exactly the set I provide?
      instructions:
      - text: Replace all user overrides on gate {id} with {userOverrides}.
        slots:
          id: path.id
          userOverrides: requestBody.userOverrides
      - text: Overwrite the ID overrides on gate {id} with {idOverrides}.
        slots:
          id: path.id
          idOverrides: requestBody.idOverrides
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/overrides'].post
  update:
    x-apievangelist-phrasing:
      intent: Add overrides to a feature gate
      effect: write
      questions:
      - How do I force a specific user to always pass a feature gate?
      - Can I add a few more override IDs to a gate while keeping the existing ones?
      instructions:
      - text: Add user overrides {userOverrides} to gate {id}.
        slots:
          userOverrides: requestBody.userOverrides
          id: path.id
      - text: Add custom ID overrides {idOverrides} to feature gate {id}.
        slots:
          idOverrides: requestBody.idOverrides
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/gates/{id}/overrides'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove all overrides from a feature gate
      effect: destructive
      questions:
      - Can I clear every user and ID override from a gate?
      - What removes all forced pass or fail results from a feature flag?
      instructions:
      - text: Delete all overrides on gate {id}.
        slots:
          id: path.id
      - text: Clear every user and ID override from feature gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/console/v1/gates'].get
  update:
    x-apievangelist-phrasing:
      intent: Search gates by team, type, creator or tag
      effect: read
      questions:
      - Can I filter my gates by owning team or by who created them?
      - Which gates sit in a particular release pipeline or target app?
      - Is there a way to include archived gates when browsing the gate list?
      instructions:
      - text: List gates owned by team {teamID}.
        slots:
          teamID: query.teamID
      - text: Find gates created by {creatorName} that are tagged {tags}.
        slots:
          creatorName: query.creatorName
          tags: query.tags
      - text: Show gates in release pipeline {releasePipelineID}, archived ones included.
        slots:
          releasePipelineID: query.releasePipelineID
      - text: Filter gates to unit ID type {idType} and gate type {type}.
        slots:
          idType: query.idType
          type: query.type
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a gate with team, ID type and pipeline
      effect: write
      questions:
      - Can a new gate be assigned to a team and a custom unit ID type when it is created?
      - Is it possible to attach a release pipeline to a gate at creation time?
      - Can I create a gate that is saved as a reusable template?
      instructions:
      - text: Create gate {name} owned by team {teamID} using ID type {idType}.
        slots:
          name: requestBody.name
          teamID: requestBody.teamID
          idType: requestBody.idType
      - text: Create gate {name} rolled out through release pipeline {releasePipelineID}.
        slots:
          name: requestBody.name
          releasePipelineID: requestBody.releasePipelineID
      - text: Create gate {name} that tracks monitoring metrics {monitoringMetrics} during rollout.
        slots:
          name: requestBody.name
          monitoringMetrics: requestBody.monitoringMetrics
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a gate with its team and archive metadata
      effect: read
      questions:
      - Can I read a gate together with its archive metadata?
      - What team, unit ID type and review settings does a particular gate carry?
      instructions:
      - text: Read gate {id} including its archive metadata.
        slots:
          id: path.id
      - text: Fetch the owning team, ID type and review settings of gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}'].post
  update:
    x-apievangelist-phrasing:
      intent: Fully replace a gate's definition
      effect: write
      questions:
      - Can I resend a gate's complete definition, including rules and enabled state, in one call?
      - Does a full gate update also let me change the owning team and review settings?
      instructions:
      - text: Fully update gate {id} with description {description}, rules {rules} and enabled set to {isEnabled}.
        slots:
          id: path.id
          description: requestBody.description
          rules: requestBody.rules
          isEnabled: requestBody.isEnabled
      - text: Overwrite every setting on gate {id} and move it to team {teamID}.
        slots:
          id: path.id
          teamID: requestBody.teamID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a gate through the Console API
      effect: destructive
      questions:
      - Can I delete a gate using the Console API v1 endpoint?
      - What is the console call that erases a gate rather than archiving it?
      instructions:
      - text: Delete gate {id} via the Console API.
        slots:
          id: path.id
      - text: Erase gate {id} and its configuration using Console v1.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change selected settings on a gate
      effect: write
      questions:
      - Can I change only a gate's ID type or owning team without resending its rules?
      - Is it possible to update just the monitoring metrics or review settings of a gate?
      instructions:
      - text: Change the owning team of gate {id} to {teamID}.
        slots:
          id: path.id
          teamID: requestBody.teamID
      - text: Update the review settings on gate {id} to {reviewSettings}.
        slots:
          id: path.id
          reviewSettings: requestBody.reviewSettings
      - text: Set the monitoring metrics of gate {id} to {monitoringMetrics}.
        slots:
          id: path.id
          monitoringMetrics: requestBody.monitoringMetrics
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/alerts/{metricId}/resolve'].post
  update:
    x-apievangelist-phrasing:
      intent: Resolve a metric alert raised during a gate rollout
      effect: write
      questions:
      - What clears a metric alert that fired while a gate was rolling out?
      - Can I record my reasoning when resolving a rollout alert on a gate?
      instructions:
      - text: Resolve the rollout alert for metric {metricId} on gate {id}.
        slots:
          metricId: path.metricId
          id: path.id
      - text: Mark metric {metricId}'s alert on gate {id} resolved with reasoning {reasoning}.
        slots:
          metricId: path.metricId
          id: path.id
          reasoning: requestBody.reasoning
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/archive'].put
  update:
    x-apievangelist-phrasing:
      intent: Archive a gate with a recorded reason
      effect: write
      questions:
      - Can I archive a gate and note why it was archived?
      - Is there a force option when archiving a gate?
      instructions:
      - text: Archive gate {id} with reason {archiveReason}.
        slots:
          id: path.id
          archiveReason: requestBody.archiveReason
      - text: Force-archive gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/checks'].get
  update:
    x-apievangelist-phrasing:
      intent: See how often a gate is being checked
      effect: read
      questions:
      - How many times has a particular gate been checked?
      - Can I see the check volume recorded for one gate?
      instructions:
      - text: Show the check data for gate {id}.
        slots:
          id: path.id
      - text: Read the gate checks recorded for {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/code_cleanup'].post
  update:
    x-apievangelist-phrasing:
      intent: Start code cleanup for a gate
      effect: write
      questions:
      - Can Statsig kick off code cleanup for a gate I am finished with?
      - What starts removing a retired gate's references from our codebase?
      instructions:
      - text: Start code cleanup for gate {id}.
        slots:
          id: path.id
      - text: Kick off the code cleanup job for gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/disable'].put
  update:
    x-apievangelist-phrasing:
      intent: Disable a gate through the Console API
      effect: write
      questions:
      - Which Console API v1 call switches a gate off?
      - Can I disable a gate and get the updated gate back with archive metadata?
      instructions:
      - text: Disable gate {id} via the Console API.
        slots:
          id: path.id
      - text: Switch off gate {id} and return it with archive metadata.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/dynamic_config_references'].get
  update:
    x-apievangelist-phrasing:
      intent: List dynamic configs that reference a gate
      effect: read
      questions:
      - Which dynamic configs reference a given gate?
      - Can I check whether any dynamic config depends on a gate before I remove it?
      instructions:
      - text: List dynamic configs that reference gate {id}.
        slots:
          id: path.id
      - text: Show page {page} of dynamic config references to gate {id}.
        slots:
          page: query.page
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/eligible_reviewers'].get
  update:
    x-apievangelist-phrasing:
      intent: List who can review changes to a gate
      effect: read
      questions:
      - Who is allowed to review changes to a particular gate?
      - Which people can I pick as reviewers for a gate change request?
      instructions:
      - text: List eligible reviewers for gate {id}.
        slots:
          id: path.id
      - text: Show who can approve changes to gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/enable'].put
  update:
    x-apievangelist-phrasing:
      intent: Enable a gate through the Console API
      effect: write
      questions:
      - Is there a Console API v1 endpoint to turn a gate on?
      - Can I enable a gate and receive it back including archive metadata?
      instructions:
      - text: Enable gate {id} via the Console API.
        slots:
          id: path.id
      - text: Turn gate {id} on and include archive metadata in the result.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/experiment_references'].get
  update:
    x-apievangelist-phrasing:
      intent: List experiments that reference a gate
      effect: read
      questions:
      - Which experiments are referencing a given gate?
      - Can I find out if an experiment still relies on a gate before cleaning it up?
      instructions:
      - text: List experiments that reference gate {id}.
        slots:
          id: path.id
      - text: Show page {page} of experiment references to gate {id}, {limit} at a time.
        slots:
          page: query.page
          id: path.id
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/gate_references'].get
  update:
    x-apievangelist-phrasing:
      intent: List other gates that reference a gate
      effect: read
      questions:
      - Which other gates use this gate in their conditions?
      - Can I see gate-to-gate dependencies for one feature gate?
      instructions:
      - text: List gates that reference gate {id}.
        slots:
          id: path.id
      - text: Show which gates depend on gate {id}, page {page}.
        slots:
          id: path.id
          page: query.page
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/launch'].put
  update:
    x-apievangelist-phrasing:
      intent: Launch a gate through the Console API
      effect: write
      questions:
      - Which Console API v1 call marks a gate as launched?
      - Can I launch a gate and get it back with archive metadata attached?
      instructions:
      - text: Launch gate {id} via the Console API.
        slots:
          id: path.id
      - text: Ship gate {id} to everyone and return it with archive metadata.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/load_pulse'].post
  update:
    x-apievangelist-phrasing:
      intent: Load Pulse metric results for a gate rule
      effect: write
      questions:
      - Can I trigger a Pulse metric load for one rule of a gate?
      - Is it possible to load gate Pulse results for only certain metrics or in turbo mode?
      instructions:
      - text: Load Pulse for rule {ruleId} on gate {id}.
        slots:
          ruleId: requestBody.ruleId
          id: path.id
      - text: Refresh Pulse for gate {id} rule {ruleId} with metrics {metricIDs}.
        slots:
          id: path.id
          ruleId: requestBody.ruleId
          metricIDs: requestBody.metricIDs
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/overrides'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a gate's overrides through the Console API
      effect: read
      questions:
      - Can I read a gate's overrides through the Console API v1?
      - What overrides are currently forcing results on one gate, per the console endpoint?
      instructions:
      - text: Get the overrides on gate {id} via the Console API.
        slots:
          id: path.id
      - text: Read the Console v1 override list for gate {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/overrides'].post
  update:
    x-apievangelist-phrasing:
      intent: Replace a gate's overrides through the Console API
      effect: write
      questions:
      - Which Console API v1 call replaces the whole override set on a gate?
      - Can I swap out a gate's overrides entirely using the console endpoint?
      instructions:
      - text: Replace the overrides on gate {id} via the Console API.
        slots:
          id: path.id
      - text: Overwrite gate {id}'s override set using Console v1.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/overrides'].delete
  update:
    x-apievangelist-phrasing:
      intent: Clear a gate's overrides through the Console API
      effect: destructive
      questions:
      - Which Console API v1 call wipes every override from a gate?
      - Can I clear all forced results on a gate with the console endpoint?
      instructions:
      - text: Delete all overrides on gate {id} via the Console API.
        slots:
          id: path.id
      - text: Wipe the override list of gate {id} using Console v1.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/overrides'].patch
  update:
    x-apievangelist-phrasing:
      intent: Append overrides to a gate through the Console API
      effect: write
      questions:
      - Can I append overrides to a gate through the Console API v1 without losing existing ones?
      - Which console call adds extra forced results to a gate?
      instructions:
      - text: Add overrides to gate {id} via the Console API.
        slots:
          id: path.id
      - text: Append new entries to gate {id}'s overrides using Console v1.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/overrides/userID/{userID}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove one user ID override from a gate
      effect: destructive
      questions:
      - Can I remove just one user ID from a gate's pass or fail override list?
      - What happens if I remove a user override that is not actually set on the gate?
      instructions:
      - text: Remove user {userID} from the {groupID} override bucket on gate {id}.
        slots:
          userID: path.userID
          groupID: query.groupID
          id: path.id
      - text: Stop overriding user {userID} on gate {id} in group {groupID}.
        slots:
          userID: path.userID
          id: path.id
          groupID: query.groupID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/reviews'].get
  update:
    x-apievangelist-phrasing:
      intent: List change reviews on a gate
      effect: read
      questions:
      - Which change reviews have been requested on a gate?
      - Can I page through the review history of one feature gate?
      instructions:
      - text: List the change reviews on gate {id}.
        slots:
          id: path.id
      - text: Show page {page} of reviews for gate {id}.
        slots:
          page: query.page
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/reviews'].post
  update:
    x-apievangelist-phrasing:
      intent: Request a review of a gate change
      effect: write
      questions:
      - Can I submit a gate change for approval before it goes live?
      - Is it possible to name specific reviewers or reviewer groups on a gate change request?
      instructions:
      - text: Request review of change {change} on gate {id} described as {description}.
        slots:
          change: requestBody.change
          id: path.id
          description: requestBody.description
      - text: Open a review on gate {id} for {change}, assigned to reviewers {reviewer_ids}.
        slots:
          id: path.id
          change: requestBody.change
          reviewer_ids: requestBody.reviewer_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/reviews/{reviewID}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one review on a gate
      effect: read
      questions:
      - What is the status of a specific change review on a gate?
      - Can I look up one gate review to see what change it proposes?
      instructions:
      - text: Get review {reviewID} on gate {id}.
        slots:
          reviewID: path.reviewID
          id: path.id
      - text: Show the proposed change in review {reviewID} for gate {id}.
        slots:
          reviewID: path.reviewID
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/reviews/{reviewID}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit a pending gate review
      effect: write
      questions:
      - Can I change the reviewers on a gate review that is already open?
      - Is it possible to revise the proposed change in a pending gate review?
      instructions:
      - text: Set the reviewers on review {reviewID} for gate {id} to {reviewer_ids}.
        slots:
          reviewID: path.reviewID
          id: path.id
          reviewer_ids: requestBody.reviewer_ids
      - text: Rewrite the summary text of pending review {reviewID} on gate {id} as {description}.
        slots:
          id: path.id
          reviewID: path.reviewID
          description: requestBody.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/reviews/{reviewID}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel a pending gate review
      effect: destructive
      questions:
      - Can I withdraw a gate change request that is still waiting for review?
      - What cancels a gate review I no longer need?
      instructions:
      - text: Cancel review {reviewID} on gate {id}.
        slots:
          reviewID: path.reviewID
          id: path.id
      - text: Withdraw gate {id}'s pending review {reviewID}.
        slots:
          id: path.id
          reviewID: path.reviewID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/reviews/{reviewID}/approve'].put
  update:
    x-apievangelist-phrasing:
      intent: Approve a gate change review
      effect: write
      questions:
      - Can I approve a teammate's proposed gate change through the API?
      - Is there a way to leave a reason when approving a gate review?
      instructions:
      - text: Approve review {reviewID} on gate {id}.
        slots:
          reviewID: path.reviewID
          id: path.id
      - text: Approve gate {id} review {reviewID} with reason {reason}.
        slots:
          id: path.id
          reviewID: path.reviewID
          reason: requestBody.reason
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/gates/{id}/reviews/{reviewID}/commit'].put
  update:
    x-apievangelist-phrasing:
      intent: Commit an approved gate change
      effect: write
      questions:
      - Once a gate review is approved, what applies the change?
      - Can I commit an approved gate change so it takes effect?
      instructions:
      - text: Commit review {reviewID} on gate {id}.
        slots:
          reviewID: path.reviewID
          id: path.id
      - text: Apply the approved change from review {reviewID} to gate {id}.
        slots:
          reviewID: path.reviewID
          id: path.id
      method: generated
      generated: '2026-10-01'


# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/statsig/refs/heads/main/overlays/statsig-gates-api-phrasing-overlay.yaml

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/statsig-gates-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.