Statsig · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Statsig Holdouts API

14 actions 14 updates phrasing extends openapi/statsig-holdouts-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 14

$.info
$.paths['/holdouts'].get
$.paths['/holdouts'].post
$.paths['/console/v1/holdouts'].get
$.paths['/console/v1/holdouts'].post
$.paths['/console/v1/holdouts/{id}'].get
$.paths['/console/v1/holdouts/{id}'].post
$.paths['/console/v1/holdouts/{id}'].delete
$.paths['/console/v1/holdouts/{id}'].patch
$.paths['/console/v1/holdouts/{id}/overrides'].get
$.paths['/console/v1/holdouts/{id}/overrides'].post
$.paths['/console/v1/holdouts/{id}/overrides'].delete
$.paths['/console/v1/holdouts/{id}/overrides'].patch
$.paths['/console/v1/holdouts/{id}/pulse_results'].get

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 Holdouts API
  version: 1.0.0
extends: openapi/statsig-holdouts-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: 13
- target: $.paths['/holdouts'].get
  update:
    x-apievangelist-phrasing:
      intent: List holdout groups
      effect: read
      questions:
      - Which holdout groups are set up in my Statsig project?
      - What holdouts are we using to measure long-term impact?
      instructions:
      - text: List all holdouts in my project.
      - text: Show me every holdout group we have.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/holdouts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a holdout group
      effect: write
      questions:
      - How do I hold back a group of users to measure the long-term impact of features?
      - Can a holdout cover specific feature gates?
      - What share of users can I put into a new holdout?
      instructions:
      - text: Create a holdout named {name}.
        slots:
          name: requestBody.name
      - text: Create holdout {name} holding back {passPercentage} percent of users from gates {gateIDs}.
        slots:
          name: requestBody.name
          passPercentage: requestBody.passPercentage
          gateIDs: requestBody.gateIDs
      method: generated
      generated: '2026-09-26'
- target: $.paths['/console/v1/holdouts'].get
  update:
    x-apievangelist-phrasing:
      intent: Filter and page through holdouts
      effect: read
      questions:
      - Can I filter holdouts by who created them or by tag?
      - Which holdouts carry a particular tag?
      instructions:
      - text: List holdouts created by {creatorName}.
        slots:
          creatorName: query.creatorName
      - text: Find holdouts tagged {tags}, page {page} with {limit} per page.
        slots:
          tags: query.tags
          page: query.page
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a holdout for a team and unit type
      effect: write
      questions:
      - Can I create a holdout keyed on a custom unit ID type instead of user ID?
      - Is it possible to assign a new holdout to a specific team when I create it?
      instructions:
      - text: Create holdout {name} for team {teamID}.
        slots:
          name: requestBody.name
          teamID: requestBody.teamID
      - text: Set up a holdout called {name} using unit type {idType}, described as {description}.
        slots:
          name: requestBody.name
          idType: requestBody.idType
          description: requestBody.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one holdout's details
      effect: read
      questions:
      - What gates and experiments does a given holdout apply to?
      - What pass percentage is a specific holdout using right now?
      instructions:
      - text: Show me the details of holdout {id}.
        slots:
          id: path.id
      - text: Look up holdout {id} and tell me whether it is enabled.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}'].post
  update:
    x-apievangelist-phrasing:
      intent: Replace a holdout's full configuration
      effect: write
      questions:
      - How do I overwrite every setting on a holdout in one request?
      - Must I send all holdout fields when doing a full update?
      instructions:
      - text: 'Fully replace holdout {id}: enabled {isEnabled}, pass {passPercentage} percent, gates {gateIDs}, experiments {experimentIDs}, layers {layerIDs}.'
        slots:
          id: path.id
          isEnabled: requestBody.isEnabled
          passPercentage: requestBody.passPercentage
          gateIDs: requestBody.gateIDs
          experimentIDs: requestBody.experimentIDs
          layerIDs: requestBody.layerIDs
      - text: Rewrite holdout {id} as global {isGlobal}, targeting gate {targetingGateID}, with description {description}.
        slots:
          id: path.id
          isGlobal: requestBody.isGlobal
          targetingGateID: requestBody.targetingGateID
          description: requestBody.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a holdout
      effect: destructive
      questions:
      - Can I permanently remove a holdout we no longer need?
      - What happens to a holdout once I delete it?
      instructions:
      - text: Delete holdout {id}.
        slots:
          id: path.id
      - text: Remove the holdout with ID {id} from the project for good.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change selected holdout settings
      effect: write
      questions:
      - Can I change just the pass percentage on a holdout without resending everything?
      - Is there a way to switch a holdout off and leave its other settings alone?
      instructions:
      - text: Set the pass percentage on holdout {id} to {passPercentage}.
        slots:
          id: path.id
          passPercentage: requestBody.passPercentage
      - text: Disable holdout {id} by setting enabled to {isEnabled}.
        slots:
          id: path.id
          isEnabled: requestBody.isEnabled
      - text: Add monitoring metrics {monitoringMetrics} to holdout {id}.
        slots:
          id: path.id
          monitoringMetrics: requestBody.monitoringMetrics
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}/overrides'].get
  update:
    x-apievangelist-phrasing:
      intent: View a holdout's overrides
      effect: read
      questions:
      - Which IDs are forced into or out of a holdout?
      - Are there manual overrides on this holdout?
      instructions:
      - text: Show the overrides on holdout {id}.
        slots:
          id: path.id
      - text: List which unit IDs are overridden in holdout {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}/overrides'].post
  update:
    x-apievangelist-phrasing:
      intent: Replace a holdout's override list
      effect: write
      questions:
      - How do I reset the whole override list on a holdout?
      - Can I swap out every holdout override in a single call?
      instructions:
      - text: Replace all overrides on holdout {id} with a new set.
        slots:
          id: path.id
      - text: Overwrite the override list for holdout {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}/overrides'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove IDs from a holdout's overrides
      effect: destructive
      questions:
      - Can I take specific IDs off a holdout's override list?
      - What's the way to drop a few overridden users from a holdout?
      instructions:
      - text: Remove selected IDs from the overrides on holdout {id}.
        slots:
          id: path.id
      - text: Drop these users from holdout {id}'s override list.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}/overrides'].patch
  update:
    x-apievangelist-phrasing:
      intent: Add IDs to a holdout's overrides
      effect: write
      questions:
      - Can I append more IDs to a holdout's overrides without replacing the existing ones?
      - Is it possible to force an extra user into a holdout?
      instructions:
      - text: Add these IDs to the overrides on holdout {id}.
        slots:
          id: path.id
      - text: Append new override entries to holdout {id}, keeping the existing ones.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/holdouts/{id}/pulse_results'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a holdout's Pulse results
      effect: read
      questions:
      - What is the long-term impact measured by a holdout so far?
      - Can I read holdout Pulse results with CUPED variance reduction applied?
      - Which confidence interval can I request for holdout results?
      instructions:
      - text: Get the Pulse results for holdout {id}.
        slots:
          id: path.id
      - text: Show Pulse results for holdout {id} with CUPED {cuped} at {confidence} percent confidence.
        slots:
          id: path.id
          cuped: query.cuped
          confidence: query.confidence
      method: generated
      generated: '2026-10-01'

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-holdouts-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.